(feat): migrate bun to pnpm
(feat): some mtp stuff (wip): electron app tray
This commit is contained in:
parent
69149b73bd
commit
82a483d7ab
39 changed files with 10109 additions and 2429 deletions
|
|
@ -19,16 +19,16 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#electron --command bun --bun run copy-licenses
|
run: nix develop .#electron --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#electron --command bun --bun run build:packages
|
run: nix develop .#electron --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Build web
|
- name: Build web
|
||||||
run: nix develop .#electron --command bun --bun run build:web
|
run: nix develop .#electron --command pnpm run build:web
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/
|
run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/
|
||||||
|
|
@ -43,13 +43,13 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#tauri --command bun install --frozen-lockfile
|
run: nix develop .#tauri --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#tauri --command bun --bun run copy-licenses
|
run: nix develop .#tauri --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#tauri --command bun --bun run build:packages
|
run: nix develop .#tauri --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Setup Android Keystore
|
- name: Setup Android Keystore
|
||||||
env:
|
env:
|
||||||
|
|
@ -108,7 +108,7 @@ jobs:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build mobile
|
- name: Build mobile
|
||||||
run: nix develop .#tauri --command bun --bun run build:mobile
|
run: nix develop .#tauri --command pnpm run build:mobile
|
||||||
|
|
||||||
- name: Upload mobile artifact
|
- name: Upload mobile artifact
|
||||||
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
||||||
|
|
@ -129,13 +129,13 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#electron --command bun --bun run copy-licenses
|
run: nix develop .#electron --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#electron --command bun --bun run build:packages
|
run: nix develop .#electron --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Set Electron dev version
|
- name: Set Electron dev version
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -155,7 +155,7 @@ jobs:
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Build Electron desktop
|
- name: Build Electron desktop
|
||||||
run: nix develop .#electron --command bun --bun run build:desktop
|
run: nix develop .#electron --command pnpm run build:desktop
|
||||||
|
|
||||||
- name: Upload desktop artifacts
|
- name: Upload desktop artifacts
|
||||||
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
||||||
|
|
@ -176,7 +176,7 @@ jobs:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Download mobile artifact
|
- name: Download mobile artifact
|
||||||
uses: https://data.forgejo.org/actions/download-artifact@v3
|
uses: https://data.forgejo.org/actions/download-artifact@v3
|
||||||
|
|
@ -212,7 +212,7 @@ jobs:
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ASSET_BASE_URL="${{ forgejo.api_url }}"
|
ASSET_BASE_URL="${{ forgejo.api_url }}"
|
||||||
ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}"
|
ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}"
|
||||||
FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" bun --bun run copy-releases
|
FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" pnpm run copy-releases
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Create pre-release and upload files
|
- name: Create pre-release and upload files
|
||||||
|
|
|
||||||
|
|
@ -20,16 +20,16 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#electron --command bun --bun run copy-licenses
|
run: nix develop .#electron --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#electron --command bun --bun run build:packages
|
run: nix develop .#electron --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Build web
|
- name: Build web
|
||||||
run: nix develop .#electron --command bun --bun run build:web
|
run: nix develop .#electron --command pnpm run build:web
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/
|
run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/
|
||||||
|
|
@ -44,13 +44,13 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#tauri --command bun install --frozen-lockfile
|
run: nix develop .#tauri --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#tauri --command bun --bun run copy-licenses
|
run: nix develop .#tauri --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#tauri --command bun --bun run build:packages
|
run: nix develop .#tauri --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Setup Android Keystore
|
- name: Setup Android Keystore
|
||||||
env:
|
env:
|
||||||
|
|
@ -109,7 +109,7 @@ jobs:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build mobile
|
- name: Build mobile
|
||||||
run: nix develop .#tauri --command bun --bun run build:mobile
|
run: nix develop .#tauri --command pnpm run build:mobile
|
||||||
|
|
||||||
- name: Upload mobile artifact
|
- name: Upload mobile artifact
|
||||||
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
||||||
|
|
@ -130,13 +130,13 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Copy licenses
|
- name: Copy licenses
|
||||||
run: nix develop .#electron --command bun --bun run copy-licenses
|
run: nix develop .#electron --command pnpm run copy-licenses
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
run: nix develop .#electron --command bun --bun run build:packages
|
run: nix develop .#electron --command pnpm run build:packages
|
||||||
|
|
||||||
- name: Set Electron prod version
|
- name: Set Electron prod version
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -154,7 +154,7 @@ jobs:
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Build Electron desktop
|
- name: Build Electron desktop
|
||||||
run: nix develop .#electron --command bun --bun run build:desktop
|
run: nix develop .#electron --command pnpm run build:desktop
|
||||||
|
|
||||||
- name: Upload desktop artifacts
|
- name: Upload desktop artifacts
|
||||||
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
uses: https://data.forgejo.org/actions/upload-artifact@v3
|
||||||
|
|
@ -173,7 +173,7 @@ jobs:
|
||||||
uses: https://data.forgejo.org/actions/checkout@v4
|
uses: https://data.forgejo.org/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: nix develop .#electron --command bun install --frozen-lockfile
|
run: nix develop .#electron --command pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Download mobile artifact
|
- name: Download mobile artifact
|
||||||
uses: https://data.forgejo.org/actions/download-artifact@v3
|
uses: https://data.forgejo.org/actions/download-artifact@v3
|
||||||
|
|
@ -206,7 +206,7 @@ jobs:
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ASSET_BASE_URL="${{ forgejo.api_url }}"
|
ASSET_BASE_URL="${{ forgejo.api_url }}"
|
||||||
ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}"
|
ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}"
|
||||||
FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" bun --bun run copy-releases
|
FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" pnpm run copy-releases
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Create release and upload files
|
- name: Create release and upload files
|
||||||
|
|
|
||||||
|
|
@ -10,22 +10,22 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rm -rf dist release",
|
"clean": "rm -rf dist release",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build:web": "cd ../.. && bun run build:web",
|
"build:web": "cd ../.. && pnpm run build:web",
|
||||||
"build": "tsc -p tsconfig.json && esbuild src/preload/preload.ts --bundle --platform=node --format=cjs --external:electron --outfile=dist/preload/preload.cjs",
|
"build": "tsc -p tsconfig.json && esbuild src/preload/preload.ts --bundle --platform=node --format=cjs --external:electron --outfile=dist/preload/preload.cjs",
|
||||||
"dev:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron . --verbose",
|
"dev:raw": "cd ../.. && pnpm run build:web && cd apps/electron && pnpm run build && electron . --verbose",
|
||||||
"dev": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run dev:raw; else bun run dev:raw; fi",
|
"dev": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run dev:raw; else pnpm run dev:raw; fi",
|
||||||
"start:raw": "bun run build && electron .",
|
"start:raw": "pnpm run build && electron .",
|
||||||
"start": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run start:raw; else bun run start:raw; fi",
|
"start": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run start:raw; else pnpm run start:raw; fi",
|
||||||
"package:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --publish never",
|
"package:raw": "cd ../.. && pnpm run build:web && cd apps/electron && pnpm run build && electron-builder --publish never",
|
||||||
"package": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:raw; else bun run package:raw; fi",
|
"package": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run package:raw; else pnpm run package:raw; fi",
|
||||||
"package:linux:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --linux --publish never",
|
"package:linux:raw": "cd ../.. && pnpm run build:web && cd apps/electron && pnpm run build && electron-builder --linux --publish never",
|
||||||
"package:linux": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:linux:raw; else bun run package:linux:raw; fi",
|
"package:linux": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run package:linux:raw; else pnpm run package:linux:raw; fi",
|
||||||
"package:windows:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --win --publish never",
|
"package:windows:raw": "cd ../.. && pnpm run build:web && cd apps/electron && pnpm run build && electron-builder --win --publish never",
|
||||||
"package:windows": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:windows:raw; else bun run package:windows:raw; fi",
|
"package:windows": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run package:windows:raw; else pnpm run package:windows:raw; fi",
|
||||||
"checksum": "bun scripts/generate-release-metadata.ts",
|
"checksum": "node scripts/generate-release-metadata.ts",
|
||||||
"generate-signing-key": "bun scripts/generate-signing-key.ts",
|
"generate-signing-key": "node scripts/generate-signing-key.ts",
|
||||||
"validate:raw": "bun run build && bun run package:linux:raw",
|
"validate:raw": "pnpm run build && pnpm run package:linux:raw",
|
||||||
"validate": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run validate:raw; else bun run validate:raw; fi"
|
"validate": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command pnpm run validate:raw; else pnpm run validate:raw; fi"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import {
|
||||||
type DesktopScreenShareAudioOutput,
|
type DesktopScreenShareAudioOutput,
|
||||||
type DesktopScreenShareCapabilities,
|
type DesktopScreenShareCapabilities,
|
||||||
} from "../shared/ipc.js";
|
} from "../shared/ipc.js";
|
||||||
|
import { initTray } from "./tray.js";
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
const verbose = process.argv.includes("--verbose");
|
const verbose = process.argv.includes("--verbose");
|
||||||
|
|
@ -310,6 +311,7 @@ async function start() {
|
||||||
verboseLog("app ready");
|
verboseLog("app ready");
|
||||||
registerIpc();
|
registerIpc();
|
||||||
registerDisplayMediaHandler();
|
registerDisplayMediaHandler();
|
||||||
|
initTray();
|
||||||
await createWindow();
|
await createWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
25
apps/electron/src/main/tray.ts
Normal file
25
apps/electron/src/main/tray.ts
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { Tray, Menu } from "electron";
|
||||||
|
import path from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
let tray: Tray | null = null;
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
export function initTray() {
|
||||||
|
const iconPath = path.join(__dirname, "../../build/icons/32x32.png");
|
||||||
|
|
||||||
|
tray = new Tray(iconPath); // keep reference alive
|
||||||
|
|
||||||
|
const contextMenu = Menu.buildFromTemplate([
|
||||||
|
{ label: "Restart", type: "normal" },
|
||||||
|
{ label: "Quit", type: "normal" },
|
||||||
|
]);
|
||||||
|
|
||||||
|
tray.setContextMenu(contextMenu);
|
||||||
|
|
||||||
|
tray.on("click", (event) => {
|
||||||
|
console.log(event);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -21,11 +21,11 @@
|
||||||
"dev:mobile:raw": "tauri android dev --host ${TAURI_DEV_HOST:-127.0.0.1}",
|
"dev:mobile:raw": "tauri android dev --host ${TAURI_DEV_HOST:-127.0.0.1}",
|
||||||
"start-adb:mobile:raw": "adb devices",
|
"start-adb:mobile:raw": "adb devices",
|
||||||
"build:mobile:raw": "tauri android build",
|
"build:mobile:raw": "tauri android build",
|
||||||
"dev:mobile": "if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command bun dev:mobile:raw; else bun dev:mobile:raw; fi",
|
"dev:mobile": "if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command pnpm run dev:mobile:raw; else pnpm run dev:mobile:raw; fi",
|
||||||
"start-adb:mobile": "if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command bun start-adb:mobile:raw; else bun start-adb:mobile:raw; fi",
|
"start-adb:mobile": "if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command pnpm run start-adb:mobile:raw; else pnpm run start-adb:mobile:raw; fi",
|
||||||
"build:mobile": "bun run render-version.ts && if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command bun build:mobile:raw; else bun build:mobile:raw; fi && bun run render-version.ts --unrender",
|
"build:mobile": "node render-version.ts && if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command pnpm run build:mobile:raw; else pnpm run build:mobile:raw; fi && node render-version.ts --unrender",
|
||||||
"gen-icons": "tauri icon ./logo.json && bun scripts/sync-electron-icons.ts",
|
"gen-icons": "tauri icon ./logo.json && node scripts/sync-electron-icons.ts",
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src"
|
"lint": "eslint src"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
"mainBinaryName": "tensamin",
|
"mainBinaryName": "tensamin",
|
||||||
"identifier": "net.tensamin.client",
|
"identifier": "net.tensamin.client",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "cd ../web && bun run dev && cd ../tauri",
|
"beforeDevCommand": "cd ../web && pnpm run dev && cd ../tauri",
|
||||||
"devUrl": "http://localhost:3000",
|
"devUrl": "http://localhost:3000",
|
||||||
"beforeBuildCommand": "cd ../.. && bun run build:web && cd apps/tauri",
|
"beforeBuildCommand": "cd ../.. && pnpm run build:web && cd apps/tauri",
|
||||||
"frontendDist": "../../web/dist"
|
"frontendDist": "../../web/dist"
|
||||||
},
|
},
|
||||||
"app": {
|
"app": {
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"dev": "vite --port 3000 --host 0.0.0.0",
|
"dev": "vite --port 3000 --host 0.0.0.0",
|
||||||
"test": "bun test --pass-with-no-tests",
|
"test": "vitest run --passWithNoTests",
|
||||||
"build": "bun run test && tsc -b && vite build",
|
"build": "pnpm run test && tsc -b && vite build",
|
||||||
"preview": "cd dist && nix-shell -p python3 --run 'python3 -m http.server 3000' && cd .."
|
"preview": "cd dist && nix-shell -p python3 --run 'python3 -m http.server 3000' && cd .."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -61,14 +61,9 @@ function parseTuFileContent(rawFileContent: string): {
|
||||||
? Number(userIdString.split("@")[0])
|
? Number(userIdString.split("@")[0])
|
||||||
: Number(userIdString);
|
: Number(userIdString);
|
||||||
|
|
||||||
const rawDomain = userIdString.includes("@")
|
const domain = userIdString.includes("@")
|
||||||
? userIdString.split("@")[1]
|
? userIdString.split("@")[1]
|
||||||
: null;
|
: null;
|
||||||
const domain = rawDomain
|
|
||||||
? rawDomain.includes(":")
|
|
||||||
? rawDomain
|
|
||||||
: rawDomain + ":1984"
|
|
||||||
: null;
|
|
||||||
|
|
||||||
if (!userId || !privateKey) {
|
if (!userId || !privateKey) {
|
||||||
throw new Error("Invalid file");
|
throw new Error("Invalid file");
|
||||||
|
|
@ -76,7 +71,6 @@ function parseTuFileContent(rawFileContent: string): {
|
||||||
|
|
||||||
console.log({
|
console.log({
|
||||||
domain,
|
domain,
|
||||||
rawDomain,
|
|
||||||
userId,
|
userId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -220,14 +214,9 @@ export default function Form() {
|
||||||
const actualUsername = inputUsername.includes("@")
|
const actualUsername = inputUsername.includes("@")
|
||||||
? inputUsername.split("@")[0]
|
? inputUsername.split("@")[0]
|
||||||
: inputUsername;
|
: inputUsername;
|
||||||
const rawDomain = inputUsername.includes("@")
|
const domain = inputUsername.includes("@")
|
||||||
? inputUsername.split("@")[1]
|
? inputUsername.split("@")[1]
|
||||||
: null;
|
: null;
|
||||||
const domain = rawDomain
|
|
||||||
? rawDomain.includes(":")
|
|
||||||
? rawDomain
|
|
||||||
: rawDomain + ":1984"
|
|
||||||
: null;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
|
|
|
||||||
15
flake.nix
15
flake.nix
|
|
@ -216,7 +216,7 @@
|
||||||
nodejs_22
|
nodejs_22
|
||||||
corepack_22
|
corepack_22
|
||||||
coreutils
|
coreutils
|
||||||
bun
|
pnpm
|
||||||
pkgs.electron
|
pkgs.electron
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
python3
|
||||||
|
|
@ -244,11 +244,11 @@
|
||||||
export npm_config_build_from_source=true
|
export npm_config_build_from_source=true
|
||||||
export USE_SYSTEM_FPM=true
|
export USE_SYSTEM_FPM=true
|
||||||
|
|
||||||
alias electron-install='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && bun install'
|
alias electron-install='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && pnpm install'
|
||||||
alias electron-build-web='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && bun run build:web'
|
alias electron-build-web='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && pnpm run build:web'
|
||||||
alias electron-dev='bun run dev'
|
alias electron-dev='pnpm run dev'
|
||||||
alias electron-package='bun run package:linux'
|
alias electron-package='pnpm run package:linux'
|
||||||
alias electron-validate='bun run validate'
|
alias electron-validate='pnpm run validate'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -257,8 +257,9 @@
|
||||||
[
|
[
|
||||||
jdk17
|
jdk17
|
||||||
gradle
|
gradle
|
||||||
bun
|
pnpm
|
||||||
nodejs
|
nodejs
|
||||||
|
corepack_22
|
||||||
coreutils
|
coreutils
|
||||||
pkg-config
|
pkg-config
|
||||||
git
|
git
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Third-Party Notices
|
# Third-Party Notices
|
||||||
|
|
||||||
Generated from bun.lock and installed packages in workspace node_modules folders.
|
Generated from pnpm-lock.yaml and installed packages in workspace node_modules folders.
|
||||||
|
|
||||||
## @babel/runtime@7.29.7
|
## @babel/runtime@7.29.7
|
||||||
|
|
||||||
|
|
@ -445,7 +445,7 @@ Generated from bun.lock and installed packages in workspace node_modules folders
|
||||||
- Homepage: https://github.com/tauri-apps/tauri#readme
|
- Homepage: https://github.com/tauri-apps/tauri#readme
|
||||||
- Repository: git+https://github.com/tauri-apps/tauri.git
|
- Repository: git+https://github.com/tauri-apps/tauri.git
|
||||||
- Description: Tauri API definitions
|
- Description: Tauri API definitions
|
||||||
- Included files: LICENSE_MIT, LICENSE_APACHE-2.0
|
- Included files: LICENSE_APACHE-2.0, LICENSE_MIT
|
||||||
- Folder: `licenses/@tauri-apps_api@2.11.1`
|
- Folder: `licenses/@tauri-apps_api@2.11.1`
|
||||||
- Source package dir: `apps/tauri/node_modules/@tauri-apps/api`
|
- Source package dir: `apps/tauri/node_modules/@tauri-apps/api`
|
||||||
|
|
||||||
|
|
@ -455,7 +455,7 @@ Generated from bun.lock and installed packages in workspace node_modules folders
|
||||||
- Homepage: https://github.com/tauri-apps/tauri#readme
|
- Homepage: https://github.com/tauri-apps/tauri#readme
|
||||||
- Repository: git+https://github.com/tauri-apps/tauri.git
|
- Repository: git+https://github.com/tauri-apps/tauri.git
|
||||||
- Description: Command line interface for building Tauri apps
|
- Description: Command line interface for building Tauri apps
|
||||||
- Included files: LICENSE_MIT, LICENSE_APACHE-2.0
|
- Included files: LICENSE_APACHE-2.0, LICENSE_MIT
|
||||||
- Folder: `licenses/@tauri-apps_cli@2.11.4`
|
- Folder: `licenses/@tauri-apps_cli@2.11.4`
|
||||||
- Source package dir: `apps/tauri/node_modules/@tauri-apps/cli`
|
- Source package dir: `apps/tauri/node_modules/@tauri-apps/cli`
|
||||||
|
|
||||||
|
|
@ -1326,6 +1326,26 @@ Generated from bun.lock and installed packages in workspace node_modules folders
|
||||||
- Folder: `licenses/vite@8.1.3`
|
- Folder: `licenses/vite@8.1.3`
|
||||||
- Source package dir: `apps/web/node_modules/vite`
|
- Source package dir: `apps/web/node_modules/vite`
|
||||||
|
|
||||||
|
## vitest@4.1.9
|
||||||
|
|
||||||
|
- License: MIT
|
||||||
|
- Homepage: https://vitest.dev
|
||||||
|
- Repository: git+https://github.com/vitest-dev/vitest.git
|
||||||
|
- Description: Next generation testing framework powered by Vite
|
||||||
|
- Included files: LICENSE.md
|
||||||
|
- Folder: `licenses/vitest@4.1.9`
|
||||||
|
- Source package dir: `node_modules/vitest`
|
||||||
|
|
||||||
|
## yaml@2.9.0
|
||||||
|
|
||||||
|
- License: ISC
|
||||||
|
- Homepage: https://eemeli.org/yaml/
|
||||||
|
- Repository: github:eemeli/yaml
|
||||||
|
- Description: JavaScript parser and stringifier for YAML
|
||||||
|
- Included files: LICENSE
|
||||||
|
- Folder: `licenses/yaml@2.9.0`
|
||||||
|
- Source package dir: `node_modules/yaml`
|
||||||
|
|
||||||
## yargs@15.4.1
|
## yargs@15.4.1
|
||||||
|
|
||||||
- License: MIT
|
- License: MIT
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,11 @@
|
||||||
"specVersion": "1.5",
|
"specVersion": "1.5",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"timestamp": "2026-07-02T17:59:19.433Z",
|
"timestamp": "2026-07-03T19:50:00.640Z",
|
||||||
"tools": [
|
"tools": [
|
||||||
{
|
{
|
||||||
"vendor": "OpenAI",
|
"vendor": "OpenAI",
|
||||||
"name": "custom bun license generator"
|
"name": "custom pnpm license generator"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"component": {
|
"component": {
|
||||||
|
|
@ -4675,6 +4675,76 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "library",
|
||||||
|
"bomRef": "pkg:npm/vitest@4.1.9",
|
||||||
|
"name": "vitest",
|
||||||
|
"version": "4.1.9",
|
||||||
|
"purl": "pkg:npm/vitest@4.1.9",
|
||||||
|
"description": "Next generation testing framework powered by Vite",
|
||||||
|
"licenses": [
|
||||||
|
{
|
||||||
|
"license": {
|
||||||
|
"id": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"externalReferences": [
|
||||||
|
{
|
||||||
|
"type": "website",
|
||||||
|
"url": "https://vitest.dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "git+https://github.com/vitest-dev/vitest.git"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "local:licenseFolder",
|
||||||
|
"value": "licenses/vitest@4.1.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local:sourcePackageDir",
|
||||||
|
"value": "node_modules/vitest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "library",
|
||||||
|
"bomRef": "pkg:npm/yaml@2.9.0",
|
||||||
|
"name": "yaml",
|
||||||
|
"version": "2.9.0",
|
||||||
|
"purl": "pkg:npm/yaml@2.9.0",
|
||||||
|
"description": "JavaScript parser and stringifier for YAML",
|
||||||
|
"licenses": [
|
||||||
|
{
|
||||||
|
"license": {
|
||||||
|
"id": "ISC"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"externalReferences": [
|
||||||
|
{
|
||||||
|
"type": "website",
|
||||||
|
"url": "https://eemeli.org/yaml/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "github:eemeli/yaml"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "local:licenseFolder",
|
||||||
|
"value": "licenses/yaml@2.9.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "local:sourcePackageDir",
|
||||||
|
"value": "node_modules/yaml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"bomRef": "pkg:npm/yargs@15.4.1",
|
"bomRef": "pkg:npm/yargs@15.4.1",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"generatedAt": "2026-07-02T17:59:19.431Z",
|
"generatedAt": "2026-07-03T19:50:00.637Z",
|
||||||
"packageCount": 141,
|
"packageCount": 143,
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "@babel/runtime",
|
"name": "@babel/runtime",
|
||||||
|
|
@ -608,8 +608,8 @@
|
||||||
"repository": "git+https://github.com/tauri-apps/tauri.git",
|
"repository": "git+https://github.com/tauri-apps/tauri.git",
|
||||||
"description": "Tauri API definitions",
|
"description": "Tauri API definitions",
|
||||||
"files": [
|
"files": [
|
||||||
"LICENSE_MIT",
|
"LICENSE_APACHE-2.0",
|
||||||
"LICENSE_APACHE-2.0"
|
"LICENSE_MIT"
|
||||||
],
|
],
|
||||||
"licenseFolder": "licenses/@tauri-apps_api@2.11.1",
|
"licenseFolder": "licenses/@tauri-apps_api@2.11.1",
|
||||||
"sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/api"
|
"sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/api"
|
||||||
|
|
@ -622,8 +622,8 @@
|
||||||
"repository": "git+https://github.com/tauri-apps/tauri.git",
|
"repository": "git+https://github.com/tauri-apps/tauri.git",
|
||||||
"description": "Command line interface for building Tauri apps",
|
"description": "Command line interface for building Tauri apps",
|
||||||
"files": [
|
"files": [
|
||||||
"LICENSE_MIT",
|
"LICENSE_APACHE-2.0",
|
||||||
"LICENSE_APACHE-2.0"
|
"LICENSE_MIT"
|
||||||
],
|
],
|
||||||
"licenseFolder": "licenses/@tauri-apps_cli@2.11.4",
|
"licenseFolder": "licenses/@tauri-apps_cli@2.11.4",
|
||||||
"sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/cli"
|
"sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/cli"
|
||||||
|
|
@ -1781,6 +1781,32 @@
|
||||||
"licenseFolder": "licenses/vite@8.1.3",
|
"licenseFolder": "licenses/vite@8.1.3",
|
||||||
"sourcePackageDir": "apps/web/node_modules/vite"
|
"sourcePackageDir": "apps/web/node_modules/vite"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "vitest",
|
||||||
|
"version": "4.1.9",
|
||||||
|
"license": "MIT",
|
||||||
|
"homepage": "https://vitest.dev",
|
||||||
|
"repository": "git+https://github.com/vitest-dev/vitest.git",
|
||||||
|
"description": "Next generation testing framework powered by Vite",
|
||||||
|
"files": [
|
||||||
|
"LICENSE.md"
|
||||||
|
],
|
||||||
|
"licenseFolder": "licenses/vitest@4.1.9",
|
||||||
|
"sourcePackageDir": "node_modules/vitest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "yaml",
|
||||||
|
"version": "2.9.0",
|
||||||
|
"license": "ISC",
|
||||||
|
"homepage": "https://eemeli.org/yaml/",
|
||||||
|
"repository": "github:eemeli/yaml",
|
||||||
|
"description": "JavaScript parser and stringifier for YAML",
|
||||||
|
"files": [
|
||||||
|
"LICENSE"
|
||||||
|
],
|
||||||
|
"licenseFolder": "licenses/yaml@2.9.0",
|
||||||
|
"sourcePackageDir": "node_modules/yaml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "yargs",
|
"name": "yargs",
|
||||||
"version": "15.4.1",
|
"version": "15.4.1",
|
||||||
|
|
|
||||||
811
licenses/vitest@4.1.9/LICENSE.md
Normal file
811
licenses/vitest@4.1.9/LICENSE.md
Normal file
|
|
@ -0,0 +1,811 @@
|
||||||
|
# Vitest core license
|
||||||
|
Vitest is released under the MIT license:
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021-Present VoidZero Inc. and Vitest contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
# Licenses of bundled dependencies
|
||||||
|
The published Vitest artifact additionally contains code with the following licenses:
|
||||||
|
BSD-3-Clause, ISC, MIT
|
||||||
|
|
||||||
|
# Bundled dependencies:
|
||||||
|
## @antfu/install-pkg
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu
|
||||||
|
Repository: git+https://github.com/antfu/install-pkg.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2021 Anthony Fu <https://github.com/antfu>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @bomb.sh/tab
|
||||||
|
License: MIT
|
||||||
|
By: Bombshell Authors
|
||||||
|
Repository: git+https://github.com/bombshell-dev/tab.git
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @jridgewell/resolve-uri
|
||||||
|
License: MIT
|
||||||
|
By: Justin Ridgewell
|
||||||
|
Repository: https://github.com/jridgewell/resolve-uri
|
||||||
|
|
||||||
|
> Copyright 2019 Justin Ridgewell <jridgewell@google.com>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @jridgewell/sourcemap-codec
|
||||||
|
License: MIT
|
||||||
|
By: Justin Ridgewell
|
||||||
|
Repository: git+https://github.com/jridgewell/sourcemaps.git
|
||||||
|
|
||||||
|
> Copyright 2024 Justin Ridgewell <justin@ridgewell.name>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @jridgewell/trace-mapping
|
||||||
|
License: MIT
|
||||||
|
By: Justin Ridgewell
|
||||||
|
Repository: git+https://github.com/jridgewell/sourcemaps.git
|
||||||
|
|
||||||
|
> Copyright 2024 Justin Ridgewell <justin@ridgewell.name>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @sinonjs/commons
|
||||||
|
License: BSD-3-Clause
|
||||||
|
Repository: git+https://github.com/sinonjs/commons.git
|
||||||
|
|
||||||
|
> BSD 3-Clause License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2018, Sinon.JS
|
||||||
|
> All rights reserved.
|
||||||
|
>
|
||||||
|
> Redistribution and use in source and binary forms, with or without
|
||||||
|
> modification, are permitted provided that the following conditions are met:
|
||||||
|
>
|
||||||
|
> * Redistributions of source code must retain the above copyright notice, this
|
||||||
|
> list of conditions and the following disclaimer.
|
||||||
|
>
|
||||||
|
> * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
> this list of conditions and the following disclaimer in the documentation
|
||||||
|
> and/or other materials provided with the distribution.
|
||||||
|
>
|
||||||
|
> * Neither the name of the copyright holder nor the names of its
|
||||||
|
> contributors may be used to endorse or promote products derived from
|
||||||
|
> this software without specific prior written permission.
|
||||||
|
>
|
||||||
|
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## @sinonjs/fake-timers
|
||||||
|
License: BSD-3-Clause
|
||||||
|
By: Christian Johansen
|
||||||
|
Repository: git+https://github.com/sinonjs/fake-timers.git
|
||||||
|
|
||||||
|
> Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no. All rights reserved.
|
||||||
|
>
|
||||||
|
> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
|
>
|
||||||
|
> 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||||
|
>
|
||||||
|
> 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||||
|
>
|
||||||
|
> 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||||
|
>
|
||||||
|
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## acorn
|
||||||
|
License: MIT
|
||||||
|
By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine
|
||||||
|
Repository: https://github.com/acornjs/acorn.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (C) 2012-2022 by various contributors (see AUTHORS)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## acorn-walk
|
||||||
|
License: MIT
|
||||||
|
By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine
|
||||||
|
Repository: https://github.com/acornjs/acorn.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (C) 2012-2020 by various contributors (see AUTHORS)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## birpc
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu
|
||||||
|
Repository: git+https://github.com/antfu-collective/birpc.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2021 Anthony Fu <https://github.com/antfu>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## cac
|
||||||
|
License: MIT
|
||||||
|
By: egoist
|
||||||
|
Repository: egoist/cac
|
||||||
|
|
||||||
|
> The MIT License (MIT)
|
||||||
|
>
|
||||||
|
> Copyright (c) EGOIST <0x142857@gmail.com> (https://github.com/egoist)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## empathic
|
||||||
|
License: MIT
|
||||||
|
By: Luke Edwards
|
||||||
|
Repository: lukeed/empathic
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## flatted
|
||||||
|
License: ISC
|
||||||
|
By: Andrea Giammarchi
|
||||||
|
Repository: git+https://github.com/WebReflection/flatted.git
|
||||||
|
|
||||||
|
> ISC License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection
|
||||||
|
>
|
||||||
|
> Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
> purpose with or without fee is hereby granted, provided that the above
|
||||||
|
> copyright notice and this permission notice appear in all copies.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
> AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||||
|
> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
> PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## js-tokens
|
||||||
|
License: MIT
|
||||||
|
By: Simon Lydell
|
||||||
|
Repository: lydell/js-tokens
|
||||||
|
|
||||||
|
> The MIT License (MIT)
|
||||||
|
>
|
||||||
|
> Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Simon Lydell
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## kleur
|
||||||
|
License: MIT
|
||||||
|
By: Luke Edwards
|
||||||
|
Repository: lukeed/kleur
|
||||||
|
|
||||||
|
> The MIT License (MIT)
|
||||||
|
>
|
||||||
|
> Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## local-pkg
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu
|
||||||
|
Repository: git+https://github.com/antfu-collective/local-pkg.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2021 Anthony Fu <https://github.com/antfu>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## mime
|
||||||
|
License: MIT
|
||||||
|
By: Robert Kieffer
|
||||||
|
Repository: https://github.com/broofa/mime
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2023 Robert Kieffer
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## mlly
|
||||||
|
License: MIT
|
||||||
|
Repository: unjs/mlly
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) Pooya Parsa <pooya@pi0.io>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## package-manager-detector
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu
|
||||||
|
Repository: git+https://github.com/antfu-collective/package-manager-detector.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2020-PRESENT Anthony Fu <https://github.com/antfu>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## prompts
|
||||||
|
License: MIT
|
||||||
|
By: Terkel Gjervig
|
||||||
|
Repository: terkelg/prompts
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2018 Terkel Gjervig Nielsen
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## quansync
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu, 三咲智子 Kevin Deng
|
||||||
|
Repository: git+https://github.com/quansync-dev/quansync.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2025-PRESENT Anthony Fu <https://github.com/antfu> and Kevin Deng <https://github.com/sxzz>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## sisteransi
|
||||||
|
License: MIT
|
||||||
|
By: Terkel Gjervig
|
||||||
|
Repository: https://github.com/terkelg/sisteransi
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2018 Terkel Gjervig Nielsen
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## strip-literal
|
||||||
|
License: MIT
|
||||||
|
By: Anthony Fu
|
||||||
|
Repository: git+https://github.com/antfu/strip-literal.git
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2022 Anthony Fu <https://github.com/antfu>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## tinyhighlight
|
||||||
|
License: MIT
|
||||||
|
Repository: git+https://github.com/tinylibs/tinyhighlight.git
|
||||||
|
|
||||||
|
> # Tinyhighlight core license
|
||||||
|
>
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2023 Tinylibs
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
>
|
||||||
|
> # Additionaly Tinyhighlight modifies code with the following licenses:
|
||||||
|
>
|
||||||
|
> MIT
|
||||||
|
>
|
||||||
|
> ## @babel/highlight
|
||||||
|
>
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
> a copy of this software and associated documentation files (the
|
||||||
|
> "Software"), to deal in the Software without restriction, including
|
||||||
|
> without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
> distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
> permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
> the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be
|
||||||
|
> included in all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
>
|
||||||
|
> ## @babel/helper-validator-identifier
|
||||||
|
>
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
> a copy of this software and associated documentation files (the
|
||||||
|
> "Software"), to deal in the Software without restriction, including
|
||||||
|
> without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
> distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
> permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
> the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be
|
||||||
|
> included in all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## type-detect
|
||||||
|
License: MIT
|
||||||
|
By: Jake Luer, Keith Cirkel, David Losert, Aleksey Shvayka, Lucas Fernandes da Costa, Grant Snodgrass, Jeremy Tice, Edward Betts, dvlsg, Amila Welihinda, Jake Champion, Miroslav Bajtoš
|
||||||
|
Repository: git+ssh://git@github.com/chaijs/type-detect.git
|
||||||
|
|
||||||
|
> Copyright (c) 2013 Jake Luer <jake@alogicalparadox.com> (http://alogicalparadox.com)
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in
|
||||||
|
> all copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
> THE SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## ufo
|
||||||
|
License: MIT
|
||||||
|
Repository: unjs/ufo
|
||||||
|
|
||||||
|
> MIT License
|
||||||
|
>
|
||||||
|
> Copyright (c) Pooya Parsa <pooya@pi0.io>
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
> of this software and associated documentation files (the "Software"), to deal
|
||||||
|
> in the Software without restriction, including without limitation the rights
|
||||||
|
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
> copies of the Software, and to permit persons to whom the Software is
|
||||||
|
> furnished to do so, subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
> SOFTWARE.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
## ws
|
||||||
|
License: MIT
|
||||||
|
By: Einar Otto Stangvik
|
||||||
|
Repository: git+https://github.com/websockets/ws.git
|
||||||
|
|
||||||
|
> Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
|
||||||
|
> Copyright (c) 2013 Arnout Kazemier and contributors
|
||||||
|
> Copyright (c) 2016 Luigi Pinca and contributors
|
||||||
|
>
|
||||||
|
> Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
> this software and associated documentation files (the "Software"), to deal in
|
||||||
|
> the Software without restriction, including without limitation the rights to
|
||||||
|
> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
> the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
> subject to the following conditions:
|
||||||
|
>
|
||||||
|
> The above copyright notice and this permission notice shall be included in all
|
||||||
|
> copies or substantial portions of the Software.
|
||||||
|
>
|
||||||
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
13
licenses/yaml@2.9.0/LICENSE
Normal file
13
licenses/yaml@2.9.0/LICENSE
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
Copyright Eemeli Aro <eemeli@gmail.com>
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any purpose
|
||||||
|
with or without fee is hereby granted, provided that the above copyright notice
|
||||||
|
and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
||||||
41
package.json
41
package.json
|
|
@ -2,29 +2,30 @@
|
||||||
"name": "tensamin",
|
"name": "tensamin",
|
||||||
"version": "0.0.10",
|
"version": "0.0.10",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"packageManager": "pnpm@11.8.0",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*",
|
"packages/*",
|
||||||
"apps/*"
|
"apps/*"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "bun scripts/lint-packages.ts",
|
"lint": "node scripts/lint-packages.ts",
|
||||||
"check": "fallow && bun run lint",
|
"check": "fallow && pnpm run lint",
|
||||||
"copy-licenses": "bun scripts/copy-licenses.ts",
|
"copy-licenses": "node scripts/copy-licenses.ts",
|
||||||
"copy-releases": "bun scripts/copy-releases.ts",
|
"copy-releases": "node scripts/copy-releases.ts",
|
||||||
"pre-build": "bun run lint && bun run build:packages",
|
"pre-build": "pnpm run lint && pnpm run build:packages",
|
||||||
"build:apps": "bun run copy-licenses && bun run pre-build && bun run build:mobile && bun run build:desktop && bun --bun run copy-releases",
|
"build:apps": "pnpm run copy-licenses && pnpm run pre-build && pnpm run build:mobile && pnpm run build:desktop && pnpm run copy-releases",
|
||||||
"build:packages": "bun scripts/build-packages.ts",
|
"build:packages": "node scripts/build-packages.ts",
|
||||||
"update:packages": "bun scripts/update-packages.ts",
|
"update:packages": "node scripts/update-packages.ts",
|
||||||
"dev:web": "cd apps/web && bun dev",
|
"dev:web": "cd apps/web && pnpm dev",
|
||||||
"build:web": "cd apps/web && bun run build",
|
"build:web": "cd apps/web && pnpm run build",
|
||||||
"preview:web": "cd apps/web && bun run preview",
|
"preview:web": "cd apps/web && pnpm run preview",
|
||||||
"dev:mobile": "cd apps/tauri && bun dev:mobile",
|
"dev:mobile": "cd apps/tauri && pnpm dev:mobile",
|
||||||
"build:mobile": "cd apps/tauri && bun run build:mobile",
|
"build:mobile": "cd apps/tauri && pnpm run build:mobile",
|
||||||
"start-adb:mobile": "cd apps/tauri && bun run start-adb:mobile",
|
"start-adb:mobile": "cd apps/tauri && pnpm run start-adb:mobile",
|
||||||
"dev:desktop": "cd apps/electron && bun run dev",
|
"dev:desktop": "cd apps/electron && pnpm run dev",
|
||||||
"build:desktop": "cd apps/electron && bun run package",
|
"build:desktop": "cd apps/electron && pnpm run package",
|
||||||
"delete:mobile": "cd apps/tauri && nix develop ../..#tauri --command adb uninstall net.tensamin.client"
|
"delete:mobile": "cd apps/tauri && nix develop ../..#tauri --command adb uninstall net.tensamin.client"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -40,11 +41,13 @@
|
||||||
"jsonc-parser": "^3.3.1",
|
"jsonc-parser": "^3.3.1",
|
||||||
"prettier": "^3.8.3",
|
"prettier": "^3.8.3",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"typescript-eslint": "^8.59.1"
|
"typescript-eslint": "^8.59.1",
|
||||||
|
"vitest": "^4.0.8",
|
||||||
|
"yaml": "^2.8.2"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz",
|
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz",
|
||||||
"mtp": "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-c3fbeb2/mtp-0.1.0.tgz"
|
"mtp": "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tensamin/ui": "*",
|
"@tensamin/ui": "*",
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"./popout": "./src/components/popout.tsx"
|
"./popout": "./src/components/popout.tsx"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
"./behaviour-community": "./src/behaviour/community.ts"
|
"./behaviour-community": "./src/behaviour/community.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@
|
||||||
"./worker": "./src/worker.ts"
|
"./worker": "./src/worker.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"test": "bun test",
|
"test": "vitest run",
|
||||||
"build": "bun run test && tsc -p tsconfig.json --noEmit"
|
"build": "pnpm run test && tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@noble/curves": "^2.0.1",
|
"@noble/curves": "^2.0.1",
|
||||||
|
|
|
||||||
11
packages/crypto/src/bun-test.d.ts
vendored
11
packages/crypto/src/bun-test.d.ts
vendored
|
|
@ -1,11 +0,0 @@
|
||||||
declare module "bun:test" {
|
|
||||||
export const describe: (...args: unknown[]) => unknown;
|
|
||||||
export const test: (...args: unknown[]) => unknown;
|
|
||||||
export const it: (...args: unknown[]) => unknown;
|
|
||||||
export const expect: (value: unknown) => {
|
|
||||||
toBe: (expected: unknown) => void;
|
|
||||||
toEqual: (expected: unknown) => void;
|
|
||||||
toContain: (expected: unknown) => void;
|
|
||||||
toThrow: (expected?: unknown) => void;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { describe, expect, test } from "bun:test";
|
import { describe, expect, test } from "vitest";
|
||||||
import { createCryptoActions } from "./context";
|
import { createCryptoActions } from "./context";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { describe, expect, test } from "bun:test";
|
import { describe, expect, test } from "vitest";
|
||||||
import { x448 } from "@noble/curves/ed448.js";
|
import { x448 } from "@noble/curves/ed448.js";
|
||||||
import {
|
import {
|
||||||
decrypt,
|
decrypt,
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
"./input": "./src/input.tsx"
|
"./input": "./src/input.tsx"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
".": "./src/index.ts"
|
".": "./src/index.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src --ext .ts,.tsx",
|
"lint": "eslint src --ext .ts,.tsx",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -331,9 +331,16 @@ export function Provider(props: {
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
|
|
||||||
await MTPClient.init();
|
await MTPClient.init();
|
||||||
const rawOmikronData = await fetch(mtpUrl ?? "").then((res) =>
|
|
||||||
codec.decode(res.arrayBuffer()),
|
log(2, "mtp", "purple", "Fetching Omikron data.");
|
||||||
|
const omikronData = await fetch(
|
||||||
|
`${mtpUrl}api/get/omikron/${await load("user_id")}`,
|
||||||
|
).then(async (res) =>
|
||||||
|
codec.decode(new Uint8Array(await res.arrayBuffer())),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
console.log(omikronData);
|
||||||
|
|
||||||
const client = await MTPClient.create({
|
const client = await MTPClient.create({
|
||||||
url: mtpUrl ?? "",
|
url: mtpUrl ?? "",
|
||||||
descriptor: "client",
|
descriptor: "client",
|
||||||
|
|
@ -391,9 +398,7 @@ export function Provider(props: {
|
||||||
await client.auth();
|
await client.auth();
|
||||||
const finalResponse = await authPayload;
|
const finalResponse = await authPayload;
|
||||||
|
|
||||||
if (disposed || clientRef.current !== client) {
|
if (disposed || clientRef.current !== client) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setFreshContacts(finalResponse.data.contacts);
|
setFreshContacts(finalResponse.data.contacts);
|
||||||
setFreshCommunities(finalResponse.data.communities ?? []);
|
setFreshCommunities(finalResponse.data.communities ?? []);
|
||||||
|
|
@ -456,7 +461,7 @@ export function Provider(props: {
|
||||||
setIdentified(false);
|
setIdentified(false);
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
};
|
};
|
||||||
}, [mtpUrl, props.blockConnection]);
|
}, [mtpUrl, props.blockConnection, load]);
|
||||||
|
|
||||||
// Async queue
|
// Async queue
|
||||||
const loadingDescription = useMemo(() => {
|
const loadingDescription = useMemo(() => {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"./context": "./src/context.tsx"
|
"./context": "./src/context.tsx"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
"./features/conversation/schema": "./src/features/conversation/schema.ts"
|
"./features/conversation/schema": "./src/features/conversation/schema.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ export const storageDefaults: Storage = {
|
||||||
},
|
},
|
||||||
cached_contacts: [],
|
cached_contacts: [],
|
||||||
cached_communities: [],
|
cached_communities: [],
|
||||||
mtp_url: "https://tensamin.net:959",
|
mtp_url: "https://omega.tensamin.net",
|
||||||
call_mute_range_start: -55,
|
call_mute_range_start: -55,
|
||||||
call_mute_range_end: -45,
|
call_mute_range_end: -45,
|
||||||
theme_color: "",
|
theme_color: "",
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
"./indexed-db": "./src/indexed-db.ts"
|
"./indexed-db": "./src/indexed-db.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"./context": "./src/context.tsx"
|
"./context": "./src/context.tsx"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
"./values": "./src/values.ts"
|
"./values": "./src/values.ts"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "bunx prettier --write .",
|
"format": "pnpm exec prettier --write .",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"build": "tsc -p tsconfig.json --noEmit"
|
"build": "tsc -p tsconfig.json --noEmit"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
8967
pnpm-lock.yaml
generated
Normal file
8967
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load diff
10
pnpm-workspace.yaml
Normal file
10
pnpm-workspace.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
packages:
|
||||||
|
- "packages/*"
|
||||||
|
- "apps/*"
|
||||||
|
allowBuilds:
|
||||||
|
electron: true
|
||||||
|
electron-winstaller: true
|
||||||
|
esbuild: true
|
||||||
|
overrides:
|
||||||
|
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz"
|
||||||
|
mtp: "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz"
|
||||||
|
|
@ -34,7 +34,7 @@ for (const fullPath of packageDirs) {
|
||||||
const entry = fullPath.replace(packagesDir + "/", "");
|
const entry = fullPath.replace(packagesDir + "/", "");
|
||||||
console.log(`Building ${entry}...`);
|
console.log(`Building ${entry}...`);
|
||||||
try {
|
try {
|
||||||
execSync("bun run build", { cwd: fullPath, stdio: "inherit" });
|
execSync("pnpm run build", { cwd: fullPath, stdio: "inherit" });
|
||||||
console.log(`${entry} built successfully.`);
|
console.log(`${entry} built successfully.`);
|
||||||
} catch {
|
} catch {
|
||||||
console.error(`Failed to build ${entry}.`);
|
console.error(`Failed to build ${entry}.`);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { promises as fs } from "node:fs";
|
import { promises as fs } from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { parse } from "jsonc-parser";
|
import { parse } from "yaml";
|
||||||
|
|
||||||
type BunLock = {
|
type PnpmLock = {
|
||||||
lockfileVersion?: number;
|
lockfileVersion?: number;
|
||||||
workspaces?: Record<string, WorkspaceEntry>;
|
importers?: Record<string, WorkspaceEntry>;
|
||||||
packages?: Record<string, unknown>;
|
packages?: Record<string, unknown>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -36,7 +36,7 @@ type ResolvedPackage = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const ROOT = process.cwd();
|
const ROOT = process.cwd();
|
||||||
const LOCKFILE_PATH = path.join(ROOT, "bun.lock");
|
const LOCKFILE_PATH = path.join(ROOT, "pnpm-lock.yaml");
|
||||||
const OUTPUT_DIR = path.join(ROOT, "licenses");
|
const OUTPUT_DIR = path.join(ROOT, "licenses");
|
||||||
|
|
||||||
const COMPLIANCE_FILE_PATTERNS = [
|
const COMPLIANCE_FILE_PATTERNS = [
|
||||||
|
|
@ -48,15 +48,15 @@ const COMPLIANCE_FILE_PATTERNS = [
|
||||||
async function main(): Promise<void> {
|
async function main(): Promise<void> {
|
||||||
await ensureExists(
|
await ensureExists(
|
||||||
LOCKFILE_PATH,
|
LOCKFILE_PATH,
|
||||||
"Could not find bun.lock in the project root.",
|
"Could not find pnpm-lock.yaml in the project root.",
|
||||||
);
|
);
|
||||||
|
|
||||||
const lock = await readBunLock();
|
const lock = await readPnpmLock();
|
||||||
const nodeModulesRoots = await getNodeModulesRoots(lock);
|
const nodeModulesRoots = await getNodeModulesRoots(lock);
|
||||||
|
|
||||||
if (nodeModulesRoots.length === 0) {
|
if (nodeModulesRoots.length === 0) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Could not find any node_modules directories in the repo root or workspace folders. Run `bun install` first.",
|
"Could not find any node_modules directories in the repo root or workspace folders. Run `pnpm install` first.",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,25 +95,25 @@ async function main(): Promise<void> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function readBunLock(): Promise<BunLock> {
|
async function readPnpmLock(): Promise<PnpmLock> {
|
||||||
const raw = await fs.readFile(LOCKFILE_PATH, "utf8");
|
const raw = await fs.readFile(LOCKFILE_PATH, "utf8");
|
||||||
const parsed = parse(raw);
|
const parsed = parse(raw);
|
||||||
|
|
||||||
if (!parsed || typeof parsed !== "object") {
|
if (!parsed || typeof parsed !== "object") {
|
||||||
throw new Error("Failed to parse bun.lock");
|
throw new Error("Failed to parse pnpm-lock.yaml");
|
||||||
}
|
}
|
||||||
|
|
||||||
return parsed as BunLock;
|
return parsed as PnpmLock;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getNodeModulesRoots(lock: BunLock): Promise<string[]> {
|
async function getNodeModulesRoots(lock: PnpmLock): Promise<string[]> {
|
||||||
const candidates = new Set<string>();
|
const candidates = new Set<string>();
|
||||||
|
|
||||||
candidates.add(path.join(ROOT, "node_modules"));
|
candidates.add(path.join(ROOT, "node_modules"));
|
||||||
|
|
||||||
for (const workspacePath of Object.keys(lock.workspaces ?? {})) {
|
for (const workspacePath of Object.keys(lock.importers ?? {})) {
|
||||||
const workspaceDir =
|
const workspaceDir =
|
||||||
workspacePath === "" ? ROOT : path.join(ROOT, workspacePath);
|
workspacePath === "." ? ROOT : path.join(ROOT, workspacePath);
|
||||||
candidates.add(path.join(workspaceDir, "node_modules"));
|
candidates.add(path.join(workspaceDir, "node_modules"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,25 +130,15 @@ async function getNodeModulesRoots(lock: BunLock): Promise<string[]> {
|
||||||
return existing;
|
return existing;
|
||||||
}
|
}
|
||||||
|
|
||||||
function extractResolvedThirdPartyPackages(lock: BunLock): ResolvedPackage[] {
|
function extractResolvedThirdPartyPackages(lock: PnpmLock): ResolvedPackage[] {
|
||||||
const results = new Map<string, ResolvedPackage>();
|
const results = new Map<string, ResolvedPackage>();
|
||||||
const packages = lock.packages ?? {};
|
const packages = lock.packages ?? {};
|
||||||
|
|
||||||
for (const rawValue of Object.values(packages)) {
|
for (const rawKey of Object.keys(packages)) {
|
||||||
if (!Array.isArray(rawValue) || rawValue.length === 0) continue;
|
const resolved = parsePnpmPackageKey(rawKey);
|
||||||
|
if (!resolved) continue;
|
||||||
|
|
||||||
const first = rawValue[0];
|
const { name, version } = resolved;
|
||||||
if (typeof first !== "string") continue;
|
|
||||||
|
|
||||||
// Examples:
|
|
||||||
// react@19.2.0
|
|
||||||
// @types/react@19.2.2
|
|
||||||
// @tensamin/ui@workspace:packages/ui
|
|
||||||
const atIndex = first.lastIndexOf("@");
|
|
||||||
if (atIndex <= 0) continue;
|
|
||||||
|
|
||||||
const name = first.slice(0, atIndex);
|
|
||||||
const version = first.slice(atIndex + 1);
|
|
||||||
|
|
||||||
if (!name || !version) continue;
|
if (!name || !version) continue;
|
||||||
if (version.startsWith("workspace:")) continue;
|
if (version.startsWith("workspace:")) continue;
|
||||||
|
|
@ -162,6 +152,21 @@ function extractResolvedThirdPartyPackages(lock: BunLock): ResolvedPackage[] {
|
||||||
return [...results.values()];
|
return [...results.values()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parsePnpmPackageKey(rawKey: string): ResolvedPackage | null {
|
||||||
|
const withoutPeerSuffix = rawKey.replace(/\(.+\)$/, "");
|
||||||
|
const normalized = withoutPeerSuffix.startsWith("/")
|
||||||
|
? withoutPeerSuffix.slice(1)
|
||||||
|
: withoutPeerSuffix;
|
||||||
|
const atIndex = normalized.lastIndexOf("@");
|
||||||
|
|
||||||
|
if (atIndex <= 0) return null;
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: normalized.slice(0, atIndex),
|
||||||
|
version: normalized.slice(atIndex + 1),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
async function processInstalledPackage(
|
async function processInstalledPackage(
|
||||||
packageName: string,
|
packageName: string,
|
||||||
versionFromLock: string,
|
versionFromLock: string,
|
||||||
|
|
@ -354,7 +359,7 @@ async function writeThirdPartyNotices(records: PackageRecord[]): Promise<void> {
|
||||||
lines.push("# Third-Party Notices");
|
lines.push("# Third-Party Notices");
|
||||||
lines.push("");
|
lines.push("");
|
||||||
lines.push(
|
lines.push(
|
||||||
"Generated from bun.lock and installed packages in workspace node_modules folders.",
|
"Generated from pnpm-lock.yaml and installed packages in workspace node_modules folders.",
|
||||||
);
|
);
|
||||||
lines.push("");
|
lines.push("");
|
||||||
|
|
||||||
|
|
@ -442,7 +447,7 @@ async function writeCycloneDxSbom(records: PackageRecord[]): Promise<void> {
|
||||||
tools: [
|
tools: [
|
||||||
{
|
{
|
||||||
vendor: "OpenAI",
|
vendor: "OpenAI",
|
||||||
name: "custom bun license generator",
|
name: "custom pnpm license generator",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
component: {
|
component: {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import {
|
||||||
copyFileSync,
|
copyFileSync,
|
||||||
createReadStream,
|
createReadStream,
|
||||||
existsSync,
|
existsSync,
|
||||||
|
writeFileSync,
|
||||||
mkdirSync,
|
mkdirSync,
|
||||||
readdirSync,
|
readdirSync,
|
||||||
renameSync,
|
renameSync,
|
||||||
|
|
@ -113,13 +114,15 @@ const artifacts = await Promise.all(
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await Bun.write(
|
writeFileSync(
|
||||||
join(releasesDir, "electron-release-metadata.json"),
|
join(releasesDir, "electron-release-metadata.json"),
|
||||||
`${JSON.stringify({ version: releaseVersion, tag: releaseTag, publishedAt: new Date().toISOString(), artifacts: artifacts.filter((artifact) => artifact.platform !== "android") }, null, 2)}\n`,
|
`${JSON.stringify({ version: releaseVersion, tag: releaseTag, publishedAt: new Date().toISOString(), artifacts: artifacts.filter((artifact) => artifact.platform !== "android") }, null, 2)}\n`,
|
||||||
|
"utf8",
|
||||||
);
|
);
|
||||||
await Bun.write(
|
writeFileSync(
|
||||||
join(releasesDir, "SHA256SUMS"),
|
join(releasesDir, "SHA256SUMS"),
|
||||||
`${artifacts.map((artifact) => `${artifact.sha256} ${artifact.name}`).join("\n")}\n`,
|
`${artifacts.map((artifact) => `${artifact.sha256} ${artifact.name}`).join("\n")}\n`,
|
||||||
|
"utf8",
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log("Releases copied successfully.");
|
console.log("Releases copied successfully.");
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ for (const targetDir of targetDirs) {
|
||||||
const entry = relative(rootDir, fullPath);
|
const entry = relative(rootDir, fullPath);
|
||||||
console.log(`Linting ${entry}...`);
|
console.log(`Linting ${entry}...`);
|
||||||
try {
|
try {
|
||||||
execSync("bun run lint", { cwd: fullPath, stdio: "inherit" });
|
execSync("pnpm run lint", { cwd: fullPath, stdio: "inherit" });
|
||||||
console.log(`${entry} linted successfully.`);
|
console.log(`${entry} linted successfully.`);
|
||||||
} catch {
|
} catch {
|
||||||
console.error(`Failed to lint ${entry}.`);
|
console.error(`Failed to lint ${entry}.`);
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ for (const fullPath of packageDirs) {
|
||||||
const entry = fullPath.replace(packagesDir + "/", "");
|
const entry = fullPath.replace(packagesDir + "/", "");
|
||||||
console.log(`Updating ${entry}...`);
|
console.log(`Updating ${entry}...`);
|
||||||
try {
|
try {
|
||||||
execSync("bun update --interactive", { cwd: fullPath, stdio: "inherit" });
|
execSync("pnpm update --interactive", { cwd: fullPath, stdio: "inherit" });
|
||||||
console.log(`${entry} updated successfully.`);
|
console.log(`${entry} updated successfully.`);
|
||||||
} catch {
|
} catch {
|
||||||
console.error(`Failed to update ${entry}.`);
|
console.error(`Failed to update ${entry}.`);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue