@syncular/typegen 0.1.2 → 0.2.0

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.
Files changed (99) hide show
  1. package/README.md +436 -94
  2. package/dist/cli.d.ts +1 -2
  3. package/dist/cli.js +159 -73
  4. package/dist/emit-dart.d.ts +17 -0
  5. package/dist/emit-dart.js +201 -0
  6. package/dist/emit-kotlin.d.ts +16 -0
  7. package/dist/emit-kotlin.js +201 -0
  8. package/dist/emit-queries-dart.d.ts +2 -0
  9. package/dist/emit-queries-dart.js +160 -0
  10. package/dist/emit-queries-kotlin.d.ts +2 -0
  11. package/dist/emit-queries-kotlin.js +162 -0
  12. package/dist/emit-queries-swift.d.ts +2 -0
  13. package/dist/emit-queries-swift.js +146 -0
  14. package/dist/emit-queries.d.ts +2 -0
  15. package/dist/emit-queries.js +129 -0
  16. package/dist/emit-swift.d.ts +18 -0
  17. package/dist/emit-swift.js +235 -0
  18. package/dist/emit.d.ts +16 -0
  19. package/dist/emit.js +191 -0
  20. package/dist/errors.d.ts +6 -0
  21. package/dist/errors.js +10 -0
  22. package/dist/generate.d.ts +53 -18
  23. package/dist/generate.js +391 -77
  24. package/dist/index.d.ts +17 -14
  25. package/dist/index.js +16 -13
  26. package/dist/init.d.ts +12 -0
  27. package/dist/init.js +85 -0
  28. package/dist/ir.d.ts +90 -0
  29. package/dist/ir.js +94 -0
  30. package/dist/manifest.d.ts +76 -0
  31. package/dist/manifest.js +303 -0
  32. package/dist/query.d.ts +96 -0
  33. package/dist/query.js +719 -0
  34. package/dist/sql.d.ts +13 -0
  35. package/dist/sql.js +440 -0
  36. package/package.json +14 -34
  37. package/src/cli.ts +161 -82
  38. package/src/emit-dart.ts +245 -0
  39. package/src/emit-kotlin.ts +257 -0
  40. package/src/emit-queries-dart.ts +203 -0
  41. package/src/emit-queries-kotlin.ts +209 -0
  42. package/src/emit-queries-swift.ts +198 -0
  43. package/src/emit-queries.ts +183 -0
  44. package/src/emit-swift.ts +295 -0
  45. package/src/emit.ts +239 -0
  46. package/src/errors.ts +11 -0
  47. package/src/generate.ts +574 -105
  48. package/src/index.ts +16 -13
  49. package/src/init.ts +100 -0
  50. package/src/ir.ts +197 -0
  51. package/src/manifest.ts +445 -0
  52. package/src/query.ts +918 -0
  53. package/src/sql.ts +533 -0
  54. package/dist/app-contract.d.ts +0 -154
  55. package/dist/app-contract.d.ts.map +0 -1
  56. package/dist/app-contract.js +0 -250
  57. package/dist/app-contract.js.map +0 -1
  58. package/dist/checksums.d.ts +0 -6
  59. package/dist/checksums.d.ts.map +0 -1
  60. package/dist/checksums.js +0 -173
  61. package/dist/checksums.js.map +0 -1
  62. package/dist/cli.d.ts.map +0 -1
  63. package/dist/cli.js.map +0 -1
  64. package/dist/generate.d.ts.map +0 -1
  65. package/dist/generate.js.map +0 -1
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/introspect-postgres.d.ts +0 -8
  69. package/dist/introspect-postgres.d.ts.map +0 -1
  70. package/dist/introspect-postgres.js +0 -94
  71. package/dist/introspect-postgres.js.map +0 -1
  72. package/dist/introspect-sqlite.d.ts +0 -10
  73. package/dist/introspect-sqlite.d.ts.map +0 -1
  74. package/dist/introspect-sqlite.js +0 -97
  75. package/dist/introspect-sqlite.js.map +0 -1
  76. package/dist/introspect.d.ts +0 -8
  77. package/dist/introspect.d.ts.map +0 -1
  78. package/dist/introspect.js +0 -18
  79. package/dist/introspect.js.map +0 -1
  80. package/dist/map-types.d.ts +0 -20
  81. package/dist/map-types.d.ts.map +0 -1
  82. package/dist/map-types.js +0 -151
  83. package/dist/map-types.js.map +0 -1
  84. package/dist/render.d.ts +0 -23
  85. package/dist/render.d.ts.map +0 -1
  86. package/dist/render.js +0 -140
  87. package/dist/render.js.map +0 -1
  88. package/dist/types.d.ts +0 -122
  89. package/dist/types.d.ts.map +0 -1
  90. package/dist/types.js +0 -5
  91. package/dist/types.js.map +0 -1
  92. package/src/app-contract.ts +0 -531
  93. package/src/checksums.ts +0 -257
  94. package/src/introspect-postgres.ts +0 -149
  95. package/src/introspect-sqlite.ts +0 -156
  96. package/src/introspect.ts +0 -36
  97. package/src/map-types.ts +0 -189
  98. package/src/render.ts +0 -196
  99. package/src/types.ts +0 -137
