@zmdb/cli 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 (207) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +19 -0
  3. package/dist/__fixtures__/http-client/src/contract.d.ts +38 -0
  4. package/dist/__fixtures__/http-client/src/contract.d.ts.map +1 -0
  5. package/dist/__fixtures__/http-client/src/contract.js +121 -0
  6. package/dist/__fixtures__/http-client/src/contract.js.map +1 -0
  7. package/dist/__fixtures__/http-client/src/models.d.ts +11 -0
  8. package/dist/__fixtures__/http-client/src/models.d.ts.map +1 -0
  9. package/dist/__fixtures__/http-client/src/models.js +2 -0
  10. package/dist/__fixtures__/http-client/src/models.js.map +1 -0
  11. package/dist/__fixtures__/http-client/src/schema.d.ts +4 -0
  12. package/dist/__fixtures__/http-client/src/schema.d.ts.map +1 -0
  13. package/dist/__fixtures__/http-client/src/schema.js +2 -0
  14. package/dist/__fixtures__/http-client/src/schema.js.map +1 -0
  15. package/dist/__fixtures__/http-client/src/unrelated.d.ts +2 -0
  16. package/dist/__fixtures__/http-client/src/unrelated.d.ts.map +1 -0
  17. package/dist/__fixtures__/http-client/src/unrelated.js +2 -0
  18. package/dist/__fixtures__/http-client/src/unrelated.js.map +1 -0
  19. package/dist/__fixtures__/http-client/zmdb.config.d.ts +16 -0
  20. package/dist/__fixtures__/http-client/zmdb.config.d.ts.map +1 -0
  21. package/dist/__fixtures__/http-client/zmdb.config.js +12 -0
  22. package/dist/__fixtures__/http-client/zmdb.config.js.map +1 -0
  23. package/dist/__fixtures__/project/src/schema.d.ts +6 -0
  24. package/dist/__fixtures__/project/src/schema.d.ts.map +1 -0
  25. package/dist/__fixtures__/project/src/schema.js +2 -0
  26. package/dist/__fixtures__/project/src/schema.js.map +1 -0
  27. package/dist/__fixtures__/project/zmdb.config.d.ts +22 -0
  28. package/dist/__fixtures__/project/zmdb.config.d.ts.map +1 -0
  29. package/dist/__fixtures__/project/zmdb.config.js +55 -0
  30. package/dist/__fixtures__/project/zmdb.config.js.map +1 -0
  31. package/dist/application-loader.d.ts +4 -0
  32. package/dist/application-loader.d.ts.map +1 -0
  33. package/dist/application-loader.js +102 -0
  34. package/dist/application-loader.js.map +1 -0
  35. package/dist/args.d.ts +23 -0
  36. package/dist/args.d.ts.map +1 -0
  37. package/dist/args.js +353 -0
  38. package/dist/args.js.map +1 -0
  39. package/dist/atomic.d.ts +13 -0
  40. package/dist/atomic.d.ts.map +1 -0
  41. package/dist/atomic.js +28 -0
  42. package/dist/atomic.js.map +1 -0
  43. package/dist/bin.d.ts +3 -0
  44. package/dist/bin.d.ts.map +1 -0
  45. package/dist/bin.js +4 -0
  46. package/dist/bin.js.map +1 -0
  47. package/dist/commands/check.d.ts +5 -0
  48. package/dist/commands/check.d.ts.map +1 -0
  49. package/dist/commands/check.js +7 -0
  50. package/dist/commands/check.js.map +1 -0
  51. package/dist/commands/client.d.ts +38 -0
  52. package/dist/commands/client.d.ts.map +1 -0
  53. package/dist/commands/client.js +347 -0
  54. package/dist/commands/client.js.map +1 -0
  55. package/dist/commands/codegen.d.ts +9 -0
  56. package/dist/commands/codegen.d.ts.map +1 -0
  57. package/dist/commands/codegen.js +56 -0
  58. package/dist/commands/codegen.js.map +1 -0
  59. package/dist/commands/embed.d.ts +8 -0
  60. package/dist/commands/embed.d.ts.map +1 -0
  61. package/dist/commands/embed.js +17 -0
  62. package/dist/commands/embed.js.map +1 -0
  63. package/dist/commands/export.d.ts +5 -0
  64. package/dist/commands/export.d.ts.map +1 -0
  65. package/dist/commands/export.js +6 -0
  66. package/dist/commands/export.js.map +1 -0
  67. package/dist/commands/generate.d.ts +5 -0
  68. package/dist/commands/generate.d.ts.map +1 -0
  69. package/dist/commands/generate.js +6 -0
  70. package/dist/commands/generate.js.map +1 -0
  71. package/dist/commands/migrate.d.ts +9 -0
  72. package/dist/commands/migrate.d.ts.map +1 -0
  73. package/dist/commands/migrate.js +18 -0
  74. package/dist/commands/migrate.js.map +1 -0
  75. package/dist/commands/new.d.ts +4 -0
  76. package/dist/commands/new.d.ts.map +1 -0
  77. package/dist/commands/new.js +35 -0
  78. package/dist/commands/new.js.map +1 -0
  79. package/dist/commands/pull.d.ts +5 -0
  80. package/dist/commands/pull.d.ts.map +1 -0
  81. package/dist/commands/pull.js +14 -0
  82. package/dist/commands/pull.js.map +1 -0
  83. package/dist/commands/push.d.ts +6 -0
  84. package/dist/commands/push.d.ts.map +1 -0
  85. package/dist/commands/push.js +11 -0
  86. package/dist/commands/push.js.map +1 -0
  87. package/dist/commands/studio.d.ts +31 -0
  88. package/dist/commands/studio.d.ts.map +1 -0
  89. package/dist/commands/studio.js +154 -0
  90. package/dist/commands/studio.js.map +1 -0
  91. package/dist/commands/upgrade.d.ts +5 -0
  92. package/dist/commands/upgrade.d.ts.map +1 -0
  93. package/dist/commands/upgrade.js +11 -0
  94. package/dist/commands/upgrade.js.map +1 -0
  95. package/dist/database.d.ts +4 -0
  96. package/dist/database.d.ts.map +1 -0
  97. package/dist/database.js +8 -0
  98. package/dist/database.js.map +1 -0
  99. package/dist/errors.d.ts +7 -0
  100. package/dist/errors.d.ts.map +1 -0
  101. package/dist/errors.js +20 -0
  102. package/dist/errors.js.map +1 -0
  103. package/dist/index.d.ts +34 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +626 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/lifecycle.d.ts +6 -0
  108. package/dist/lifecycle.d.ts.map +1 -0
  109. package/dist/lifecycle.js +75 -0
  110. package/dist/lifecycle.js.map +1 -0
  111. package/dist/migration-project.d.ts +14 -0
  112. package/dist/migration-project.d.ts.map +1 -0
  113. package/dist/migration-project.js +74 -0
  114. package/dist/migration-project.js.map +1 -0
  115. package/dist/output.d.ts +27 -0
  116. package/dist/output.d.ts.map +1 -0
  117. package/dist/output.js +60 -0
  118. package/dist/output.js.map +1 -0
  119. package/dist/repl.d.ts +48 -0
  120. package/dist/repl.d.ts.map +1 -0
  121. package/dist/repl.js +265 -0
  122. package/dist/repl.js.map +1 -0
  123. package/dist/scaffold.d.ts +28 -0
  124. package/dist/scaffold.d.ts.map +1 -0
  125. package/dist/scaffold.js +414 -0
  126. package/dist/scaffold.js.map +1 -0
  127. package/dist/studio/index.d.ts +20 -0
  128. package/dist/studio/index.d.ts.map +1 -0
  129. package/dist/studio/index.js +607 -0
  130. package/dist/studio/index.js.map +1 -0
  131. package/dist/templates/command.d.ts +3 -0
  132. package/dist/templates/command.d.ts.map +1 -0
  133. package/dist/templates/command.js +65 -0
  134. package/dist/templates/command.js.map +1 -0
  135. package/dist/templates/controller.d.ts +3 -0
  136. package/dist/templates/controller.d.ts.map +1 -0
  137. package/dist/templates/controller.js +41 -0
  138. package/dist/templates/controller.js.map +1 -0
  139. package/dist/templates/index.d.ts +4 -0
  140. package/dist/templates/index.d.ts.map +1 -0
  141. package/dist/templates/index.js +18 -0
  142. package/dist/templates/index.js.map +1 -0
  143. package/dist/templates/module.d.ts +3 -0
  144. package/dist/templates/module.d.ts.map +1 -0
  145. package/dist/templates/module.js +41 -0
  146. package/dist/templates/module.js.map +1 -0
  147. package/dist/templates/project.d.ts +3 -0
  148. package/dist/templates/project.d.ts.map +1 -0
  149. package/dist/templates/project.js +280 -0
  150. package/dist/templates/project.js.map +1 -0
  151. package/dist/templates/repository.d.ts +3 -0
  152. package/dist/templates/repository.d.ts.map +1 -0
  153. package/dist/templates/repository.js +66 -0
  154. package/dist/templates/repository.js.map +1 -0
  155. package/dist/templates/schema.d.ts +3 -0
  156. package/dist/templates/schema.d.ts.map +1 -0
  157. package/dist/templates/schema.js +36 -0
  158. package/dist/templates/schema.js.map +1 -0
  159. package/dist/templates/types.d.ts +25 -0
  160. package/dist/templates/types.d.ts.map +1 -0
  161. package/dist/templates/types.js +17 -0
  162. package/dist/templates/types.js.map +1 -0
  163. package/package.json +72 -0
  164. package/src/__fixtures__/http-client/package.json +5 -0
  165. package/src/__fixtures__/http-client/src/contract.ts +85 -0
  166. package/src/__fixtures__/http-client/src/models.ts +12 -0
  167. package/src/__fixtures__/http-client/src/schema.ts +3 -0
  168. package/src/__fixtures__/http-client/src/unrelated.ts +1 -0
  169. package/src/__fixtures__/http-client/tsconfig.json +17 -0
  170. package/src/__fixtures__/http-client/zmdb.config.ts +12 -0
  171. package/src/__fixtures__/project/package.json +5 -0
  172. package/src/__fixtures__/project/src/schema.ts +6 -0
  173. package/src/__fixtures__/project/tsconfig.json +24 -0
  174. package/src/__fixtures__/project/zmdb.config.ts +57 -0
  175. package/src/application-loader.ts +108 -0
  176. package/src/args.ts +391 -0
  177. package/src/atomic.ts +43 -0
  178. package/src/bin.ts +5 -0
  179. package/src/commands/check.ts +11 -0
  180. package/src/commands/client.ts +415 -0
  181. package/src/commands/codegen.ts +73 -0
  182. package/src/commands/embed.ts +36 -0
  183. package/src/commands/export.ts +10 -0
  184. package/src/commands/generate.ts +14 -0
  185. package/src/commands/migrate.ts +38 -0
  186. package/src/commands/new.ts +48 -0
  187. package/src/commands/pull.ts +32 -0
  188. package/src/commands/push.ts +21 -0
  189. package/src/commands/studio.ts +200 -0
  190. package/src/commands/upgrade.ts +14 -0
  191. package/src/database.ts +9 -0
  192. package/src/errors.ts +19 -0
  193. package/src/index.ts +710 -0
  194. package/src/lifecycle.ts +73 -0
  195. package/src/migration-project.ts +91 -0
  196. package/src/output.ts +77 -0
  197. package/src/repl.ts +328 -0
  198. package/src/scaffold.ts +485 -0
  199. package/src/studio/index.ts +674 -0
  200. package/src/templates/command.ts +66 -0
  201. package/src/templates/controller.ts +42 -0
  202. package/src/templates/index.ts +29 -0
  203. package/src/templates/module.ts +42 -0
  204. package/src/templates/project.ts +281 -0
  205. package/src/templates/repository.ts +67 -0
  206. package/src/templates/schema.ts +37 -0
  207. package/src/templates/types.ts +46 -0
