An open API service indexing awesome lists of open source software.

https://github.com/telperiontech/telperion

Single repository containing open-source packages.
https://github.com/telperiontech/telperion

Last synced: 16 days ago
JSON representation

Single repository containing open-source packages.

Awesome Lists containing this project

README

          

# Telperion Technology Open Source Libraries

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![GitHub](https://img.shields.io/github/stars/thalesrc/thalesrc?style=social)](https://github.com/thalesrc/thalesrc)
[![Twitter Follow](https://img.shields.io/twitter/follow/thalesrc?style=social)](https://twitter.com/thalesrc)

**A collection of high-quality, framework-independent utilities and tools for modern web development.**

[Website](https://telperion.tr) β€’ [Documentation](https://open-source.telperion.tr) β€’ [npm](https://www.npmjs.com/org/telperion) β€’ [GitHub](https://github.com/telperiontech)

---

## πŸ“¦ Overview

Thalesrc is a comprehensive monorepo containing battle-tested libraries, utilities, and tools designed to simplify modern web development. From JavaScript utilities to Docker-based infrastructure tools, each package is crafted with performance, type safety, and developer experience in mind.

## 🎯 Key Features

- πŸš€ **High Performance**: Optimized for speed and efficiency
- πŸ“˜ **TypeScript First**: Full TypeScript support with comprehensive type definitions
- 🌲 **Tree-shakeable**: Import only what you need
- πŸ”§ **Zero Dependencies**: Most packages have no external dependencies
- πŸ§ͺ **Well Tested**: High test coverage across all packages
- πŸ“š **Extensively Documented**: Comprehensive documentation and examples
- 🎨 **Framework Agnostic**: Works with any framework or vanilla JavaScript

## πŸ“š Libraries

### JavaScript & TypeScript Utilities

#### [@thalesrc/js-utils](https://www.npmjs.com/package/@thalesrc/js-utils)
[![npm](https://img.shields.io/npm/v/@thalesrc/js-utils.svg)](https://www.npmjs.com/package/@thalesrc/js-utils)
[![npm](https://img.shields.io/npm/dw/@thalesrc/js-utils.svg)](https://www.npmjs.com/package/@thalesrc/js-utils)

The swiss army knife of JavaScript utilities. A comprehensive collection of 50+ utility functions for arrays, objects, promises, strings, and more. Features include array manipulation, deep cloning, promise chains, debouncing, and smart type guards.

**Highlights**: Array utilities, Promise helpers, Object manipulation, String operations, Function utilities

#### [@telperion/extra-ts-types](https://www.npmjs.com/package/@telperion/extra-ts-types)
[![npm](https://img.shields.io/npm/v/@telperion/extra-ts-types.svg)](https://www.npmjs.com/package/@telperion/extra-ts-types)

Advanced TypeScript utility types for sophisticated type manipulations. Includes types like `PartialSome`, `DeepestValue`, `Join`, `Tail`, and more for working with complex type scenarios.

**Highlights**: Deep object navigation, Tuple manipulation, Constructor types, Partial utilities

#### [@thalesrc/ts-utils](libs/ts-utils)

TypeScript-specific utility types and helper functions built on top of the TypeScript compiler API.

**Highlights**: TypeScript utilities, Compiler helpers

---

### Web & DOM Utilities

#### [@thalesrc/dom-utils](libs/dom-utils)

Utility functions for DOM manipulation and browser APIs. Simplifies common DOM operations with a modern, type-safe API.

**Highlights**: DOM manipulation, Browser API helpers, Event handling

#### [@thalesrc/elements](https://www.npmjs.com/package/@thalesrc/elements)
[![npm](https://img.shields.io/npm/v/@thalesrc/elements.svg)](https://www.npmjs.com/package/@thalesrc/elements)
[![npm](https://img.shields.io/npm/dm/@thalesrc/elements.svg)](https://www.npmjs.com/package/@thalesrc/elements)

Collection of custom web components built with Lit. Features a complete client-side routing solution with declarative components for SPAs and a framework-independent drag-and-drop system with extended events, smart drop zones, drag handles, and multiple dragging strategies.

**Sub-modules:**
- **router**: Client-side routing with router, route definitions, outlets, navigation links, and global configuration with support for multiple history strategies and reactive updates
- **drag-drop**: Drag-and-drop web components with extended drag-drop events, smart drop zones, drag handles, and multiple dragging strategies

**Highlights**: Router components, Client-side routing, URLPattern matching, Signal-based reactivity, Drag & drop, Web Components, Drop zone validation, Cross-framework compatibility

#### [@thalesrc/paintlet](https://www.npmjs.com/package/@thalesrc/paintlet)

Pre-built CSS Paint API (Houdini) worklets for modern web development. Create stunning visual effects like ripples, rain animations, and organic gradients using the CSS Paint API.

**Highlights**: CSS Houdini, Paint worklets, Visual effects, Animated gradients

#### [@telperion/reactive-storage](https://www.npmjs.com/package/@telperion/reactive-storage)
[![npm](https://img.shields.io/npm/v/@telperion/reactive-storage.svg)](https://www.npmjs.com/package/@telperion/reactive-storage)

RxJS-based reactive wrapper for browser storage APIs (localStorage and sessionStorage). Provides an Observable-based API for real-time storage updates with support for nested property access, automatic synchronization, and FIFO-queued write operations. Serves as the foundation for Angular Signal-based and React hooks-based storage utilities.

**Highlights**: Reactive storage, Observable patterns, Nested property access, Type-safe, FIFO operations, Framework foundation

#### [@telperion/rx-utils](libs/rx-utils)
[![npm](https://img.shields.io/npm/v/@telperion/rx-utils.svg)](https://www.npmjs.com/package/@telperion/rx-utils)
[![npm](https://img.shields.io/npm/dm/@telperion/rx-utils.svg)](https://www.npmjs.com/package/@telperion/rx-utils)

Utility functions and operators for RxJS Observables. Features async iterable conversion, share operators, and Observable extensions.

**Highlights**: RxJS operators, AsyncIterable support, Observable utilities, Debounce buffering, Stream helpers

---

### Framework-Specific Utilities

#### [@telperion/ng-pack](libs/ng-pack)
[![npm](https://img.shields.io/npm/v/@telperion/ng-pack.svg)](https://www.npmjs.com/package/@telperion/ng-pack)
[![npm](https://img.shields.io/npm/dm/@telperion/ng-pack.svg)](https://www.npmjs.com/package/@telperion/ng-pack)

Collection of Angular utilities and libraries organized as secondary entry points. Includes signal-based storage management, template-driven form utilities, and common Angular helpers.

**Sub-modules:**
- **common**: Pipes for extracting keys, values, and entries from Maps, Sets, and plain objects
- **storage-signals**: Signal-based localStorage/sessionStorage/cookies with reactive updates, nested property access, and configurable cookie options
- **sse-client**: HttpClient-inspired SSE client with Observable-based streaming, interceptor chain, and reactive real-time updates
- **template-signal-forms**: Signal-based forms for template-driven forms _(under construction)_
- **utils**: Angular utilities including event modifiers, directive-as-service provider, and Promise-based HTTP client with tuple error handling

**Highlights**: Angular signals, Reactive storage, Cookie storage, SSE client, Interceptors, Real-time streaming, Nested property access, Template forms, Event modifiers, HTTP utilities, Type-safe

#### [@thalesrc/react-utils](libs/react-utils)

React-specific utility hooks and components for modern React development. Simplifies common React patterns and state management.

**Highlights**: Custom hooks, React utilities, State management helpers

---

### Messaging & Communication

#### [@telperion/messenger](https://www.npmjs.com/package/@telperion/messenger)
[![npm](https://img.shields.io/npm/v/@telperion/messenger.svg)](https://www.npmjs.com/package/@telperion/messenger)
[![npm](https://img.shields.io/npm/dw/@telperion/messenger.svg)](https://www.npmjs.com/package/@telperion/messenger)
[![codecov](https://codecov.io/gh/telperiontech/telperion/graph/badge.svg?token=dz46LY3onk&flag=messenger)](https://app.codecov.io/gh/telperiontech/telperion/tree/main?flags%5B0%5D=messenger)

Cross-context messaging library for seamless communication across iframes, Chrome extensions, web workers, broadcast channels, and WebRTC data channels. Built with RxJS for reactive message handling with decorators for clean, declarative APIs.

**Sub-modules:**
- **iframe**: Parent-child window messaging with `IframeMessageClient`, `IframeMessageHost`, and `IframeMessageService`
- **chrome**: Chrome extension communication across background scripts, content scripts, and popups
- **worker**: Main thread ↔ Web Worker communication
- **broadcast**: Tab-to-tab messaging via the Broadcast Channel API
- **rtc**: Peer-to-peer messaging over negotiated RTCDataChannels with automatic channel ID derivation

**Highlights**: Iframe messaging, Chrome extension support, Web Workers, Broadcast API, WebRTC DataChannel, RxJS-based, Decorator API

---

### Build & Development Tools

#### [@thalesrc/nx-utils](https://www.npmjs.com/package/@thalesrc/nx-utils)
[![npm](https://img.shields.io/npm/v/@thalesrc/nx-utils.svg)](https://www.npmjs.com/package/@thalesrc/nx-utils)

Powerful Nx executors for monorepo projects. Includes executors for file copying with content replacement and image resizing, package.json generation with auto-exports, parallel command execution, TypeScript building, file watching, platform-specific scripts, and batch operations.

**Highlights**: Copy with transforms, Package.json filling, Parallel execution, TypeScript builder, File watcher, Platform runner

#### [@thalesrc/node-utils](libs/node-utils)

Node.js-specific utility functions for server-side development, file system operations, and CLI tools.

**Highlights**: File system utilities, CLI helpers, Node.js utilities

---

### Infrastructure & DevOps

#### [@thalesrc/auto-proxy](https://github.com/thalesrc/thalesrc/pkgs/container/auto-proxy)
[![GitHub Container Registry](https://img.shields.io/badge/ghcr.io-auto--proxy-blue)](https://github.com/thalesrc/thalesrc/pkgs/container/auto-proxy)

Docker-aware nginx reverse proxy with automatic SSL and service discovery. Perfect for development environments with support for HTTP/HTTPS, gRPC, databases (PostgreSQL, MySQL, Redis, MongoDB), automatic SSL certificates, and Docker container discovery.

**Highlights**: Automatic SSL, gRPC support, Database proxying, Docker integration, Development-optimized

#### [@thalesrc/docker-frp](https://github.com/thalesrc/thalesrc/pkgs/container/docker-frp)
[![GitHub Container Registry](https://img.shields.io/badge/ghcr.io-docker--frp-blue)](https://github.com/thalesrc/thalesrc/pkgs/container/docker-frp)

Comprehensive Docker container for Fast Reverse Proxy (FRP) with both server and client modes. Features web-based admin UI, multiple proxy types (TCP, UDP, HTTP, HTTPS), and easy configuration.

**Highlights**: FRP server/client, Web admin UI, Multi-protocol, Easy setup, Multi-platform support

---

## πŸš€ Quick Start

### Installation

Install individual packages as needed:

```bash
# JavaScript utilities
npm install @thalesrc/js-utils

# TypeScript types
npm install @telperion/extra-ts-types

# RxJS utilities
npm install @telperion/rx-utils

# Nx utilities (dev dependency)
npm install -D @thalesrc/nx-utils

# Messenger (cross-context messaging)
npm install @telperion/messenger

# Paint API worklets
npm install @thalesrc/paintlet
```

### Usage Examples

**JavaScript Utilities:**
```typescript
import { compact, uniquify, debounce } from '@thalesrc/js-utils';

const arr = [1, 2, 2, 3, null, undefined, 4];
compact(arr); // [1, 2, 2, 3, 4]
uniquify(arr); // [1, 2, 3, null, undefined, 4]

debounce(() => console.log('Debounced!'), 300);
```

**Drag & Drop (via @thalesrc/elements):**
```html

import '@thalesrc/elements/drag-drop';

Drag me!

Drop here!

```

**RxJS Utilities:**
```typescript
import { interval } from 'rxjs';
import { toAsyncIteratable } from '@telperion/rx-utils';

const observable = interval(1000);
for await (const value of toAsyncIteratable(observable)) {
console.log(value);
}
```

**Messenger:**
```typescript
import { IframeMessageClient, Request } from '@telperion/messenger/iframe';
import { Observable } from 'rxjs';

class MyClient extends IframeMessageClient {
@Request('getData')
fetchData(query: string): Observable {
return null!; // Implementation handled by decorator
}
}

const client = new MyClient();
client.fetchData('user').subscribe(data => console.log(data));
```

---

## πŸ—οΈ Monorepo Structure

This project is built with [Nx](https://nx.dev), a powerful build system for monorepos.

```
thalesrc/
β”œβ”€β”€ libs/
β”‚ β”œβ”€β”€ js-utils/ # JavaScript utilities
β”‚ β”œβ”€β”€ ts-utils/ # TypeScript utilities
β”‚ β”œβ”€β”€ extra-ts-types/ # TypeScript types
β”‚ β”œβ”€β”€ dom-utils/ # DOM utilities
β”‚ β”œβ”€β”€ paintlet/ # CSS Paint API worklets
β”‚ β”œβ”€β”€ react-utils/ # React utilities
β”‚ β”œβ”€β”€ rx-utils/ # RxJS utilities
β”‚ β”œβ”€β”€ reactive-storage/ # Reactive storage
β”‚ β”œβ”€β”€ messenger/ # Messaging library
β”‚ β”œβ”€β”€ node-utils/ # Node.js utilities
β”‚ β”œβ”€β”€ nx-utils/ # Nx executors
β”‚ β”œβ”€β”€ auto-proxy/ # Auto proxy Docker image
β”‚ └── docker-frp/ # FRP Docker image
β”œβ”€β”€ nx.json
β”œβ”€β”€ package.json
└── tsconfig.base.json
```

### Development Commands

```bash
# Run tests for a specific library
nx test js-utils

# Build a library
nx build elements

# Run all tests
nx run-many -t test

# Visualize the project graph
nx graph
```

---

## 🀝 Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Commit your changes: `git commit -m 'Add amazing feature'`
4. Push to the branch: `git push origin feature/amazing-feature`
5. Open a Pull Request

---

## πŸ“– Documentation

- [Website](https://thalesrc.com)
- [Documentation](https://open-source.thalesrc.com)
- [API Reference](https://open-source.thalesrc.com/api)
- [Examples](https://github.com/thalesrc/thalesrc/tree/main/examples)

---

## πŸ“„ License

All packages in this repository are licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## πŸ‘¨β€πŸ’» Author

**Ali Şahin Γ–zΓ§elik**

- Website: [alisah.in](https://alisah.in)
- Email: alisahinozcelik@gmail.com
- GitHub: [@thalesrc](https://github.com/thalesrc)
- Twitter: [@thalesrc](https://twitter.com/thalesrc)

---

## πŸ’– Support

If you find these libraries helpful, please consider:

- ⭐ Starring the repository
- πŸ› Reporting bugs or suggesting features via [issues](https://github.com/thalesrc/thalesrc/issues)
- πŸ’° [Supporting on Patreon](https://www.patreon.com/alisahin)
- πŸ“’ Sharing with your network

---

## πŸ”— Links

- [GitHub Repository](https://github.com/thalesrc/thalesrc)
- [npm Organization](https://www.npmjs.com/org/thalesrc)
- [GitHub Packages](https://github.com/orgs/thalesrc/packages)
- [Issues](https://github.com/thalesrc/thalesrc/issues)
- [Discussions](https://github.com/thalesrc/thalesrc/discussions)

---

**Made with ❀️ by [Telperion](https://github.com/telperiontech)**