@zeronsh/orbit 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-O43HYETA.js → chunk-KFX7HOCV.js} +3 -3
- package/dist/{chunk-O43HYETA.js.map → chunk-KFX7HOCV.js.map} +1 -1
- package/dist/{chunk-BJPEQCCN.js → chunk-LUFJQUF4.js} +53 -4
- package/dist/chunk-LUFJQUF4.js.map +1 -0
- package/dist/{chunk-77GV6UT3.js → chunk-RP6SPOCI.js} +3 -3
- package/dist/{chunk-77GV6UT3.js.map → chunk-RP6SPOCI.js.map} +1 -1
- package/dist/client.d.ts +5 -0
- package/dist/client.js +1 -1
- package/dist/drizzle/cli/bin.js +3 -3
- package/dist/drizzle/cli.js +3 -3
- package/dist/drizzle.js +2 -2
- package/dist/orm-core.js +2 -2
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-BJPEQCCN.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { table, relationships, createSchema, number, boolean, json, string, optional } from './chunk-
|
|
1
|
+
import { table, relationships, createSchema, number, boolean, json, string, optional } from './chunk-LUFJQUF4.js';
|
|
2
2
|
|
|
3
3
|
// orm-core/src/adapter.ts
|
|
4
4
|
function defineAdapter(adapter) {
|
|
@@ -249,5 +249,5 @@ function emitSchema(ir, options = {}) {
|
|
|
249
249
|
}
|
|
250
250
|
|
|
251
251
|
export { buildOrbitSchema, defineAdapter, emitSchema };
|
|
252
|
-
//# sourceMappingURL=chunk-
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
252
|
+
//# sourceMappingURL=chunk-KFX7HOCV.js.map
|
|
253
|
+
//# sourceMappingURL=chunk-KFX7HOCV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../orm-core/src/adapter.ts","../orm-core/src/build.ts","../orm-core/src/emit.ts"],"names":[],"mappings":"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","file":"chunk-O43HYETA.js","sourcesContent":["// The adapter contract. An ORM adapter converts its native schema into the\n// {@link SchemaIR}. That's the entire surface a new ORM has to implement —\n// everything downstream (runtime build + codegen) is shared.\n\nimport type { SchemaIR } from './ir.ts';\n\n/**\n * Converts an ORM's native schema (`Input`) into Orbit's normalized {@link SchemaIR}.\n *\n * @typeParam Input the ORM's schema object (e.g. a Drizzle `* as schema` import).\n * @typeParam Config adapter-specific options (table/column selection, casing, …).\n */\nexport interface OrmAdapter<Input = unknown, Config = unknown> {\n /** Stable adapter id, e.g. `'drizzle'`. Used in generated-file headers. */\n readonly name: string;\n /** Produce the normalized IR for the given schema + options. */\n toIR(input: Input, config?: Config): SchemaIR;\n}\n\n/** Helper to define an adapter with inferred generics. */\nexport function defineAdapter<Input, Config>(adapter: OrmAdapter<Input, Config>): OrmAdapter<Input, Config> {\n return adapter;\n}\n","// Runtime: turn a {@link SchemaIR} into a live Orbit `SchemaDef` (the same object\n// `createSchema(...)` would produce). Used by adapters' `defineOrbitSchema(...)`\n// runtime entry point. Custom `$type<>()` types are type-level only and do not\n// exist at runtime, so this produces the plain column types; for full custom-type\n// fidelity, use the codegen emitter (`emit.ts`) instead.\n\nimport {\n boolean as boolCol,\n createSchema,\n json as jsonCol,\n number as numCol,\n optional,\n relationships,\n string as strCol,\n table,\n type Column,\n type RelationshipsDef,\n type SchemaDef,\n type TableDef,\n} from '../../client/src/index.ts';\nimport type { IRColumn, IRRelationship, SchemaIR } from './ir.ts';\n\nfunction makeColumn(c: IRColumn): Column {\n const base =\n c.type === 'number' ? numCol() : c.type === 'boolean' ? boolCol() : c.type === 'json' ? jsonCol() : strCol();\n return c.optional ? optional(base as Column) : (base as Column);\n}\n\n/** Build a live Orbit schema object from the IR. */\nexport function buildOrbitSchema(ir: SchemaIR): SchemaDef {\n const tableDefs = new Map<string, TableDef>();\n const tables: TableDef[] = [];\n\n for (const t of ir.tables) {\n const columns: Record<string, Column> = {};\n for (const c of t.columns) columns[c.name] = makeColumn(c);\n const pk = (t.primaryKey.length ? t.primaryKey : ['id']) as [string, ...string[]];\n const def = table(t.name)\n .columns(columns as never)\n .primaryKey(...pk) as unknown as TableDef;\n tableDefs.set(t.name, def);\n tables.push(def);\n }\n\n // `relationships()` is per source table, and `createSchema` rejects a table\n // whose relationships are declared twice — so group all of a table's\n // relationships into one call.\n const byTable = new Map<string, IRRelationship[]>();\n for (const r of ir.relationships) {\n const list = byTable.get(r.table) ?? [];\n list.push(r);\n byTable.set(r.table, list);\n }\n\n const rels: RelationshipsDef[] = [];\n for (const [tableName, list] of byTable) {\n const src = tableDefs.get(tableName);\n if (!src) continue;\n rels.push(\n relationships(src, ({ one, many }) => {\n const out: Record<string, unknown> = {};\n for (const r of list) {\n const last = r.chain[r.chain.length - 1];\n const connect = last.cardinality === 'one' ? one : many;\n const args = r.chain.map((c) => {\n const dest = tableDefs.get(c.destSchema);\n if (!dest) throw new Error(`@orbit/orm-core: relationship \"${tableName}.${r.name}\" references unknown table \"${c.destSchema}\"`);\n return { sourceField: [...c.sourceField], destField: [...c.destField], destSchema: dest };\n });\n // `one`/`many` accept 1 (direct) or 2 (junction) hops.\n out[r.name] = (connect as (...a: unknown[]) => unknown)(...args);\n }\n return out as never;\n }),\n );\n }\n\n return createSchema({ tables: tables as never, relationships: rels as never });\n}\n","// Codegen: turn a {@link SchemaIR} into Orbit-schema TypeScript *source*. Unlike\n// the runtime builder, this preserves each column's custom `$type<>()` and enum\n// types (emitted as `string<...>()` / `json<...>()`), so the generated schema is\n// fully typed. Output is plain text; the CLI optionally runs Prettier over it.\n\nimport type { IRColumn, IRRelationship, IRTable, SchemaIR } from './ir.ts';\n\nexport interface EmitOptions {\n /** Module the Orbit schema helpers are imported from. Default `@orbit/client`. */\n readonly importFrom?: string;\n /** Append `.js` to the import (Node16/NodeNext ESM). Default false. */\n readonly jsExtension?: boolean;\n /** Exported schema const name. Default `schema`. */\n readonly schemaName?: string;\n /** Also emit `export type <Table> = RowOf<typeof <table>>` for each table. Default true. */\n readonly rowTypes?: boolean;\n /** Header comment lines (without leading `//`). */\n readonly header?: readonly string[];\n /**\n * Extra `import type { ... } from '...'` lines to prepend — used to bring in the\n * named TypeScript types referenced by resolved custom column types (e.g. a\n * `jsonb().$type<PostMeta>()` resolves to `PostMeta`, imported from the schema).\n */\n readonly typeImports?: readonly { readonly module: string; readonly names: readonly string[] }[];\n}\n\nconst RESERVED = new Set([\n 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete', 'do', 'else',\n 'export', 'extends', 'false', 'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'new',\n 'null', 'return', 'super', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'var', 'void', 'while',\n 'with', 'yield', 'let', 'static', 'enum', 'await', 'implements', 'package', 'protected', 'interface',\n 'private', 'public', 'schema', 'table', 'string', 'number', 'boolean', 'json', 'optional', 'createSchema',\n 'relationships', 'RowOf', 'one', 'many',\n]);\n\nconst IDENT_RE = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\n\nfunction isValidIdent(s: string): boolean {\n return IDENT_RE.test(s);\n}\n\n/** A stable, collision-free identifier for each table name (used as the const). */\nfunction tableIdentifiers(tables: readonly IRTable[]): Map<string, string> {\n const out = new Map<string, string>();\n const used = new Set<string>();\n for (const t of tables) {\n let base = t.name.replace(/[^A-Za-z0-9_$]/g, '_');\n if (!IDENT_RE.test(base) || base.startsWith('_') === false && /^[0-9]/.test(base)) base = `t_${base}`;\n if (RESERVED.has(base)) base = `${base}_`;\n let ident = base;\n let i = 2;\n while (used.has(ident)) ident = `${base}${i++}`;\n used.add(ident);\n out.set(t.name, ident);\n }\n return out;\n}\n\nfunction pascal(name: string): string {\n return name\n .split(/[^A-Za-z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1))\n .join('') || 'Row';\n}\n\nfunction keyLiteral(name: string): string {\n return isValidIdent(name) && !RESERVED.has(name) ? name : JSON.stringify(name);\n}\n\nfunction fieldArray(fields: readonly string[]): string {\n return `[${fields.map((f) => JSON.stringify(f)).join(', ')}]`;\n}\n\nfunction columnExpr(c: IRColumn): string {\n const generic = c.customType ? `<${c.customType}>` : '';\n const call = `${c.type}${generic}()`;\n return c.optional ? `optional(${call})` : call;\n}\n\nfunction emitTable(t: IRTable, ident: string): string {\n const cols = t.columns.map((c) => ` ${keyLiteral(c.name)}: ${columnExpr(c)},`).join('\\n');\n const pk = (t.primaryKey.length ? t.primaryKey : ['id']).map((k) => JSON.stringify(k)).join(', ');\n return `const ${ident} = table(${JSON.stringify(t.name)})\\n .columns({\\n${cols}\\n })\\n .primaryKey(${pk});`;\n}\n\nfunction emitRelationshipsBlock(\n tableName: string,\n rels: readonly IRRelationship[],\n idents: Map<string, string>,\n): string {\n const srcIdent = idents.get(tableName)!;\n const entries = rels\n .map((r) => {\n const last = r.chain[r.chain.length - 1];\n const fn = last.cardinality === 'one' ? 'one' : 'many';\n const hops = r.chain.map((c) => {\n const destIdent = idents.get(c.destSchema);\n if (!destIdent) throw new Error(`@orbit/orm-core: relationship \"${tableName}.${r.name}\" references unknown table \"${c.destSchema}\"`);\n return `{ sourceField: ${fieldArray(c.sourceField)}, destField: ${fieldArray(c.destField)}, destSchema: ${destIdent} }`;\n });\n const body = hops.length === 1 ? `${fn}(${hops[0]})` : `${fn}(\\n ${hops.join(',\\n ')},\\n )`;\n return ` ${keyLiteral(r.name)}: ${body},`;\n })\n .join('\\n');\n return ` relationships(${srcIdent}, ({ one, many }) => ({\\n${entries}\\n })),`;\n}\n\n/** Emit the full Orbit-schema TypeScript source for an IR. */\nexport function emitSchema(ir: SchemaIR, options: EmitOptions = {}): string {\n const {\n importFrom = '@zeronsh/orbit/client',\n jsExtension = false,\n schemaName = 'schema',\n rowTypes = true,\n header = ['Generated by @orbit/orm-core — do not edit by hand.'],\n } = options;\n\n const idents = tableIdentifiers(ir.tables);\n\n // Which helpers do we actually use?\n const used = new Set<string>(['createSchema', 'table']);\n for (const t of ir.tables) {\n for (const c of t.columns) {\n used.add(c.type);\n if (c.optional) used.add('optional');\n }\n }\n const hasRels = ir.relationships.length > 0;\n if (hasRels) used.add('relationships');\n if (rowTypes) used.add('RowOf');\n\n // `RowOf` is a type-only export; keep it in a separate `import type` for clarity.\n const valueImports = [...used].filter((u) => u !== 'RowOf');\n const order = ['createSchema', 'relationships', 'table', 'string', 'number', 'boolean', 'json', 'optional'];\n valueImports.sort((a, b) => {\n const ia = order.indexOf(a);\n const ib = order.indexOf(b);\n return (ia < 0 ? 99 : ia) - (ib < 0 ? 99 : ib);\n });\n\n const spec = jsExtension ? `${importFrom}` : importFrom; // import path unchanged; subpath rarely needs .js\n const lines: string[] = [];\n\n for (const h of header) lines.push(`// ${h}`);\n if (header.length) lines.push('');\n\n lines.push(`import {`);\n for (const v of valueImports) lines.push(` ${v},`);\n lines.push(`} from ${JSON.stringify(spec)};`);\n if (rowTypes) lines.push(`import type { RowOf } from ${JSON.stringify(spec)};`);\n for (const imp of options.typeImports ?? []) {\n if (imp.names.length) lines.push(`import type { ${[...imp.names].join(', ')} } from ${JSON.stringify(imp.module)};`);\n }\n lines.push('');\n\n // Tables.\n for (const t of ir.tables) {\n lines.push(emitTable(t, idents.get(t.name)!));\n lines.push('');\n }\n\n // Schema.\n const tableList = ir.tables.map((t) => idents.get(t.name)!).join(', ');\n lines.push(`export const ${schemaName} = createSchema({`);\n lines.push(` tables: [${tableList}],`);\n if (hasRels) {\n const byTable = new Map<string, IRRelationship[]>();\n for (const r of ir.relationships) {\n const l = byTable.get(r.table) ?? [];\n l.push(r);\n byTable.set(r.table, l);\n }\n lines.push(` relationships: [`);\n for (const t of ir.tables) {\n const list = byTable.get(t.name);\n if (list && list.length) lines.push(emitRelationshipsBlock(t.name, list, idents));\n }\n lines.push(` ],`);\n }\n lines.push(`});`);\n lines.push('');\n lines.push(`export type ${pascal(schemaName)} = typeof ${schemaName};`);\n\n // Row types.\n if (rowTypes) {\n lines.push('');\n const seen = new Set<string>([pascal(schemaName)]);\n for (const t of ir.tables) {\n let name = pascal(t.name);\n while (seen.has(name)) name = `${name}Row`;\n seen.add(name);\n lines.push(`export type ${name} = RowOf<typeof ${idents.get(t.name)!}>;`);\n }\n }\n\n return lines.join('\\n') + '\\n';\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../orm-core/src/adapter.ts","../orm-core/src/build.ts","../orm-core/src/emit.ts"],"names":[],"mappings":"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","file":"chunk-KFX7HOCV.js","sourcesContent":["// The adapter contract. An ORM adapter converts its native schema into the\n// {@link SchemaIR}. That's the entire surface a new ORM has to implement —\n// everything downstream (runtime build + codegen) is shared.\n\nimport type { SchemaIR } from './ir.ts';\n\n/**\n * Converts an ORM's native schema (`Input`) into Orbit's normalized {@link SchemaIR}.\n *\n * @typeParam Input the ORM's schema object (e.g. a Drizzle `* as schema` import).\n * @typeParam Config adapter-specific options (table/column selection, casing, …).\n */\nexport interface OrmAdapter<Input = unknown, Config = unknown> {\n /** Stable adapter id, e.g. `'drizzle'`. Used in generated-file headers. */\n readonly name: string;\n /** Produce the normalized IR for the given schema + options. */\n toIR(input: Input, config?: Config): SchemaIR;\n}\n\n/** Helper to define an adapter with inferred generics. */\nexport function defineAdapter<Input, Config>(adapter: OrmAdapter<Input, Config>): OrmAdapter<Input, Config> {\n return adapter;\n}\n","// Runtime: turn a {@link SchemaIR} into a live Orbit `SchemaDef` (the same object\n// `createSchema(...)` would produce). Used by adapters' `defineOrbitSchema(...)`\n// runtime entry point. Custom `$type<>()` types are type-level only and do not\n// exist at runtime, so this produces the plain column types; for full custom-type\n// fidelity, use the codegen emitter (`emit.ts`) instead.\n\nimport {\n boolean as boolCol,\n createSchema,\n json as jsonCol,\n number as numCol,\n optional,\n relationships,\n string as strCol,\n table,\n type Column,\n type RelationshipsDef,\n type SchemaDef,\n type TableDef,\n} from '../../client/src/index.ts';\nimport type { IRColumn, IRRelationship, SchemaIR } from './ir.ts';\n\nfunction makeColumn(c: IRColumn): Column {\n const base =\n c.type === 'number' ? numCol() : c.type === 'boolean' ? boolCol() : c.type === 'json' ? jsonCol() : strCol();\n return c.optional ? optional(base as Column) : (base as Column);\n}\n\n/** Build a live Orbit schema object from the IR. */\nexport function buildOrbitSchema(ir: SchemaIR): SchemaDef {\n const tableDefs = new Map<string, TableDef>();\n const tables: TableDef[] = [];\n\n for (const t of ir.tables) {\n const columns: Record<string, Column> = {};\n for (const c of t.columns) columns[c.name] = makeColumn(c);\n const pk = (t.primaryKey.length ? t.primaryKey : ['id']) as [string, ...string[]];\n const def = table(t.name)\n .columns(columns as never)\n .primaryKey(...pk) as unknown as TableDef;\n tableDefs.set(t.name, def);\n tables.push(def);\n }\n\n // `relationships()` is per source table, and `createSchema` rejects a table\n // whose relationships are declared twice — so group all of a table's\n // relationships into one call.\n const byTable = new Map<string, IRRelationship[]>();\n for (const r of ir.relationships) {\n const list = byTable.get(r.table) ?? [];\n list.push(r);\n byTable.set(r.table, list);\n }\n\n const rels: RelationshipsDef[] = [];\n for (const [tableName, list] of byTable) {\n const src = tableDefs.get(tableName);\n if (!src) continue;\n rels.push(\n relationships(src, ({ one, many }) => {\n const out: Record<string, unknown> = {};\n for (const r of list) {\n const last = r.chain[r.chain.length - 1];\n const connect = last.cardinality === 'one' ? one : many;\n const args = r.chain.map((c) => {\n const dest = tableDefs.get(c.destSchema);\n if (!dest) throw new Error(`@orbit/orm-core: relationship \"${tableName}.${r.name}\" references unknown table \"${c.destSchema}\"`);\n return { sourceField: [...c.sourceField], destField: [...c.destField], destSchema: dest };\n });\n // `one`/`many` accept 1 (direct) or 2 (junction) hops.\n out[r.name] = (connect as (...a: unknown[]) => unknown)(...args);\n }\n return out as never;\n }),\n );\n }\n\n return createSchema({ tables: tables as never, relationships: rels as never });\n}\n","// Codegen: turn a {@link SchemaIR} into Orbit-schema TypeScript *source*. Unlike\n// the runtime builder, this preserves each column's custom `$type<>()` and enum\n// types (emitted as `string<...>()` / `json<...>()`), so the generated schema is\n// fully typed. Output is plain text; the CLI optionally runs Prettier over it.\n\nimport type { IRColumn, IRRelationship, IRTable, SchemaIR } from './ir.ts';\n\nexport interface EmitOptions {\n /** Module the Orbit schema helpers are imported from. Default `@orbit/client`. */\n readonly importFrom?: string;\n /** Append `.js` to the import (Node16/NodeNext ESM). Default false. */\n readonly jsExtension?: boolean;\n /** Exported schema const name. Default `schema`. */\n readonly schemaName?: string;\n /** Also emit `export type <Table> = RowOf<typeof <table>>` for each table. Default true. */\n readonly rowTypes?: boolean;\n /** Header comment lines (without leading `//`). */\n readonly header?: readonly string[];\n /**\n * Extra `import type { ... } from '...'` lines to prepend — used to bring in the\n * named TypeScript types referenced by resolved custom column types (e.g. a\n * `jsonb().$type<PostMeta>()` resolves to `PostMeta`, imported from the schema).\n */\n readonly typeImports?: readonly { readonly module: string; readonly names: readonly string[] }[];\n}\n\nconst RESERVED = new Set([\n 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete', 'do', 'else',\n 'export', 'extends', 'false', 'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'new',\n 'null', 'return', 'super', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'var', 'void', 'while',\n 'with', 'yield', 'let', 'static', 'enum', 'await', 'implements', 'package', 'protected', 'interface',\n 'private', 'public', 'schema', 'table', 'string', 'number', 'boolean', 'json', 'optional', 'createSchema',\n 'relationships', 'RowOf', 'one', 'many',\n]);\n\nconst IDENT_RE = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\n\nfunction isValidIdent(s: string): boolean {\n return IDENT_RE.test(s);\n}\n\n/** A stable, collision-free identifier for each table name (used as the const). */\nfunction tableIdentifiers(tables: readonly IRTable[]): Map<string, string> {\n const out = new Map<string, string>();\n const used = new Set<string>();\n for (const t of tables) {\n let base = t.name.replace(/[^A-Za-z0-9_$]/g, '_');\n if (!IDENT_RE.test(base) || base.startsWith('_') === false && /^[0-9]/.test(base)) base = `t_${base}`;\n if (RESERVED.has(base)) base = `${base}_`;\n let ident = base;\n let i = 2;\n while (used.has(ident)) ident = `${base}${i++}`;\n used.add(ident);\n out.set(t.name, ident);\n }\n return out;\n}\n\nfunction pascal(name: string): string {\n return name\n .split(/[^A-Za-z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1))\n .join('') || 'Row';\n}\n\nfunction keyLiteral(name: string): string {\n return isValidIdent(name) && !RESERVED.has(name) ? name : JSON.stringify(name);\n}\n\nfunction fieldArray(fields: readonly string[]): string {\n return `[${fields.map((f) => JSON.stringify(f)).join(', ')}]`;\n}\n\nfunction columnExpr(c: IRColumn): string {\n const generic = c.customType ? `<${c.customType}>` : '';\n const call = `${c.type}${generic}()`;\n return c.optional ? `optional(${call})` : call;\n}\n\nfunction emitTable(t: IRTable, ident: string): string {\n const cols = t.columns.map((c) => ` ${keyLiteral(c.name)}: ${columnExpr(c)},`).join('\\n');\n const pk = (t.primaryKey.length ? t.primaryKey : ['id']).map((k) => JSON.stringify(k)).join(', ');\n return `const ${ident} = table(${JSON.stringify(t.name)})\\n .columns({\\n${cols}\\n })\\n .primaryKey(${pk});`;\n}\n\nfunction emitRelationshipsBlock(\n tableName: string,\n rels: readonly IRRelationship[],\n idents: Map<string, string>,\n): string {\n const srcIdent = idents.get(tableName)!;\n const entries = rels\n .map((r) => {\n const last = r.chain[r.chain.length - 1];\n const fn = last.cardinality === 'one' ? 'one' : 'many';\n const hops = r.chain.map((c) => {\n const destIdent = idents.get(c.destSchema);\n if (!destIdent) throw new Error(`@orbit/orm-core: relationship \"${tableName}.${r.name}\" references unknown table \"${c.destSchema}\"`);\n return `{ sourceField: ${fieldArray(c.sourceField)}, destField: ${fieldArray(c.destField)}, destSchema: ${destIdent} }`;\n });\n const body = hops.length === 1 ? `${fn}(${hops[0]})` : `${fn}(\\n ${hops.join(',\\n ')},\\n )`;\n return ` ${keyLiteral(r.name)}: ${body},`;\n })\n .join('\\n');\n return ` relationships(${srcIdent}, ({ one, many }) => ({\\n${entries}\\n })),`;\n}\n\n/** Emit the full Orbit-schema TypeScript source for an IR. */\nexport function emitSchema(ir: SchemaIR, options: EmitOptions = {}): string {\n const {\n importFrom = '@zeronsh/orbit/client',\n jsExtension = false,\n schemaName = 'schema',\n rowTypes = true,\n header = ['Generated by @orbit/orm-core — do not edit by hand.'],\n } = options;\n\n const idents = tableIdentifiers(ir.tables);\n\n // Which helpers do we actually use?\n const used = new Set<string>(['createSchema', 'table']);\n for (const t of ir.tables) {\n for (const c of t.columns) {\n used.add(c.type);\n if (c.optional) used.add('optional');\n }\n }\n const hasRels = ir.relationships.length > 0;\n if (hasRels) used.add('relationships');\n if (rowTypes) used.add('RowOf');\n\n // `RowOf` is a type-only export; keep it in a separate `import type` for clarity.\n const valueImports = [...used].filter((u) => u !== 'RowOf');\n const order = ['createSchema', 'relationships', 'table', 'string', 'number', 'boolean', 'json', 'optional'];\n valueImports.sort((a, b) => {\n const ia = order.indexOf(a);\n const ib = order.indexOf(b);\n return (ia < 0 ? 99 : ia) - (ib < 0 ? 99 : ib);\n });\n\n const spec = jsExtension ? `${importFrom}` : importFrom; // import path unchanged; subpath rarely needs .js\n const lines: string[] = [];\n\n for (const h of header) lines.push(`// ${h}`);\n if (header.length) lines.push('');\n\n lines.push(`import {`);\n for (const v of valueImports) lines.push(` ${v},`);\n lines.push(`} from ${JSON.stringify(spec)};`);\n if (rowTypes) lines.push(`import type { RowOf } from ${JSON.stringify(spec)};`);\n for (const imp of options.typeImports ?? []) {\n if (imp.names.length) lines.push(`import type { ${[...imp.names].join(', ')} } from ${JSON.stringify(imp.module)};`);\n }\n lines.push('');\n\n // Tables.\n for (const t of ir.tables) {\n lines.push(emitTable(t, idents.get(t.name)!));\n lines.push('');\n }\n\n // Schema.\n const tableList = ir.tables.map((t) => idents.get(t.name)!).join(', ');\n lines.push(`export const ${schemaName} = createSchema({`);\n lines.push(` tables: [${tableList}],`);\n if (hasRels) {\n const byTable = new Map<string, IRRelationship[]>();\n for (const r of ir.relationships) {\n const l = byTable.get(r.table) ?? [];\n l.push(r);\n byTable.set(r.table, l);\n }\n lines.push(` relationships: [`);\n for (const t of ir.tables) {\n const list = byTable.get(t.name);\n if (list && list.length) lines.push(emitRelationshipsBlock(t.name, list, idents));\n }\n lines.push(` ],`);\n }\n lines.push(`});`);\n lines.push('');\n lines.push(`export type ${pascal(schemaName)} = typeof ${schemaName};`);\n\n // Row types.\n if (rowTypes) {\n lines.push('');\n const seen = new Set<string>([pascal(schemaName)]);\n for (const t of ir.tables) {\n let name = pascal(t.name);\n while (seen.has(name)) name = `${name}Row`;\n seen.add(name);\n lines.push(`export type ${name} = RowOf<typeof ${idents.get(t.name)!}>;`);\n }\n }\n\n return lines.join('\\n') + '\\n';\n}\n"]}
|
|
@@ -521,6 +521,20 @@ var Store = class {
|
|
|
521
521
|
pendingMutations() {
|
|
522
522
|
return this.#pending.map((p) => p.mutation).filter((m) => m !== void 0);
|
|
523
523
|
}
|
|
524
|
+
/** Drop a single pending mutation by id — e.g. an undeliverable "poison" mutation
|
|
525
|
+
* the server keeps rejecting (oversized frame). Removes its optimistic overlay and,
|
|
526
|
+
* on the next flush, its persisted `p/` entry, so it is neither replayed on reconnect
|
|
527
|
+
* nor restored on reload. Returns whether such a mutation was present. */
|
|
528
|
+
dropPending(id) {
|
|
529
|
+
const idx = this.#pending.findIndex((p2) => p2.id === id);
|
|
530
|
+
if (idx === -1) return false;
|
|
531
|
+
const [p] = this.#pending.splice(idx, 1);
|
|
532
|
+
this.#dirtyPending.add(p.id);
|
|
533
|
+
for (const op of p.ops) this.#touch(op.tableName, this.#key(op.tableName, op.value));
|
|
534
|
+
this.#scheduleFlush();
|
|
535
|
+
this.#notify();
|
|
536
|
+
return true;
|
|
537
|
+
}
|
|
524
538
|
/** All rows for `table` with the optimistic overlay applied. */
|
|
525
539
|
effectiveRows(table2) {
|
|
526
540
|
const merged = new Map(this.#table(table2));
|
|
@@ -638,6 +652,22 @@ function typeRank(v) {
|
|
|
638
652
|
return 4;
|
|
639
653
|
}
|
|
640
654
|
}
|
|
655
|
+
function compareStringsUtf8(a, b) {
|
|
656
|
+
if (a === b) return 0;
|
|
657
|
+
const ia = a[Symbol.iterator]();
|
|
658
|
+
const ib = b[Symbol.iterator]();
|
|
659
|
+
for (; ; ) {
|
|
660
|
+
const na = ia.next();
|
|
661
|
+
const nb = ib.next();
|
|
662
|
+
if (na.done) return nb.done ? 0 : -1;
|
|
663
|
+
if (nb.done) return 1;
|
|
664
|
+
if (na.value !== nb.value) {
|
|
665
|
+
const ca = na.value.codePointAt(0);
|
|
666
|
+
const cb = nb.value.codePointAt(0);
|
|
667
|
+
if (ca !== cb) return ca < cb ? -1 : 1;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
641
671
|
function compareValues(a, b) {
|
|
642
672
|
if (isNull(a) && isNull(b)) return 0;
|
|
643
673
|
if (isNull(a)) return -1;
|
|
@@ -645,7 +675,7 @@ function compareValues(a, b) {
|
|
|
645
675
|
if (typeof a === typeof b) {
|
|
646
676
|
if (typeof a === "number") return a < b ? -1 : a > b ? 1 : 0;
|
|
647
677
|
if (typeof a === "boolean") return a === b ? 0 : a ? 1 : -1;
|
|
648
|
-
if (typeof a === "string") return a
|
|
678
|
+
if (typeof a === "string") return compareStringsUtf8(a, b);
|
|
649
679
|
return 0;
|
|
650
680
|
}
|
|
651
681
|
return typeRank(a) - typeRank(b);
|
|
@@ -1874,10 +1904,29 @@ var Orbit = class {
|
|
|
1874
1904
|
ws.addEventListener("message", (ev) => {
|
|
1875
1905
|
this.#onMessage(JSON.parse(ev.data));
|
|
1876
1906
|
});
|
|
1877
|
-
ws.addEventListener("close", () => {
|
|
1907
|
+
ws.addEventListener("close", (ev) => {
|
|
1878
1908
|
this.#connecting = false;
|
|
1879
1909
|
if (this.#ws === ws) this.#ws = void 0;
|
|
1880
1910
|
this.#poke = null;
|
|
1911
|
+
if (ev.code === 1009 && this.#unconfirmedPushes.size > 0) {
|
|
1912
|
+
let poisonId;
|
|
1913
|
+
let maxSize = -1;
|
|
1914
|
+
for (const [id, msg] of this.#unconfirmedPushes) {
|
|
1915
|
+
const size = JSON.stringify(msg).length;
|
|
1916
|
+
if (size > maxSize) {
|
|
1917
|
+
maxSize = size;
|
|
1918
|
+
poisonId = id;
|
|
1919
|
+
}
|
|
1920
|
+
}
|
|
1921
|
+
if (poisonId !== void 0) {
|
|
1922
|
+
this.#unconfirmedPushes.delete(poisonId);
|
|
1923
|
+
this.#store.dropPending(poisonId);
|
|
1924
|
+
this.#onError?.({
|
|
1925
|
+
kind: "mutation-too-large",
|
|
1926
|
+
message: `dropped mutation ${poisonId} (~${maxSize} bytes): server closed with code 1009 (message too big)`
|
|
1927
|
+
});
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1881
1930
|
this.#scheduleReconnect();
|
|
1882
1931
|
});
|
|
1883
1932
|
ws.addEventListener("error", () => ws.close());
|
|
@@ -1998,5 +2047,5 @@ var IDBKV = class {
|
|
|
1998
2047
|
};
|
|
1999
2048
|
|
|
2000
2049
|
export { IDBKV, MaterializedView, MemoryKV, MemorySource, MemorySourceProvider, Orbit, PROTOCOL_VERSION, Query, QueryManager, SchemaQuery, SourceConnection, Store, StoreProvider, TypedQuery, View, boolean, buildPipeline, buildSchemaQueries, collectOps, compareValues, createBuilder, createOrbitApi, createSchema, defineMutation, defineQuery, evaluate, hashAST, hashString, json, nodeToRow, number, optional, parseTTL, relationships, string, table, tablesOf, unwrapSingular, validateArgs, valuesEqual };
|
|
2001
|
-
//# sourceMappingURL=chunk-
|
|
2002
|
-
//# sourceMappingURL=chunk-
|
|
2050
|
+
//# sourceMappingURL=chunk-LUFJQUF4.js.map
|
|
2051
|
+
//# sourceMappingURL=chunk-LUFJQUF4.js.map
|