@@ -0,0 +1,14 @@
1
+ import { pullDeclarations as pullProjectDeclarations, } from '@zmdb/migrations/files';
2
+ import { configuredIntrospector } from '../database.js';
3
+ import { configuredMigrationDriver, migrationProject } from '../migration-project.js';
4
+ export async function pullDeclarations(config, options = {}) {
5
+ if (config.driver === undefined) {
6
+ throw new TypeError('the config must declare a driver thunk before pull can connect');
7
+ }
8
+ const driver = await configuredMigrationDriver(config);
9
+ return pullProjectDeclarations(migrationProject(config, {
10
+ driver,
11
+ introspector: configuredIntrospector(driver.dialect),
12
+ }), options);
13
+ }
14
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,IAAI,uBAAuB,GAG5C,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWtF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB,EAAE,OAAO,GAAgB,EAAE;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,uBAAuB,CAC5B,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM;QACN,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC;KACrD,CAAC,EACF,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ResolvedConfig } from '@zmdb/compiler/config';
2
+ import { isDestructive, type PushPlan, type PushResult } from '@zmdb/migrations/files';
3
+ export { isDestructive, type PushPlan, type PushResult };
4
+ export declare function planPush(config: ResolvedConfig): Promise<PushPlan>;
5
+ export declare function applyPush(plan: PushPlan, warning: (message: string) => void): Promise<PushResult>;
6
+ //# sourceMappingURL=push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAEL,aAAa,EAEb,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,CAAC;AAEzD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGxE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAEjG"}
@@ -0,0 +1,11 @@
1
+ import { applyPush as applyMigrationPush, isDestructive, planPush as planMigrationPush, } from '@zmdb/migrations/files';
2
+ import { configuredMigrationDriver, reflectedMigrationProject } from '../migration-project.js';
3
+ export { isDestructive };
4
+ export async function planPush(config) {
5
+ const driver = await configuredMigrationDriver(config);
6
+ return planMigrationPush(reflectedMigrationProject(config, driver));
7
+ }
8
+ export function applyPush(plan, warning) {
9
+ return applyMigrationPush(plan, warning);
10
+ }
11
+ //# sourceMappingURL=push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,aAAa,EACb,QAAQ,IAAI,iBAAiB,GAG9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAkC,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,OAAkC;IAC1E,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { type StudioApp, type StudioInput } from '../studio/index.js';
2
+ export interface StudioListenOptions {
3
+ readonly host: '127.0.0.1';
4
+ readonly port: number;
5
+ readonly fetch: StudioApp['fetch'];
6
+ }
7
+ export interface StudioListener extends AsyncDisposable {
8
+ readonly host: '127.0.0.1';
9
+ readonly port: number;
10
+ readonly closed: Promise<void>;
11
+ }
12
+ export interface StudioRuntime {
13
+ createApp(input: StudioInput): StudioApp;
14
+ listen(options: StudioListenOptions): Promise<StudioListener>;
15
+ }
16
+ export interface RunStudioOptions {
17
+ readonly port?: number;
18
+ readonly runtime?: StudioRuntime;
19
+ readonly stdout?: (text: string) => void;
20
+ readonly stderr?: (text: string) => void;
21
+ }
22
+ /**
23
+ * Start the local viewer and keep it alive until its loopback listener closes.
24
+ *
25
+ * The host is not an option: the literal passed to the runtime is the security
26
+ * boundary, and the concrete listener below uses it without a fallback.
27
+ */
28
+ export declare function runStudio(input: StudioInput, options?: RunStudioOptions): Promise<number>;
29
+ /** Bind the Fetch application to one Node HTTP listener on IPv4 loopback. */
30
+ export declare function listenStudio(options: StudioListenOptions): Promise<StudioListener>;
31
+ //# sourceMappingURL=studio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAOD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCnG;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4DlF"}
@@ -0,0 +1,154 @@
1
+ import { createServer } from 'node:http';
2
+ import { createStudioApp } from '../studio/index.js';
3
+ const DEFAULT_RUNTIME = {
4
+ createApp: createStudioApp,
5
+ listen: listenStudio,
6
+ };
7
+ /**
8
+ * Start the local viewer and keep it alive until its loopback listener closes.
9
+ *
10
+ * The host is not an option: the literal passed to the runtime is the security
11
+ * boundary, and the concrete listener below uses it without a fallback.
12
+ */
13
+ export async function runStudio(input, options = {}) {
14
+ const runtime = options.runtime ?? DEFAULT_RUNTIME;
15
+ const stdout = options.stdout ?? (text => process.stdout.write(text));
16
+ const stderr = options.stderr ?? (text => process.stderr.write(text));
17
+ let app;
18
+ let listener;
19
+ let failed = false;
20
+ try {
21
+ app = runtime.createApp(input);
22
+ listener = await runtime.listen({
23
+ host: '127.0.0.1',
24
+ port: options.port ?? 0,
25
+ fetch: request => app?.fetch(request) ?? Promise.resolve(new Response('studio is closed', { status: 503 })),
26
+ });
27
+ stdout(`http://${listener.host}:${String(listener.port)}\n`);
28
+ await listener.closed;
29
+ }
30
+ catch (error) {
31
+ failed = true;
32
+ stderr(`zmdb studio: ${messageOf(error)}\n`);
33
+ }
34
+ if (listener !== undefined) {
35
+ try {
36
+ await listener[Symbol.asyncDispose]();
37
+ }
38
+ catch (error) {
39
+ stderr(`zmdb studio: ${failed ? 'cleanup: ' : ''}${messageOf(error)}\n`);
40
+ failed = true;
41
+ }
42
+ }
43
+ if (app !== undefined) {
44
+ try {
45
+ await app[Symbol.asyncDispose]();
46
+ }
47
+ catch (error) {
48
+ stderr(`zmdb studio: ${failed ? 'cleanup: ' : ''}${messageOf(error)}\n`);
49
+ failed = true;
50
+ }
51
+ }
52
+ return failed ? 1 : 0;
53
+ }
54
+ /** Bind the Fetch application to one Node HTTP listener on IPv4 loopback. */
55
+ export function listenStudio(options) {
56
+ validatePort(options.port);
57
+ return new Promise((resolveListener, rejectListener) => {
58
+ const server = createServer((request, response) => {
59
+ if (request.method !== 'GET') {
60
+ request.resume();
61
+ }
62
+ void serve(request.method ?? 'GET', request.url ?? '/', request.headers, response, options).catch((error) => {
63
+ if (!response.headersSent) {
64
+ response.writeHead(500, { 'content-type': 'text/plain; charset=utf-8' });
65
+ response.end(`zmdb studio: ${messageOf(error)}`);
66
+ }
67
+ else {
68
+ response.destroy(error instanceof Error ? error : new Error(String(error)));
69
+ }
70
+ });
71
+ });
72
+ const onOpenError = (error) => {
73
+ rejectListener(error);
74
+ };
75
+ server.once('error', onOpenError);
76
+ server.listen(options.port, options.host, () => {
77
+ server.off('error', onOpenError);
78
+ const address = server.address();
79
+ if (typeof address !== 'object' || address === null) {
80
+ server.close();
81
+ rejectListener(new Error('zmdb studio did not receive a TCP listener address'));
82
+ return;
83
+ }
84
+ const closed = new Promise((resolveClosed, rejectClosed) => {
85
+ server.once('close', resolveClosed);
86
+ server.once('error', rejectClosed);
87
+ });
88
+ const closeForSignal = () => {
89
+ server.close();
90
+ };
91
+ const removeSignalHandlers = () => {
92
+ process.off('SIGINT', closeForSignal);
93
+ process.off('SIGTERM', closeForSignal);
94
+ };
95
+ process.once('SIGINT', closeForSignal);
96
+ process.once('SIGTERM', closeForSignal);
97
+ void closed.then(removeSignalHandlers, removeSignalHandlers);
98
+ let disposePromise;
99
+ resolveListener({
100
+ host: options.host,
101
+ port: address.port,
102
+ closed,
103
+ [Symbol.asyncDispose]() {
104
+ disposePromise ??= closeServer(server.listening, () => server.close(), closed, removeSignalHandlers);
105
+ return disposePromise;
106
+ },
107
+ });
108
+ });
109
+ });
110
+ }
111
+ async function serve(method, path, incomingHeaders, response, options) {
112
+ const url = new URL(path, `http://${options.host}:${String(options.port)}`);
113
+ const request = new Request(url, {
114
+ method,
115
+ headers: requestHeaders(incomingHeaders),
116
+ });
117
+ const result = await options.fetch(request);
118
+ const headers = {};
119
+ result.headers.forEach((value, name) => {
120
+ headers[name] = value;
121
+ });
122
+ response.writeHead(result.status, headers);
123
+ response.end(new Uint8Array(await result.arrayBuffer()));
124
+ }
125
+ function requestHeaders(input) {
126
+ const headers = new Headers();
127
+ for (const [name, value] of Object.entries(input)) {
128
+ if (typeof value === 'string') {
129
+ headers.set(name, value);
130
+ }
131
+ else if (Array.isArray(value)) {
132
+ for (const item of value) {
133
+ headers.append(name, item);
134
+ }
135
+ }
136
+ }
137
+ return headers;
138
+ }
139
+ async function closeServer(listening, close, closed, removeSignalHandlers) {
140
+ removeSignalHandlers();
141
+ if (listening) {
142
+ close();
143
+ }
144
+ await closed;
145
+ }
146
+ function validatePort(port) {
147
+ if (!Number.isInteger(port) || port < 0 || port > 65_535) {
148
+ throw new RangeError(`studio port must be an integer from 0 through 65535, received ${String(port)}`);
149
+ }
150
+ }
151
+ function messageOf(error) {
152
+ return error instanceof Error ? error.message : String(error);
153
+ }
154
+ //# sourceMappingURL=studio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ResolvedConfig } from '@zmdb/compiler/config';
2
+ import { type UpgradeResult } from '@zmdb/migrations/files';
3
+ export type { UpgradeResult };
4
+ export declare function upgradeSnapshot(config: ResolvedConfig): Promise<UpgradeResult>;
5
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAA6C,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvG,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAMpF"}
@@ -0,0 +1,11 @@
1
+ import { upgradeSnapshot as upgradeProjectSnapshot } from '@zmdb/migrations/files';
2
+ import { migrationProject, rethrowProjectError } from '../migration-project.js';
3
+ export async function upgradeSnapshot(config) {
4
+ try {
5
+ return await upgradeProjectSnapshot(migrationProject(config));
6
+ }
7
+ catch (error) {
8
+ rethrowProjectError(error);
9
+ }
10
+ }
11
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAsB,MAAM,wBAAwB,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAIhF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAsB;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type DialectTarget, type Introspector } from '@zmdb/sql';
2
+ export declare function configuredDialect(dialect: DialectTarget): DialectTarget;
3
+ export declare function configuredIntrospector(dialect: DialectTarget): Introspector;
4
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAE3E"}
@@ -0,0 +1,8 @@
1
+ import {} from '@zmdb/sql';
2
+ export function configuredDialect(dialect) {
3
+ return dialect;
4
+ }
5
+ export function configuredIntrospector(dialect) {
6
+ return dialect.introspector;
7
+ }
8
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,MAAM,WAAW,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IAC3D,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** A command-line contract error rather than a failed schema operation. */
2
+ export declare class CliInvocationError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ /** Preserve the original failure before an error raised while disposing its resources. */
6
+ export declare function errorMessage(error: unknown): string;
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASnD"}
package/dist/errors.js ADDED
@@ -0,0 +1,20 @@
1
+ /** A command-line contract error rather than a failed schema operation. */
2
+ export class CliInvocationError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = 'CliInvocationError';
6
+ }
7
+ }
8
+ /** Preserve the original failure before an error raised while disposing its resources. */
9
+ export function errorMessage(error) {
10
+ if (error instanceof SuppressedError) {
11
+ return `${errorMessage(error.suppressed)}\ncleanup: ${errorMessage(error.error)}`;
12
+ }
13
+ if (error instanceof AggregateError) {
14
+ const errors = error.errors;
15
+ if (errors.length > 0)
16
+ return errors.map(errorMessage).join('\ncleanup: ');
17
+ }
18
+ return error instanceof Error ? error.message : String(error);
19
+ }
20
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAuB,KAAK,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ResolvedConfig } from '@zmdb/compiler/config';
2
+ import type { CheckResult } from './commands/check.js';
3
+ import type { GenerateHttpArtifactsOptions, HttpArtifactGeneration, WatchHttpArtifactsOptions } from './commands/client.js';
4
+ import type { EmbedOptions, EmbedResult } from './commands/embed.js';
5
+ import type { ExportResult } from './commands/export.js';
6
+ import type { GenerateOptions, GenerateResult } from './commands/generate.js';
7
+ import type { MigrateResult, RollbackResult, StatusResult } from './commands/migrate.js';
8
+ import type { PullExecution, PullOptions, PullResult } from './commands/pull.js';
9
+ import type { PushResult } from './commands/push.js';
10
+ import type { UpgradeResult } from './commands/upgrade.js';
11
+ import { type CliResult } from './output.js';
12
+ export declare function embedMigrations(config: ResolvedConfig, options?: EmbedOptions): Promise<EmbedResult>;
13
+ export declare function exportSchema(config: ResolvedConfig): ExportResult;
14
+ export declare function generateMigration(config: ResolvedConfig, options?: GenerateOptions): Promise<GenerateResult>;
15
+ export declare function pullDeclarations(config: ResolvedConfig, options?: PullOptions): Promise<PullExecution>;
16
+ export type { CheckResult, CliResult, EmbedOptions, EmbedResult, ExportResult, GenerateHttpArtifactsOptions, GenerateOptions, GenerateResult, HttpArtifactGeneration, MigrateResult, PullOptions, PullResult, PushResult, RollbackResult, StatusResult, UpgradeResult, WatchHttpArtifactsOptions, };
17
+ export type { ClientGenerateResult } from './commands/client.js';
18
+ /** Programmatic generation stays on the same lazy boundary as the CLI command. */
19
+ export declare function generateHttpArtifacts(config: ResolvedConfig, options?: GenerateHttpArtifactsOptions): Promise<HttpArtifactGeneration>;
20
+ /** Programmatic watch mode retains the same lazy build-time dependency boundary. */
21
+ export declare function watchHttpArtifacts(config: ResolvedConfig, options?: WatchHttpArtifactsOptions): Promise<HttpArtifactGeneration>;
22
+ export interface CliEnvironment {
23
+ readonly cwd?: string;
24
+ readonly stdinIsTTY?: boolean;
25
+ readonly input?: NodeJS.ReadableStream;
26
+ readonly output?: NodeJS.WritableStream;
27
+ readonly stdout?: (text: string) => void;
28
+ readonly stderr?: (text: string) => void;
29
+ readonly environment?: Readonly<Record<string, string | undefined>>;
30
+ readonly homeDirectory?: string;
31
+ }
32
+ /** Run the CLI against injectable streams, returning its process exit code. */
33
+ export declare function runCli(argv: readonly string[], environment?: CliEnvironment): Promise<number>;
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAKxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAuC,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxD,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAG9G;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAKjE;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAGhH;AAED,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,yBAAyB,GAC1B,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,kFAAkF;AAClF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAIjC;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,sBAAsB,CAAC,CAIjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AA4BD,+EAA+E;AAC/E,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0EvG"}