From 80b9090c9b7fcb6167eb6888cc0e50af01cb41a6 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosecki Date: Fri, 17 Jul 2026 15:49:44 +0200 Subject: [PATCH 1/2] feat: init tsunami package --- package.json | 1 + packages/tsunami/.eslintignore | 1 + packages/tsunami/.eslintrc | 4 +++ packages/tsunami/.prettierrc | 3 ++ packages/tsunami/package.json | 51 ++++++++++++++++++++++++++++ packages/tsunami/src/index.ts | 13 +++++++ packages/tsunami/tsconfig.build.json | 4 +++ packages/tsunami/tsconfig.json | 8 +++++ yarn.lock | 12 +++++++ 9 files changed, 97 insertions(+) create mode 100644 packages/tsunami/.eslintignore create mode 100644 packages/tsunami/.eslintrc create mode 100644 packages/tsunami/.prettierrc create mode 100644 packages/tsunami/package.json create mode 100644 packages/tsunami/src/index.ts create mode 100644 packages/tsunami/tsconfig.build.json create mode 100644 packages/tsunami/tsconfig.json diff --git a/package.json b/package.json index 71ac0a7f5..baddbeb09 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "workspaces": [ "packages/protobufs", "packages/ts-client", + "packages/tsunami", "packages/react-client", "packages/webrtc-client", "packages/mobile-client", diff --git a/packages/tsunami/.eslintignore b/packages/tsunami/.eslintignore new file mode 100644 index 000000000..1521c8b76 --- /dev/null +++ b/packages/tsunami/.eslintignore @@ -0,0 +1 @@ +dist diff --git a/packages/tsunami/.eslintrc b/packages/tsunami/.eslintrc new file mode 100644 index 000000000..ce463efce --- /dev/null +++ b/packages/tsunami/.eslintrc @@ -0,0 +1,4 @@ +{ + "extends": ["../../.eslintrc.js"], + "ignorePatterns": ["dist"] +} diff --git a/packages/tsunami/.prettierrc b/packages/tsunami/.prettierrc new file mode 100644 index 000000000..963354f23 --- /dev/null +++ b/packages/tsunami/.prettierrc @@ -0,0 +1,3 @@ +{ + "printWidth": 120 +} diff --git a/packages/tsunami/package.json b/packages/tsunami/package.json new file mode 100644 index 000000000..2e2024207 --- /dev/null +++ b/packages/tsunami/package.json @@ -0,0 +1,51 @@ +{ + "name": "@fishjam-cloud/tsunami", + "version": "0.0.0", + "description": "Framework-agnostic SDK core for Fishjam clients", + "license": "Apache-2.0", + "author": "Fishjam Team", + "private": true, + "repository": { + "type": "git", + "url": "git+https://github.com/fishjam-cloud/web-client-sdk.git", + "directory": "packages/tsunami" + }, + "homepage": "https://github.com/fishjam-cloud/web-client-sdk#readme", + "bugs": "https://github.com/fishjam-cloud/web-client-sdk/issues", + "keywords": [ + "webrtc", + "fishjam" + ], + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/**" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc -p tsconfig.build.json", + "format": "prettier --write . --ignore-path ./.eslintignore", + "format:check": "prettier --check . --ignore-path ./.eslintignore", + "lint": "eslint . --ext .ts,.tsx --fix", + "lint:check": "eslint . --ext .ts,.tsx", + "test": "vitest run --passWithNoTests", + "tsc": "tsc --noEmit" + }, + "dependencies": { + "@fishjam-cloud/ts-client": "workspace:*" + }, + "devDependencies": { + "eslint": "^8.57.1", + "prettier": "^3.5.3", + "typescript": "^5.8.3", + "vitest": "^3.1.1" + }, + "packageManager": "yarn@4.16.0" +} diff --git a/packages/tsunami/src/index.ts b/packages/tsunami/src/index.ts new file mode 100644 index 000000000..df1ceb59f --- /dev/null +++ b/packages/tsunami/src/index.ts @@ -0,0 +1,13 @@ +/** + * TypeScript SDK core for Fishjam clients. + * + * @packageDocumentation + */ +export * from "@fishjam-cloud/ts-client"; + +export type MiddlewareResult = { + track: MediaStreamTrack; + onClear?: () => void; +}; + +export type TrackMiddleware = ((track: MediaStreamTrack) => MiddlewareResult | Promise) | null; diff --git a/packages/tsunami/tsconfig.build.json b/packages/tsunami/tsconfig.build.json new file mode 100644 index 000000000..b7c927b54 --- /dev/null +++ b/packages/tsunami/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.spec.ts", "src/**/*.spec.tsx"] +} diff --git a/packages/tsunami/tsconfig.json b/packages/tsunami/tsconfig.json new file mode 100644 index 000000000..25cc80539 --- /dev/null +++ b/packages/tsunami/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "moduleResolution": "bundler", + "outDir": "dist/" + }, + "include": ["src/**/*"] +} diff --git a/yarn.lock b/yarn.lock index c72f09c7d..170e4db70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4606,6 +4606,18 @@ __metadata: languageName: unknown linkType: soft +"@fishjam-cloud/tsunami@workspace:packages/tsunami": + version: 0.0.0-use.local + resolution: "@fishjam-cloud/tsunami@workspace:packages/tsunami" + dependencies: + "@fishjam-cloud/ts-client": "workspace:*" + eslint: "npm:^8.57.1" + prettier: "npm:^3.5.3" + typescript: "npm:^5.8.3" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@fishjam-cloud/webrtc-client@workspace:*, @fishjam-cloud/webrtc-client@workspace:packages/webrtc-client": version: 0.0.0-use.local resolution: "@fishjam-cloud/webrtc-client@workspace:packages/webrtc-client" From c7b287fa781cd749b367b0913122884d137da6ec Mon Sep 17 00:00:00 2001 From: Krzysztof Kosecki Date: Fri, 17 Jul 2026 16:07:58 +0200 Subject: [PATCH 2/2] fix: add typedoc.json --- packages/tsunami/typedoc.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 packages/tsunami/typedoc.json diff --git a/packages/tsunami/typedoc.json b/packages/tsunami/typedoc.json new file mode 100644 index 000000000..c00c1b566 --- /dev/null +++ b/packages/tsunami/typedoc.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "includeVersion": true, + "entryPoints": ["src/index.ts"], + "readme": "none" +}