@codemarc/blt 1.2.0 → 1.3.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 (100) hide show
  1. package/dist/blt +9 -1
  2. package/dist/blt.d.ts.map +1 -1
  3. package/dist/blt.js.map +1 -1
  4. package/dist/commands/build/data.d.ts +6 -0
  5. package/dist/commands/build/data.d.ts.map +1 -0
  6. package/dist/commands/build/data.js +23 -0
  7. package/dist/commands/build/data.js.map +1 -0
  8. package/dist/commands/build/schema.d.ts +6 -0
  9. package/dist/commands/build/schema.d.ts.map +1 -0
  10. package/dist/commands/build/schema.js +30 -0
  11. package/dist/commands/build/schema.js.map +1 -0
  12. package/dist/commands/build copy.d.ts +6 -0
  13. package/dist/commands/build copy.d.ts.map +1 -0
  14. package/dist/commands/build copy.js +56 -0
  15. package/dist/commands/build copy.js.map +1 -0
  16. package/dist/commands/build.d.ts +6 -0
  17. package/dist/commands/build.d.ts.map +1 -0
  18. package/dist/commands/build.js +56 -0
  19. package/dist/commands/build.js.map +1 -0
  20. package/dist/commands/cleanup.d.ts +2 -2
  21. package/dist/commands/cleanup.d.ts.map +1 -1
  22. package/dist/commands/cleanup.js +13 -19
  23. package/dist/commands/cleanup.js.map +1 -1
  24. package/dist/commands/data/build.d.ts +11 -0
  25. package/dist/commands/data/build.d.ts.map +1 -0
  26. package/dist/commands/data/build.js +69 -0
  27. package/dist/commands/data/build.js.map +1 -0
  28. package/dist/commands/data/deploy.d.ts +9 -0
  29. package/dist/commands/data/deploy.d.ts.map +1 -0
  30. package/dist/commands/data/deploy.js +38 -0
  31. package/dist/commands/data/deploy.js.map +1 -0
  32. package/dist/commands/data/rows.d.ts +5 -0
  33. package/dist/commands/data/rows.d.ts.map +1 -0
  34. package/dist/commands/data/rows.js +63 -0
  35. package/dist/commands/data/rows.js.map +1 -0
  36. package/dist/commands/data/schema-info.d.ts +10 -0
  37. package/dist/commands/data/schema-info.d.ts.map +1 -0
  38. package/dist/commands/data/schema-info.js +64 -0
  39. package/dist/commands/data/schema-info.js.map +1 -0
  40. package/dist/commands/data.d.ts +4 -4
  41. package/dist/commands/data.d.ts.map +1 -1
  42. package/dist/commands/data.js +7 -195
  43. package/dist/commands/data.js.map +1 -1
  44. package/dist/commands/deploy/data.d.ts +6 -0
  45. package/dist/commands/deploy/data.d.ts.map +1 -0
  46. package/dist/commands/deploy/data.js +20 -0
  47. package/dist/commands/deploy/data.js.map +1 -0
  48. package/dist/commands/deploy/data.ts 21-46-08-256.d.ts +6 -0
  49. package/dist/commands/deploy/data.ts 21-46-08-256.d.ts.map +1 -0
  50. package/dist/commands/deploy/data.ts 21-46-08-256.js +20 -0
  51. package/dist/commands/deploy/data.ts 21-46-08-256.js.map +1 -0
  52. package/dist/commands/deploy/deploy.d.ts +9 -0
  53. package/dist/commands/deploy/deploy.d.ts.map +1 -0
  54. package/dist/commands/deploy/deploy.js +38 -0
  55. package/dist/commands/deploy/deploy.js.map +1 -0
  56. package/dist/commands/deploy/schema.d.ts +6 -0
  57. package/dist/commands/deploy/schema.d.ts.map +1 -0
  58. package/dist/commands/deploy/schema.js +20 -0
  59. package/dist/commands/deploy/schema.js.map +1 -0
  60. package/dist/commands/deploy.d.ts +6 -0
  61. package/dist/commands/deploy.d.ts.map +1 -0
  62. package/dist/commands/deploy.js +73 -0
  63. package/dist/commands/deploy.js.map +1 -0
  64. package/dist/commands/show/env.d.ts +5 -0
  65. package/dist/commands/show/env.d.ts.map +1 -0
  66. package/dist/commands/show/env.js +100 -0
  67. package/dist/commands/show/env.js.map +1 -0
  68. package/dist/commands/show/rows.d.ts +5 -0
  69. package/dist/commands/show/rows.d.ts.map +1 -0
  70. package/dist/commands/show/rows.js +63 -0
  71. package/dist/commands/show/rows.js.map +1 -0
  72. package/dist/commands/show/schema-info.d.ts +10 -0
  73. package/dist/commands/show/schema-info.d.ts.map +1 -0
  74. package/dist/commands/show/schema-info.js +64 -0
  75. package/dist/commands/show/schema-info.js.map +1 -0
  76. package/dist/commands/show/schema.d.ts +10 -0
  77. package/dist/commands/show/schema.d.ts.map +1 -0
  78. package/dist/commands/show/schema.js +64 -0
  79. package/dist/commands/show/schema.js.map +1 -0
  80. package/dist/commands/show.d.ts +6 -0
  81. package/dist/commands/show.d.ts.map +1 -0
  82. package/dist/commands/show.js +52 -0
  83. package/dist/commands/show.js.map +1 -0
  84. package/dist/commands/version copy.d.ts +6 -0
  85. package/dist/commands/version copy.d.ts.map +1 -0
  86. package/dist/commands/version copy.js +66 -0
  87. package/dist/commands/version copy.js.map +1 -0
  88. package/dist/lib/database-runner.d.ts +1 -1
  89. package/dist/lib/database-runner.d.ts.map +1 -1
  90. package/dist/lib/database-runner.js +8 -8
  91. package/dist/lib/database-runner.js.map +1 -1
  92. package/dist/lib/instance-discovery.js +2 -2
  93. package/dist/lib/instance-discovery.js.map +1 -1
  94. package/dist/lib/schema-discovery.js +2 -2
  95. package/dist/lib/schema-discovery.js.map +1 -1
  96. package/dist/utils/supabase.d.ts +1 -1
  97. package/dist/utils/supabase.d.ts.map +1 -1
  98. package/dist/utils/supabase.js +3 -3
  99. package/dist/utils/supabase.js.map +1 -1
  100. package/package.json +1 -1
