chore/svelte-kit-to-svelte-migration #7

Merged
ilia merged 4 commits from chore/svelte-kit-to-svelte-migration into main 2025-12-30 16:54:37 +00:00
21 changed files with 170 additions and 361 deletions

View File

@@ -1,59 +1,32 @@
name: Build
on:
push:
branches:
- main
- develop
branches: [main, develop]
pull_request:
branches:
- main
- develop
branches: [main, develop]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build Project
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions/checkout@v4
- name: Setup Node.js
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Install
run: yarn install --frozen-lockfile --prefer-offline
- name: Run SvelteKit sync
run: yarn svelte-kit sync
- name: Build project
- name: Build Svelte App
run: yarn build
env:
NODE_ENV: production
- name: Upload build artifacts
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: |
.svelte-kit/output
.svelte-kit/build
path: dist/
retention-days: 7
- name: Verify build (Preview)
run: |
yarn preview &
PREVIEW_PID=$!
sleep 5
curl -f http://localhost:4173 || exit 1
kill $PREVIEW_PID

View File

@@ -1,127 +1,42 @@
name: Deploy
name: Deploy Pipeline
on:
push:
branches:
- main
branches: [main]
workflow_dispatch:
inputs:
environment:
description: 'Deployment environment'
description: 'Target'
required: true
default: 'production'
type: choice
options:
- staging
- production
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
options: [staging, production]
jobs:
deploy:
name: Deploy to ${{ github.event.inputs.environment || 'production' }}
pipeline:
runs-on: ubuntu-latest
environment:
name: ${{ github.event.inputs.environment || 'production' }}
# Only deploy after successful linting, testing, and building
needs: [lint, test, build]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions/checkout@v4
- name: Setup Node.js
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Install
run: yarn install --frozen-lockfile --prefer-offline
- name: Build project
- name: Validation
run: |
yarn oxlint .
yarn svelte-check
- name: Build for Production
run: yarn build
env:
NODE_ENV: production
# Example deployment step - replace with your actual deployment strategy
# Options:
# - Docker container registry
# - Cloud provider (AWS, GCP, Azure)
# - Traditional hosting (Vercel, Netlify, Cloudflare Pages)
# - SSH deployment to VPS
# Example: Docker image build and push
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Log in to Container Registry
# uses: docker/login-action@v3
# with:
# registry: ${{ secrets.REGISTRY_URL }}
# username: ${{ secrets.REGISTRY_USERNAME }}
# password: ${{ secrets.REGISTRY_PASSWORD }}
# - name: Build and push Docker image
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: ${{ secrets.REGISTRY_URL }}/glyphdiff:latest
# cache-from: type=gha
# cache-to: type=gha,mode=max
# Example: SSH deployment to server
# - name: Deploy to server via SSH
# uses: appleboy/ssh-action@v1.0.3
# with:
# host: ${{ secrets.DEPLOY_HOST }}
# username: ${{ secrets.DEPLOY_USER }}
# key: ${{ secrets.DEPLOY_SSH_KEY }}
# script: |
# cd /path/to/app
# git pull origin main
# yarn install --frozen-lockfile
# yarn build
# pm2 restart glyphdiff
# Example: Deploy to Vercel
# - name: Deploy to Vercel
# uses: amondnet/vercel-action@v25
# with:
# vercel-token: ${{ secrets.VERCEL_TOKEN }}
# vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
# vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
# vercel-args: '--prod'
- name: Deployment placeholder
- name: Deploy Step
run: |
echo "Deployment step not configured yet."
echo "Uncomment and modify one of the deployment examples above."
echo "Configure the necessary secrets in your Gitea instance:"
echo " - REGISTRY_URL, REGISTRY_USERNAME, REGISTRY_PASSWORD"
echo " - DEPLOY_HOST, DEPLOY_USER, DEPLOY_SSH_KEY"
echo " - VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID"
- name: Post-deployment health check
run: |
echo "Add health check here after deployment"
# curl -f https://your-app.com || exit 1
lint:
name: Lint Check
uses: ./.gitea/workflows/lint.yml
secrets: inherit
test:
name: Test Suite
uses: ./.gitea/workflows/test.yml
secrets: inherit
build:
name: Build Verification
uses: ./.gitea/workflows/build.yml
secrets: inherit
echo "Deploying dist/ to ${{ github.event.inputs.environment || 'production' }}..."
# EXAMPLE: rsync -avz dist/ user@your-vps:/var/www/html/

