@zmdb/migrations 1.0.0-beta.1

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 (114) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +36 -0
  3. package/dist/declarations/emit.d.ts +23 -0
  4. package/dist/declarations/emit.d.ts.map +1 -0
  5. package/dist/declarations/emit.js +581 -0
  6. package/dist/declarations/emit.js.map +1 -0
  7. package/dist/declarations/index.d.ts +3 -0
  8. package/dist/declarations/index.d.ts.map +1 -0
  9. package/dist/declarations/index.js +3 -0
  10. package/dist/declarations/index.js.map +1 -0
  11. package/dist/declarations/tagged-property.d.ts +33 -0
  12. package/dist/declarations/tagged-property.d.ts.map +1 -0
  13. package/dist/declarations/tagged-property.js +148 -0
  14. package/dist/declarations/tagged-property.js.map +1 -0
  15. package/dist/embedded.d.ts +25 -0
  16. package/dist/embedded.d.ts.map +1 -0
  17. package/dist/embedded.js +133 -0
  18. package/dist/embedded.js.map +1 -0
  19. package/dist/file-io.d.ts +15 -0
  20. package/dist/file-io.d.ts.map +1 -0
  21. package/dist/file-io.js +92 -0
  22. package/dist/file-io.js.map +1 -0
  23. package/dist/files.d.ts +11 -0
  24. package/dist/files.d.ts.map +1 -0
  25. package/dist/files.js +10 -0
  26. package/dist/files.js.map +1 -0
  27. package/dist/index.d.ts +70 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +350 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/introspect/common.d.ts +26 -0
  32. package/dist/introspect/common.d.ts.map +1 -0
  33. package/dist/introspect/common.js +155 -0
  34. package/dist/introspect/common.js.map +1 -0
  35. package/dist/introspect/drift.d.ts +45 -0
  36. package/dist/introspect/drift.d.ts.map +1 -0
  37. package/dist/introspect/drift.js +84 -0
  38. package/dist/introspect/drift.js.map +1 -0
  39. package/dist/introspect/index.d.ts +8 -0
  40. package/dist/introspect/index.d.ts.map +1 -0
  41. package/dist/introspect/index.js +10 -0
  42. package/dist/introspect/index.js.map +1 -0
  43. package/dist/operations/check.d.ts +16 -0
  44. package/dist/operations/check.d.ts.map +1 -0
  45. package/dist/operations/check.js +236 -0
  46. package/dist/operations/check.js.map +1 -0
  47. package/dist/operations/embed.d.ts +23 -0
  48. package/dist/operations/embed.d.ts.map +1 -0
  49. package/dist/operations/embed.js +52 -0
  50. package/dist/operations/embed.js.map +1 -0
  51. package/dist/operations/export.d.ts +9 -0
  52. package/dist/operations/export.d.ts.map +1 -0
  53. package/dist/operations/export.js +15 -0
  54. package/dist/operations/export.js.map +1 -0
  55. package/dist/operations/generate.d.ts +17 -0
  56. package/dist/operations/generate.d.ts.map +1 -0
  57. package/dist/operations/generate.js +115 -0
  58. package/dist/operations/generate.js.map +1 -0
  59. package/dist/operations/migrate.d.ts +23 -0
  60. package/dist/operations/migrate.d.ts.map +1 -0
  61. package/dist/operations/migrate.js +67 -0
  62. package/dist/operations/migrate.js.map +1 -0
  63. package/dist/operations/pull.d.ts +40 -0
  64. package/dist/operations/pull.d.ts.map +1 -0
  65. package/dist/operations/pull.js +100 -0
  66. package/dist/operations/pull.js.map +1 -0
  67. package/dist/operations/push.d.ts +20 -0
  68. package/dist/operations/push.d.ts.map +1 -0
  69. package/dist/operations/push.js +82 -0
  70. package/dist/operations/push.js.map +1 -0
  71. package/dist/operations/upgrade.d.ts +10 -0
  72. package/dist/operations/upgrade.d.ts.map +1 -0
  73. package/dist/operations/upgrade.js +38 -0
  74. package/dist/operations/upgrade.js.map +1 -0
  75. package/dist/project.d.ts +46 -0
  76. package/dist/project.d.ts.map +1 -0
  77. package/dist/project.js +42 -0
  78. package/dist/project.js.map +1 -0
  79. package/dist/runner.d.ts +59 -0
  80. package/dist/runner.d.ts.map +1 -0
  81. package/dist/runner.js +163 -0
  82. package/dist/runner.js.map +1 -0
  83. package/dist/testing/official-dialects.fixture.d.ts +16 -0
  84. package/dist/testing/official-dialects.fixture.d.ts.map +1 -0
  85. package/dist/testing/official-dialects.fixture.js +21 -0
  86. package/dist/testing/official-dialects.fixture.js.map +1 -0
  87. package/dist/testing.d.ts +8 -0
  88. package/dist/testing.d.ts.map +1 -0
  89. package/dist/testing.js +27 -0
  90. package/dist/testing.js.map +1 -0
  91. package/package.json +81 -0
  92. package/src/declarations/emit.ts +705 -0
  93. package/src/declarations/index.ts +13 -0
  94. package/src/declarations/tagged-property.ts +163 -0
  95. package/src/embedded.ts +192 -0
  96. package/src/file-io.ts +114 -0
  97. package/src/files.ts +34 -0
  98. package/src/index.ts +502 -0
  99. package/src/introspect/__fixtures__/mysql-8.4.11.json +371 -0
  100. package/src/introspect/common.ts +203 -0
  101. package/src/introspect/drift.ts +157 -0
  102. package/src/introspect/index.ts +33 -0
  103. package/src/operations/check.ts +309 -0
  104. package/src/operations/embed.ts +87 -0
  105. package/src/operations/export.ts +21 -0
  106. package/src/operations/generate.ts +144 -0
  107. package/src/operations/migrate.ts +110 -0
  108. package/src/operations/pull.ts +160 -0
  109. package/src/operations/push.ts +98 -0
  110. package/src/operations/upgrade.ts +56 -0
  111. package/src/project.ts +93 -0
  112. package/src/runner.ts +260 -0
  113. package/src/testing/official-dialects.fixture.ts +24 -0
  114. package/src/testing.ts +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/declarations/emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { emitDeclarations, type EmitDeclarationsResult, type EmittedDeclarationFile, type EmitOptions, } from './emit.js';