package/dist/blt CHANGED
@@ -1,8 +1,12 @@
1
1
  #!/usr/bin/env bun
2
2
  import { program } from "@caporal/core";
3
+ import bucketCommand from "./commands/bucket";
4
+ import buildCommand from "./commands/build";
5
+ import deployCommand from "./commands/deploy";
3
6
  import imageCommand from "./commands/image";
4
7
  import versionCommand from "./commands/version";
5
- import bucketCommand from "./commands/bucket";
8
+ import showCommand from "./commands/show";
9
+ import cleanupCommand from "./commands/cleanup";
6
10
  import { join, dirname } from "node:path";
7
11
  import { readFileSync } from "node:fs";
8
12
  import { fileURLToPath } from "node:url";
@@ -18,7 +22,11 @@ program.name("blt")
18
22
  .description("BLT Core Cli");
19
23
  imageCommand(program);
20
24
  versionCommand(program);
25
+ buildCommand(program);
26
+ deployCommand(program);
21
27
  bucketCommand(program);
28
+ showCommand(program);
29
+ cleanupCommand(program);
22
30
  // If no command is provided, show help
23
31
  const args = process.argv.slice(2);
24
32
  if (args.length === 0) {
package/dist/blt.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blt.d.ts","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AAcA,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C"}
1
+ {"version":3,"file":"blt.d.ts","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AAkBA,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C"}
package/dist/blt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blt.js","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC;AAE/D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;KACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,WAAW,CAAC,cAAc,CAAC,CAAC;AAE5B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AAEzB,uCAAuC;AACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAGD,OAAO,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"blt.js","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC;AAE/D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;KACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,WAAW,CAAC,cAAc,CAAC,CAAC;AAE5B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,cAAc,CAAC,OAAO,CAAC,CAAC;AAE1B,uCAAuC;AACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AACD,OAAO,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Logger } from "@caporal/core";
2
+ /**
3
+ * Build data from instance directory
4
+ */
5
+ export declare function buildData(name: string | undefined, logger: Logger): Promise<void>;
6
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/commands/build/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvF"}
@@ -0,0 +1,23 @@
1
+ import { getDefaultInstanceName } from "../../lib/instance-discovery";
2
+ import { getPackageVersion } from "../../lib/sql-builder";
3
+ import { buildDataFile, writeDataFile } from "../../lib/data-generator";
4
+ /**
5
+ * Build data from instance directory
6
+ */
7
+ export async function buildData(name, logger) {
8
+ const instanceName = name || getDefaultInstanceName();
9
+ const version = getPackageVersion();
10
+ try {
11
+ // Build data file from instance directory
12
+ const dataContent = buildDataFile(instanceName, version);
13
+ // Write to dist directory
14
+ writeDataFile(dataContent, instanceName);
15
+ console.log(`āœ… Data generated successfully: dist/data.sql`);
16
+ }
17
+ catch (error) {
18
+ const message = error instanceof Error ? error.message : String(error);
19
+ logger.error(message);
20
+ process.exit(1);
21
+ }
22
+ }
23
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/commands/build/data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAwB,EAAE,MAAc;IACtE,MAAM,YAAY,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Logger } from "@caporal/core";
2
+ /**
3
+ * Build schema from DDL files
4
+ */
5
+ export declare function buildSchema(name: string | undefined, logger: Logger): Promise<void>;
6
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/commands/build/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAY5C;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BzF"}
@@ -0,0 +1,30 @@
1
+ import { join } from "node:path";
2
+ import { existsSync } from "node:fs";
3
+ import { getDefaultSchemaName } from "../../lib/schema-discovery";
4
+ import { buildSchemaFile, getPackageVersion, getSortedSqlFiles, writeSchemaFile, } from "../../lib/sql-builder";
5
+ import { getPaths } from "../../lib/constants";
6
+ /**
7
+ * Build schema from DDL files
8
+ */
9
+ export async function buildSchema(name, logger) {
10
+ const schemaName = name || getDefaultSchemaName();
11
+ const paths = getPaths();
12
+ // Validate schema directory exists
13
+ const sqlDir = join(process.cwd(), paths.SCHEMA_BASE, schemaName, "sql");
14
+ if (!existsSync(sqlDir)) {
15
+ logger.error(`Schema directory does not exist: ${sqlDir}`);
16
+ process.exit(1);
17
+ }
18
+ const version = getPackageVersion();
19
+ // Build schema file from DDL files only
20
+ const sqlFiles = getSortedSqlFiles(sqlDir, schemaName);
21
+ if (sqlFiles.length === 0) {
22
+ logger.error(`No SQL files found in schema directory: ${sqlDir}`);
23
+ process.exit(1);
24
+ }
25
+ const combinedContent = buildSchemaFile(sqlDir, schemaName, sqlFiles, version);
26
+ // Write to dist directory
27
+ writeSchemaFile(combinedContent, schemaName);
28
+ console.log(`āœ… Schema built successfully: dist/${schemaName}.sql`);
29
+ }
30
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/commands/build/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAc;IACxE,MAAM,UAAU,GAAG,IAAI,IAAI,oBAAoB,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,mCAAmC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,wCAAwC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/E,0BAA0B;IAC1B,eAAe,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,UAAU,MAAM,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Program } from "@caporal/core";
2
+ /**
3
+ * Register build commands with the CLI program
4
+ */
5
+ export default function buildCommand(program: Program): void;
6
+ //# sourceMappingURL=build%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build copy.d.ts","sourceRoot":"","sources":["../../src/commands/build copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;AAI5E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,OAAO,QAkDpD"}
@@ -0,0 +1,56 @@
1
+ import { buildSchema } from "./build/schema";
2
+ import { buildData } from "./build/data";
3
+ /**
4
+ * Register build commands with the CLI program
5
+ */
6
+ export default function buildCommand(program) {
7
+ const buildHelpText = `
8
+ build utilities
9
+
10
+ Usage:
11
+ blt build <operation>
12
+
13
+ Available operations:
14
+ schema Build schema from DDL files
15
+ data Build data from instance directory
16
+
17
+ Run 'blt build <operation> --help' for more information on a specific command.
18
+ `;
19
+ program
20
+ .command("build", "schema/data build utilities")
21
+ .help(buildHelpText)
22
+ .action(() => {
23
+ console.log(buildHelpText);
24
+ });
25
+ program
26
+ .command("build schema", "Build schema from DDL files")
27
+ .hide()
28
+ .argument("[name]", "Schema name")
29
+ .action(async ({ args, logger }) => {
30
+ try {
31
+ const name = args.name;
32
+ await buildSchema(name, logger);
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : String(error);
36
+ logger.error(`Failed to build schema: ${message}`);
37
+ process.exit(1);
38
+ }
39
+ });
40
+ program
41
+ .command("build data", "Build data from instance directory")
42
+ .hide()
43
+ .argument("[name]", "Instance name")
44
+ .action(async ({ args, logger }) => {
45
+ try {
46
+ const name = args.name;
47
+ await buildData(name, logger);
48
+ }
49
+ catch (error) {
50
+ const message = error instanceof Error ? error.message : String(error);
51
+ logger.error(`Failed to build data: ${message}`);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ }
56
+ //# sourceMappingURL=build%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build copy.js","sourceRoot":"","sources":["../../src/commands/build copy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAgB;IACpD,MAAM,aAAa,GAAG;;;;;;;;;;;CAWtB,CAAC;IAED,OAAO;SACL,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;SAC/C,IAAI,CAAC,aAAa,CAAC;SACnB,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACtD,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,YAAY,EAAE,oCAAoC,CAAC;SAC3D,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Program } from "@caporal/core";
2
+ /**
3
+ * Register build commands with the CLI program
4
+ */
5
+ export default function buildCommand(program: Program): void;
6
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;AAI5E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,OAAO,QAkDpD"}
@@ -0,0 +1,56 @@
1
+ import { buildSchema } from "./build/schema";
2
+ import { buildData } from "./build/data";
3
+ /**
4
+ * Register build commands with the CLI program
5
+ */
6
+ export default function buildCommand(program) {
7
+ const buildHelpText = `
8
+ build utilities
9
+
10
+ Usage:
11
+ blt build <operation>
12
+
13
+ Available operations:
14
+ schema Build schema from DDL files
15
+ data Build data from instance directory
16
+
17
+ Run 'blt build <operation> --help' for more information on a specific command.
18
+ `;
19
+ program
20
+ .command("build", "schema/data build utilities")
21
+ .help(buildHelpText)
22
+ .action(() => {
23
+ console.log(buildHelpText);
24
+ });
25
+ program
26
+ .command("build schema", "Build schema from DDL files")
27
+ .hide()
28
+ .argument("[name]", "Schema name")
29
+ .action(async ({ args, logger }) => {
30
+ try {
31
+ const name = args.name;
32
+ await buildSchema(name, logger);
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : String(error);
36
+ logger.error(`Failed to build schema: ${message}`);
37
+ process.exit(1);
38
+ }
39
+ });
40
+ program
41
+ .command("build data", "Build data from instance directory")
42
+ .hide()
43
+ .argument("[name]", "Instance name")
44
+ .action(async ({ args, logger }) => {
45
+ try {
46
+ const name = args.name;
47
+ await buildData(name, logger);
48
+ }
49
+ catch (error) {
50
+ const message = error instanceof Error ? error.message : String(error);
51
+ logger.error(`Failed to build data: ${message}`);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ }
56
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAgB;IACpD,MAAM,aAAa,GAAG;;;;;;;;;;;CAWtB,CAAC;IAED,OAAO;SACL,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;SAC/C,IAAI,CAAC,aAAa,CAAC;SACnB,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACtD,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,YAAY,EAAE,oCAAoC,CAAC;SAC3D,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Program } from "@caporal/core";
1
+ import type { Program } from "@caporal/core";
2
2
  /**
3
- * Register cleanup commands with the CLI program
3
+ * Register env commands with the CLI program
4
4
  */
5
5
  export default function cleanupCommand(program: Program): void;
6
6
  //# sourceMappingURL=cleanup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKxC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAO,EAAE,OAAO,QAsBpD"}
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAO,EAAE,OAAO,QAkBtD"}
@@ -1,29 +1,23 @@
1
- import fs, { existsSync, readdirSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { getPaths } from '../lib/constants';
1
+ import fs from "node:fs";
4
2
  /**
5
- * Register cleanup commands with the CLI program
3
+ * Register env commands with the CLI program
6
4
  */
7
5
  export default function cleanupCommand(program) {
8
6
  program
9
- .command("cleanup", "Cleanup generated SQL files and combined schema files")
7
+ .command("cleanup", "Cleanup generated files")
10
8
  .action(async ({ args, options, logger }) => {
11
- const paths = getPaths();
12
9
  console.log(`Cleaning generated SQL files and combined schema files`);
13
- fs.rmSync(join(process.cwd(), paths.DIST, 'public.sql'), { recursive: true, force: true });
14
- fs.rmSync(join(process.cwd(), paths.DIST, 'data.sql'), { recursive: true, force: true });
10
+ fs.rmSync("dist/public.sql", { recursive: true, force: true });
11
+ fs.rmSync("dist/data.sql", { recursive: true, force: true });
15
12
  console.log(`Removed generated instance files`);
16
- const instancesPath = join(process.cwd(), paths.INSTANCES_BASE);
17
- if (existsSync(instancesPath)) {
18
- // Clean all instance SQL directories
19
- const instances = readdirSync(instancesPath);
20
- instances.forEach(instance => {
21
- const sqlPath = join(instancesPath, instance, 'sql');
22
- fs.rmSync(sqlPath, { recursive: true, force: true });
23
- console.log(` Removed ${instance}/sql/`);
24
- });
25
- }
13
+ fs.rmSync("schema/instances/default/sql/", {
14
+ recursive: true,
15
+ force: true,
16
+ });
17
+ fs.rmSync("schema/instances/joanne/sql/", {
18
+ recursive: true,
19
+ force: true,
20
+ });
26
21
  });
27
22
  }
28
- ;
29
23
  //# sourceMappingURL=cleanup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1F,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAExF,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,qCAAqC;YACrC,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;YAC7C,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,OAAO,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAgB;IACtD,OAAO;SACL,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE;YAC1C,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,8BAA8B,EAAE;YACzC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Logger } from "@caporal/core";
2
+ export declare function buildSchema(name: string, logger: Logger): Promise<void>;
3
+ export declare function buildData(name: string, logger: Logger): Promise<void>;
4
+ /**
5
+ * Build command implementation
6
+ */
7
+ export declare function buildCommand(args: {
8
+ type: string;
9
+ name?: string;
10
+ }, logger: Logger): Promise<void>;
11
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/data/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAe5C,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7E;AAGD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;AAGD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkDf"}
@@ -0,0 +1,69 @@
1
+ import { join } from "node:path";
2
+ import { existsSync } from "node:fs";
3
+ import { getDefaultSchemaName } from "../../lib/schema-discovery";
4
+ import { getDefaultInstanceName } from "../../lib/instance-discovery";
5
+ import { buildSchemaFile, getPackageVersion, getSortedSqlFiles, writeSchemaFile, } from "../../lib/sql-builder";
6
+ import { buildDataFile, writeDataFile } from "../../lib/data-generator";
7
+ import { getPaths } from "../../lib/constants";
8
+ export async function buildSchema(name, logger) {
9
+ const schemaName = name || getDefaultSchemaName();
10
+ const paths = getPaths();
11
+ const sqlDir = join(process.cwd(), paths.SCHEMA_BASE, schemaName, "sql");
12
+ if (!existsSync(sqlDir)) {
13
+ logger.error(`Schema directory does not exist: ${sqlDir}`);
14
+ process.exit(1);
15
+ }
16
+ }
17
+ export async function buildData(name, logger) {
18
+ const instanceName = name || getDefaultInstanceName();
19
+ const version = getPackageVersion();
20
+ const dataContent = buildDataFile(instanceName, version);
21
+ writeDataFile(dataContent, instanceName);
22
+ }
23
+ /**
24
+ * Build command implementation
25
+ */
26
+ export async function buildCommand(args, logger) {
27
+ const buildType = args.type;
28
+ const name = args.name;
29
+ if (buildType === "schema") {
30
+ // Build schema
31
+ const schemaName = name || getDefaultSchemaName();
32
+ const paths = getPaths();
33
+ // Validate schema directory exists
34
+ const sqlDir = join(process.cwd(), paths.SCHEMA_BASE, schemaName, "sql");
35
+ if (!existsSync(sqlDir)) {
36
+ logger.error(`Schema directory does not exist: ${sqlDir}`);
37
+ process.exit(1);
38
+ }
39
+ const version = getPackageVersion();
40
+ // Build schema file from DDL files only
41
+ const sqlFiles = getSortedSqlFiles(sqlDir, schemaName);
42
+ if (sqlFiles.length === 0) {
43
+ logger.error(`No SQL files found in schema directory: ${sqlDir}`);
44
+ process.exit(1);
45
+ }
46
+ const combinedContent = buildSchemaFile(sqlDir, schemaName, sqlFiles, version);
47
+ // Write to dist directory
48
+ writeSchemaFile(combinedContent, schemaName);
49
+ console.log(`āœ… Schema built successfully: dist/${schemaName}.sql`);
50
+ }
51
+ else if (buildType === "data") {
52
+ // Build data
53
+ const instanceName = name || getDefaultInstanceName();
54
+ const version = getPackageVersion();
55
+ try {
56
+ // Build data file from instance directory
57
+ const dataContent = buildDataFile(instanceName, version);
58
+ // Write to dist directory
59
+ writeDataFile(dataContent, instanceName);
60
+ console.log(`āœ… Data generated successfully: dist/data.sql`);
61
+ }
62
+ catch (error) {
63
+ const message = error instanceof Error ? error.message : String(error);
64
+ logger.error(message);
65
+ process.exit(1);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/data/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Logger } from "@caporal/core";
2
+ /**
3
+ * Deploy command implementation
4
+ */
5
+ export declare function deployCommand(args: {
6
+ type: string;
7
+ name?: string;
8
+ }, logger: Logger): Promise<void>;
9
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/data/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQ5C;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,38 @@
1
+ import { join } from "node:path";
2
+ import { existsSync } from "node:fs";
3
+ import { getDefaultSchemaName } from "../../lib/schema-discovery";
4
+ import { getDefaultInstanceName } from "../../lib/instance-discovery";
5
+ import { runSqlFile } from "../../lib/database-runner";
6
+ import { getPaths } from "../../lib/constants";
7
+ /**
8
+ * Deploy command implementation
9
+ */
10
+ export async function deployCommand(args, logger) {
11
+ const deployType = args.type;
12
+ const name = args.name;
13
+ if (deployType === "schema") {
14
+ // Deploy schema
15
+ const schemaName = name || getDefaultSchemaName();
16
+ const paths = getPaths();
17
+ const schemaFile = join(process.cwd(), paths.DIST, `${schemaName}.sql`);
18
+ if (!existsSync(schemaFile)) {
19
+ logger.error(`Schema file not found: ${schemaFile}`);
20
+ logger.error(`Please run 'blt build schema ${schemaName}' first.`);
21
+ process.exit(1);
22
+ }
23
+ await runSqlFile(schemaFile);
24
+ }
25
+ else if (deployType === "data") {
26
+ // Deploy data
27
+ const paths = getPaths();
28
+ const dataFile = join(process.cwd(), paths.DIST, "data.sql");
29
+ if (!existsSync(dataFile)) {
30
+ logger.error(`Data file not found: ${dataFile}`);
31
+ const instanceName = name || getDefaultInstanceName();
32
+ logger.error(`Please run 'blt build data ${instanceName}' first.`);
33
+ process.exit(1);
34
+ }
35
+ await runSqlFile(dataFile);
36
+ }
37
+ }
38
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/data/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAqC,EACrC,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAc,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAE7C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,gBAAgB;QAChB,MAAM,UAAU,GAAG,IAAI,IAAI,oBAAoB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,UAAU,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,cAAc;QACd,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,UAAU,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Rows command implementation - display row counts for all tables
3
+ */
4
+ export declare function rowsCommand(): Promise<void>;
5
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/commands/data/rows.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDjD"}
@@ -0,0 +1,63 @@
1
+ import { executeQuery } from "../../lib/database-runner";
2
+ /**
3
+ * Render a table row for ASCII table display
4
+ */
5
+ function renderRow(row, colWidths) {
6
+ return "| " + row.map((cell, i) => cell.padEnd(colWidths[i])).join(" | ") + " |";
7
+ }
8
+ /**
9
+ * Render a table divider row
10
+ */
11
+ function renderDivider(colWidths) {
12
+ return "|-" + colWidths.map((w) => "-".repeat(w)).join("-|-") + "-|";
13
+ }
14
+ /**
15
+ * Rows command implementation - display row counts for all tables
16
+ */
17
+ export async function rowsCommand() {
18
+ try {
19
+ console.log("\nšŸ“Š Fetching row counts from database...\n");
20
+ const rows = await executeQuery("SELECT * FROM get_row_counts()");
21
+ if (rows.length === 0) {
22
+ console.log("No tables found in the database.");
23
+ return;
24
+ }
25
+ // Build ASCII table
26
+ const headers = ["Table Name", "Row Count"];
27
+ const tableRows = [headers];
28
+ for (const row of rows) {
29
+ // Handle bigint which may come as string from PostgreSQL
30
+ const count = typeof row.row_count === 'string'
31
+ ? parseInt(row.row_count, 10).toLocaleString()
32
+ : Number(row.row_count).toLocaleString();
33
+ tableRows.push([
34
+ row.table_name,
35
+ count,
36
+ ]);
37
+ }
38
+ // Calculate column widths
39
+ const colWidths = headers.map((_header, i) => Math.max(...tableRows.map((row) => row[i].toString().length)));
40
+ // Print table
41
+ console.log(renderRow(tableRows[0], colWidths));
42
+ console.log(renderDivider(colWidths));
43
+ for (let i = 1; i < tableRows.length; i++) {
44
+ console.log(renderRow(tableRows[i], colWidths));
45
+ }
46
+ console.log("");
47
+ // Calculate and display total
48
+ const total = rows.reduce((sum, row) => {
49
+ const count = typeof row.row_count === 'string'
50
+ ? parseInt(row.row_count, 10)
51
+ : Number(row.row_count);
52
+ return sum + count;
53
+ }, 0);
54
+ console.log(`Total rows across all tables: ${total.toLocaleString()}\n`);
55
+ }
56
+ catch (error) {
57
+ const message = error instanceof Error ? error.message : String(error);
58
+ console.error(`\nāŒ Error: ${message}`);
59
+ console.error("\nMake sure the database is accessible and get_row_counts() function exists.");
60
+ process.exit(1);
61
+ }
62
+ }
63
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../src/commands/data/rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Logger } from "@caporal/core";
2
+ /**
3
+ * Schema info command implementation
4
+ */
5
+ export declare function schemaInfoCommand(args: {
6
+ schemaName?: string;
7
+ }, options: {
8
+ format: string;
9
+ }, logger: Logger): Promise<void>;
10
+ //# sourceMappingURL=schema-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-info.d.ts","sourceRoot":"","sources":["../../../src/commands/data/schema-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAqB5C;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAmDf"}