@pasosdejesus/m 0.22.0 → 0.22.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 (91) hide show
  1. package/dist/base-model/baseline.generated.d.ts +60 -0
  2. package/dist/base-model/baseline.generated.d.ts.map +1 -0
  3. package/dist/base-model/baseline.generated.js +1110 -0
  4. package/dist/base-model/baseline.generated.js.map +1 -0
  5. package/dist/base-model/check.d.ts +6 -0
  6. package/dist/base-model/check.d.ts.map +1 -0
  7. package/dist/base-model/check.js +195 -0
  8. package/dist/base-model/check.js.map +1 -0
  9. package/dist/base-model/generate.d.ts +37 -0
  10. package/dist/base-model/generate.d.ts.map +1 -0
  11. package/dist/base-model/generate.js +184 -0
  12. package/dist/base-model/generate.js.map +1 -0
  13. package/dist/base-model/guidelines.d.ts +13 -0
  14. package/dist/base-model/guidelines.d.ts.map +1 -0
  15. package/dist/base-model/guidelines.js +61 -0
  16. package/dist/base-model/guidelines.js.map +1 -0
  17. package/dist/base-model/index.d.ts +19 -0
  18. package/dist/base-model/index.d.ts.map +1 -0
  19. package/dist/base-model/index.js +22 -0
  20. package/dist/base-model/index.js.map +1 -0
  21. package/dist/base-model/parse-structure.d.ts +4 -0
  22. package/dist/base-model/parse-structure.d.ts.map +1 -0
  23. package/dist/base-model/parse-structure.js +170 -0
  24. package/dist/base-model/parse-structure.js.map +1 -0
  25. package/dist/base-model/queries.d.ts +41 -0
  26. package/dist/base-model/queries.d.ts.map +1 -0
  27. package/dist/base-model/queries.js +157 -0
  28. package/dist/base-model/queries.js.map +1 -0
  29. package/dist/base-model/references/learn-tg.d.ts +16 -0
  30. package/dist/base-model/references/learn-tg.d.ts.map +1 -0
  31. package/dist/base-model/references/learn-tg.js +60 -0
  32. package/dist/base-model/references/learn-tg.js.map +1 -0
  33. package/dist/base-model/types.d.ts +183 -0
  34. package/dist/base-model/types.d.ts.map +1 -0
  35. package/dist/base-model/types.js +10 -0
  36. package/dist/base-model/types.js.map +1 -0
  37. package/dist/base-model/version.d.ts +12 -0
  38. package/dist/base-model/version.d.ts.map +1 -0
  39. package/dist/base-model/version.js +20 -0
  40. package/dist/base-model/version.js.map +1 -0
  41. package/dist/debug/DebugConsole.js +6 -6
  42. package/dist/debug/DebugConsole.js.map +1 -1
  43. package/dist/debug/Logger.js +2 -2
  44. package/dist/debug/Logger.js.map +1 -1
  45. package/dist/e2e/assertions.js +3 -3
  46. package/dist/e2e/assertions.js.map +1 -1
  47. package/dist/e2e/env.js +3 -3
  48. package/dist/e2e/env.js.map +1 -1
  49. package/dist/i18n/common-cli.js +2 -2
  50. package/dist/i18n/common-cli.js.map +1 -1
  51. package/dist/tasks/base-model.d.ts +3 -0
  52. package/dist/tasks/base-model.d.ts.map +1 -0
  53. package/dist/tasks/base-model.js +177 -0
  54. package/dist/tasks/base-model.js.map +1 -0
  55. package/dist/tasks/context-reqs.d.ts.map +1 -1
  56. package/dist/tasks/context-reqs.js +1 -0
  57. package/dist/tasks/context-reqs.js.map +1 -1
  58. package/dist/tasks/db.js +5 -5
  59. package/dist/tasks/db.js.map +1 -1
  60. package/dist/tasks/edit.js +44 -44
  61. package/dist/tasks/edit.js.map +1 -1
  62. package/dist/tasks/engine.js +2 -2
  63. package/dist/tasks/engine.js.map +1 -1
  64. package/dist/tasks/env-diff.js +2 -2
  65. package/dist/tasks/env-diff.js.map +1 -1
  66. package/dist/tasks/glob.js +6 -6
  67. package/dist/tasks/glob.js.map +1 -1
  68. package/dist/tasks/grep.js +9 -9
  69. package/dist/tasks/grep.js.map +1 -1
  70. package/dist/tasks/readfile.js +17 -17
  71. package/dist/tasks/readfile.js.map +1 -1
  72. package/dist/tasks/req.js +17 -17
  73. package/dist/tasks/req.js.map +1 -1
  74. package/dist/tasks/wallet.js +15 -15
  75. package/dist/tasks/wallet.js.map +1 -1
  76. package/dist/tasks/writefile.js +8 -8
  77. package/dist/tasks/writefile.js.map +1 -1
  78. package/dist/templates/AGENTS.md.hbs +2 -2
  79. package/dist/templates/ARCHITECTURE.md.hbs +2 -2
  80. package/dist/templates/CONTRIBUTING.md.hbs +2 -2
  81. package/dist/templates/apps/.env.example.hbs +1 -1
  82. package/dist/templates/apps/hardhat/package.json +1 -1
  83. package/dist/templates/apps/hardhat/scripts/verifyDeployment.ts +10 -10
  84. package/dist/templates/apps/hardhat/sync-abis.mjs +3 -3
  85. package/dist/templates/apps/nextjs/app/page.tsx.hbs +2 -2
  86. package/package.json +1 -1
  87. package/src/blockchain/README.md +1 -1
  88. package/src/debug/README.md +1 -1
  89. package/src/e2e/README.md +2 -2
  90. package/src/tasks/README.md +9 -9
  91. package/src/test-utils/README.md +16 -16
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.generated.js","sourceRoot":"","sources":["../../src/base-model/baseline.generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { BaselineInventory, CheckReport, ParsedStructure, SqlExecutor } from './types.js';
2
+ export declare function inventoryFromParsed(parsed: ParsedStructure, tables?: readonly string[], version?: string): BaselineInventory;
3
+ export declare function compareInventories(expected: BaselineInventory, actual: BaselineInventory): CheckReport;
4
+ export declare function inventoryFromDb(db: SqlExecutor, tables?: readonly string[], version?: string): Promise<BaselineInventory>;
5
+ export declare function formatCheckReport(report: CheckReport): string;
6
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/base-model/check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EAAgB,WAAW,EAA8B,eAAe,EACzF,WAAW,EACZ,MAAM,YAAY,CAAC;AAUpB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,GAAE,SAAS,MAAM,EAAsB,EAAE,OAAO,SAAK,GAAG,iBAAiB,CAa3I;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA6FtG;AAyBD,wBAAsB,eAAe,CACnC,EAAE,EAAE,WAAW,EACf,MAAM,GAAE,SAAS,MAAM,EAAsB,EAC7C,OAAO,SAAK,GACX,OAAO,CAAC,iBAAiB,CAAC,CA2D5B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAW7D"}
@@ -0,0 +1,195 @@
1
+ import { normalizeType } from './parse-structure.js';
2
+ import { BASE_MODEL_TABLES } from './version.js';
3
+ function canonicalConstraint(constraint) {
4
+ const columns = [...constraint.columns].sort().join(',');
5
+ const reference = constraint.references
6
+ ? `${constraint.references.table}(${[...constraint.references.columns].sort().join(',')})`
7
+ : '';
8
+ return `${constraint.kind}:${columns}:${reference}`;
9
+ }
10
+ export function inventoryFromParsed(parsed, tables = BASE_MODEL_TABLES, version = '') {
11
+ const inventory = { version, tables: {}, counts: {} };
12
+ for (const table of tables) {
13
+ const source = parsed.tables[table];
14
+ if (!source)
15
+ continue;
16
+ const columns = {};
17
+ for (const column of source.columns) {
18
+ columns[column.name] = { ...column, type: normalizeType(column.type) };
19
+ }
20
+ inventory.tables[table] = { columns, constraints: source.constraints };
21
+ inventory.counts[table] = source.columns.length;
22
+ }
23
+ return inventory;
24
+ }
25
+ export function compareInventories(expected, actual) {
26
+ const findings = [];
27
+ const tablesAbsent = [];
28
+ let tablesChecked = 0;
29
+ for (const [table, baseTable] of Object.entries(expected.tables)) {
30
+ const liveTable = actual.tables[table];
31
+ if (!liveTable) {
32
+ tablesAbsent.push(table);
33
+ findings.push({
34
+ table,
35
+ grade: 'absent',
36
+ detail: `base table "${table}" is missing (apply base model ${expected.version || ''}`.trim() + ')',
37
+ });
38
+ continue;
39
+ }
40
+ tablesChecked++;
41
+ for (const [columnName, baseColumn] of Object.entries(baseTable.columns)) {
42
+ const liveColumn = liveTable.columns[columnName];
43
+ if (!liveColumn) {
44
+ findings.push({ table, column: columnName, grade: 'drift', detail: `base column "${table}.${columnName}" is missing` });
45
+ continue;
46
+ }
47
+ const baseType = normalizeType(baseColumn.type);
48
+ const liveType = normalizeType(liveColumn.type);
49
+ if (baseType !== liveType) {
50
+ findings.push({
51
+ table,
52
+ column: columnName,
53
+ grade: 'drift',
54
+ detail: `"${table}.${columnName}" has type "${liveType}", base declares "${baseType}"`,
55
+ });
56
+ }
57
+ if (baseColumn.notNull && !liveColumn.notNull) {
58
+ findings.push({
59
+ table,
60
+ column: columnName,
61
+ grade: 'drift',
62
+ detail: `"${table}.${columnName}" is nullable, base declares NOT NULL`,
63
+ });
64
+ }
65
+ }
66
+ const liveByCanonical = new Set(liveTable.constraints.map(canonicalConstraint));
67
+ for (const constraint of baseTable.constraints) {
68
+ if (constraint.kind === 'check') {
69
+ if (!liveTable.constraints.some((live) => live.name === constraint.name)) {
70
+ findings.push({
71
+ table,
72
+ constraint: constraint.name,
73
+ grade: 'drift',
74
+ detail: `base check "${constraint.name}" is missing`,
75
+ });
76
+ }
77
+ continue;
78
+ }
79
+ if (!liveByCanonical.has(canonicalConstraint(constraint))) {
80
+ findings.push({
81
+ table,
82
+ constraint: constraint.name,
83
+ grade: 'drift',
84
+ detail: `base constraint "${constraint.name}" (${constraint.kind}) is missing on "${table}"`,
85
+ });
86
+ }
87
+ }
88
+ for (const live of liveTable.constraints) {
89
+ const known = baseTable.constraints.some((base) => base.name === live.name || canonicalConstraint(base) === canonicalConstraint(live));
90
+ if (!known) {
91
+ findings.push({ table, constraint: live.name, grade: 'extra', detail: `consumer constraint "${live.name}" (${live.kind})` });
92
+ }
93
+ }
94
+ for (const liveColumn of Object.keys(liveTable.columns)) {
95
+ if (!baseTable.columns[liveColumn]) {
96
+ findings.push({ table, column: liveColumn, grade: 'extra', detail: `consumer column "${table}.${liveColumn}"` });
97
+ }
98
+ }
99
+ }
100
+ const summary = {
101
+ drift: findings.filter((finding) => finding.grade === 'drift').length,
102
+ absent: findings.filter((finding) => finding.grade === 'absent').length,
103
+ extra: findings.filter((finding) => finding.grade === 'extra').length,
104
+ };
105
+ return {
106
+ ok: summary.drift === 0 && summary.absent === 0,
107
+ baseModelVersion: expected.version,
108
+ findings,
109
+ tablesChecked,
110
+ tablesAbsent,
111
+ summary,
112
+ };
113
+ }
114
+ function dbType(row) {
115
+ const dataType = row.data_type;
116
+ if (dataType === 'character varying' || dataType === 'character') {
117
+ return row.character_maximum_length === null ? dataType : `${dataType}(${row.character_maximum_length})`;
118
+ }
119
+ if (dataType === 'numeric') {
120
+ return row.numeric_precision === null ? 'numeric' : `numeric(${row.numeric_precision},${row.numeric_scale ?? 0})`;
121
+ }
122
+ if (dataType.startsWith('timestamp')) {
123
+ return row.datetime_precision === null || row.datetime_precision === 6
124
+ ? dataType
125
+ : `timestamp(${row.datetime_precision})${dataType.replace('timestamp', '')}`;
126
+ }
127
+ return dataType;
128
+ }
129
+ function sqlTableList(tables) {
130
+ return tables.map((table) => `'${table.replace(/'/g, "''")}'`).join(', ');
131
+ }
132
+ export async function inventoryFromDb(db, tables = BASE_MODEL_TABLES, version = '') {
133
+ const inventory = { version, tables: {}, counts: {} };
134
+ const tableList = sqlTableList(tables);
135
+ const columnsResult = await db.query(`SELECT table_name, column_name, data_type, is_nullable, column_default,
136
+ character_maximum_length, datetime_precision, numeric_precision, numeric_scale, udt_name
137
+ FROM information_schema.columns
138
+ WHERE table_schema = 'public' AND table_name IN (${tableList})
139
+ ORDER BY table_name, ordinal_position`);
140
+ const constraintsResult = await db.query(`SELECT t.relname AS table_name, c.conname, c.contype::text AS contype, pg_get_constraintdef(c.oid) AS definition
141
+ FROM pg_constraint c
142
+ JOIN pg_class t ON t.oid = c.conrelid
143
+ JOIN pg_namespace n ON n.oid = t.relnamespace
144
+ WHERE n.nspname = 'public' AND t.relname IN (${tableList}) AND c.contype IN ('p','u','f','c')
145
+ ORDER BY t.relname, c.conname`);
146
+ const kinds = {
147
+ p: 'primary-key', u: 'unique', f: 'foreign-key', c: 'check',
148
+ };
149
+ for (const row of columnsResult.rows) {
150
+ const table = inventory.tables[row.table_name] ?? (inventory.tables[row.table_name] = {
151
+ columns: {}, constraints: [],
152
+ });
153
+ table.columns[row.column_name] = {
154
+ name: row.column_name,
155
+ type: dbType(row),
156
+ notNull: row.is_nullable === 'NO',
157
+ default: row.column_default ?? undefined,
158
+ };
159
+ }
160
+ for (const row of constraintsResult.rows) {
161
+ const table = inventory.tables[row.table_name];
162
+ if (!table)
163
+ continue;
164
+ const columnsMatch = row.definition.match(/\((?:[^()]|\([^()]*\))*\)/);
165
+ const referencesMatch = row.definition.match(/REFERENCES\s+(?:\w+\.)?(\w+)\s*\(([^)]*)\)/);
166
+ table.constraints.push({
167
+ name: row.conname,
168
+ kind: kinds[row.contype] ?? 'check',
169
+ definition: row.definition,
170
+ columns: columnsMatch ? columnsMatch[0].slice(1, -1).split(',').map((column) => column.trim()) : [],
171
+ references: referencesMatch
172
+ ? { table: referencesMatch[1], columns: referencesMatch[2].split(',').map((column) => column.trim()) }
173
+ : undefined,
174
+ });
175
+ }
176
+ for (const table of Object.keys(inventory.tables)) {
177
+ inventory.counts[table] = Object.keys(inventory.tables[table].columns).length;
178
+ }
179
+ return inventory;
180
+ }
181
+ export function formatCheckReport(report) {
182
+ const lines = [];
183
+ lines.push(`Base model ${report.baseModelVersion}: ${report.ok ? 'compliant' : 'DRIFT'}`);
184
+ lines.push(` tables checked: ${report.tablesChecked}`);
185
+ if (report.tablesAbsent.length > 0)
186
+ lines.push(` absent tables: ${report.tablesAbsent.join(', ')}`);
187
+ for (const finding of report.findings.filter((entry) => entry.grade !== 'extra')) {
188
+ lines.push(` [${finding.grade}] ${finding.detail}`);
189
+ }
190
+ const extras = report.findings.filter((entry) => entry.grade === 'extra');
191
+ if (extras.length > 0)
192
+ lines.push(` [extra] ${extras.length} consumer additions (not a failure)`);
193
+ return lines.join('\n');
194
+ }
195
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/base-model/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AAMtE,SAAS,mBAAmB,CAAC,UAA0B;IACrD,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU;QACrC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC1F,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAuB,EAAE,SAA4B,iBAAiB,EAAE,OAAO,GAAG,EAAE;IACtH,MAAM,SAAS,GAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAA0B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,OAAO,GAA+B,EAAE,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QACvE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAClD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA2B,EAAE,MAAyB;IACvF,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,eAAe,KAAK,kCAAkC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG;aACpG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,aAAa,EAAE,CAAC;QAEhB,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACzE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,UAAU,cAAc,EAAE,CAAC,CAAC;gBACxH,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,IAAI,KAAK,IAAI,UAAU,eAAe,QAAQ,qBAAqB,QAAQ,GAAG;iBACvF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,IAAI,KAAK,IAAI,UAAU,uCAAuC;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChF,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzE,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK;wBACL,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,KAAK,EAAE,OAAO;wBACd,MAAM,EAAE,eAAe,UAAU,CAAC,IAAI,cAAc;qBACrD,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1D,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,UAAU,EAAE,UAAU,CAAC,IAAI;oBAC3B,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,oBAAoB,UAAU,CAAC,IAAI,MAAM,UAAU,CAAC,IAAI,oBAAoB,KAAK,GAAG;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YACvI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAC/H,CAAC;QACH,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,KAAK,IAAI,UAAU,GAAG,EAAE,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;QACrE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM;QACvE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;KACtE,CAAC;IACF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAC/C,gBAAgB,EAAE,QAAQ,CAAC,OAAO;QAClC,QAAQ;QACR,aAAa;QACb,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,GAGf;IACC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;IAC/B,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QACjE,OAAO,GAAG,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,GAAG,CAAC,wBAAwB,GAAG,CAAC;IAC3G,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC;IACpH,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,kBAAkB,KAAK,IAAI,IAAI,GAAG,CAAC,kBAAkB,KAAK,CAAC;YACpE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,aAAa,GAAG,CAAC,kBAAkB,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,MAAyB;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAe,EACf,SAA4B,iBAAiB,EAC7C,OAAO,GAAG,EAAE;IAEZ,MAAM,SAAS,GAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,KAAK,CAKlC;;;yDAGqD,SAAS;4CACtB,CACzC,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,KAAK,CACtC;;;;qDAIiD,SAAS;oCAC1B,CACjC,CAAC;IAEF,MAAM,KAAK,GAA2C;QACpD,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO;KAC5D,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG;YACpF,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;SAC7B,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;YAC/B,IAAI,EAAE,GAAG,CAAC,WAAW;YACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;YACjB,OAAO,EAAE,GAAG,CAAC,WAAW,KAAK,IAAI;YACjC,OAAO,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;SACzC,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3F,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO;YACnC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACnG,UAAU,EAAE,eAAe;gBACzB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE;gBACtG,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,qCAAqC,CAAC,CAAC;IACnG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { BaselineExtensions, BaselineInventory, ParsedStructure } from './types.js';
2
+ export interface GenerateOptions {
3
+ parsed: ParsedStructure;
4
+ extensions: BaselineExtensions;
5
+ version: string;
6
+ reference?: {
7
+ source: string;
8
+ sha256: string;
9
+ };
10
+ tables?: readonly string[];
11
+ }
12
+ export interface GeneratedBaseline {
13
+ sql: string;
14
+ inventory: BaselineInventory;
15
+ manifest: {
16
+ version: string;
17
+ reference?: {
18
+ source: string;
19
+ sha256: string;
20
+ };
21
+ tables: Record<string, {
22
+ columns: number;
23
+ constraints: number;
24
+ extensions: number;
25
+ }>;
26
+ externalConstraints: Array<{
27
+ table: string;
28
+ name: string;
29
+ references: string;
30
+ }>;
31
+ };
32
+ }
33
+ export declare function buildInventory(parsed: ParsedStructure, options: GenerateOptions): BaselineInventory;
34
+ export declare function renderBaselineSql(parsed: ParsedStructure, options: GenerateOptions): string;
35
+ export declare function buildBaseline(options: GenerateOptions): GeneratedBaseline;
36
+ export declare function renderGeneratedModule(baseline: GeneratedBaseline): string;
37
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/base-model/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAAE,iBAAiB,EAA8B,eAAe,EACnF,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,mBAAmB,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjF,CAAC;CACH;AAuFD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAcnG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAqD3F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAyBzE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAYzE"}
@@ -0,0 +1,184 @@
1
+ import { BASE_MODEL_TABLES } from './version.js';
2
+ import { normalizeType } from './parse-structure.js';
3
+ const GENERATED_HEADER = [
4
+ '-- Base model baseline (generated, do not edit by hand).',
5
+ '-- Source of truth: the reference database; regenerate with',
6
+ '-- bin/m base-model:dump --from-structure <structure.sql> --extensions <file>',
7
+ '-- Consumers apply this to a fresh database and then their own migrations.',
8
+ ];
9
+ function isExtensionColumn(table, column, extensions) {
10
+ return extensions.columns.includes(`${table}.${column}`);
11
+ }
12
+ function isExtensionConstraint(table, constraint, extensions) {
13
+ return extensions.constraints.includes(`${table}.${constraint}`);
14
+ }
15
+ function renderColumn(column) {
16
+ const parts = [` ${column.name} ${column.type}`];
17
+ if (column.default !== undefined)
18
+ parts.push(`DEFAULT ${column.default}`);
19
+ if (column.notNull)
20
+ parts.push('NOT NULL');
21
+ return parts.join(' ');
22
+ }
23
+ function renderConstraint(table, constraint) {
24
+ return `ALTER TABLE ONLY public.${table}\n ADD CONSTRAINT ${constraint.name} ${constraint.definition};`;
25
+ }
26
+ function renderServerDefault(spec) {
27
+ return `ALTER TABLE ONLY public.${spec.table} ALTER COLUMN ${spec.column} SET DEFAULT ${spec.default};`;
28
+ }
29
+ function renderSequence(sequence) {
30
+ const owned = sequence.ownedBy
31
+ ? `\n\nALTER SEQUENCE public.${sequence.name} OWNED BY public.${sequence.ownedBy.table}.${sequence.ownedBy.column};`
32
+ : '';
33
+ return `${sequence.definition};${owned}`;
34
+ }
35
+ function isExternalFk(constraint, tables) {
36
+ return constraint.kind === 'foreign-key'
37
+ && constraint.references !== undefined
38
+ && !tables.has(constraint.references.table);
39
+ }
40
+ function baseTableSpec(parsed, table, extensions, tables) {
41
+ const source = parsed.tables[table];
42
+ if (!source)
43
+ throw new Error(`Reference structure has no table "${table}"`);
44
+ const keepsConstraint = (constraint) => {
45
+ if (isExtensionConstraint(table, constraint.name, extensions))
46
+ return false;
47
+ if (isExternalFk(constraint, tables))
48
+ return false;
49
+ if (constraint.kind === 'check')
50
+ return true;
51
+ return constraint.columns.every((column) => !isExtensionColumn(table, column, extensions));
52
+ };
53
+ return {
54
+ name: table,
55
+ columns: source.columns.filter((column) => !isExtensionColumn(table, column.name, extensions)),
56
+ constraints: source.constraints.filter(keepsConstraint),
57
+ };
58
+ }
59
+ function collectExternalConstraints(parsed, tables, extensions) {
60
+ const external = [];
61
+ for (const [table, spec] of Object.entries(parsed.tables)) {
62
+ if (!tables.has(table))
63
+ continue;
64
+ for (const constraint of spec.constraints) {
65
+ if (isExtensionConstraint(table, constraint.name, extensions))
66
+ continue;
67
+ if (!isExternalFk(constraint, tables))
68
+ continue;
69
+ external.push({
70
+ table,
71
+ name: constraint.name,
72
+ references: `${constraint.references.table}(${constraint.references.columns.join(',')})`,
73
+ });
74
+ }
75
+ }
76
+ return external;
77
+ }
78
+ export function buildInventory(parsed, options) {
79
+ const tables = (options.tables ?? BASE_MODEL_TABLES);
80
+ const tableSet = new Set(tables);
81
+ const inventory = { version: options.version, tables: {}, counts: {} };
82
+ for (const table of tables) {
83
+ const spec = baseTableSpec(parsed, table, options.extensions, tableSet);
84
+ const columns = {};
85
+ for (const column of spec.columns) {
86
+ columns[column.name] = { ...column, type: normalizeType(column.type) };
87
+ }
88
+ inventory.tables[table] = { columns, constraints: spec.constraints };
89
+ inventory.counts[table] = spec.columns.length;
90
+ }
91
+ return inventory;
92
+ }
93
+ export function renderBaselineSql(parsed, options) {
94
+ const tables = (options.tables ?? BASE_MODEL_TABLES);
95
+ const tableSet = new Set(tables);
96
+ const blocks = [
97
+ ...GENERATED_HEADER,
98
+ `-- Base model version: ${options.version}`,
99
+ ];
100
+ if (options.reference) {
101
+ blocks.push(`-- Reference: ${options.reference.source} (sha256 ${options.reference.sha256})`);
102
+ }
103
+ blocks.push('');
104
+ const specs = tables.map((table) => baseTableSpec(parsed, table, options.extensions, tableSet));
105
+ for (const table of tables) {
106
+ const sequences = Object.values(parsed.sequences)
107
+ .filter((sequence) => sequence.name.startsWith(`${table}_`))
108
+ .sort((a, b) => (a.name < b.name ? -1 : 1));
109
+ for (const sequence of sequences)
110
+ blocks.push(renderSequence(sequence));
111
+ if (sequences.length > 0)
112
+ blocks.push('');
113
+ }
114
+ for (const spec of specs) {
115
+ const body = [
116
+ ...spec.columns.map(renderColumn),
117
+ ...spec.constraints.filter((constraint) => constraint.kind === 'check').map((constraint) => ` CONSTRAINT ${constraint.name} ${constraint.definition}`),
118
+ ];
119
+ blocks.push(`CREATE TABLE public.${spec.name} (\n${body.join(',\n')}\n);`, '');
120
+ }
121
+ for (const spec of specs) {
122
+ for (const constraint of spec.constraints) {
123
+ if (constraint.kind === 'check' || constraint.kind === 'foreign-key')
124
+ continue;
125
+ blocks.push(renderConstraint(spec.name, constraint), '');
126
+ }
127
+ }
128
+ for (const spec of specs) {
129
+ for (const constraint of spec.constraints) {
130
+ if (constraint.kind !== 'foreign-key')
131
+ continue;
132
+ blocks.push(renderConstraint(spec.name, constraint), '');
133
+ }
134
+ }
135
+ for (const table of tables) {
136
+ const defaults = parsed.serverDefaults
137
+ .filter((spec) => spec.table === table)
138
+ .filter((spec) => !isExtensionColumn(table, spec.column, options.extensions))
139
+ .sort((a, b) => (a.column < b.column ? -1 : 1));
140
+ for (const spec of defaults)
141
+ blocks.push(renderServerDefault(spec), '');
142
+ }
143
+ return `${blocks.join('\n').replace(/\n{3,}/g, '\n\n').trimEnd()}\n`;
144
+ }
145
+ export function buildBaseline(options) {
146
+ const tables = (options.tables ?? BASE_MODEL_TABLES);
147
+ const tableSet = new Set(tables);
148
+ const inventory = buildInventory(options.parsed, options);
149
+ const manifestTables = {};
150
+ for (const table of tables) {
151
+ const source = options.parsed.tables[table];
152
+ manifestTables[table] = {
153
+ columns: inventory.tables[table] ? Object.keys(inventory.tables[table].columns).length : 0,
154
+ constraints: inventory.tables[table]?.constraints.length ?? 0,
155
+ extensions: source
156
+ ? source.columns.filter((column) => isExtensionColumn(table, column.name, options.extensions)).length
157
+ : 0,
158
+ };
159
+ }
160
+ return {
161
+ sql: renderBaselineSql(options.parsed, options),
162
+ inventory,
163
+ manifest: {
164
+ version: options.version,
165
+ reference: options.reference,
166
+ tables: manifestTables,
167
+ externalConstraints: collectExternalConstraints(options.parsed, tableSet, options.extensions),
168
+ },
169
+ };
170
+ }
171
+ export function renderGeneratedModule(baseline) {
172
+ return [
173
+ '// Generated by `bin/m base-model:dump`; do not edit by hand.',
174
+ "import type { BaselineInventory } from './types.js';",
175
+ '',
176
+ `export const BASELINE_GENERATED_MANIFEST = ${JSON.stringify(baseline.manifest, null, 2)} as const;`,
177
+ '',
178
+ `export const BASELINE_INVENTORY: BaselineInventory = ${JSON.stringify(baseline.inventory, null, 2)};`,
179
+ '',
180
+ `export const BASELINE_SQL = ${JSON.stringify(baseline.sql)};`,
181
+ '',
182
+ ].join('\n');
183
+ }
184
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/base-model/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface Guideline {
2
+ n: number;
3
+ title: string;
4
+ text: string;
5
+ }
6
+ /**
7
+ * Guidelines of the base model (learn.tg REQ/260 §3.2), numbered so a consumer
8
+ * can cite them. Guideline 6 is the generic form of the privacy rule: the base
9
+ * ships the mechanism, the consumer declares its flag columns.
10
+ */
11
+ export declare const GUIDELINES: Guideline[];
12
+ export declare function renderGuidelines(): string;
13
+ //# sourceMappingURL=guidelines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../src/base-model/guidelines.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EAmDjC,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Guidelines of the base model (learn.tg REQ/260 §3.2), numbered so a consumer
3
+ * can cite them. Guideline 6 is the generic form of the privacy rule: the base
4
+ * ships the mechanism, the consumer declares its flag columns.
5
+ */
6
+ export const GUIDELINES = [
7
+ {
8
+ n: 1,
9
+ title: 'The base is additive and shared',
10
+ text: 'A consumer may add columns, tables, indexes and triggers. It may not remove, rename or reinterpret a base column; if the base itself must change, `m` publishes a new base-model version and the consumers adopt it.',
11
+ },
12
+ {
13
+ n: 2,
14
+ title: 'Extensions must not break the base or another consumer',
15
+ text: 'New columns are nullable or carry a default, and they never change the meaning of a base column.',
16
+ },
17
+ {
18
+ n: 3,
19
+ title: 'The primary key of `usuario` is immutable',
20
+ text: 'Foreign keys point at it (27 in learn.tg): no renumbering, no re-creation, no TRUNCATE. The same holds for the catalogs identifiers.',
21
+ },
22
+ {
23
+ n: 4,
24
+ title: 'Wallets are lowercase',
25
+ text: 'Stored and compared with LOWER(billetera) = LOWER(?).',
26
+ },
27
+ {
28
+ n: 5,
29
+ title: 'The public name is `nusuario`',
30
+ text: 'Never `nombre`; base queries do not expose `nombre` outside the owner-facing profile.',
31
+ },
32
+ {
33
+ n: 6,
34
+ title: 'Visibility flags are honored by every public surface',
35
+ text: 'The base exposes a generic visibility configuration (column names); every query that feeds a public listing must honor it, and the consumer declares those columns in its own migrations and documentation.',
36
+ },
37
+ {
38
+ n: 7,
39
+ title: 'Triggers are allowed and are the consumer\'s responsibility',
40
+ text: 'They must not change the result of a base query, and the consumer documents them.',
41
+ },
42
+ {
43
+ n: 8,
44
+ title: 'No PII in logs',
45
+ text: 'Neither the base queries nor the consumer log personal data.',
46
+ },
47
+ {
48
+ n: 9,
49
+ title: 'Extensions live in the consumer\'s own migrations',
50
+ text: 'Never by editing the baseline; they are documented where that consumer documents its schema.',
51
+ },
52
+ {
53
+ n: 10,
54
+ title: 'A consumer declares the base-model version it is on',
55
+ text: 'It records the version, re-runs the conformance check when adopting a new one, and the check is part of the consumer test suite.',
56
+ },
57
+ ];
58
+ export function renderGuidelines() {
59
+ return GUIDELINES.map((guideline) => `${guideline.n}. **${guideline.title}.** ${guideline.text}`).join('\n\n');
60
+ }
61
+ //# sourceMappingURL=guidelines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidelines.js","sourceRoot":"","sources":["../../src/base-model/guidelines.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,iCAAiC;QACxC,IAAI,EAAE,sNAAsN;KAC7N;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,kGAAkG;KACzG;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,sIAAsI;KAC7I;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,uDAAuD;KAC9D;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,uFAAuF;KAC9F;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,sDAAsD;QAC7D,IAAI,EAAE,6MAA6M;KACpN;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,6DAA6D;QACpE,IAAI,EAAE,mFAAmF;KAC1F;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,8DAA8D;KACrE;IACD;QACE,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,mDAAmD;QAC1D,IAAI,EAAE,8FAA8F;KACrG;IACD;QACE,CAAC,EAAE,EAAE;QACL,KAAK,EAAE,qDAAqD;QAC5D,IAAI,EAAE,kIAAkI;KACzI;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjH,CAAC"}
@@ -0,0 +1,19 @@
1
+ export { BASE_MODEL_VERSION, BASE_MODEL_TABLES, isBaseModelTable } from './version.js';
2
+ export type { BaseModelTable } from './version.js';
3
+ export * from './types.js';
4
+ export { parseStructureSql, normalizeType } from './parse-structure.js';
5
+ export { buildBaseline, buildInventory, renderBaselineSql, renderGeneratedModule } from './generate.js';
6
+ export { compareInventories, formatCheckReport, inventoryFromDb, inventoryFromParsed, } from './check.js';
7
+ export { USUARIO_BASE_COLUMNS, SEARCH_TOWNS_SQL, siweNusuario, isSessionSubject, getUserByWallet, getUserById, ensureWalletLink, upsertUserByWallet, readProfile, updateProfile, setVisibility, listCountries, listDepartments, listMunicipalities, searchTowns, catalogCounts, baseModelInfo, } from './queries.js';
8
+ export { GUIDELINES, renderGuidelines, type Guideline } from './guidelines.js';
9
+ export { LEARN_TG_EXTENSIONS } from './references/learn-tg.js';
10
+ import { BASELINE_INVENTORY, BASELINE_SQL, BASELINE_GENERATED_MANIFEST } from './baseline.generated.js';
11
+ import type { CheckReport, SqlExecutor } from './types.js';
12
+ export { BASELINE_INVENTORY, BASELINE_SQL, BASELINE_GENERATED_MANIFEST };
13
+ /**
14
+ * Conformance check of a live database against the shipped baseline.
15
+ * Extensions are reported as `extra` and never fail; missing or changed base
16
+ * tables/columns are `drift`/`absent` and make the report not ok.
17
+ */
18
+ export declare function checkBaseModel(db: SqlExecutor): Promise<CheckReport>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base-model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxG,OAAO,EACL,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,GAC5E,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EACtE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAClE,WAAW,EAAE,aAAa,EAAE,aAAa,EACzC,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAC9E,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAExG,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,2BAA2B,EAAE,CAAC;AAEzE;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAG1E"}