@@ -1,250 +0,0 @@
1
- import { mkdir, writeFile } from 'node:fs/promises';
2
- import { dirname, resolve } from 'node:path';
3
- import { fileURLToPath, pathToFileURL } from 'node:url';
4
- import { introspectCurrentSchema } from './introspect.js';
5
- export function defineSyncularClient(options) {
6
- return {
7
- ...options,
8
- kind: 'syncular-client-contract',
9
- };
10
- }
11
- export function isSyncularClientContract(value) {
12
- return (typeof value === 'object' &&
13
- value !== null &&
14
- value.kind === 'syncular-client-contract' &&
15
- typeof value.tables === 'object' &&
16
- value.tables !== null);
17
- }
18
- export function syncedTable(options) {
19
- return { ...options };
20
- }
21
- export function scope(name, options) {
22
- return {
23
- name,
24
- column: options.column ?? name,
25
- source: options.source,
26
- required: options.required,
27
- };
28
- }
29
- export function yjsText(options) {
30
- return { ...options, kind: 'text' };
31
- }
32
- export function encryptedField(field, options = {}) {
33
- return { field, ...options };
34
- }
35
- export function countByReadModel(options) {
36
- return { ...options, kind: 'countBy' };
37
- }
38
- export function toSyncularCodegenConfig(contract) {
39
- const config = {
40
- tables: Object.fromEntries(Object.values(contract.tables).map((table) => [
41
- table.table,
42
- toCodegenTable(table),
43
- ])),
44
- };
45
- for (const key of CODEGEN_PATH_KEYS) {
46
- const value = contract[key];
47
- if (value !== undefined) {
48
- config[key] = value;
49
- }
50
- }
51
- if (contract.localOnlyTables && contract.localOnlyTables.length > 0) {
52
- config.localOnlyTables = [...contract.localOnlyTables];
53
- }
54
- if (contract.localReadModels && contract.localReadModels.length > 0) {
55
- config.localReadModels = contract.localReadModels.map((model) => ({
56
- name: model.name,
57
- kind: model.kind,
58
- sourceTable: model.sourceTable,
59
- outputTable: model.outputTable,
60
- dimensions: [...model.dimensions],
61
- countColumn: model.countColumn ?? 'row_count',
62
- }));
63
- }
64
- if (contract.clientSchemaSupport) {
65
- config.clientSchemaSupport = {
66
- ...(contract.clientSchemaSupport.minSupported !== undefined
67
- ? { minSupported: contract.clientSchemaSupport.minSupported }
68
- : {}),
69
- ...(contract.clientSchemaSupport.supported !== undefined
70
- ? { supported: [...contract.clientSchemaSupport.supported] }
71
- : {}),
72
- };
73
- }
74
- return config;
75
- }
76
- export function toSyncularCodegenJson(contract, space = 2) {
77
- return `${JSON.stringify(toSyncularCodegenConfig(contract), null, space)}\n`;
78
- }
79
- export async function writeSyncularCodegenJson(contract, outputPath = 'generated/syncular.codegen.json', space = 2) {
80
- if (typeof outputPath === 'string') {
81
- await mkdir(dirname(outputPath), { recursive: true });
82
- }
83
- else if (outputPath.protocol === 'file:') {
84
- await mkdir(dirname(fileURLToPath(outputPath)), { recursive: true });
85
- }
86
- await writeFile(outputPath, toSyncularCodegenJson(contract, space));
87
- }
88
- export async function loadSyncularClientContract(options) {
89
- const exportName = options.exportName ?? 'app';
90
- const module = (await import(syncularContractModuleSpecifier(options.modulePath)));
91
- const contract = module[exportName];
92
- if (!isSyncularClientContract(contract)) {
93
- throw new Error(`Syncular app contract module must export ${exportName} from defineSyncularClient(...)`);
94
- }
95
- return contract;
96
- }
97
- export async function writeSyncularCodegenJsonFromModule(options) {
98
- const contract = await loadSyncularClientContract(options);
99
- await writeSyncularCodegenJson(contract, options.outputPath ?? 'generated/syncular.codegen.json', options.space);
100
- return contract;
101
- }
102
- export async function scaffoldSyncularClientContract(options) {
103
- const schema = await introspectCurrentSchema(options.migrations, options.dialect ?? 'sqlite', options.tables ? [...options.tables] : undefined);
104
- const tables = Object.fromEntries(schema.tables.map((table) => {
105
- const serverVersion = resolveServerVersionColumn(table, options.serverVersionColumn);
106
- assertColumnExists(table, serverVersion, 'server version');
107
- const synced = syncedTable({
108
- table: table.name,
109
- subscriptionId: resolveStringOption(table.name, options.subscriptionId, `sub-${table.name}`),
110
- serverVersion,
111
- scopes: options.scopes?.[table.name] ?? [],
112
- sqliteWithoutRowid: resolveBooleanOption(table, options.sqliteWithoutRowid),
113
- });
114
- return [table.name, synced];
115
- }));
116
- return defineSyncularClient({
117
- ...pickCodegenPathOptions(options),
118
- clientSchemaSupport: options.clientSchemaSupport,
119
- tables,
120
- });
121
- }
122
- const CODEGEN_PATH_KEYS = [
123
- 'schemaOutputPath',
124
- 'typescriptOutputPath',
125
- 'typescriptServerOutputPath',
126
- 'typescriptRuntimeImportPath',
127
- 'rustRuntimeCratePath',
128
- 'nativeSwiftOutputPath',
129
- 'nativeKotlinOutputPath',
130
- 'nativeAndroidKotlinOutputPath',
131
- 'nativeAndroidKotlinPackage',
132
- ];
133
- function toCodegenTable(table) {
134
- const config = {
135
- serverVersionColumn: table.serverVersion,
136
- };
137
- if (table.subscriptionId !== undefined) {
138
- config.subscriptionId = table.subscriptionId;
139
- }
140
- if (table.subscriptionParams !== undefined) {
141
- config.subscriptionParams = table.subscriptionParams;
142
- }
143
- if (table.scopes && table.scopes.length > 0) {
144
- config.scopes = table.scopes.map((item) => ({
145
- ...(item.name !== undefined ? { name: item.name } : {}),
146
- column: item.column,
147
- source: item.source,
148
- ...(item.required !== undefined ? { required: item.required } : {}),
149
- }));
150
- }
151
- if (table.blobColumns && table.blobColumns.length > 0) {
152
- config.blobColumns = [...table.blobColumns];
153
- }
154
- const crdtFields = [
155
- ...Object.entries(table.crdt ?? {}).map(([field, definition]) => ({
156
- field,
157
- ...definition,
158
- })),
159
- ...(table.crdtYjsFields ?? []),
160
- ];
161
- if (crdtFields.length > 0) {
162
- config.crdtYjsFields = crdtFields.map((field) => ({
163
- field: field.field ?? '',
164
- stateColumn: field.stateColumn,
165
- ...(field.containerKey !== undefined
166
- ? { containerKey: field.containerKey }
167
- : {}),
168
- ...(field.rowIdField !== undefined
169
- ? { rowIdField: field.rowIdField }
170
- : {}),
171
- ...(field.kind !== undefined ? { kind: field.kind } : {}),
172
- ...(field.syncMode !== undefined ? { syncMode: field.syncMode } : {}),
173
- }));
174
- }
175
- if (table.encryptedFields && table.encryptedFields.length > 0) {
176
- config.encryptedFields = table.encryptedFields.map((field) => ({
177
- field: field.field,
178
- ...(field.scope !== undefined ? { scope: field.scope } : {}),
179
- ...(field.rowIdField !== undefined
180
- ? { rowIdField: field.rowIdField }
181
- : {}),
182
- }));
183
- }
184
- if (table.softDelete !== undefined) {
185
- config.softDeleteColumn = table.softDelete;
186
- }
187
- if (table.sqliteWithoutRowid !== undefined) {
188
- config.sqliteWithoutRowid = table.sqliteWithoutRowid;
189
- }
190
- return config;
191
- }
192
- function pickCodegenPathOptions(options) {
193
- const picked = {};
194
- for (const key of CODEGEN_PATH_KEYS) {
195
- const value = options[key];
196
- if (value !== undefined) {
197
- picked[key] = value;
198
- }
199
- }
200
- return picked;
201
- }
202
- function syncularContractModuleSpecifier(modulePath) {
203
- if (modulePath instanceof URL)
204
- return modulePath.href;
205
- try {
206
- const parsed = new URL(modulePath);
207
- if (parsed.protocol === 'file:')
208
- return parsed.href;
209
- }
210
- catch {
211
- // Treat non-URL strings as filesystem paths or package specifiers below.
212
- }
213
- if (syncularLooksLikeLocalModulePath(modulePath)) {
214
- return pathToFileURL(resolve(modulePath)).href;
215
- }
216
- return modulePath;
217
- }
218
- function syncularLooksLikeLocalModulePath(modulePath) {
219
- return (modulePath.startsWith('.') ||
220
- modulePath.startsWith('/') ||
221
- (!modulePath.startsWith('@') && modulePath.includes('/')) ||
222
- /\.(?:cjs|cts|js|jsx|mjs|mts|ts|tsx)$/.test(modulePath));
223
- }
224
- function resolveServerVersionColumn(table, option) {
225
- if (typeof option === 'function')
226
- return option(table);
227
- if (typeof option === 'string')
228
- return option;
229
- return option?.[table.name] ?? 'server_version';
230
- }
231
- function resolveStringOption(table, option, fallback) {
232
- if (typeof option === 'function')
233
- return option(table);
234
- if (typeof option === 'string')
235
- return option;
236
- return option?.[table] ?? fallback;
237
- }
238
- function resolveBooleanOption(table, option) {
239
- if (typeof option === 'function')
240
- return option(table);
241
- if (typeof option === 'boolean')
242
- return option;
243
- return option?.[table.name];
244
- }
245
- function assertColumnExists(table, column, label) {
246
- if (table.columns.some((candidate) => candidate.name === column))
247
- return;
248
- throw new Error(`Cannot scaffold Syncular table ${table.name}: ${label} column ${column} does not exist`);
249
- }
250
- //# sourceMappingURL=app-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-contract.js","sourceRoot":"","sources":["../src/app-contract.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { DefinedMigrations, MigrationChecksums } from '@syncular/migrations';
2
- import type { GenerateMigrationChecksumsOptions, GenerateMigrationChecksumsResult, TypegenDialect } from './types';
3
- export declare function createMigrationChecksums<DB>(migrations: DefinedMigrations<DB>, dialect?: TypegenDialect): Promise<MigrationChecksums>;
4
- export declare function renderMigrationChecksums(checksums: MigrationChecksums): string;
5
- export declare function generateMigrationChecksums<DB>(options: GenerateMigrationChecksumsOptions<DB>): Promise<GenerateMigrationChecksumsResult>;
6
- //# sourceMappingURL=checksums.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checksums.d.ts","sourceRoot":"","sources":["../src/checksums.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,iCAAiC,EACjC,gCAAgC,EAChC,cAAc,EACf,MAAM,SAAS,CAAC;AAqLjB,wBAAsB,wBAAwB,CAAC,EAAE,EAC/C,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,OAAO,GAAE,cAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,GAC5B,MAAM,CAoBR;AAED,wBAAsB,0BAA0B,CAAC,EAAE,EACjD,OAAO,EAAE,iCAAiC,CAAC,EAAE,CAAC,GAC7C,OAAO,CAAC,gCAAgC,CAAC,CAc3C"}
package/dist/checksums.js DELETED
@@ -1,173 +0,0 @@
1
- import { mkdir, writeFile } from 'node:fs/promises';
2
- import { dirname } from 'node:path';
3
- import { PGlite } from '@electric-sql/pglite';
4
- import { Kysely, SqliteDialect } from 'kysely';
5
- import { PGliteDialect } from 'kysely-pglite-dialect';
6
- const runtimeGlobals = globalThis;
7
- const isBun = typeof runtimeGlobals.Bun !== 'undefined';
8
- function hashString(value) {
9
- let hash = 0;
10
- for (let index = 0; index < value.length; index += 1) {
11
- hash = (hash * 31 + value.charCodeAt(index)) >>> 0;
12
- }
13
- return hash.toString(16).padStart(8, '0');
14
- }
15
- function normalizeParameterValue(value) {
16
- if (typeof value === 'bigint') {
17
- return { type: 'bigint', value: value.toString() };
18
- }
19
- if (value instanceof Date) {
20
- return { type: 'date', value: value.toISOString() };
21
- }
22
- if (value instanceof Uint8Array) {
23
- return { type: 'bytes', value: Array.from(value) };
24
- }
25
- if (Array.isArray(value)) {
26
- return value.map((entry) => normalizeParameterValue(entry));
27
- }
28
- if (value && typeof value === 'object') {
29
- return Object.fromEntries(Object.entries(value)
30
- .sort(([left], [right]) => left.localeCompare(right))
31
- .map(([key, entry]) => [key, normalizeParameterValue(entry)]));
32
- }
33
- return value;
34
- }
35
- function serializeQuery(query) {
36
- return JSON.stringify({
37
- sql: query.sql,
38
- parameters: query.parameters.map((value) => normalizeParameterValue(value)),
39
- });
40
- }
41
- function hashTrace(entries) {
42
- return hashString(entries.join('\n'));
43
- }
44
- function quoteTsString(value) {
45
- return `'${value.replaceAll('\\', '\\\\').replaceAll("'", "\\'")}'`;
46
- }
47
- async function createSqliteTraceDb(traceEntries) {
48
- if (isBun) {
49
- const bunSqliteSpecifier = 'bun:sqlite';
50
- const sqliteModule = await import(bunSqliteSpecifier);
51
- const dialectModule = await import('kysely-bun-sqlite');
52
- const sqliteDb = new sqliteModule.Database(':memory:');
53
- const db = new Kysely({
54
- dialect: new dialectModule.BunSqliteDialect({
55
- database: sqliteDb,
56
- }),
57
- log(event) {
58
- if (event.level === 'query') {
59
- traceEntries.push(serializeQuery(event.query));
60
- }
61
- },
62
- });
63
- return { db, sqliteDb };
64
- }
65
- const { default: Database } = await import('better-sqlite3');
66
- const sqliteDb = new Database(':memory:');
67
- const db = new Kysely({
68
- dialect: new SqliteDialect({
69
- database: sqliteDb,
70
- }),
71
- log(event) {
72
- if (event.level === 'query') {
73
- traceEntries.push(serializeQuery(event.query));
74
- }
75
- },
76
- });
77
- return { db, sqliteDb };
78
- }
79
- async function createPostgresTraceDb(traceEntries) {
80
- const pglite = await PGlite.create();
81
- const db = new Kysely({
82
- dialect: new PGliteDialect(pglite),
83
- log(event) {
84
- if (event.level === 'query') {
85
- traceEntries.push(serializeQuery(event.query));
86
- }
87
- },
88
- });
89
- return {
90
- db,
91
- dispose: async () => {
92
- if (!pglite.closed) {
93
- await pglite.close();
94
- }
95
- },
96
- };
97
- }
98
- async function createTraceDb(dialect, traceEntries) {
99
- if (dialect === 'postgres') {
100
- return createPostgresTraceDb(traceEntries);
101
- }
102
- const { db, sqliteDb } = await createSqliteTraceDb(traceEntries);
103
- return {
104
- db,
105
- dispose: async () => {
106
- sqliteDb.close();
107
- },
108
- };
109
- }
110
- async function computeMigrationChecksum(migrations, targetMigration, dialect) {
111
- const traceEntries = [];
112
- const { db, dispose } = await createTraceDb(dialect, traceEntries);
113
- try {
114
- for (const migration of migrations.migrations) {
115
- if (migration.version > targetMigration.version) {
116
- break;
117
- }
118
- if (migration.version === targetMigration.version) {
119
- traceEntries.length = 0;
120
- }
121
- await migration.up(db);
122
- if (migration.version === targetMigration.version) {
123
- break;
124
- }
125
- }
126
- return hashTrace(traceEntries);
127
- }
128
- finally {
129
- await db.destroy();
130
- await dispose();
131
- }
132
- }
133
- export async function createMigrationChecksums(migrations, dialect = 'sqlite') {
134
- const checksums = {};
135
- for (const migration of migrations.migrations) {
136
- if (migration.checksum === 'disabled') {
137
- continue;
138
- }
139
- checksums[String(migration.version)] = await computeMigrationChecksum(migrations, migration, dialect);
140
- }
141
- return checksums;
142
- }
143
- export function renderMigrationChecksums(checksums) {
144
- const entries = Object.entries(checksums)
145
- .sort(([left], [right]) => Number(left) - Number(right))
146
- .map(([version, checksum]) => ` ${quoteTsString(version)}: ${quoteTsString(checksum)},`)
147
- .join('\n');
148
- return [
149
- '/**',
150
- ' * Generated by @syncular/typegen.',
151
- ' * Do not edit by hand.',
152
- ' */',
153
- '',
154
- 'export const migrationChecksums = {',
155
- entries,
156
- '} as const;',
157
- '',
158
- ].join('\n');
159
- }
160
- export async function generateMigrationChecksums(options) {
161
- const { migrations, output, dialect = 'sqlite' } = options;
162
- const checksums = await createMigrationChecksums(migrations, dialect);
163
- const code = renderMigrationChecksums(checksums);
164
- await mkdir(dirname(output), { recursive: true });
165
- await writeFile(output, code, 'utf-8');
166
- return {
167
- outputPath: output,
168
- currentVersion: migrations.currentVersion,
169
- checksumCount: Object.keys(checksums).length,
170
- code,
171
- };
172
- }
173
- //# sourceMappingURL=checksums.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checksums.js","sourceRoot":"","sources":["../src/checksums.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AASxB,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;YAChD,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,GAAG,+CAA+C,KAAK,CAAC,OAAO,EAAE,CACzF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,GAAG,mBAAmB,OAAO,CAAC,GAAG,iCAAiC,OAAO,CAAC,GAAG,EAAE,CAC3F,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,kCAAkC,CAAC;QACvC,UAAU,EAAE,OAAO,CAAC,GAAG;QACvB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,GAAG;KACxB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAc;IAC5C,IAAI,GAAuB,CAAC;IAC5B,IAAI,GAAuB,CAAC;IAC5B,IAAI,UAA8B,CAAC;IACnC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,iBAAiB,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG;QAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;QACL,GAAG;QACH,GAAG,EAAE,GAAG,IAAI,wBAAwB,CAAC,GAAG,CAAC;QACzC,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,KAAa,EAAE,MAAc;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,iBAAiB,CAAC,GAAG,MAAM,mBAAmB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CACX;QACE,QAAQ;QACR,8HAA8H;KAC/H,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AA4CjB;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,EAAE,EACpC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CA+C9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @syncular/typegen - PostgreSQL schema introspection via PGlite
3
- */
4
- import type { DefinedMigrations } from '@syncular/migrations';
5
- import type { VersionedSchema } from './types';
6
- export declare function introspectPostgresAllVersions<DB = unknown>(migrations: DefinedMigrations<DB>, filterTables?: string[]): Promise<VersionedSchema[]>;
7
- export declare function introspectPostgresCurrentSchema<DB = unknown>(migrations: DefinedMigrations<DB>, filterTables?: string[]): Promise<VersionedSchema>;
8
- //# sourceMappingURL=introspect-postgres.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspect-postgres.d.ts","sourceRoot":"","sources":["../src/introspect-postgres.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,SAAS,CAAC;AAiH5D,wBAAsB,6BAA6B,CAAC,EAAE,GAAG,OAAO,EAC9D,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;AAED,wBAAsB,+BAA+B,CAAC,EAAE,GAAG,OAAO,EAChE,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,CAAC,CAM1B"}
@@ -1,94 +0,0 @@
1
- /**
2
- * @syncular/typegen - PostgreSQL schema introspection via PGlite
3
- */
4
- import { PGlite } from '@electric-sql/pglite';
5
- import { Kysely } from 'kysely';
6
- import { PGliteDialect } from 'kysely-pglite-dialect';
7
- async function introspectPg(pglite) {
8
- const colResult = await pglite.query(`SELECT table_name, column_name, data_type, udt_name,
9
- is_nullable, column_default, ordinal_position
10
- FROM information_schema.columns
11
- WHERE table_schema = 'public'
12
- ORDER BY table_name, ordinal_position`);
13
- const pkResult = await pglite.query(`SELECT kcu.column_name, tc.table_name
14
- FROM information_schema.table_constraints tc
15
- JOIN information_schema.key_column_usage kcu
16
- ON tc.constraint_name = kcu.constraint_name
17
- AND tc.table_schema = kcu.table_schema
18
- WHERE tc.constraint_type = 'PRIMARY KEY' AND tc.table_schema = 'public'`);
19
- const pkSet = new Set(pkResult.rows.map((r) => `${r.table_name}.${r.column_name}`));
20
- const tableMap = new Map();
21
- for (const col of colResult.rows) {
22
- let table = tableMap.get(col.table_name);
23
- if (!table) {
24
- table = { name: col.table_name, columns: [] };
25
- tableMap.set(col.table_name, table);
26
- }
27
- const isPrimaryKey = pkSet.has(`${col.table_name}.${col.column_name}`);
28
- const nullable = col.is_nullable === 'YES' && !isPrimaryKey;
29
- const hasDefault = col.column_default !== null;
30
- // Use udt_name for more precise type info (e.g. int4 instead of "integer")
31
- // For arrays, data_type is "ARRAY" and udt_name starts with "_"
32
- let sqlType;
33
- if (col.data_type === 'ARRAY' && col.udt_name.startsWith('_')) {
34
- // Convert _int4 → int4[], _text → text[], etc.
35
- sqlType = `${col.udt_name.slice(1)}[]`;
36
- }
37
- else if (col.data_type === 'USER-DEFINED') {
38
- sqlType = col.udt_name;
39
- }
40
- else {
41
- sqlType = col.udt_name;
42
- }
43
- table.columns.push({
44
- name: col.column_name,
45
- sqlType,
46
- tsType: '', // resolved later by map-types
47
- nullable,
48
- isPrimaryKey,
49
- hasDefault,
50
- });
51
- }
52
- // Sort tables by name for deterministic output
53
- return [...tableMap.values()].sort((a, b) => a.name.localeCompare(b.name));
54
- }
55
- async function introspectAtVersion(migrations, targetVersion, filterTables) {
56
- const pglite = await PGlite.create();
57
- const db = new Kysely({
58
- dialect: new PGliteDialect(pglite),
59
- });
60
- try {
61
- for (const migration of migrations.migrations) {
62
- if (migration.version > targetVersion)
63
- break;
64
- await migration.up(db);
65
- }
66
- let tables = await introspectPg(pglite);
67
- if (filterTables && filterTables.length > 0) {
68
- const filterSet = new Set(filterTables);
69
- tables = tables.filter((t) => filterSet.has(t.name));
70
- }
71
- return {
72
- version: targetVersion,
73
- tables,
74
- };
75
- }
76
- finally {
77
- await db.destroy();
78
- if (!pglite.closed) {
79
- await pglite.close();
80
- }
81
- }
82
- }
83
- export async function introspectPostgresAllVersions(migrations, filterTables) {
84
- const schemas = [];
85
- for (const migration of migrations.migrations) {
86
- const schema = await introspectAtVersion(migrations, migration.version, filterTables);
87
- schemas.push(schema);
88
- }
89
- return schemas;
90
- }
91
- export async function introspectPostgresCurrentSchema(migrations, filterTables) {
92
- return introspectAtVersion(migrations, migrations.currentVersion, filterTables);
93
- }
94
- //# sourceMappingURL=introspect-postgres.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspect-postgres.js","sourceRoot":"","sources":["../src/introspect-postgres.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * @syncular/typegen - SQLite schema introspection
3
- *
4
- * Works with both better-sqlite3 (Node.js) and bun:sqlite (Bun runtime).
5
- */
6
- import type { DefinedMigrations } from '@syncular/migrations';
7
- import type { VersionedSchema } from './types';
8
- export declare function introspectSqliteAllVersions<DB = unknown>(migrations: DefinedMigrations<DB>, filterTables?: string[]): Promise<VersionedSchema[]>;
9
- export declare function introspectSqliteCurrentSchema<DB = unknown>(migrations: DefinedMigrations<DB>, filterTables?: string[]): Promise<VersionedSchema>;
10
- //# sourceMappingURL=introspect-sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspect-sqlite.d.ts","sourceRoot":"","sources":["../src/introspect-sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,SAAS,CAAC;AAwH5D,wBAAsB,2BAA2B,CAAC,EAAE,GAAG,OAAO,EAC5D,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;AAED,wBAAsB,6BAA6B,CAAC,EAAE,GAAG,OAAO,EAC9D,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,CAAC,CAM1B"}