diff --git a/packages/typeorm-tailordb-codegen/CHANGELOG.md b/packages/typeorm-tailordb-codegen/CHANGELOG.md deleted file mode 100644 index 8b5c13f..0000000 --- a/packages/typeorm-tailordb-codegen/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# @tailor-platform/function-typeorm-tailordb-codegen - -## 0.1.1 - -### Patch Changes - -- [#106](https://github.com/tailor-platform/function/pull/106) [`30c9875`](https://github.com/tailor-platform/function/commit/30c9875b25ab5f5eea8686fc9dcacbbbb0e1a00e) Thanks [@remiposo](https://github.com/remiposo)! - add CHANGELOG.md diff --git a/packages/typeorm-tailordb-codegen/LICENSE b/packages/typeorm-tailordb-codegen/LICENSE deleted file mode 100644 index 27266cc..0000000 --- a/packages/typeorm-tailordb-codegen/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2024 Tailor Platform 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. - diff --git a/packages/typeorm-tailordb-codegen/README.md b/packages/typeorm-tailordb-codegen/README.md deleted file mode 100644 index 90e3c80..0000000 --- a/packages/typeorm-tailordb-codegen/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# @tailor-platform/function-typeorm-tailordb-codegen - -Generate TypeORM entity code for TailorDB - -## Usage - -```sh -# npm -npm install -D @tailor-platform/function-typeorm-tailordb-codegen -npx typeorm-tailordb-codegen -h - -# pnpm -pnpm add -D @tailor-platform/function-typeorm-tailordb-codegen -pnpm exec typeorm-tailordb-codegen -h -``` - -``` -Usage: typeorm-tailordb-codegen [options] - -Generate TypeORM entity code for TailorDB - -Options: - -a, --app App name - -n, --namespace TailorDB namespace - -m, --machineuser Machine user name - -o, --output Output file name - -h, --help display help for command -``` - -## Requirements - -This command uses `tailorctl` internally to run the generation script on the Tailor Platform. Make sure `tailorctl` is installed and workspace is selected. - -## Workflow (no schema sync/migrations) - -- TailorDB is the source of truth for schema. TypeORM schema sync (`synchronize`) and migrations are not supported in this integration. -- Use this codegen to regenerate entity classes from TailorDB whenever the schema changes. -- Commit the generated files to your repository and import them where needed. - -Example: - -```sh -npx typeorm-tailordb-codegen -a -n -m -o src/entities.ts -``` - -Then in your code: - -```ts -import * as Entities from './entities'; -// or import specific classes: import { App_Users } from './entities'; -``` - -## Notes - -- Primary keys cannot be determined from the available metadata used here. The generator will mark a column named `id` as the primary key by convention, and will use `@PrimaryGeneratedColumn` if the column is auto-incrementing. Please adjust as needed for your schema. -- Column types are inferred from TailorDB’s Postgres-like data types and passed through to TypeORM. - -## Using @tailor-platform/function-types - -If you write code that runs in the Tailor Platform Function environment (for example, custom scripts that use the global `tailordb` client), install the types package so TypeScript recognizes the globals. - -1) Install as a dev dependency - -```sh -npm install -D @tailor-platform/function-types -``` - -2) Tell TypeScript to include the ambient types in your `tsconfig.json` - -```json -{ - "compilerOptions": { - "types": ["@tailor-platform/function-types"] - } -} -``` - -You can then use the global `tailordb.Client` with type safety in your scripts. diff --git a/packages/typeorm-tailordb-codegen/build.js b/packages/typeorm-tailordb-codegen/build.js deleted file mode 100644 index 41881ea..0000000 --- a/packages/typeorm-tailordb-codegen/build.js +++ /dev/null @@ -1,74 +0,0 @@ -import { createRequire } from "node:module"; -import path from "node:path"; -import { build } from "esbuild"; -import { nodeless } from "unenv"; - -const require = createRequire(import.meta.url); - -const unenvAlias = { - name: "unenv-alias", - setup(build) { - const alias = nodeless.alias; - const re = new RegExp(`^(${Object.keys(alias).join("|")})$`); - build.onResolve({ filter: re }, (args) => { - const resolved = require.resolve(alias[args.path]); - const p = args.kind === "require-call" ? resolved : resolved.replace(/\.cjs$/, ".mjs"); - return { path: p }; - }); - }, -}; - -const unenvInject = { - name: "unenv-inject", - setup(build) { - const inject = nodeless.inject; - const re = /unenv-inject-([^.]+)\.js$/; - const prefix = path.join(import.meta.dirname, "unenv-inject-"); - build.initialOptions.inject = [ - ...(build.initialOptions.inject ?? []), - ...Object.keys(inject).map((globalName) => `${prefix}${globalName}.js`), - ]; - build.onResolve({ filter: re }, ({ path }) => ({ path })); - build.onLoad({ filter: re }, ({ path }) => { - const globalName = path.match(re)[1]; - return { contents: getInjectContent(globalName, inject[globalName]) }; - }); - }, -}; - -const getInjectContent = (globalName, globalInject) => { - if (typeof globalInject === "string") { - return `import globalVar from "${globalInject}"; globalThis.${globalName} = globalVar;`; - } - const [moduleSpecifier, exportName] = globalInject; - return `import { ${exportName} } from "${moduleSpecifier}"; globalThis.${globalName} = ${exportName};`; -}; - -const mockPackages = { - name: "mock-packages", - setup(build) { - build.onResolve({ filter: /^(git-diff|cosmiconfig)$/ }, (args) => { - return { path: args.path, namespace: "mock-packages" }; - }); - build.onLoad({ filter: /.*/, namespace: "mock-packages" }, () => { - return { contents: "export default null" }; - }); - }, -}; - -build({ - entryPoints: ["src/function.ts"], - outfile: "dist/function.js", - format: "esm", - bundle: true, - minify: true, - define: { global: "globalThis" }, - plugins: [unenvAlias, unenvInject, mockPackages], - external: [], -}); - -build({ - entryPoints: ["src/cli.ts"], - outfile: "dist/cli.js", - format: "esm", -}); diff --git a/packages/typeorm-tailordb-codegen/package.json b/packages/typeorm-tailordb-codegen/package.json deleted file mode 100644 index 9ae0f1e..0000000 --- a/packages/typeorm-tailordb-codegen/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@tailor-platform/function-typeorm-tailordb-codegen", - "version": "0.1.1", - "description": "Generate TypeORM code for TailorDB", - "repository": { - "type": "git", - "url": "https://github.com/tailor-platform/function", - "directory": "packages/typeorm-tailordb-codegen" - }, - "type": "module", - "bin": { - "typeorm-tailordb-codegen": "./dist/cli.js" - }, - "files": [ - "dist", - "CHANGELOG.md" - ], - "scripts": { - "build": "node ./build.js", - "check": "biome check .", - "check-write": "biome check --write .", - "type-check": "tsc", - "prepublishOnly": "pnpm run build" - }, - "dependencies": { - "commander": "^14.0.0", - "zx": "^8.5.4" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "@tailor-platform/function-types": "workspace:*", - "@types/fs-extra": "11.0.4", - "@types/node": "22.20.1", - "esbuild": "0.28.1", - "fs-extra": "11.4.0", - "typescript": "5.9.3", - "unenv": "1.10.0" - } -} diff --git a/packages/typeorm-tailordb-codegen/src/cli.js b/packages/typeorm-tailordb-codegen/src/cli.js deleted file mode 100644 index 403f481..0000000 --- a/packages/typeorm-tailordb-codegen/src/cli.js +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env node -import { program } from "commander"; -import "zx/globals"; -program - .name("typeorm-tailordb-codegen") - .description("Generate TypeORM code for TailorDB") - .requiredOption("-a, --app ", "App name") - .requiredOption("-n, --namespace ", "TailorDB namespace") - .requiredOption("-m, --machineuser ", "Machine user name") - .requiredOption("-o, --output ", "Output file name") - .parse(); -const options = program.opts(); -const { app, namespace, machineuser, output } = options; -const arg = `{"namespace": "${namespace}"}`; -const script = path.join(import.meta.dirname, "function.js"); -const out = path.resolve(process.cwd(), output); -console.log(`Generating code for TailorDB namespace "${namespace}" in app "${app}"...`); -const result = await $ `tailorctl workspace function test-run -a ${app} -g ${arg} -m ${machineuser} -s ${script}` - .quiet() - .nothrow(); -if (!result.ok) { - program.error(`${chalk.red.bold("ERROR")} tailorctl failed with exit code ${result.exitCode}.\n${result.stderr}`); -} -let json; -try { - const match = result.stdout.match(/\{"data":.*\}/); - if (!match) { - throw new Error("No JSON data found in output."); - } - json = JSON.parse(match[0]); -} -catch { - program.error(`${chalk.red.bold("ERROR")} Failed to parse output from tailorctl.`); -} -try { - await fs.outputFile(out, json.data); -} -catch { - program.error(`${chalk.red.bold("ERROR")} Failed to write output.`); -} -console.log(`✨ Code generated successfully and saved to ${output}.`); diff --git a/packages/typeorm-tailordb-codegen/src/cli.ts b/packages/typeorm-tailordb-codegen/src/cli.ts deleted file mode 100644 index 321ad9b..0000000 --- a/packages/typeorm-tailordb-codegen/src/cli.ts +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env node -import { program } from "commander"; -import "zx/globals"; - -program - .name("typeorm-tailordb-codegen") - .description("Generate TypeORM code for TailorDB") - .requiredOption("-a, --app ", "App name") - .requiredOption("-n, --namespace ", "TailorDB namespace") - .requiredOption("-m, --machineuser ", "Machine user name") - .requiredOption("-o, --output ", "Output file name") - .parse(); - -const options = program.opts(); -const { app, namespace, machineuser, output } = options as Record; -const arg = `{"namespace": "${namespace}"}`; -const script = path.join(import.meta.dirname, "function.js"); -const out = path.resolve(process.cwd(), output); - -console.log( - `Generating code for TailorDB namespace "${namespace}" in app "${app}"...`, -); - -const result = - await $`tailorctl workspace function test-run -a ${app} -g ${arg} -m ${machineuser} -s ${script}` - .quiet() - .nothrow(); -if (!result.ok) { - program.error( - `${chalk.red.bold("ERROR")} tailorctl failed with exit code ${ - result.exitCode - }.\n${result.stderr}`, - ); -} - -let json: { data: string }; -try { - const match = result.stdout.match(/\{"data":.*\}/); - if (!match) { - throw new Error("No JSON data found in output."); - } - json = JSON.parse(match[0]); -} catch { - program.error( - `${chalk.red.bold("ERROR")} Failed to parse output from tailorctl.`, - ); -} - -try { - await fs.outputFile(out, json.data); -} catch { - program.error(`${chalk.red.bold("ERROR")} Failed to write output.`); -} - -console.log(`✨ Code generated successfully and saved to ${output}.`); diff --git a/packages/typeorm-tailordb-codegen/src/function.js b/packages/typeorm-tailordb-codegen/src/function.js deleted file mode 100644 index 540901e..0000000 --- a/packages/typeorm-tailordb-codegen/src/function.js +++ /dev/null @@ -1,84 +0,0 @@ -export default async (args) => { - const client = new tailordb.Client({ namespace: args.namespace }); - const columns = (await client.queryObject( - // Use the same metadata surface as Kysely path for stability - "SELECT * FROM kysely_column_metadata;")).rows; - const grouped = groupByTable(columns); - const code = renderEntities(grouped); - return { data: code }; -}; -function groupByTable(cols) { - const map = new Map(); - for (const c of cols) { - const key = `${c.schema}.${c.table}`; - const t = map.get(key) ?? { schema: c.schema, name: c.table, isView: c.table_type === 'v', columns: [] }; - t.columns.push(c); - map.set(key, t); - } - return [...map.values()].sort((a, b) => (a.schema === b.schema ? a.name.localeCompare(b.name) : a.schema.localeCompare(b.schema))); -} -function pascalCase(name) { - return name - .replace(/[_\s-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : '')) - .replace(/^(\d)/, '_$1') - .replace(/[^A-Za-z0-9_]/g, ''); -} -function tsTypeFromPg(type) { - const t = type.toLowerCase(); - if (/(int|serial|smallint|bigint|decimal|numeric|double|real)/.test(t)) - return 'number'; - if (/(bool|boolean)/.test(t)) - return 'boolean'; - if (/(json|jsonb)/.test(t)) - return 'any'; - if (/(date|time|timestamp)/.test(t)) - return 'Date'; - if (/(uuid)/.test(t)) - return 'string'; - if (/(char|text|varchar|citext)/.test(t)) - return 'string'; - if (/(bytea)/.test(t)) - return 'Buffer'; - return 'any'; -} -function typeormColumnTypeFromPg(type) { - // Pass-through Postgres type names normally work for TypeORM Postgres driver - return type; -} -function renderEntities(tables) { - const lines = []; - lines.push("/* eslint-disable */"); - lines.push("// Generated by @tailor-platform/function-typeorm-tailordb-codegen"); - lines.push("import { Entity, Column, PrimaryColumn, PrimaryGeneratedColumn } from 'typeorm';"); - lines.push(""); - for (const t of tables) { - const className = pascalCase(`${t.schema}_${t.name}`); - lines.push(`@Entity({ name: '${t.name}', schema: '${t.schema}' })`); - lines.push(`export class ${className} {`); - for (const c of t.columns) { - const isId = c.column === 'id'; - const isAuto = !!c.auto_incrementing; - const colType = typeormColumnTypeFromPg(c.type); - const tsType = tsTypeFromPg(c.type); - const nullable = !c.not_null; - const comment = c.column_description?.replace(/\n/g, ' '); - if (isId && isAuto) { - lines.push(` @PrimaryGeneratedColumn({ type: '${colType}' })`); - } - else if (isId) { - lines.push(` @PrimaryColumn({ type: '${colType}'${nullable ? ', nullable: true' : ''} })`); - } - else { - lines.push(` @Column({ type: '${colType}'${nullable ? ', nullable: true' : ''} })`); - } - if (comment) { - lines.push(` /** ${comment} */`); - } - lines.push(` ${c.column}: ${tsType};`); - lines.push(""); - } - lines.push("}"); - lines.push(""); - } - return lines.join("\n"); -} diff --git a/packages/typeorm-tailordb-codegen/src/function.ts b/packages/typeorm-tailordb-codegen/src/function.ts deleted file mode 100644 index 295b4ec..0000000 --- a/packages/typeorm-tailordb-codegen/src/function.ts +++ /dev/null @@ -1,101 +0,0 @@ -type RawColumnMetadata = { - column: string; - table: string; - table_type: string; // 'r' table, 'v' view; mirrors Kysely codegen assumption - schema: string; - not_null: boolean; - has_default: boolean; - type: string; // Postgres-like type name - type_schema: string; - auto_incrementing: boolean | null; - column_description: string | null; -}; - -export default async (args: { namespace: string }) => { - const client = new tailordb.Client({ namespace: args.namespace }); - const columns = ( - await client.queryObject( - // Use the same metadata surface as Kysely path for stability - "SELECT * FROM kysely_column_metadata;", - ) - ).rows; - - const grouped = groupByTable(columns); - const code = renderEntities(grouped); - return { data: code }; -}; - -function groupByTable(cols: RawColumnMetadata[]) { - const map = new Map(); - for (const c of cols) { - const key = `${c.schema}.${c.table}`; - const t = map.get(key) ?? { schema: c.schema, name: c.table, isView: c.table_type === 'v', columns: [] }; - t.columns.push(c); - map.set(key, t); - } - return [...map.values()].sort((a, b) => (a.schema === b.schema ? a.name.localeCompare(b.name) : a.schema.localeCompare(b.schema))); -} - -function pascalCase(name: string): string { - return name - .replace(/[_\s-]+(.)?/g, (_, c: string) => (c ? c.toUpperCase() : '')) - .replace(/^(\d)/, '_$1') - .replace(/[^A-Za-z0-9_]/g, ''); -} - -function tsTypeFromPg(type: string): string { - const t = type.toLowerCase(); - if (/(int|serial|smallint|bigint|decimal|numeric|double|real)/.test(t)) return 'number'; - if (/(bool|boolean)/.test(t)) return 'boolean'; - if (/(json|jsonb)/.test(t)) return 'any'; - if (/(date|time|timestamp)/.test(t)) return 'Date'; - if (/(uuid)/.test(t)) return 'string'; - if (/(char|text|varchar|citext)/.test(t)) return 'string'; - if (/(bytea)/.test(t)) return 'Buffer'; - return 'any'; -} - -function typeormColumnTypeFromPg(type: string): string { - // Pass-through Postgres type names normally work for TypeORM Postgres driver - if (type=='_text') return 'text'; - return type; -} - -function renderEntities(tables: ReturnType): string { - const lines: string[] = []; - lines.push("/* eslint-disable */"); - lines.push("// Generated by @tailor-platform/function-typeorm-tailordb-codegen"); - lines.push("import { Entity, Column, PrimaryColumn, PrimaryGeneratedColumn } from 'typeorm';"); - lines.push(""); - - for (const t of tables) { - const className = pascalCase(`${t.schema}_${t.name}`); - lines.push(`@Entity({ name: '${t.name}', schema: '${t.schema}' })`); - lines.push(`export class ${className} {`); - for (const c of t.columns) { - const isId = c.column === 'id'; - const isAuto = !!c.auto_incrementing; - const colType = typeormColumnTypeFromPg(c.type); - const tsType = tsTypeFromPg(c.type); - const nullable = !c.not_null; - const comment = c.column_description?.replace(/\n/g, ' '); - - if (isId && isAuto) { - lines.push(` @PrimaryGeneratedColumn({ type: '${colType}' })`); - } else if (isId) { - lines.push(` @PrimaryColumn({ type: '${colType}'${nullable ? ', nullable: true' : ''} })`); - } else { - lines.push(` @Column({ type: '${colType}'${nullable ? ', nullable: true' : ''} })`); - } - if (comment) { - lines.push(` /** ${comment} */`); - } - lines.push(` ${c.column}!: ${tsType};`); - lines.push(""); - } - lines.push("}"); - lines.push(""); - } - - return lines.join("\n"); -} diff --git a/packages/typeorm-tailordb-codegen/tsconfig.json b/packages/typeorm-tailordb-codegen/tsconfig.json deleted file mode 100644 index 1f98466..0000000 --- a/packages/typeorm-tailordb-codegen/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "node", - "strict": true, - "skipLibCheck": true, - "esModuleInterop": true, - "resolveJsonModule": true, - "types": ["@tailor-platform/function-types", "node"] - }, - "include": ["src/**/*"] -} - diff --git a/packages/typeorm-tailordb/CHANGELOG.md b/packages/typeorm-tailordb/CHANGELOG.md deleted file mode 100644 index e050232..0000000 --- a/packages/typeorm-tailordb/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# @tailor-platform/function-typeorm-tailordb - -## 0.1.1 - -### Patch Changes - -- [#106](https://github.com/tailor-platform/function/pull/106) [`30c9875`](https://github.com/tailor-platform/function/commit/30c9875b25ab5f5eea8686fc9dcacbbbb0e1a00e) Thanks [@remiposo](https://github.com/remiposo)! - add CHANGELOG.md diff --git a/packages/typeorm-tailordb/LICENSE b/packages/typeorm-tailordb/LICENSE deleted file mode 100644 index 27266cc..0000000 --- a/packages/typeorm-tailordb/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2024 Tailor Platform 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. - diff --git a/packages/typeorm-tailordb/README.md b/packages/typeorm-tailordb/README.md deleted file mode 100644 index 47fb3f6..0000000 --- a/packages/typeorm-tailordb/README.md +++ /dev/null @@ -1,149 +0,0 @@ -# @tailor-platform/function-typeorm-tailordb - -TypeORM integration helpers for TailorDB. - -This package provides minimal components to execute SQL and manage transactions against TailorDB with a Postgres-like shape, intended to be used alongside TypeORM. It exposes a lightweight query runner and an experimental DataSource integration. - -Important: Schema sync and migrations are not supported. TailorDB is the source of truth for schema. Generate code from the live schema using the companion codegen package. - -Note: TypeORM does not offer a public, stable plugin API for custom drivers. The DataSource integration below is experimental and aims to support basic CRUD through Repository/QueryBuilder. Complex features are out of scope. - -## Install - -```sh -# npm -npm install @tailor-platform/function-typeorm-tailordb -# pnpm -pnpm add @tailor-platform/function-typeorm-tailordb -``` - -We recommend installing `@tailor-platform/function-types` for TailorDB typings when working in the Function service. - -### Using @tailor-platform/function-types - -`@tailor-platform/function-types` provides ambient type declarations for Tailor Platform globals such as `tailordb`, `tailor.secretmanager`, etc. - -1) Install as a dev dependency - -```sh -# npm -npm install -D @tailor-platform/function-types -# pnpm -pnpm add -D @tailor-platform/function-types -``` - -2) Add to your `tsconfig.json` so TypeScript picks up the globals (recommended config) - -```json -{ - "extends": "@tsconfig/recommended/tsconfig.json", - "compilerOptions": { - "target": "ESNext", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, - "types": ["@tailor-platform/function-types"] - } -} -``` - -After this, you can use the global `tailordb.Client` with proper types without importing it: - -```ts -const client = new tailordb.Client({ namespace: "" }); -await client.connect(); -const result = await client.queryObject<{ now: string }>("select now() as now"); -``` - -## Minimal SQL usage - -```ts -import { TailordbClientQueryRunner } from '@tailor-platform/function-typeorm-tailordb'; - -const client = new tailordb.Client({ namespace: '' }); -await client.connect(); - -const qr = new TailordbClientQueryRunner(client); - -// Execute raw SQL -await qr.query('select 1'); - -// Transactions -await qr.startTransaction(); -try { - await qr.query('insert into foo(bar) values($1)', ['baz']); - await qr.commitTransaction(); -} catch (e) { - await qr.rollbackTransaction(); - throw e; -} - -await client.end(); -``` - -This query runner is intentionally minimal and designed for raw queries or integration scenarios where you manage SQL directly. - -## Experimental: TypeORM DataSource integration (Tailor Platform Function) - -This package includes an experimental integration intended for the Tailor Platform Function runtime (which does not provide Node built‑ins). It patches TypeORM’s browser DriverFactory at runtime and returns a `DataSource` configured for TailorDB. Advanced features are not supported. - -Recommended usage: - -```ts -import { createDatasource } from '@tailor-platform/function-typeorm-tailordb'; -import { App_Users } from './entities'; // generated by codegen - -const ds = createDatasource('', [App_Users]); -await ds.initialize(); - -// Minimal query -const rows = await ds.query('select 1 as one'); - -// Transaction -const qr = ds.createQueryRunner(); -await qr.startTransaction(); -try { - await qr.query('insert into app.sample(col) values($1)', ['val']); - await qr.commitTransaction(); -} catch (e) { - await qr.rollbackTransaction(); - throw e; -} finally { - await qr.release(); -} - -await ds.destroy(); -``` - -### Repository/QueryBuilder basic CRUD (limited) - -Register generated entities in the DataSource to use simple CRUD. Complex queries or relations are not guaranteed. - -```ts -import { createDatasource } from '@tailor-platform/function-typeorm-tailordb'; -import { App_Users } from './entities'; - -const ds = createDatasource('', [App_Users]); -await ds.initialize(); - -const repo = ds.getRepository(App_Users); - -// Create -const created = await repo.save({ name: 'Alice', email: 'alice@example.com' }); - -// Read -const found = await repo.findOne({ where: { id: created.id } }); - -// Update -await repo.update({ id: created.id }, { name: 'Alice Updated' }); - -// Delete -await repo.delete({ id: created.id }); - -await ds.destroy(); -``` - -### Limitations (prototype) -- No schema sync or migrations. Use the codegen package to keep entities in sync with TailorDB. -- Focused on basic CRUD via Repository/QueryBuilder. Advanced relations, cascades, partial update return shapes, etc., are not guaranteed. -- Parameters: Postgres-style positional parameters are supported. Named parameters like `:name` are minimally converted to `$n`. diff --git a/packages/typeorm-tailordb/package.json b/packages/typeorm-tailordb/package.json deleted file mode 100644 index bea2543..0000000 --- a/packages/typeorm-tailordb/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@tailor-platform/function-typeorm-tailordb", - "version": "0.1.1", - "type": "module", - "description": "TypeORM helpers for TailorDB", - "repository": { - "type": "git", - "url": "https://github.com/tailor-platform/function", - "directory": "packages/typeorm-tailordb" - }, - "main": "./dist/index.js", - "module": "./dist/index.js", - "scripts": { - "check": "biome check .", - "check-write": "biome check --write .", - "build": "tsup src/index.ts --format esm,cjs --dts --clean", - "clean": "rm -rf dist", - "type-check": "tsc --noEmit", - "prepublishOnly": "pnpm run build" - }, - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs" - } - }, - "sideEffects": false, - "types": "./dist/index.d.ts", - "files": [ - "dist", - "CHANGELOG.md" - ], - "devDependencies": { - "@biomejs/biome": "1.9.4", - "@tailor-platform/function-types": "workspace:*", - "@tsconfig/recommended": "1.0.13", - "tsup": "8.5.1", - "typeorm": "0.3.31", - "typescript": "5.9.3" - }, - "peerDependencies": { - "typeorm": ">=0.3 <1" - } -} diff --git a/packages/typeorm-tailordb/src/index.ts b/packages/typeorm-tailordb/src/index.ts deleted file mode 100644 index d8e3d59..0000000 --- a/packages/typeorm-tailordb/src/index.ts +++ /dev/null @@ -1,297 +0,0 @@ -export type QueryResult = { - rows: T[]; - rowCount: number; - command: string; -}; - -/** - * Minimal QueryRunner-like adapter backed by TailorDB client. - * Provides basic query execution and transaction controls. - */ -export class TailordbClientQueryRunner { - constructor(private readonly client: Tailordb.Client) {} - - async connect(): Promise { - await this.client.connect(); - } - - async release(): Promise { - await this.client.end(); - } - - async query(sql: string, parameters: unknown[] = []): Promise> { - const res = await this.client.queryObject(sql, parameters); - return { - rows: res.rows ?? [], - rowCount: res.rowCount ?? 0, - command: res.command ?? "", - }; - } - - async startTransaction(isolation?: string): Promise { - const sql = isolation ? `begin isolation level ${isolation}` : "begin"; - await this.query(sql); - } - - async commitTransaction(): Promise { - await this.query("commit"); - } - - async rollbackTransaction(): Promise { - await this.query("rollback"); - } -} - -export class TailordbDataSourceHelpers { - constructor(private readonly client: Tailordb.Client) {} - - createQueryRunner(): TailordbClientQueryRunner { - return new TailordbClientQueryRunner(this.client); - } - - async withTransaction(fn: (qr: TailordbClientQueryRunner) => Promise, isolation?: string): Promise { - const qr = this.createQueryRunner(); - await qr.startTransaction(isolation); - try { - const out = await fn(qr); - await qr.commitTransaction(); - return out; - } catch (e) { - await qr.rollbackTransaction(); - throw e; - } - } -} - -/* - Experimental TailorDB driver for TypeORM (browser build). - - Targets typeorm/browser/* to avoid Node built-ins (e.g., crypto) in non-Node environments. - - Provides minimal functionality for DataSource.initialize, basic queries, transactions, and basic Repository/QueryBuilder CRUD. - - Schema sync and migrations are NOT supported (use codegen instead). -*/ - -import { DriverFactory } from 'typeorm/browser/driver/DriverFactory.js'; -import { Broadcaster } from 'typeorm/browser/subscriber/Broadcaster.js'; -import { DataSource } from 'typeorm'; -import type { MixedList } from 'typeorm/common/MixedList'; -import type { EntitySchema } from 'typeorm/entity-schema/EntitySchema'; - -type QueryRunner = any; -type IsolationLevel = string | undefined; - -export class TailordbQueryRunnerPrototype { - public connection: any; - public isReleased = false; - public isTransactionActive = false; - public data: Record = {}; - public manager: any; - public broadcaster: any; - - constructor(private readonly client: Tailordb.Client, private readonly driver: TailordbDriverPrototype) { - this.connection = (driver as any).connection; - this.manager = this.connection?.manager; - this.broadcaster = new Broadcaster(this as any); - } - - async connect(): Promise { - await this.client.connect(); - } - - async release(): Promise { - this.isReleased = true; - // Do not end the shared client here. The driver manages lifecycle. - } - - async startTransaction(isolation?: IsolationLevel): Promise { - const sql = isolation ? `begin isolation level ${isolation}` : 'begin'; - await this.query(sql); - this.isTransactionActive = true; - } - - async commitTransaction(): Promise { - await this.query('commit'); - this.isTransactionActive = false; - } - - async rollbackTransaction(): Promise { - await this.query('rollback'); - this.isTransactionActive = false; - } - - async query(query: string, parameters?: unknown[], useStructuredResult?: boolean): Promise { - query = query.replace(/COUNT\(1\)/, 'COUNT(*)'); // TailorDB does not support multiple statements per query - if (this.connection?.options?.logging) { - console.log(`[tailordb] query: ${query} -- params: ${JSON.stringify(parameters)}`); - } - const res = await this.client.queryObject(query, parameters ?? []); - const rows = (res as any)?.rows ?? []; - const rowCount = (res as any)?.rowCount ?? rows.length ?? 0; - if (useStructuredResult) { - return { records: rows, affected: rowCount, raw: rows }; - } - return rows; - } -} - -export class TailordbDriverPrototype { - public options: any; - private client: Tailordb.Client; - public connection: any; - // Feature flags to satisfy TypeORM internals - public supportedUpsertTypes: string[] = []; - public spatialTypes: string[] = []; - public withLengthColumnTypes: string[] = []; - public withPrecisionColumnTypes: string[] = []; - public withScaleColumnTypes: string[] = []; - public mappedDataTypes: any = { - createDate: 'timestamp', - createDateDefault: 'CURRENT_TIMESTAMP', - createDatePrecision: undefined, - updateDate: 'timestamp', - updateDateDefault: 'CURRENT_TIMESTAMP', - updateDatePrecision: undefined, - deleteDate: 'timestamp', - deleteDateNullable: true, - deleteDatePrecision: undefined, - version: 'int', - treeLevel: 'int', - }; - public dataTypeDefaults: Record = {}; - public supportedDataTypes: string[] = [ - 'int', 'integer', 'bigint', 'smallint', 'numeric', 'decimal', 'real', 'float', - 'varchar', 'character varying', 'char', 'character', 'text', - 'boolean', 'date', 'time', 'timestamp', 'timestamptz', - 'uuid', 'json', 'jsonb', - ]; - - constructor(options: any) { - this.options = options; - const ns = options?.tailordb?.namespace ?? options?.namespace; - // Pretend to be postgres family to make TypeORM generate positional ($1...) parameters and proper SQL paths - this.options.type = 'postgres'; - if (!this.options.schema) { - this.options.schema = options?.schema ?? options?.tailordb?.schema ?? ns; - } - this.client = new tailordb.Client({ namespace: ns }); - } - - async connect(): Promise { - await this.client.connect(); - } - - async afterConnect(): Promise { - // no-op - } - - async disconnect(): Promise { - await this.client.end(); - } - - createQueryRunner(_mode: 'master' | 'slave' = 'master'): QueryRunner { - return new TailordbQueryRunnerPrototype(this.client, this); - } - - // Utilities expected by some TypeORM code paths - escape(identifier: string): string { - if (identifier.startsWith('"') && identifier.endsWith('"')) { - return identifier; - } - return '"' + identifier.replace(/"/g, '""') + '"'; - } - - buildTableName(tableName: string, _schema?: string): string { - return this.escape(tableName); - } - - createParameter(_parameterName: string, index: number): string { - // Postgres-style positional parameters are 1-based - return `$${index + 1}`; - } - - isReturningSqlSupported(): boolean { return true; } - - // Indicates if DB can generate UUIDs on its own; returning true prevents client-side generation paths from erroring - isUUIDGenerationSupported(): boolean { return true; } - - escapeQueryWithParameters(sql: string, parameters: any, nativeParameters: any): [string, any[]] { - if (Array.isArray(nativeParameters)) return [sql, nativeParameters]; - const dict = (nativeParameters && typeof nativeParameters === 'object' && Object.keys(nativeParameters).length > 0) - ? nativeParameters - : (parameters && typeof parameters === 'object' ? parameters : {}); - const paramOrder: string[] = []; - sql = sql.replace(/:([A-Za-z0-9_]+)/g, (_m, name: string) => { - if (!(name in (dict as any))) return _m; - let idx = paramOrder.indexOf(name); - if (idx === -1) { paramOrder.push(name); idx = paramOrder.length - 1; } - return `$${idx + 1}`; - }); - const values = paramOrder.map((k) => (dict as any)[k]); - return [sql, values]; - } - - // Pass-through param value hook used by QueryBuilders in some paths - parametrizeValue(_column: any, value: any): any { return value; } - - // Stubs required by metadata building and various code paths - preparePersistentValue(value: any): any { return value; } - prepareHydratedValue(value: any): any { return value; } - normalizeType(_column: any): string { return 'text'; } - normalizeDefault(_column: any): any { return undefined; } - normalizeIsUnique(_column: any): boolean { return false; } - // Map RETURNING rows to entity fields - createGeneratedMap(metadata: any, insertResult: any): any { - let row: any = undefined; - if (insertResult && typeof insertResult === 'object') { - if (Array.isArray((insertResult as any).records)) { - row = (insertResult as any).records[0]; - } else if (Array.isArray((insertResult as any).raw)) { - row = (insertResult as any).raw[0]; - } else if (Array.isArray(insertResult)) { - row = (insertResult as any)[0]; - } else { - row = insertResult; - } - } - if (!row) return undefined; - const map: any = {}; - for (const column of (metadata?.columns ?? [])) { - const dbName = column.databaseName; - if (Object.prototype.hasOwnProperty.call(row, dbName)) { - map[column.propertyName] = (row as any)[dbName]; - } - } - return map; - } - obtainMasterConnection(): any { return null; } - obtainSlaveConnection(): any { return null; } - createSchemaBuilder(): never { throw new Error('SchemaBuilder not supported in Tailordb prototype'); } - createQueryRunnerMode(_mode: any): QueryRunner { return this.createQueryRunner('master'); } -} - -/** - * Factory that patches DriverFactory (browser build) and returns a configured DataSource. - */ -export function createDatasource(config: {namespace: string, entities?: MixedList, logging?: boolean}): DataSource { - const Factory: any = DriverFactory as any; - if (Factory.__tailordb_patched) { - throw Error('Tailordb driver already registered'); - } - const originalCreate = Factory.prototype.create; - Factory.prototype.create = function (connection: any) { - const options = connection?.options; - if (options && options.type === 'tailordb') { - const d = new (TailordbDriverPrototype as any)(options); - (d as any).connection = connection; - return d; - } - return originalCreate.apply(this, arguments as any); - }; - Factory.__tailordb_patched = true; - return new DataSource({ - type: 'tailordb' as any, - tailordb: { namespace: config.namespace }, - entities: config.entities, - synchronize: false, - logging: config.logging, - } as any); -} diff --git a/packages/typeorm-tailordb/tsconfig.json b/packages/typeorm-tailordb/tsconfig.json deleted file mode 100644 index 2a5348f..0000000 --- a/packages/typeorm-tailordb/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@tsconfig/recommended/tsconfig.json", - "compilerOptions": { - "target": "ESNext", - "types": ["@tailor-platform/function-types"] - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 409254f..e54d11d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,61 +79,6 @@ importers: specifier: 5.9.3 version: 5.9.3 - packages/typeorm-tailordb: - devDependencies: - '@biomejs/biome': - specifier: 1.9.4 - version: 1.9.4 - '@tailor-platform/function-types': - specifier: workspace:* - version: link:../types - '@tsconfig/recommended': - specifier: 1.0.13 - version: 1.0.13 - tsup: - specifier: 8.5.1 - version: 8.5.1(typescript@5.9.3) - typeorm: - specifier: 0.3.31 - version: 0.3.31 - typescript: - specifier: 5.9.3 - version: 5.9.3 - - packages/typeorm-tailordb-codegen: - dependencies: - commander: - specifier: ^14.0.0 - version: 14.0.3 - zx: - specifier: ^8.5.4 - version: 8.8.5 - devDependencies: - '@biomejs/biome': - specifier: 1.9.4 - version: 1.9.4 - '@tailor-platform/function-types': - specifier: workspace:* - version: link:../types - '@types/fs-extra': - specifier: 11.0.4 - version: 11.0.4 - '@types/node': - specifier: 22.20.1 - version: 22.20.1 - esbuild: - specifier: 0.28.1 - version: 0.28.1 - fs-extra: - specifier: 11.4.0 - version: 11.4.0 - typescript: - specifier: 5.9.3 - version: 5.9.3 - unenv: - specifier: 1.10.0 - version: 1.10.0 - packages/types: {} packages: @@ -589,10 +534,6 @@ packages: '@types/node': optional: true - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -624,10 +565,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@rollup/rollup-android-arm-eabi@4.62.3': resolution: {integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==} cpu: [arm] @@ -766,9 +703,6 @@ packages: cpu: [x64] os: [win32] - '@sqltools/formatter@1.2.5': - resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} - '@tsconfig/recommended@1.0.13': resolution: {integrity: sha512-sySRuBfMKyKO/j2ZAhR8kSembhjuPEV4Ra3AHtmWLq51+iGaudr45crPSzNC5b7/Ctrh9dfUpBuTlYrH6rM58Q==} @@ -800,10 +734,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -812,21 +742,9 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - ansis@4.3.1: - resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} - engines: {node: '>=14'} - any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - app-root-path@3.1.0: - resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} - engines: {node: '>= 6.0.0'} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -837,16 +755,9 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -854,16 +765,10 @@ packages: brace-expansion@1.1.18: resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} - brace-expansion@2.1.4: - resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -874,18 +779,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -905,10 +798,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -956,9 +845,6 @@ packages: dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - dayjs@1.11.21: - resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -968,18 +854,6 @@ packages: supports-color: optional: true - dedent@1.7.2: - resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} @@ -1007,19 +881,6 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -1031,18 +892,10 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} - engines: {node: '>= 0.4'} - esbuild@0.27.7: resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} @@ -1053,10 +906,6 @@ packages: engines: {node: '>=18'} hasBin: true - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1096,18 +945,6 @@ packages: fix-dts-default-cjs-exports@1.0.1: resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fs-extra@11.4.0: - resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -1127,18 +964,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - git-diff@2.0.7: resolution: {integrity: sha512-/+vyWaKNUJLcVT+tm5Hsly2xDcIs49EkZstxqW7ap1ZiZ0BECviLK1iv9/f4cGhlKBokeAf61QkTDnL88H+Uhg==} engines: {node: '>= 4.8.0'} @@ -1147,11 +972,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me @@ -1160,10 +980,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1175,17 +991,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -1198,9 +1003,6 @@ packages: resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1223,10 +1025,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -1235,10 +1033,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -1251,23 +1045,13 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -1289,9 +1073,6 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.1: - resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} - kysely-codegen@0.18.5: resolution: {integrity: sha512-bj6DMsXcKo0PrrXUk/fdjFgNC6Pwq+HPBCqhNGuD57gwUJZdci2s2OqhNneQeYpAIWGot7/481WdzTyXrClY2Q==} engines: {node: '>=20.0.0'} @@ -1353,16 +1134,9 @@ packages: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1379,17 +1153,9 @@ packages: minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} - mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -1445,9 +1211,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} @@ -1474,10 +1237,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -1514,10 +1273,6 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} @@ -1559,13 +1314,6 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} - reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -1591,9 +1339,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -1602,15 +1347,6 @@ packages: engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1646,26 +1382,10 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sql-highlight@6.1.0: - resolution: {integrity: sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA==} - engines: {node: '>=14'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.2.0: - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} - engines: {node: '>=12'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -1705,10 +1425,6 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1723,9 +1439,6 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.5.1: resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} engines: {node: '>=18'} @@ -1745,65 +1458,6 @@ packages: typescript: optional: true - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typeorm@0.3.31: - resolution: {integrity: sha512-6u9EFtdLBgHjnPm78NStVeM+I/1MolTzKykDDcydzKUkh6E++YS6XViU/fePJbvDvEGU4Xq34KOM/CLeer9I2A==} - engines: {node: '>=16.13.0'} - hasBin: true - peerDependencies: - '@google-cloud/spanner': ^5.18.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - '@sap/hana-client': ^2.14.22 - better-sqlite3: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 - ioredis: ^5.0.4 - mongodb: ^5.8.0 || ^6.0.0 - mssql: ^9.1.1 || ^10.0.0 || ^11.0.0 || ^12.0.0 - mysql2: ^2.2.5 || ^3.0.1 - oracledb: ^6.3.0 || ^7.0.0 - pg: ^8.5.1 - pg-native: ^3.0.0 - pg-query-stream: ^4.0.0 - redis: ^3.1.1 || ^4.0.0 || ^5.0.14 - sql.js: ^1.4.0 - sqlite3: ^5.0.3 || ^6.0.0 - ts-node: ^10.7.0 - typeorm-aurora-data-api-driver: ^2.0.0 || ^3.0.0 - peerDependenciesMeta: - '@google-cloud/spanner': - optional: true - '@sap/hana-client': - optional: true - better-sqlite3: - optional: true - ioredis: - optional: true - mongodb: - optional: true - mssql: - optional: true - mysql2: - optional: true - oracledb: - optional: true - pg: - optional: true - pg-native: - optional: true - pg-query-stream: - optional: true - redis: - optional: true - sql.js: - optional: true - sqlite3: - optional: true - ts-node: - optional: true - typeorm-aurora-data-api-driver: - optional: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -1822,52 +1476,20 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - uuid@11.1.1: - resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} - hasBin: true - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-typed-array@1.1.22: - resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.3: - resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} - engines: {node: '>=12'} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -2244,15 +1866,6 @@ snapshots: optionalDependencies: '@types/node': 22.20.1 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.2.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -2295,9 +1908,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@pkgjs/parseargs@0.11.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.62.3': optional: true @@ -2373,8 +1983,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.62.3': optional: true - '@sqltools/formatter@1.2.5': {} - '@tsconfig/recommended@1.0.13': {} '@types/estree@1.0.9': {} @@ -2400,8 +2008,6 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.2: {} - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -2410,14 +2016,8 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.3: {} - - ansis@4.3.1: {} - any-promise@1.3.0: {} - app-root-path@3.1.0: {} - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -2426,14 +2026,8 @@ snapshots: array-union@2.1.0: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - balanced-match@1.0.2: {} - base64-js@1.5.1: {} - better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 @@ -2443,19 +2037,10 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.4: - dependencies: - balanced-match: 1.0.2 - braces@3.0.3: dependencies: fill-range: 7.1.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bundle-require@5.1.0(esbuild@0.27.7): dependencies: esbuild: 0.27.7 @@ -2463,23 +2048,6 @@ snapshots: cac@6.7.14: {} - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - callsites@3.1.0: {} chalk@2.4.2: @@ -2499,12 +2067,6 @@ snapshots: dependencies: readdirp: 4.1.2 - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -2544,20 +2106,10 @@ snapshots: dataloader@1.4.0: {} - dayjs@1.11.21: {} - debug@4.4.3: dependencies: ms: 2.1.3 - dedent@1.7.2: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - defu@6.1.7: {} detect-indent@6.1.0: {} @@ -2576,18 +2128,6 @@ snapshots: dotenv@8.6.0: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - eastasianwidth@0.2.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -2599,14 +2139,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-define-property@1.0.1: {} - es-errors@1.3.0: {} - es-object-atoms@1.1.2: - dependencies: - es-errors: 1.3.0 - esbuild@0.27.7: optionalDependencies: '@esbuild/aix-ppc64': 0.27.7 @@ -2665,8 +2199,6 @@ snapshots: '@esbuild/win32-ia32': 0.28.1 '@esbuild/win32-x64': 0.28.1 - escalade@3.2.0: {} - escape-string-regexp@1.0.5: {} esprima@4.0.1: {} @@ -2704,21 +2236,6 @@ snapshots: mlly: 1.8.2 rollup: 4.62.3 - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - fs-extra@11.4.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.1 - universalify: 2.0.1 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -2738,26 +2255,6 @@ snapshots: function-bind@1.1.2: {} - get-caller-file@2.0.5: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 - git-diff@2.0.7: dependencies: chalk: 2.4.2 @@ -2770,15 +2267,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.9 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -2797,24 +2285,12 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - gopd@1.2.0: {} - graceful-fs@4.2.11: {} has-flag@3.0.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -2825,8 +2301,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ieee754@1.2.1: {} - ignore@5.3.2: {} import-fresh@3.3.1: @@ -2845,16 +2319,12 @@ snapshots: is-arrayish@0.2.1: {} - is-callable@1.2.7: {} - is-core-module@2.16.2: dependencies: hasown: 2.0.4 is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -2865,22 +2335,10 @@ snapshots: dependencies: better-path-resolve: 1.0.0 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.22 - is-windows@1.0.2: {} - isarray@2.0.5: {} - isexe@2.0.0: {} - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - joycon@3.1.1: {} js-tokens@4.0.0: {} @@ -2900,12 +2358,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.1: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - kysely-codegen@0.18.5(kysely@0.28.17)(typescript@5.9.3): dependencies: chalk: 4.1.2 @@ -2937,14 +2389,10 @@ snapshots: loglevel@1.9.2: {} - lru-cache@10.4.3: {} - magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - math-intrinsics@1.1.0: {} - merge2@1.4.1: {} micromatch@4.0.8: @@ -2958,14 +2406,8 @@ snapshots: dependencies: brace-expansion: 1.1.18 - minimatch@9.0.9: - dependencies: - brace-expansion: 2.1.4 - minimist@1.2.8: {} - minipass@7.1.3: {} - mlly@1.8.2: dependencies: acorn: 8.18.0 @@ -3013,8 +2455,6 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.11: dependencies: quansync: 0.2.11 @@ -3038,11 +2478,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.3 - path-type@4.0.0: {} pathe@1.1.2: {} @@ -3067,8 +2502,6 @@ snapshots: pluralize@8.0.0: {} - possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1: dependencies: lilconfig: 3.1.3 @@ -3092,10 +2525,6 @@ snapshots: dependencies: resolve: 1.22.12 - reflect-metadata@0.2.2: {} - - require-directory@2.1.1: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -3144,27 +2573,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} semver@7.8.5: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -3192,28 +2604,10 @@ snapshots: sprintf-js@1.0.3: {} - sql-highlight@6.1.0: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.2.0 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.2.0: - dependencies: - ansi-regex: 6.2.2 - strip-bom@3.0.0: {} sucrase@3.35.1: @@ -3253,12 +2647,6 @@ snapshots: fdir: 6.5.0(picomatch@4.0.5) picomatch: 4.0.5 - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -3269,8 +2657,6 @@ snapshots: ts-interface-checker@0.1.13: {} - tslib@2.8.1: {} - tsup@8.5.1(typescript@5.9.3): dependencies: bundle-require: 5.1.0(esbuild@0.27.7) @@ -3298,33 +2684,6 @@ snapshots: - tsx - yaml - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typeorm@0.3.31: - dependencies: - '@sqltools/formatter': 1.2.5 - ansis: 4.3.1 - app-root-path: 3.1.0 - buffer: 6.0.3 - dayjs: 1.11.21 - debug: 4.4.3 - dedent: 1.7.2 - dotenv: 16.6.1 - glob: 10.5.0 - reflect-metadata: 0.2.2 - sha.js: 2.4.12 - sql-highlight: 6.1.0 - tslib: 2.8.1 - uuid: 11.1.1 - yargs: 17.7.3 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - typescript@5.9.3: {} ufo@1.6.4: {} @@ -3341,10 +2700,6 @@ snapshots: universalify@0.1.2: {} - universalify@2.0.1: {} - - uuid@11.1.1: {} - webidl-conversions@3.0.1: {} whatwg-url@5.0.0: @@ -3352,48 +2707,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-typed-array@1.1.22: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.2.0 - wrappy@1.0.2: {} - y18n@5.0.8: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.3: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - zod@3.25.76: {} zx@8.8.5: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3580e3d..ced025e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,5 +11,3 @@ minimumReleaseAgeExclude: - kysely@0.28.17 # Renovate security update: esbuild@0.28.1 - esbuild@0.28.1 - # Renovate security update: typeorm@0.3.29 || 0.3.31 - - typeorm@0.3.29 || 0.3.31