View File

@@ -31,11 +31,18 @@ jobs:
node-version: '20'
cache: 'yarn'
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Persistent Yarn Cache
uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Run oxlint
run: yarn oxlint .
- name: Check code formatting
run: yarn dprint check
run: yarn install --frozen-lockfile --prefer-offline

View File

@@ -1,45 +1,31 @@
name: Test
on:
push:
branches:
- main
- develop
- feature/*
branches: [main, develop, "feature/*"]
pull_request:
branches:
- main
- develop
branches: [main, develop]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
type-check:
name: Type Check
test:
name: Svelte Checks
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Install
run: yarn install --frozen-lockfile --prefer-offline
- name: Run TypeScript type check
run: yarn tsc --noEmit
- name: Run Svelte check
- name: Type Check
run: yarn svelte-check --threshold warning
- name: Lint
run: yarn oxlint .
# e2e-tests:
# name: E2E Tests (Playwright)
# runs-on: ubuntu-latest

1
.gitignore vendored
View File

@@ -8,6 +8,7 @@ node_modules
.wrangler
/.svelte-kit
/build
/dist
# OS
.DS_Store

Binary file not shown.

12
index.html Normal file
View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>glyphdiff</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@@ -4,12 +4,12 @@
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite dev",
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"prepare": "svelte-kit sync || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"prepare": "svelte-check --tsconfig ./tsconfig.json || echo ''",
"check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "oxlint",
"format": "dprint fmt",
"format:check": "dprint check",
@@ -19,8 +19,6 @@
"devDependencies": {
"@lucide/svelte": "^0.562.0",
"@playwright/test": "^1.57.0",
"@sveltejs/adapter-auto": "^7.0.0",
"@sveltejs/kit": "^2.49.1",
"@sveltejs/vite-plugin-svelte": "^6.2.1",
"@tailwindcss/vite": "^4.1.18",
"clsx": "^2.1.1",

View File

@@ -1,6 +1,6 @@
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: { command: 'npm run build && npm run preview', port: 4173 },
webServer: { command: 'yarn build && yarn preview', port: 4173 },
testDir: 'e2e',
});

20
src/App.svelte Normal file
View File

@@ -0,0 +1,20 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
import './app.css';
import Page from './routes/Page.svelte';
</script>
<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>
<div id="app-root">
<Page />
</div>
<style>
#app-root {
width: 100%;
height: 100vh;
}
</style>

20
src/ambient.d.ts vendored Normal file
View File

@@ -0,0 +1,20 @@
declare module '*.svelte' {
import type { ComponentType } from 'svelte';
const component: ComponentType;
export default component;
}
declare module '*.svg' {
const content: string;
export default content;
}
declare module '*.png' {
const content: string;
export default content;
}
declare module '*.jpg' {
const content: string;
export default content;
}

13
src/app.d.ts vendored
View File

@@ -1,13 +0,0 @@
// See https://svelte.dev/docs/kit/types#app.d.ts
// for information about these interfaces
declare global {
namespace App {
// interface Error {}
// interface Locals {}
// interface PageData {}
// interface PageState {}
// interface Platform {}
}
}
export {};

View File

@@ -1,11 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

6
src/main.ts Normal file
View File

@@ -0,0 +1,6 @@
import { mount } from 'svelte';
import App from './App.svelte';
mount(App, {
target: document.getElementById('app')!,
});

View File

@@ -1,11 +0,0 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
import '../app.css';
let { children } = $props();
</script>
<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>
{@render children()}

View File

@@ -1,9 +0,0 @@
<script>
import Button from '$lib/components/ui/button/button.svelte';
</script>
<h1>Welcome to SvelteKit</h1>
<p>
Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation
</p>
<Button>Click me!</Button>

9
src/routes/Page.svelte Normal file
View File

@@ -0,0 +1,9 @@
<script>
import Button from '$lib/components/ui/button/button.svelte';
</script>
<h1>Welcome to Svelte + Vite</h1>
<p>
Visit <a href="https://svelte.dev/docs">svelte.dev/docs</a> to read the documentation
</p>
<Button>Click me!</Button>

View File

@@ -1,7 +1,5 @@
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://svelte.dev/docs/kit/integrations
// for more information about preprocessors
@@ -10,13 +8,6 @@ const config = {
compilerOptions: {
runes: true,
},
kit: {
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter(),
},
};
export default config;

View File

@@ -1,7 +1,12 @@
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"rewriteRelativeImportExtensions": true,
"module": "ESNext",
"moduleResolution": "bundler",
"target": "ESNext",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
/* Strictness & Safety */
"strict": true,
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
@@ -9,13 +14,24 @@
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler"
"isolatedModules": true,
"verbatimModuleSyntax": true,
/* Path Aliases */
"baseUrl": ".",
"paths": {
"$lib/*": ["./src/lib/*"]
}
},
"exclude": ["./src/lib/components/ui"]
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
//
// To make changes to top-level options such as include and exclude, we recommend extending
// the generated config; see https://svelte.dev/docs/kit/configuration#typescript
"include": [
"src/**/*.ts",
"src/**/*.js",
"src/**/*.svelte",
"src/**/*.d.ts"
],
"exclude": [
"node_modules",
"dist",
"./src/lib/components/ui"
]
}