2
+ export { escapeTypeString, renderTaggedProperty, typescriptPropertyName, type TaggedPropertyColumn, type TaggedPropertyResult, } from './tagged-property.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/declarations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { emitDeclarations, } from './emit.js';
2
+ export { escapeTypeString, renderTaggedProperty, typescriptPropertyName, } from './tagged-property.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/declarations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAIjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { type ExtensionType } from '@zmdb/sql';
2
+ export interface TaggedPropertyColumn {
3
+ readonly sql: string | ExtensionType;
4
+ readonly nullable?: boolean;
5
+ readonly primaryKey?: boolean;
6
+ readonly unique?: boolean;
7
+ readonly hasDefault?: boolean;
8
+ readonly sensitive?: boolean;
9
+ readonly length?: number;
10
+ readonly enumValues?: readonly string[];
11
+ readonly payload?: string;
12
+ readonly references?: string;
13
+ readonly constraints?: readonly (readonly [tag: string, value: string | number])[];
14
+ readonly rules?: readonly string[];
15
+ }
16
+ export type TaggedPropertyResult = {
17
+ readonly source: string;
18
+ readonly tags: readonly string[];
19
+ } | {
20
+ readonly reason: string;
21
+ };
22
+ /** Escape a value for a single-quoted TypeScript string literal. */
23
+ export declare function escapeTypeString(value: unknown): string;
24
+ /** Keep ordinary identifiers readable and quote every physical name that is not one. */
25
+ export declare function typescriptPropertyName(value: string): string;
26
+ /**
27
+ * Render one property, or return the reason no honest TypeScript property exists.
28
+ *
29
+ * The input is deliberately structural: the codemod and introspector normalize their
30
+ * different sources into the same facts before this boundary.
31
+ */
32
+ export declare function renderTaggedProperty(name: string, column: TaggedPropertyColumn): TaggedPropertyResult;
33
+ //# sourceMappingURL=tagged-property.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagged-property.d.ts","sourceRoot":"","sources":["../../src/declarations/tagged-property.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAoChC,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQvD;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CA2DrG"}
@@ -0,0 +1,148 @@
1
+ // The one printer from normalized column facts to a tagged TypeScript property.
2
+ //
3
+ // Both the defineSchema codemod and catalog declaration emitter call this module. Keeping
4
+ // the tag order and nullable-intersection parentheses here prevents those two generated
5
+ // paths from producing declarations that reflect differently.
6
+ import {} from '@zmdb/sql';
7
+ const TS_TYPE = Object.freeze({
8
+ serial: 'number',
9
+ integer: 'number',
10
+ numeric: 'number',
11
+ bigint: 'bigint',
12
+ text: 'string',
13
+ varchar: 'string',
14
+ boolean: 'boolean',
15
+ timestamp: 'Date',
16
+ });
17
+ function extensionBase(type) {
18
+ if (type.extension === 'citext' && type.name === 'citext')
19
+ return 'string';
20
+ if (type.extension === 'vector' && type.name === 'vector')
21
+ return 'readonly number[]';
22
+ return undefined;
23
+ }
24
+ function extensionName(type) {
25
+ const args = type.args ?? [];
26
+ return args.length === 0 ? type.name : `${type.name}(${args.map(String).join(',')})`;
27
+ }
28
+ function extensionTag(type) {
29
+ const args = type.args ?? [];
30
+ if (args.some(value => typeof value === 'number' && !Number.isFinite(value)))
31
+ return undefined;
32
+ const parameters = [`'${escapeTypeString(type.extension)}'`, `'${escapeTypeString(type.name)}'`];
33
+ if (args.length > 0) {
34
+ parameters.push(`[${args.map(value => (typeof value === 'string' ? `'${escapeTypeString(value)}'` : String(value))).join(', ')}]`);
35
+ }
36
+ return `Ext<${parameters.join(', ')}>`;
37
+ }
38
+ /** Escape a value for a single-quoted TypeScript string literal. */
39
+ export function escapeTypeString(value) {
40
+ return String(value)
41
+ .replaceAll('\\', '\\\\')
42
+ .replaceAll("'", "\\'")
43
+ .replaceAll('\r', '\\r')
44
+ .replaceAll('\n', '\\n')
45
+ .replaceAll('\u2028', '\\u2028')
46
+ .replaceAll('\u2029', '\\u2029');
47
+ }
48
+ /** Keep ordinary identifiers readable and quote every physical name that is not one. */
49
+ export function typescriptPropertyName(value) {
50
+ return /^[$A-Z_a-z][$\w]*$/.test(value) ? value : `'${escapeTypeString(value)}'`;
51
+ }
52
+ /**
53
+ * Render one property, or return the reason no honest TypeScript property exists.
54
+ *
55
+ * The input is deliberately structural: the codemod and introspector normalize their
56
+ * different sources into the same facts before this boundary.
57
+ */
58
+ export function renderTaggedProperty(name, column) {
59
+ const parts = [];
60
+ const tags = new Set();
61
+ const use = (tag) => {
62
+ tags.add(tag.replace(/<[\s\S]*$/, ''));
63
+ parts.push(tag);
64
+ };
65
+ if (typeof column.sql !== 'string') {
66
+ const base = extensionBase(column.sql);
67
+ if (base === undefined) {
68
+ return { reason: `no TypeScript type for extension-backed SQL type \`${extensionName(column.sql)}\`` };
69
+ }
70
+ const tag = extensionTag(column.sql);
71
+ if (tag === undefined) {
72
+ return { reason: `extension-backed SQL type \`${extensionName(column.sql)}\` has an invalid argument` };
73
+ }
74
+ parts.push(base);
75
+ use(tag);
76
+ }
77
+ else if (column.sql === 'jsonEnum') {
78
+ if (!column.enumValues?.length) {
79
+ return { reason: 'a `jsonEnum` column with no members has no type' };
80
+ }
81
+ parts.push(column.enumValues.map(value => `'${escapeTypeString(value)}'`).join(' | '));
82
+ }
83
+ else if (column.sql === 'json') {
84
+ parts.push(column.payload ?? 'object');
85
+ use(`Sql<'json'>`);
86
+ }
87
+ else {
88
+ const base = TS_TYPE[column.sql];
89
+ if (base === undefined) {
90
+ return { reason: `no TypeScript type for SQL type \`${column.sql}\`` };
91
+ }
92
+ parts.push(base);
93
+ use(`Sql<'${column.sql === 'serial' ? 'integer' : escapeTypeString(column.sql)}'>`);
94
+ }
95
+ if (column.length !== undefined)
96
+ use(`Length<${String(column.length)}>`);
97
+ if (column.sql === 'serial')
98
+ use('Serial');
99
+ else if (column.hasDefault === true)
100
+ use('HasDefault');
101
+ if (column.primaryKey === true)
102
+ use('PrimaryKey');
103
+ if (column.unique === true)
104
+ use('Unique');
105
+ if (column.sensitive === true)
106
+ use('Sensitive');
107
+ if (column.references !== undefined)
108
+ use(`References<'${escapeTypeString(column.references)}'>`);
109
+ for (const [tag, value] of column.constraints ?? []) {
110
+ use(typeof value === 'string' ? `${tag}<'${escapeTypeString(value)}'>` : `${tag}<${String(value)}>`);
111
+ }
112
+ const rules = column.rules ?? [];
113
+ if (rules.length > 0) {
114
+ use(`Rule<${rules.map(rule => `'${escapeTypeString(rule)}'`).join(' | ')}>`);
115
+ }
116
+ const [base, ...propertyTags] = parts;
117
+ if (base === undefined)
118
+ return { reason: 'the column produced no TypeScript type' };
119
+ const joined = propertyTags.length > 0 ? [needsParens(base) ? `(${base})` : base, ...propertyTags].join(' & ') : base;
120
+ const type = column.nullable === true ? `(${joined}) | null` : joined;
121
+ return {
122
+ source: ` ${typescriptPropertyName(name)}: ${type};`,
123
+ tags: [...tags],
124
+ };
125
+ }
126
+ /**
127
+ * Whether a type has to be bracketed before `&` is applied to it.
128
+ *
129
+ * `&` binds tighter than `|`, while a union carrying tags must keep those tags on every
130
+ * member. The depth scan avoids mistaking a nested union inside a generic for a top-level
131
+ * union.
132
+ */
133
+ function needsParens(type) {
134
+ const pairs = { '<': '>', '(': ')', '[': ']', '{': '}' };
135
+ const closers = new Set(Object.values(pairs));
136
+ let depth = 0;
137
+ for (let index = 0; index < type.length; index += 1) {
138
+ const character = type[index];
139
+ if (character !== undefined && character in pairs)
140
+ depth += 1;
141
+ else if (character !== undefined && closers.has(character))
142
+ depth -= 1;
143
+ else if (depth === 0 && (character === '|' || type.startsWith('=>', index)))
144
+ return true;
145
+ }
146
+ return false;
147
+ }
148
+ //# sourceMappingURL=tagged-property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagged-property.js","sourceRoot":"","sources":["../../src/declarations/tagged-property.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,0FAA0F;AAC1F,wFAAwF;AACxF,8DAA8D;AAE9D,OAAO,EAAsB,MAAM,WAAW,CAAC;AAqB/C,MAAM,OAAO,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,MAAM;CAClB,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC;IACtF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/F,MAAM,UAAU,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CACb,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClH,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,MAAM,CAAC,KAAK,CAAC;SACjB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;SACtB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC/B,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;AACnF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAA4B;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAQ,EAAE;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,sDAAsD,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,+BAA+B,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;QAC1G,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,GAAG,CAAC,GAAG,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC/B,OAAO,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,qCAAqC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SACtC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,eAAe,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACpD,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,KAAK,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IACpF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO;QACL,MAAM,EAAE,KAAK,sBAAsB,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG;QACrD,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAqC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,KAAK;YAAE,KAAK,IAAI,CAAC,CAAC;aACzD,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAClE,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface EmbeddedMigration {
2
+ readonly version: number;
3
+ readonly name: string;
4
+ readonly up: string;
5
+ readonly checksum: string;
6
+ }
7
+ export interface EmbeddedConnection {
8
+ /** May contain multiple statements; used for migration bodies and transaction control. */
9
+ exec(sql: string): Promise<void>;
10
+ /** Executes one parameterized statement; used for ledger writes. */
11
+ run(sql: string, params: readonly (string | number | null)[]): Promise<void>;
12
+ /** Executes one parameterized query; used for ledger inspection. */
13
+ rows(sql: string, params: readonly (string | number | null)[]): Promise<readonly Record<string, unknown>[]>;
14
+ }
15
+ export type EmbeddedMigrationErrorKind = 'duplicate' | 'checksum' | 'ledger-ahead' | 'ledger-shape';
16
+ export declare class EmbeddedMigrationError extends Error {
17
+ readonly kind: EmbeddedMigrationErrorKind;
18
+ constructor(kind: EmbeddedMigrationErrorKind, message: string, options?: ErrorOptions);
19
+ }
20
+ /**
21
+ * Apply bundle-resident SQLite migrations without importing a compiler, driver,
22
+ * filesystem API, or hashing implementation.
23
+ */
24
+ export declare function runEmbedded(connection: EmbeddedConnection, migrations: readonly EmbeddedMigration[]): Promise<readonly number[]>;
25
+ //# sourceMappingURL=embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,oEAAoE;IACpE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,oEAAoE;IACpE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;CAC7G;AAED,MAAM,MAAM,0BAA0B,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;AAEpG,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAE1C,YAAY,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAIpF;CACF;AAmBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,SAAS,iBAAiB,EAAE,GACvC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAc5B"}
@@ -0,0 +1,133 @@
1
+ export class EmbeddedMigrationError extends Error {
2
+ kind;
3
+ constructor(kind, message, options) {
4
+ super(message, options);
5
+ this.name = 'EmbeddedMigrationError';
6
+ this.kind = kind;
7
+ }
8
+ }
9
+ const LEDGER_TABLE = '_zmdb_migrations';
10
+ const CREATE_LEDGER = `CREATE TABLE IF NOT EXISTS ${LEDGER_TABLE} (
11
+ version INTEGER PRIMARY KEY,
12
+ name TEXT NOT NULL,
13
+ applied_at INTEGER NOT NULL,
14
+ checksum TEXT
15
+ )`;
16
+ const READ_LEDGER_COLUMNS = `SELECT name FROM pragma_table_info('${LEDGER_TABLE}') ORDER BY cid`;
17
+ const READ_LEDGER = `SELECT version, name, checksum FROM ${LEDGER_TABLE} ORDER BY version`;
18
+ const INSERT_LEDGER = `INSERT INTO ${LEDGER_TABLE} (version, name, applied_at, checksum) VALUES (?, ?, ?, ?)`;
19
+ /**
20
+ * Apply bundle-resident SQLite migrations without importing a compiler, driver,
21
+ * filesystem API, or hashing implementation.
22
+ */
23
+ export async function runEmbedded(connection, migrations) {
24
+ const ordered = validatedMigrations(migrations);
25
+ await ensureLedger(connection);
26
+ const ledger = await readLedger(connection);
27
+ verifyLedger(ledger, ordered);
28
+ const applied = new Set(ledger.map(row => row.version));
29
+ const completed = [];
30
+ for (const migration of ordered) {
31
+ if (applied.has(migration.version))
32
+ continue;
33
+ await applyMigration(connection, migration);
34
+ completed.push(migration.version);
35
+ }
36
+ return completed;
37
+ }
38
+ function validatedMigrations(migrations) {
39
+ const seen = new Set();
40
+ for (const migration of migrations) {
41
+ if (!Number.isSafeInteger(migration.version)) {
42
+ throw new EmbeddedMigrationError('ledger-shape', `embedded migration ${migration.name} version ${String(migration.version)} is not a safe integer`);
43
+ }
44
+ if (seen.has(migration.version)) {
45
+ throw new EmbeddedMigrationError('duplicate', `embedded migration version ${String(migration.version)} appears more than once in the bundle`);
46
+ }
47
+ seen.add(migration.version);
48
+ }
49
+ return migrations.toSorted((left, right) => left.version - right.version);
50
+ }
51
+ async function ensureLedger(connection) {
52
+ const rows = await connection.rows(READ_LEDGER_COLUMNS, []);
53
+ if (rows.length === 0) {
54
+ await connection.exec(CREATE_LEDGER);
55
+ return;
56
+ }
57
+ const columns = new Set();
58
+ for (const [index, row] of rows.entries()) {
59
+ const name = row.name;
60
+ if (typeof name !== 'string') {
61
+ throw new EmbeddedMigrationError('ledger-shape', `migration ledger column ${String(index)} has a non-string name`);
62
+ }
63
+ columns.add(name);
64
+ }
65
+ for (const required of ['version', 'name', 'applied_at']) {
66
+ if (!columns.has(required)) {
67
+ throw new EmbeddedMigrationError('ledger-shape', `migration ledger ${LEDGER_TABLE} has no ${required} column`);
68
+ }
69
+ }
70
+ if (!columns.has('checksum')) {
71
+ await connection.exec(`ALTER TABLE ${LEDGER_TABLE} ADD COLUMN checksum TEXT`);
72
+ }
73
+ }
74
+ async function readLedger(connection) {
75
+ const rows = await connection.rows(READ_LEDGER, []);
76
+ const ledger = [];
77
+ const seen = new Set();
78
+ for (const [index, row] of rows.entries()) {
79
+ const version = row.version;
80
+ const name = row.name;
81
+ const checksum = row.checksum;
82
+ if (typeof version !== 'number' ||
83
+ !Number.isSafeInteger(version) ||
84
+ typeof name !== 'string' ||
85
+ (checksum !== null && typeof checksum !== 'string')) {
86
+ throw new EmbeddedMigrationError('ledger-shape', `migration ledger row ${String(index)} has an invalid version, name, or checksum`);
87
+ }
88
+ if (seen.has(version)) {
89
+ throw new EmbeddedMigrationError('ledger-shape', `migration ledger contains duplicate version ${String(version)}`);
90
+ }
91
+ seen.add(version);
92
+ ledger.push({ version, name, checksum });
93
+ }
94
+ return ledger;
95
+ }
96
+ function verifyLedger(ledger, migrations) {
97
+ const byVersion = new Map(migrations.map(migration => [migration.version, migration]));
98
+ for (const row of ledger) {
99
+ const migration = byVersion.get(row.version);
100
+ if (migration === undefined || row.checksum === null)
101
+ continue;
102
+ if (migration.checksum !== row.checksum) {
103
+ throw new EmbeddedMigrationError('checksum', `embedded migration ${String(row.version)} ${migration.name} was edited after it was applied: ` +
104
+ `ledger has ${row.checksum}, bundle has ${migration.checksum}`);
105
+ }
106
+ }
107
+ const unknown = ledger.find(row => !byVersion.has(row.version));
108
+ if (unknown === undefined)
109
+ return;
110
+ const newest = migrations.at(-1)?.version;
111
+ throw new EmbeddedMigrationError('ledger-ahead', `migration ledger contains version ${String(unknown.version)} ${unknown.name}, which this bundle does not have; ` +
112
+ `the app is older than the database and the newest bundled migration is ${newest === undefined ? 'none' : String(newest)}`);
113
+ }
114
+ async function applyMigration(connection, migration) {
115
+ await connection.exec('BEGIN');
116
+ try {
117
+ await connection.exec(migration.up);
118
+ await connection.run(INSERT_LEDGER, [migration.version, migration.name, Date.now(), migration.checksum]);
119
+ await connection.exec('COMMIT');
120
+ }
121
+ catch (error) {
122
+ try {
123
+ await connection.exec('ROLLBACK');
124
+ }
125
+ catch (rollbackError) {
126
+ throw new AggregateError([error, rollbackError], `failed to apply embedded migration ${String(migration.version)} ${migration.name}, and rollback also failed`, { cause: rollbackError });
127
+ }
128
+ throw new Error(`failed to apply embedded migration ${String(migration.version)} ${migration.name}`, {
129
+ cause: error,
130
+ });
131
+ }
132
+ }
133
+ //# sourceMappingURL=embedded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded.js","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Migration } from './runner.js';
2
+ export interface FileMigration extends Migration {
3
+ readonly path: string;
4
+ readonly hasDown: boolean;
5
+ }
6
+ /** Read the single-file up/down format emitted by `zmdb generate`. */
7
+ export declare function readMigrations(directory: string): Promise<readonly FileMigration[]>;
8
+ export interface AtomicWriteOperations {
9
+ readonly write: (path: string, text: string) => Promise<void>;
10
+ readonly rename: (from: string, to: string) => Promise<void>;
11
+ readonly remove: (path: string) => Promise<void>;
12
+ }
13
+ /** Replace one text file with a complete sibling written first. */
14
+ export declare function writeTextAtomically(path: string, text: string, operations?: AtomicWriteOperations): Promise<void>;
15
+ //# sourceMappingURL=file-io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-io.d.ts","sourceRoot":"","sources":["../src/file-io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,sEAAsE;AACtE,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAgCzF;AA+BD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAUD,mEAAmE;AACnE,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,qBAAuC,GAClD,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -0,0 +1,92 @@
1
+ import { mkdir, readFile, readdir, rename, rm, writeFile } from 'node:fs/promises';
2
+ import { basename, dirname, join } from 'node:path';
3
+ /** Read the single-file up/down format emitted by `zmdb generate`. */
4
+ export async function readMigrations(directory) {
5
+ let entries;
6
+ try {
7
+ entries = await readdir(directory);
8
+ }
9
+ catch (error) {
10
+ if (errorCode(error) === 'ENOENT')
11
+ return [];
12
+ throw error;
13
+ }
14
+ const migrations = [];
15
+ for (const file of entries.filter(entry => entry.endsWith('.sql')).toSorted()) {
16
+ const match = /^(\d{14})_([a-z0-9][a-z0-9_]*)\.sql$/i.exec(file);
17
+ if (match === null) {
18
+ throw new Error(`migration file ${join(directory, file)} must be named <YYYYMMDDHHMMSS>_<slug>.sql`);
19
+ }
20
+ const versionText = match[1];
21
+ const name = match[2];
22
+ if (versionText === undefined || name === undefined) {
23
+ throw new Error(`migration file ${join(directory, file)} has no version or name`);
24
+ }
25
+ const path = join(directory, file);
26
+ const parsed = parseMigration(await readFile(path, 'utf8'), path);
27
+ migrations.push({
28
+ version: Number(versionText),
29
+ name,
30
+ path,
31
+ up: parsed.up,
32
+ down: parsed.down,
33
+ hasDown: parsed.hasDown,
34
+ });
35
+ }
36
+ return migrations;
37
+ }
38
+ function parseMigration(source, path) {
39
+ const up = marker(source, 'up');
40
+ if (up === undefined)
41
+ throw new Error(`migration file ${path} has no -- zmdb:up section`);
42
+ const down = marker(source, 'down');
43
+ if (down !== undefined && down.start < up.end) {
44
+ throw new Error(`migration file ${path} puts -- zmdb:down before -- zmdb:up`);
45
+ }
46
+ return {
47
+ up: source.slice(up.end, down?.start ?? source.length),
48
+ down: down === undefined ? '' : source.slice(down.end),
49
+ hasDown: down !== undefined,
50
+ };
51
+ }
52
+ function marker(source, name) {
53
+ const match = new RegExp(`^-- zmdb:${name}[\\t ]*(?:\\r?\\n|$)`, 'm').exec(source);
54
+ if (match === null)
55
+ return undefined;
56
+ return { start: match.index, end: match.index + match[0].length };
57
+ }
58
+ function errorCode(error) {
59
+ if (typeof error !== 'object' || error === null)
60
+ return undefined;
61
+ const code = Reflect.get(error, 'code');
62
+ return typeof code === 'string' ? code : undefined;
63
+ }
64
+ const FILE_OPERATIONS = {
65
+ write: (path, text) => writeFile(path, text, { flag: 'wx' }),
66
+ rename,
67
+ remove: path => rm(path, { force: true }),
68
+ };
69
+ let temporaryFileSequence = 0;
70
+ /** Replace one text file with a complete sibling written first. */
71
+ export async function writeTextAtomically(path, text, operations = FILE_OPERATIONS) {
72
+ try {
73
+ if ((await readFile(path, 'utf8')) === text)
74
+ return;
75
+ }
76
+ catch (error) {
77
+ if (errorCode(error) !== 'ENOENT')
78
+ throw error;
79
+ }
80
+ await mkdir(dirname(path), { recursive: true });
81
+ temporaryFileSequence += 1;
82
+ const temporary = join(dirname(path), `.${basename(path)}.${String(process.pid)}.${String(temporaryFileSequence)}.tmp`);
83
+ try {
84
+ await operations.write(temporary, text);
85
+ await operations.rename(temporary, path);
86
+ }
87
+ catch (error) {
88
+ await operations.remove(temporary);
89
+ throw error;
90
+ }
91
+ }
92
+ //# sourceMappingURL=file-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-io.js","sourceRoot":"","sources":["../src/file-io.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { readMigrations, writeTextAtomically, type AtomicWriteOperations, type FileMigration } from './file-io.js';
2
+ export { checkProject, type CheckFinding, type CheckFindingKind, type CheckResult } from './operations/check.js';
3
+ export { embedMigrations, embeddedOutputPath, renderEmbeddedModule, type EmbeddedModuleResult, type EmbedOptions, type EmbedResult, } from './operations/embed.js';
4
+ export { exportSchema, type ExportResult } from './operations/export.js';
5
+ export { generateMigration, type GenerateOptions, type GenerateResult } from './operations/generate.js';
6
+ export { migrate, migrationStatus, rollback, type AppliedMigrationResult, type MigrateResult, type MigrationCommandOptions, type RollbackResult, type StatusResult, } from './operations/migrate.js';
7
+ export { applyPush, isDestructive, planPush, type PushPlan, type PushResult } from './operations/push.js';
8
+ export { pullDeclarations, type PullExecution, type PullFile, type PullOptions, type PullOutputFile, type PullResult, type PullSkippedFile, } from './operations/pull.js';
9
+ export { upgradeSnapshot, type UpgradeResult } from './operations/upgrade.js';
10
+ export type { MigrationProject } from './project.js';
11
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EACL,OAAO,EACP,eAAe,EACf,QAAQ,EACR,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
package/dist/files.js ADDED
@@ -0,0 +1,10 @@
1
+ export { readMigrations, writeTextAtomically } from './file-io.js';
2
+ export { checkProject } from './operations/check.js';
3
+ export { embedMigrations, embeddedOutputPath, renderEmbeddedModule, } from './operations/embed.js';
4
+ export { exportSchema } from './operations/export.js';
5
+ export { generateMigration } from './operations/generate.js';
6
+ export { migrate, migrationStatus, rollback, } from './operations/migrate.js';
7
+ export { applyPush, isDestructive, planPush } from './operations/push.js';
8
+ export { pullDeclarations, } from './operations/pull.js';
9
+ export { upgradeSnapshot } from './operations/upgrade.js';
10
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAkD,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,YAAY,EAA8D,MAAM,uBAAuB,CAAC;AACjH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GAIrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA6C,MAAM,0BAA0B,CAAC;AACxG,OAAO,EACL,OAAO,EACP,eAAe,EACf,QAAQ,GAMT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAkC,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EACL,gBAAgB,GAOjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC"}