@codemarc/blt 1.0.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +184 -0
  3. package/dist/commands/bucket.d.ts +3 -0
  4. package/dist/commands/bucket.d.ts.map +1 -0
  5. package/dist/commands/bucket.js +399 -0
  6. package/dist/commands/bucket.js.map +1 -0
  7. package/dist/commands/check.d.ts +3 -0
  8. package/dist/commands/check.d.ts.map +1 -0
  9. package/dist/commands/check.js +43 -0
  10. package/dist/commands/check.js.map +1 -0
  11. package/dist/commands/cleanup.d.ts +6 -0
  12. package/dist/commands/cleanup.d.ts.map +1 -0
  13. package/dist/commands/cleanup.js +65 -0
  14. package/dist/commands/cleanup.js.map +1 -0
  15. package/dist/commands/data.d.ts +8 -0
  16. package/dist/commands/data.d.ts.map +1 -0
  17. package/dist/commands/data.js +222 -0
  18. package/dist/commands/data.js.map +1 -0
  19. package/dist/commands/env.d.ts +6 -0
  20. package/dist/commands/env.d.ts.map +1 -0
  21. package/dist/commands/env.js +29 -0
  22. package/dist/commands/env.js.map +1 -0
  23. package/dist/commands/image/color.d.ts +12 -0
  24. package/dist/commands/image/color.d.ts.map +1 -0
  25. package/dist/commands/image/color.js +274 -0
  26. package/dist/commands/image/color.js.map +1 -0
  27. package/dist/commands/image/convert.d.ts +11 -0
  28. package/dist/commands/image/convert.d.ts.map +1 -0
  29. package/dist/commands/image/convert.js +230 -0
  30. package/dist/commands/image/convert.js.map +1 -0
  31. package/dist/commands/image/enhance.d.ts +10 -0
  32. package/dist/commands/image/enhance.d.ts.map +1 -0
  33. package/dist/commands/image/enhance.js +174 -0
  34. package/dist/commands/image/enhance.js.map +1 -0
  35. package/dist/commands/image/sharpen.d.ts +13 -0
  36. package/dist/commands/image/sharpen.d.ts.map +1 -0
  37. package/dist/commands/image/sharpen.js +205 -0
  38. package/dist/commands/image/sharpen.js.map +1 -0
  39. package/dist/commands/image.d.ts +3 -0
  40. package/dist/commands/image.d.ts.map +1 -0
  41. package/dist/commands/image.js +125 -0
  42. package/dist/commands/image.js.map +1 -0
  43. package/dist/commands/repo.d.ts +6 -0
  44. package/dist/commands/repo.d.ts.map +1 -0
  45. package/dist/commands/repo.js +75 -0
  46. package/dist/commands/repo.js.map +1 -0
  47. package/dist/config/config.d.ts +16 -0
  48. package/dist/config/config.d.ts.map +1 -0
  49. package/dist/config/config.js +57 -0
  50. package/dist/config/config.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +27 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/lib/constants.d.ts +23 -0
  56. package/dist/lib/constants.d.ts.map +1 -0
  57. package/dist/lib/constants.js +22 -0
  58. package/dist/lib/constants.js.map +1 -0
  59. package/dist/lib/data-generator.d.ts +11 -0
  60. package/dist/lib/data-generator.d.ts.map +1 -0
  61. package/dist/lib/data-generator.js +78 -0
  62. package/dist/lib/data-generator.js.map +1 -0
  63. package/dist/lib/database-runner.d.ts +14 -0
  64. package/dist/lib/database-runner.d.ts.map +1 -0
  65. package/dist/lib/database-runner.js +186 -0
  66. package/dist/lib/database-runner.js.map +1 -0
  67. package/dist/lib/instance-discovery.d.ts +13 -0
  68. package/dist/lib/instance-discovery.d.ts.map +1 -0
  69. package/dist/lib/instance-discovery.js +48 -0
  70. package/dist/lib/instance-discovery.js.map +1 -0
  71. package/dist/lib/schema-discovery.d.ts +30 -0
  72. package/dist/lib/schema-discovery.d.ts.map +1 -0
  73. package/dist/lib/schema-discovery.js +85 -0
  74. package/dist/lib/schema-discovery.js.map +1 -0
  75. package/dist/lib/sql-builder.d.ts +25 -0
  76. package/dist/lib/sql-builder.d.ts.map +1 -0
  77. package/dist/lib/sql-builder.js +108 -0
  78. package/dist/lib/sql-builder.js.map +1 -0
  79. package/dist/lib/yaml-converter.d.ts +26 -0
  80. package/dist/lib/yaml-converter.d.ts.map +1 -0
  81. package/dist/lib/yaml-converter.js +350 -0
  82. package/dist/lib/yaml-converter.js.map +1 -0
  83. package/dist/utils/supabase.d.ts +3 -0
  84. package/dist/utils/supabase.d.ts.map +1 -0
  85. package/dist/utils/supabase.js +19 -0
  86. package/dist/utils/supabase.js.map +1 -0
  87. package/package.json +61 -0
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // Schema discovery and file listing utilities
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getAvailableSchemas = getAvailableSchemas;
5
+ exports.getDefaultSchemaName = getDefaultSchemaName;
6
+ exports.getSchemaFileList = getSchemaFileList;
7
+ exports.getSchemaTableRows = getSchemaTableRows;
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ const constants_1 = require("./constants");
11
+ /**
12
+ * Get all available schema names from the schema directory
13
+ */
14
+ function getAvailableSchemas() {
15
+ const paths = (0, constants_1.getPaths)();
16
+ const schemaBase = (0, path_1.join)(process.cwd(), paths.SCHEMA_BASE);
17
+ if (!(0, fs_1.existsSync)(schemaBase)) {
18
+ return [];
19
+ }
20
+ return (0, fs_1.readdirSync)(schemaBase)
21
+ .filter((item) => {
22
+ const itemPath = (0, path_1.join)(schemaBase, item);
23
+ return (0, fs_1.statSync)(itemPath).isDirectory() && (0, fs_1.existsSync)((0, path_1.join)(itemPath, "sql"));
24
+ })
25
+ .sort();
26
+ }
27
+ /**
28
+ * Get the default schema name (prefers "public" if it exists)
29
+ */
30
+ function getDefaultSchemaName() {
31
+ const schemas = getAvailableSchemas();
32
+ // Prefer "public" if it exists, otherwise use the first available schema
33
+ if (schemas.includes("public")) {
34
+ return "public";
35
+ }
36
+ if (schemas.length > 0) {
37
+ return schemas[0];
38
+ }
39
+ // Fallback if no schemas found
40
+ return "public";
41
+ }
42
+ /**
43
+ * Get detailed file information for all files in a schema's sql directory
44
+ * Only includes files ending in .sql (case-insensitive)
45
+ */
46
+ function getSchemaFileList(schemaName) {
47
+ const paths = (0, constants_1.getPaths)();
48
+ const effectiveSchemaName = schemaName || getDefaultSchemaName();
49
+ const schemaDir = (0, path_1.join)(process.cwd(), paths.SCHEMA_BASE, effectiveSchemaName, "sql");
50
+ if (!(0, fs_1.existsSync)(schemaDir)) {
51
+ throw new Error(`Schema directory does not exist: ${schemaDir}`);
52
+ }
53
+ const files = (0, fs_1.readdirSync)(schemaDir)
54
+ .filter((file) => {
55
+ // Only include .sql files (case-insensitive)
56
+ return file.toLowerCase().endsWith(".sql");
57
+ })
58
+ .sort()
59
+ .map((file) => {
60
+ const stats = (0, fs_1.statSync)((0, path_1.join)(schemaDir, file));
61
+ return {
62
+ name: file,
63
+ size: stats.size,
64
+ lastModified: stats.mtime.toISOString(),
65
+ createdAt: stats.ctime.toISOString(),
66
+ updatedAt: stats.mtime.toISOString(),
67
+ };
68
+ });
69
+ return files;
70
+ }
71
+ /**
72
+ * Get simplified file information for table display
73
+ */
74
+ function getSchemaTableRows(schemaName) {
75
+ const effectiveSchemaName = schemaName || getDefaultSchemaName();
76
+ const files = getSchemaFileList(effectiveSchemaName);
77
+ return files.map((file) => ({
78
+ name: file.name,
79
+ size: file.size,
80
+ createdAt: file.createdAt,
81
+ lastModified: file.lastModified,
82
+ updatedAt: file.updatedAt,
83
+ }));
84
+ }
85
+ //# sourceMappingURL=schema-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-discovery.js","sourceRoot":"","sources":["../../src/lib/schema-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Get sorted list of SQL files from a directory
3
+ * Uses lexicographic sorting to preserve the numeric ordering from file names
4
+ * (e.g., "10-000-audit.sql" comes before "10-010-types.sql")
5
+ */
6
+ export declare function getSortedSqlFiles(sqlDir: string, schemaName: string): string[];
7
+ /**
8
+ * Generate SQL header with version and schema setup
9
+ */
10
+ export declare function generateSqlHeader(schemaName: string, version: string): string;
11
+ /**
12
+ * Build combined schema file from individual SQL files
13
+ */
14
+ export declare function buildSchemaFile(sqlDir: string, schemaName: string, sqlFiles: string[], version: string): string;
15
+ /**
16
+ * Write schema file to dist directory
17
+ * Output: dist/<schemaName>.sql (e.g., dist/public.sql)
18
+ */
19
+ export declare function writeSchemaFile(content: string, schemaName: string): void;
20
+ /**
21
+ * Get package version from package.json
22
+ * Looks in multiple locations: user's project and @codemarc/blt package
23
+ */
24
+ export declare function getPackageVersion(): string;
25
+ //# sourceMappingURL=sql-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../../src/lib/sql-builder.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4B7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAa/G;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAYzE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAoB1C"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ // SQL file building and generation utilities
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getSortedSqlFiles = getSortedSqlFiles;
5
+ exports.generateSqlHeader = generateSqlHeader;
6
+ exports.buildSchemaFile = buildSchemaFile;
7
+ exports.writeSchemaFile = writeSchemaFile;
8
+ exports.getPackageVersion = getPackageVersion;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = require("node:path");
11
+ const constants_1 = require("./constants");
12
+ /**
13
+ * Get sorted list of SQL files from a directory
14
+ * Uses lexicographic sorting to preserve the numeric ordering from file names
15
+ * (e.g., "10-000-audit.sql" comes before "10-010-types.sql")
16
+ */
17
+ function getSortedSqlFiles(sqlDir, schemaName) {
18
+ return (0, node_fs_1.readdirSync)(sqlDir)
19
+ .filter((file) => !file.startsWith(schemaName) &&
20
+ (file.endsWith(".sql") || file.endsWith(".ddl")) &&
21
+ constants_1.PATTERNS.FILE_NUMBER.test(file))
22
+ .sort(); // Use lexicographic sorting (same as schema info) - works correctly due to leading zeros
23
+ }
24
+ /**
25
+ * Generate SQL header with version and schema setup
26
+ */
27
+ function generateSqlHeader(schemaName, version) {
28
+ let header = `-- =============================================
29
+ -- Database postgres, Schema ${schemaName}
30
+ -- v${version} ፨ ${new Date().toLocaleString()}
31
+ -- =============================================
32
+ SELECT current_user, session_user;
33
+ --
34
+ SELECT set_config('myvars.version','${version}', false);
35
+ SELECT current_setting('myvars.version');`;
36
+ // Add schema setup (drops and recreates the schema)
37
+ // This applies to all schemas, not just "public"
38
+ header += `
39
+ -- =============================================
40
+ -- Schema Setup
41
+ -- =============================================
42
+ -- CAREFUL: This will drop the ${schemaName} schema
43
+ DROP SCHEMA IF EXISTS ${schemaName} CASCADE;
44
+ ${schemaName === "public" ? "DELETE FROM vault.secrets;\n" : ""}
45
+ CREATE SCHEMA IF NOT EXISTS ${schemaName} AUTHORIZATION pg_database_owner;
46
+ -- Enable pgcrypto extension (installed at database level for Supabase compatibility)
47
+ CREATE EXTENSION IF NOT EXISTS pgcrypto;
48
+
49
+ -- Ensure extension functions are in search path
50
+ SET search_path = ${schemaName}, auth, extensions;
51
+ `;
52
+ return header;
53
+ }
54
+ /**
55
+ * Build combined schema file from individual SQL files
56
+ */
57
+ function buildSchemaFile(sqlDir, schemaName, sqlFiles, version) {
58
+ let combinedContent = generateSqlHeader(schemaName, version);
59
+ // Append each SQL file with search_path set
60
+ for (const file of sqlFiles) {
61
+ console.log("Processing file:", file);
62
+ const filePath = (0, node_path_1.join)(sqlDir, file);
63
+ const content = (0, node_fs_1.readFileSync)(filePath, "utf8");
64
+ combinedContent += `\n\n-- ${file}\nSET search_path = ${schemaName}, auth;\n\n`;
65
+ combinedContent += `${content}`;
66
+ }
67
+ return combinedContent;
68
+ }
69
+ /**
70
+ * Write schema file to dist directory
71
+ * Output: dist/<schemaName>.sql (e.g., dist/public.sql)
72
+ */
73
+ function writeSchemaFile(content, schemaName) {
74
+ const paths = (0, constants_1.getPaths)();
75
+ const distPath = (0, node_path_1.join)(process.cwd(), paths.DIST);
76
+ const schemafile = (0, node_path_1.join)(distPath, `${schemaName}.sql`);
77
+ console.log(`Writing schema file to ${schemafile}`);
78
+ // Ensure dist directory exists
79
+ if (!(0, node_fs_1.existsSync)(distPath)) {
80
+ (0, node_fs_1.mkdirSync)(distPath, { recursive: true });
81
+ }
82
+ (0, node_fs_1.writeFileSync)(schemafile, content);
83
+ }
84
+ /**
85
+ * Get package version from package.json
86
+ * Looks in multiple locations: user's project and @codemarc/blt package
87
+ */
88
+ function getPackageVersion() {
89
+ const searchPaths = [
90
+ (0, node_path_1.join)(process.cwd(), 'package.json'), // User's project
91
+ (0, node_path_1.join)(__dirname, '..', '..', 'package.json'), // @codemarc/blt package
92
+ ];
93
+ for (const packageJsonPath of searchPaths) {
94
+ if ((0, node_fs_1.existsSync)(packageJsonPath)) {
95
+ try {
96
+ const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, "utf8"));
97
+ if (packageJson.version) {
98
+ return packageJson.version;
99
+ }
100
+ }
101
+ catch {
102
+ // Continue to next path
103
+ }
104
+ }
105
+ }
106
+ return "0.0.0"; // Fallback
107
+ }
108
+ //# sourceMappingURL=sql-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../../src/lib/sql-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { YamlFile } from "./constants";
2
+ /**
3
+ * Convert YAML content to JSON array format.
4
+ */
5
+ export declare function yamlToJson(yamlContent: string): Record<string, unknown>[];
6
+ /**
7
+ * Convert JSON rows to SQL statements.
8
+ */
9
+ export declare function jsonToSql(rows: {
10
+ row: Record<string, unknown>;
11
+ }[], name: string, type?: "function" | "procedure" | "table"): string;
12
+ /**
13
+ * Convert YAML content to SQL statements.
14
+ */
15
+ export declare function yamlToSql(yamlContent: string, name: string, type?: "function" | "procedure" | "table"): string;
16
+ /**
17
+ * Find all YAML files in the schema directory.
18
+ * Checks both the yaml subdirectory and the sql directory.
19
+ */
20
+ export declare function findYamlFiles(sqlDir: string): YamlFile[];
21
+ /**
22
+ * Process all YAML files in a directory and convert them to SQL.
23
+ * @returns Number of files processed.
24
+ */
25
+ export declare function processYamlFiles(sqlDir: string): number;
26
+ //# sourceMappingURL=yaml-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-converter.d.ts","sourceRoot":"","sources":["../../src/lib/yaml-converter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6P5C;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAEzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,EACxC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,UAAU,GAAG,WAAW,GAAG,OAAiB,GACjD,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,UAAU,GAAG,WAAW,GAAG,OAAiB,GACjD,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAqBxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyBvD"}
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ // YAML to SQL conversion utilities
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.yamlToJson = yamlToJson;
41
+ exports.jsonToSql = jsonToSql;
42
+ exports.yamlToSql = yamlToSql;
43
+ exports.findYamlFiles = findYamlFiles;
44
+ exports.processYamlFiles = processYamlFiles;
45
+ const fs = __importStar(require("node:fs"));
46
+ const node_path_1 = require("node:path");
47
+ const js_yaml_1 = __importDefault(require("js-yaml"));
48
+ const constants_1 = require("./constants");
49
+ // ============================================================================
50
+ // Environment Variable Substitution
51
+ // ============================================================================
52
+ /**
53
+ * Replace environment variables in a string.
54
+ * Supports: ${VAR}, {VAR}, and $VAR patterns.
55
+ */
56
+ function substituteEnvVars(str) {
57
+ return str
58
+ .replace(/\$\{([^}]+)\}/g, (match, name) => process.env[name] ?? match)
59
+ .replace(/\{([A-Z_][A-Z0-9_]*)\}/g, (match, name) => process.env[name] ?? match)
60
+ .replace(/\$([A-Z_][A-Z0-9_]*)/gi, (match, name) => process.env[name] ?? match);
61
+ }
62
+ /**
63
+ * Recursively substitute environment variables in all string values.
64
+ */
65
+ function processEnvVars(value) {
66
+ if (typeof value === "string")
67
+ return substituteEnvVars(value);
68
+ if (Array.isArray(value))
69
+ return value.map(processEnvVars);
70
+ if (value !== null && typeof value === "object") {
71
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, processEnvVars(v)]));
72
+ }
73
+ return value;
74
+ }
75
+ // ============================================================================
76
+ // Value Formatting
77
+ // ============================================================================
78
+ /**
79
+ * Escape a string for SQL (double single quotes).
80
+ */
81
+ function escapeString(str) {
82
+ return str.replace(/'/g, "''");
83
+ }
84
+ /**
85
+ * Format a value as a SQL literal.
86
+ */
87
+ function toSqlLiteral(value, column) {
88
+ if (value === null || value === undefined)
89
+ return "NULL";
90
+ if (value === "")
91
+ return column === "props" ? "'{}'::json" : "NULL";
92
+ if (typeof value === "string") {
93
+ return value.toUpperCase() === "NULL" ? "NULL" : `'${escapeString(value)}'`;
94
+ }
95
+ if (typeof value === "boolean")
96
+ return value ? "TRUE" : "FALSE";
97
+ if (typeof value === "number")
98
+ return String(value);
99
+ if (Array.isArray(value)) {
100
+ if (value.length === 0) {
101
+ const arrayType = column === "perms" ? "app_perm" : column === "roles" ? "app_role" : "text";
102
+ return `ARRAY[]::${arrayType}[]`;
103
+ }
104
+ const items = value.map((v) => typeof v === "string" ? `'${escapeString(v)}'` : String(v));
105
+ const arrayType = column === "perms" ? "app_perm" : column === "roles" ? "app_role" : "text";
106
+ return `ARRAY[${items.join(", ")}]::${arrayType}[]`;
107
+ }
108
+ if (typeof value === "object") {
109
+ const json = JSON.stringify(value).replace(/\\/g, "\\\\").replace(/'/g, "''");
110
+ return Object.keys(value).length === 0 ? "'{}'::json" : `'${json}'::json`;
111
+ }
112
+ return `'${escapeString(String(value))}'`;
113
+ }
114
+ /**
115
+ * Check if a value is a JSON object or array (not a primitive).
116
+ */
117
+ function isJsonValue(value) {
118
+ return Array.isArray(value) || (value !== null && typeof value === "object");
119
+ }
120
+ /**
121
+ * Format a value as a quoted text parameter (for CALL/SELECT statements).
122
+ * JSON objects/arrays are serialized to JSON strings.
123
+ */
124
+ function toQuotedParam(value) {
125
+ if (value === null || value === undefined)
126
+ return "'NULL'";
127
+ if (typeof value === "string") {
128
+ return value.toUpperCase() === "NULL" ? "'NULL'" : `'${escapeString(value)}'`;
129
+ }
130
+ if (typeof value === "boolean")
131
+ return value ? "'TRUE'" : "'FALSE'";
132
+ if (typeof value === "number")
133
+ return `'${value}'`;
134
+ // JSON objects and arrays → serialize to JSON string
135
+ if (isJsonValue(value)) {
136
+ const json = JSON.stringify(value).replace(/\\/g, "\\\\").replace(/'/g, "''");
137
+ return `'${json}'`;
138
+ }
139
+ return `'${escapeString(String(value))}'`;
140
+ }
141
+ // ============================================================================
142
+ // YAML Parsing
143
+ // ============================================================================
144
+ /**
145
+ * Parse YAML content and extract rows array.
146
+ */
147
+ function parseYamlRows(yamlContent) {
148
+ const parsed = js_yaml_1.default.load(yamlContent);
149
+ if (Array.isArray(parsed))
150
+ return parsed;
151
+ if (parsed && typeof parsed === "object") {
152
+ if ("rows" in parsed && Array.isArray(parsed.rows)) {
153
+ return parsed.rows;
154
+ }
155
+ return [parsed];
156
+ }
157
+ return [];
158
+ }
159
+ /**
160
+ * Detect the target type and name from YAML content.
161
+ */
162
+ function detectTarget(yamlContent) {
163
+ const functionMatch = yamlContent.match(constants_1.PATTERNS.FUNCTION_NAME);
164
+ if (functionMatch)
165
+ return { type: "function", name: functionMatch[1].trim() };
166
+ const procedureMatch = yamlContent.match(constants_1.PATTERNS.PROCEDURE_NAME);
167
+ if (procedureMatch)
168
+ return { type: "procedure", name: procedureMatch[1].trim() };
169
+ const tableMatch = yamlContent.match(constants_1.PATTERNS.TABLE_NAME);
170
+ if (tableMatch)
171
+ return { type: "table", name: tableMatch[1].trim() };
172
+ return null;
173
+ }
174
+ // ============================================================================
175
+ // SQL Generation
176
+ // ============================================================================
177
+ /**
178
+ * Format a parameter with appropriate type cast for function/procedure calls.
179
+ * Handles proper type casting for booleans, integers, strings, and JSON.
180
+ */
181
+ function formatParam(value, columnName) {
182
+ // Handle null/undefined
183
+ if (value === null || value === undefined) {
184
+ return "NULL";
185
+ }
186
+ // Handle booleans - cast to BOOLEAN
187
+ if (typeof value === "boolean") {
188
+ return value ? "TRUE::BOOLEAN" : "FALSE::BOOLEAN";
189
+ }
190
+ // Handle numbers - cast to INTEGER or NUMERIC
191
+ if (typeof value === "number") {
192
+ // Check column name hints for type
193
+ if (columnName && (columnName.includes("order") || (columnName.includes("id") && !columnName.includes("uuid")))) {
194
+ return `${value}::INTEGER`;
195
+ }
196
+ // Default to INTEGER for whole numbers, NUMERIC for decimals
197
+ return Number.isInteger(value) ? `${value}::INTEGER` : `${value}::NUMERIC`;
198
+ }
199
+ // Handle JSON objects/arrays - cast to JSONB using jsonb_build_object
200
+ if (isJsonValue(value) && typeof value === "object" && value !== null && !Array.isArray(value)) {
201
+ const entries = Object.entries(value);
202
+ if (entries.length === 0) {
203
+ return "jsonb_build_object()::JSONB";
204
+ }
205
+ const kvSql = entries
206
+ .map(([k, v]) => {
207
+ return `'${escapeString(String(k))}', ${formatParam(v)}`;
208
+ })
209
+ .join(", ");
210
+ return `jsonb_build_object(${kvSql})::JSONB`;
211
+ }
212
+ // For arrays or non-object JSON types, fallback to stringify-and-cast
213
+ if (isJsonValue(value)) {
214
+ const json = JSON.stringify(value).replace(/\\/g, "\\\\").replace(/'/g, "''");
215
+ return `'${json}'::JSONB`;
216
+ }
217
+ // Handle strings - cast to TEXT
218
+ if (typeof value === "string") {
219
+ if (value.toUpperCase() === "NULL") {
220
+ return "NULL";
221
+ }
222
+ return `'${escapeString(value)}'::TEXT`;
223
+ }
224
+ // Fallback - convert to string and cast to TEXT
225
+ return `'${escapeString(String(value))}'::TEXT`;
226
+ }
227
+ /**
228
+ * Generate SELECT statements for function calls.
229
+ */
230
+ function generateFunctionCalls(rows, functionName) {
231
+ const statements = rows.map((r) => {
232
+ const columns = Object.keys(r.row);
233
+ const params = columns.map((col) => formatParam(r.row[col], col));
234
+ return `SELECT ${functionName}(${params.join(", ")});`;
235
+ });
236
+ return `-- Generated from JSON data\n${statements.join("\n")}`;
237
+ }
238
+ /**
239
+ * Generate CALL statements for procedure calls.
240
+ */
241
+ function generateProcedureCalls(rows, procedureName) {
242
+ const statements = rows.map((r) => {
243
+ const columns = Object.keys(r.row);
244
+ const params = columns.map((col) => formatParam(r.row[col], col));
245
+ return `CALL ${procedureName}(${params.join(", ")});`;
246
+ });
247
+ return `-- Generated from JSON data\n${statements.join("\n")}`;
248
+ }
249
+ /**
250
+ * Generate INSERT statement with ON CONFLICT upsert.
251
+ */
252
+ function generateInsert(rows, tableName) {
253
+ const columns = Object.keys(rows[0].row);
254
+ const conflictColumn = columns[0];
255
+ const updateColumns = columns.slice(1);
256
+ const valueRows = rows.map((r) => {
257
+ const values = columns.map((col) => toSqlLiteral(r.row[col], col));
258
+ return `(${values.join(", ")})`;
259
+ });
260
+ const updateClauses = updateColumns.map((col) => ` ${col} = COALESCE(EXCLUDED.${col}, ${tableName}.${col})`);
261
+ return [
262
+ "-- Generated from JSON data",
263
+ `INSERT INTO ${tableName} (${columns.join(", ")}) VALUES`,
264
+ valueRows.join(",\n"),
265
+ `ON CONFLICT (${conflictColumn}) DO UPDATE SET`,
266
+ updateClauses.join(",\n") + ";",
267
+ ].join("\n");
268
+ }
269
+ // ============================================================================
270
+ // Public API
271
+ // ============================================================================
272
+ /**
273
+ * Convert YAML content to JSON array format.
274
+ */
275
+ function yamlToJson(yamlContent) {
276
+ return parseYamlRows(yamlContent);
277
+ }
278
+ /**
279
+ * Convert JSON rows to SQL statements.
280
+ */
281
+ function jsonToSql(rows, name, type = "table") {
282
+ if (rows.length === 0)
283
+ return "-- No rows to insert";
284
+ switch (type) {
285
+ case "function":
286
+ return generateFunctionCalls(rows, name);
287
+ case "procedure":
288
+ return generateProcedureCalls(rows, name);
289
+ case "table":
290
+ return generateInsert(rows, name);
291
+ }
292
+ }
293
+ /**
294
+ * Convert YAML content to SQL statements.
295
+ */
296
+ function yamlToSql(yamlContent, name, type = "table") {
297
+ const jsonData = parseYamlRows(yamlContent);
298
+ const processedData = jsonData.map((row) => ({
299
+ row: processEnvVars(row.row),
300
+ }));
301
+ return jsonToSql(processedData, name, type);
302
+ }
303
+ /**
304
+ * Find all YAML files in the schema directory.
305
+ * Checks both the yaml subdirectory and the sql directory.
306
+ */
307
+ function findYamlFiles(sqlDir) {
308
+ const yamlSubdir = (0, node_path_1.join)(sqlDir, "..", "yaml");
309
+ const yamlFiles = [];
310
+ const seen = new Set();
311
+ // Check yaml subdirectory first
312
+ if (fs.existsSync(yamlSubdir)) {
313
+ for (const file of fs.readdirSync(yamlSubdir).filter((f) => f.endsWith(".yml")).sort()) {
314
+ yamlFiles.push({ name: file, path: (0, node_path_1.join)(yamlSubdir, file), source: "subdir" });
315
+ seen.add(file);
316
+ }
317
+ }
318
+ // Check current directory (skip duplicates)
319
+ for (const file of fs.readdirSync(sqlDir).filter((f) => f.endsWith(".yml")).sort()) {
320
+ if (!seen.has(file)) {
321
+ yamlFiles.push({ name: file, path: (0, node_path_1.join)(sqlDir, file), source: "current" });
322
+ }
323
+ }
324
+ return yamlFiles;
325
+ }
326
+ /**
327
+ * Process all YAML files in a directory and convert them to SQL.
328
+ * @returns Number of files processed.
329
+ */
330
+ function processYamlFiles(sqlDir) {
331
+ const yamlFiles = findYamlFiles(sqlDir);
332
+ let count = 0;
333
+ for (const yamlFile of yamlFiles) {
334
+ console.log(`\nProcessing YAML file: ${yamlFile.name} (from ${yamlFile.source} directory)`);
335
+ const yamlContent = fs.readFileSync(yamlFile.path, "utf8");
336
+ const target = detectTarget(yamlContent);
337
+ if (!target) {
338
+ console.error(`No table, function, or procedure name found in YAML file: ${yamlFile.name}`);
339
+ continue;
340
+ }
341
+ const sqlContent = yamlToSql(yamlContent, target.name, target.type);
342
+ const sqlFileName = yamlFile.name.replace(".yml", ".sql");
343
+ const sqlPath = (0, node_path_1.join)(sqlDir, sqlFileName);
344
+ fs.writeFileSync(sqlPath, sqlContent);
345
+ console.log(`Created ${sqlFileName}`);
346
+ count++;
347
+ }
348
+ return count;
349
+ }
350
+ //# sourceMappingURL=yaml-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-converter.js","sourceRoot":"","sources":["../../src/lib/yaml-converter.ts"],"names":[],"mappings":";AAAA,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsQnC,gCAEC;AAKD,8BAeC;AAKD,8BAUC;AAMD,sCAqBC;AAMD,4CAyBC;AAnWD,4CAA8B;AAC9B,yCAAiC;AACjC,sDAA2B;AAC3B,2CAAuC;AAGvC,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,GAAG;SACP,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;SACtE,OAAO,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;SAC/E,OAAO,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAc,EAAE,MAAe;IACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7F,OAAO,YAAY,SAAS,IAAI,CAAC;QACnC,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7F,OAAO,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAE3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,GAAG,CAAC;IAEnD,qDAAqD;IACrD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,IAAI,IAAI,GAAG,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AACH,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,MAAM,GAAG,iBAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAE,MAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,OAAQ,MAA8C,CAAC,IAAI,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,MAAiC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,WAAmB;IACvC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAQ,CAAC,aAAa,CAAC,CAAC;IAChE,IAAI,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAE9E,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,IAAI,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAEjF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAQ,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAc,EAAE,UAAmB;IACtD,wBAAwB;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACpD,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,mCAAmC;QACnC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAChH,OAAO,GAAG,KAAK,WAAW,CAAC;QAC7B,CAAC;QACD,6DAA6D;QAC7D,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;IAC7E,CAAC;IAED,sEAAsE;IACtE,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,6BAA6B,CAAC;QACvC,CAAC;QACD,MAAM,KAAK,GAAG,OAAO;aAClB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,sBAAsB,KAAK,UAAU,CAAC;IAC/C,CAAC;IACD,sEAAsE;IACtE,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,IAAI,IAAI,UAAU,CAAC;IAC5B,CAAC;IAGD,gCAAgC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,gDAAgD;IAChD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAwC,EAAE,YAAoB;IAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,UAAU,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,OAAO,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAwC,EAAE,aAAqB;IAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,QAAQ,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAwC,EAAE,SAAiB;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,wBAAwB,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,CACvE,CAAC;IAEF,OAAO;QACL,6BAA6B;QAC7B,eAAe,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;QACzD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACrB,gBAAgB,cAAc,iBAAiB;QAC/C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;KAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;GAEG;AACH,SAAgB,UAAU,CAAC,WAAmB;IAC5C,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,IAAwC,EACxC,IAAY,EACZ,OAA2C,OAAO;IAElD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAErD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,WAAmB,EACnB,IAAY,EACZ,OAA2C,OAAO;IAElD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3C,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAA4B;KACxD,CAAC,CAAC,CAAC;IACJ,OAAO,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,MAAc;IAC1C,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,gCAAgC;IAChC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACvF,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,gBAAI,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,IAAI,UAAU,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAE5F,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,6DAA6D,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5F,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1C,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ export declare function getSupabaseClient(): SupabaseClient;
3
+ //# sourceMappingURL=supabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/utils/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKrE,wBAAgB,iBAAiB,IAAI,cAAc,CAYlD"}