View File

@@ -1,7 +1,15 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
import tailwindcss from '@tailwindcss/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [sveltekit(), tailwindcss()],
plugins: [svelte(), tailwindcss()],
resolve: {
alias: {
$lib: '/src/lib',
},
},
build: {
outDir: 'dist',
},
});

125
yarn.lock
View File

@@ -357,13 +357,13 @@ __metadata:
linkType: hard
"@napi-rs/wasm-runtime@npm:^1.1.0":
version: 1.1.0
resolution: "@napi-rs/wasm-runtime@npm:1.1.0"
version: 1.1.1
resolution: "@napi-rs/wasm-runtime@npm:1.1.1"
dependencies:
"@emnapi/core": "npm:^1.7.1"
"@emnapi/runtime": "npm:^1.7.1"
"@tybys/wasm-util": "npm:^0.10.1"
checksum: 10c0/ee351052123bfc635c4cef03ac273a686522394ccd513b1e5b7b3823cecd6abb4a31f23a3a962933192b87eb7b7c3eb3def7748bd410edc66f932d90cf44e9ab
checksum: 10c0/04d57b67e80736e41fe44674a011878db0a8ad893f4d44abb9d3608debb7c174224cba2796ed5b0c1d367368159f3ca6be45f1c59222f70e32ddc880f803d447
languageName: node
linkType: hard
@@ -456,13 +456,6 @@ __metadata:
languageName: node
linkType: hard
"@polka/url@npm:^1.0.0-next.24":
version: 1.0.0-next.29
resolution: "@polka/url@npm:1.0.0-next.29"
checksum: 10c0/0d58e081844095cb029d3c19a659bfefd09d5d51a2f791bc61eba7ea826f13d6ee204a8a448c2f5a855c17df07b37517373ff916dd05801063c0568ae9937684
languageName: node
linkType: hard
"@rollup/rollup-android-arm-eabi@npm:4.54.0":
version: 4.54.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.54.0"
@@ -617,13 +610,6 @@ __metadata:
languageName: node
linkType: hard
"@standard-schema/spec@npm:^1.0.0":
version: 1.1.0
resolution: "@standard-schema/spec@npm:1.1.0"
checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526
languageName: node
linkType: hard
"@sveltejs/acorn-typescript@npm:^1.0.5":
version: 1.0.8
resolution: "@sveltejs/acorn-typescript@npm:1.0.8"
@@ -633,46 +619,6 @@ __metadata:
languageName: node
linkType: hard
"@sveltejs/adapter-auto@npm:^7.0.0":
version: 7.0.0
resolution: "@sveltejs/adapter-auto@npm:7.0.0"
peerDependencies:
"@sveltejs/kit": ^2.0.0
checksum: 10c0/928393d4e366a0094bec5e09c70e44c3c7b5f17687f1735f71eb305e1ae640c64cd9f7d8f80d8b31dcaa235ae2b07e0f021a9204b5cec895d5bd8035064c9195
languageName: node
linkType: hard
"@sveltejs/kit@npm:^2.49.1":
version: 2.49.2
resolution: "@sveltejs/kit@npm:2.49.2"
dependencies:
"@standard-schema/spec": "npm:^1.0.0"
"@sveltejs/acorn-typescript": "npm:^1.0.5"
"@types/cookie": "npm:^0.6.0"
acorn: "npm:^8.14.1"
cookie: "npm:^0.6.0"
devalue: "npm:^5.3.2"
esm-env: "npm:^1.2.2"
kleur: "npm:^4.1.5"
magic-string: "npm:^0.30.5"
mrmime: "npm:^2.0.0"
sade: "npm:^1.8.1"
set-cookie-parser: "npm:^2.6.0"
sirv: "npm:^3.0.0"
peerDependencies:
"@opentelemetry/api": ^1.0.0
"@sveltejs/vite-plugin-svelte": ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0
peerDependenciesMeta:
"@opentelemetry/api":
optional: true
bin:
svelte-kit: svelte-kit.js
checksum: 10c0/05bf6d0d9fb87d894d1a5667f0473d8e83a4584f5c80850ed9eef1d1c8982236ea0d703bbd83befdff30c729d102fc67f2839014d900edb15f6b449ee059b9aa
languageName: node
linkType: hard
"@sveltejs/vite-plugin-svelte-inspector@npm:^5.0.0":
version: 5.0.1
resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:5.0.1"
@@ -875,13 +821,6 @@ __metadata:
languageName: node
linkType: hard
"@types/cookie@npm:^0.6.0":
version: 0.6.0
resolution: "@types/cookie@npm:0.6.0"
checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149
languageName: node
linkType: hard
"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6":
version: 1.0.8
resolution: "@types/estree@npm:1.0.8"
@@ -896,7 +835,7 @@ __metadata:
languageName: node
linkType: hard
"acorn@npm:^8.12.1, acorn@npm:^8.14.1":
"acorn@npm:^8.12.1":
version: 8.15.0
resolution: "acorn@npm:8.15.0"
bin:
@@ -968,13 +907,6 @@ __metadata:
languageName: node
linkType: hard
"cookie@npm:^0.6.0":
version: 0.6.0
resolution: "cookie@npm:0.6.0"
checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.1":
version: 4.4.3
resolution: "debug@npm:4.4.3"
@@ -1001,7 +933,7 @@ __metadata:
languageName: node
linkType: hard
"devalue@npm:^5.3.2, devalue@npm:^5.5.0":
"devalue@npm:^5.5.0":
version: 5.6.1
resolution: "devalue@npm:5.6.1"
checksum: 10c0/4dca0e800336003fd1e268c142adfe78f3539cda7384b4f69762a93e0dfc33e223b580251da0a6da4be44962958fcba5eadf122f9720e09f437b28904af9c43e
@@ -1168,7 +1100,7 @@ __metadata:
languageName: node
linkType: hard
"esm-env@npm:^1.2.1, esm-env@npm:^1.2.2":
"esm-env@npm:^1.2.1":
version: 1.2.2
resolution: "esm-env@npm:1.2.2"
checksum: 10c0/3d25c973f2fd69c25ffff29c964399cea573fe10795ecc1d26f6f957ce0483d3254e1cceddb34bf3296a0d7b0f1d53a28992f064ba509dfe6366751e752c4166
@@ -1267,8 +1199,6 @@ __metadata:
dependencies:
"@lucide/svelte": "npm:^0.562.0"
"@playwright/test": "npm:^1.57.0"
"@sveltejs/adapter-auto": "npm:^7.0.0"
"@sveltejs/kit": "npm:^2.49.1"
"@sveltejs/vite-plugin-svelte": "npm:^6.2.1"
"@tailwindcss/vite": "npm:^4.1.18"
clsx: "npm:^2.1.1"
@@ -1368,13 +1298,6 @@ __metadata:
languageName: node
linkType: hard
"kleur@npm:^4.1.5":
version: 4.1.5
resolution: "kleur@npm:4.1.5"
checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a
languageName: node
linkType: hard
"lefthook-darwin-arm64@npm:2.0.13":
version: 2.0.13
resolution: "lefthook-darwin-arm64@npm:2.0.13"
@@ -1620,7 +1543,7 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:^0.30.11, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21, magic-string@npm:^0.30.5":
"magic-string@npm:^0.30.11, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21":
version: 0.30.21
resolution: "magic-string@npm:0.30.21"
dependencies:
@@ -1740,13 +1663,6 @@ __metadata:
languageName: node
linkType: hard
"mrmime@npm:^2.0.0":
version: 2.0.1
resolution: "mrmime@npm:2.0.1"
checksum: 10c0/af05afd95af202fdd620422f976ad67dc18e6ee29beb03dd1ce950ea6ef664de378e44197246df4c7cdd73d47f2e7143a6e26e473084b9e4aa2095c0ad1e1761
languageName: node
linkType: hard
"ms@npm:^2.1.3":
version: 2.1.3
resolution: "ms@npm:2.1.3"
@@ -2020,7 +1936,7 @@ __metadata:
languageName: node
linkType: hard
"sade@npm:^1.7.4, sade@npm:^1.8.1":
"sade@npm:^1.7.4":
version: 1.8.1
resolution: "sade@npm:1.8.1"
dependencies:
@@ -2045,24 +1961,6 @@ __metadata:
languageName: node
linkType: hard
"set-cookie-parser@npm:^2.6.0":
version: 2.7.2
resolution: "set-cookie-parser@npm:2.7.2"
checksum: 10c0/4381a9eb7ee951dfe393fe7aacf76b9a3b4e93a684d2162ab35594fa4053cc82a4d7d7582bf397718012c9adcf839b8cd8f57c6c42901ea9effe33c752da4a45
languageName: node
linkType: hard
"sirv@npm:^3.0.0":
version: 3.0.2
resolution: "sirv@npm:3.0.2"
dependencies:
"@polka/url": "npm:^1.0.0-next.24"
mrmime: "npm:^2.0.0"
totalist: "npm:^3.0.0"
checksum: 10c0/5930e4397afdb14fbae13751c3be983af4bda5c9aadec832607dc2af15a7162f7d518c71b30e83ae3644b9a24cea041543cc969e5fe2b80af6ce8ea3174b2d04
languageName: node
linkType: hard
"smart-buffer@npm:^4.2.0":
version: 4.2.0
resolution: "smart-buffer@npm:4.2.0"
@@ -2205,13 +2103,6 @@ __metadata:
languageName: node
linkType: hard
"totalist@npm:^3.0.0":
version: 3.0.1
resolution: "totalist@npm:3.0.1"
checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863
languageName: node
linkType: hard
"tslib@npm:^2.4.0":
version: 2.8.1
resolution: "tslib@npm:2.8.1"