@pasosdejesus/m 0.22.1 → 0.22.3

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 (49) hide show
  1. package/README.md +57 -0
  2. package/dist/CHANGELOG.md +902 -0
  3. package/package.json +3 -4
  4. package/dist/base-model/baseline.generated.d.ts +0 -60
  5. package/dist/base-model/baseline.generated.d.ts.map +0 -1
  6. package/dist/base-model/baseline.generated.js +0 -1110
  7. package/dist/base-model/baseline.generated.js.map +0 -1
  8. package/dist/base-model/check.d.ts +0 -6
  9. package/dist/base-model/check.d.ts.map +0 -1
  10. package/dist/base-model/check.js +0 -195
  11. package/dist/base-model/check.js.map +0 -1
  12. package/dist/base-model/generate.d.ts +0 -37
  13. package/dist/base-model/generate.d.ts.map +0 -1
  14. package/dist/base-model/generate.js +0 -184
  15. package/dist/base-model/generate.js.map +0 -1
  16. package/dist/base-model/guidelines.d.ts +0 -13
  17. package/dist/base-model/guidelines.d.ts.map +0 -1
  18. package/dist/base-model/guidelines.js +0 -61
  19. package/dist/base-model/guidelines.js.map +0 -1
  20. package/dist/base-model/index.d.ts +0 -19
  21. package/dist/base-model/index.d.ts.map +0 -1
  22. package/dist/base-model/index.js +0 -22
  23. package/dist/base-model/index.js.map +0 -1
  24. package/dist/base-model/parse-structure.d.ts +0 -4
  25. package/dist/base-model/parse-structure.d.ts.map +0 -1
  26. package/dist/base-model/parse-structure.js +0 -170
  27. package/dist/base-model/parse-structure.js.map +0 -1
  28. package/dist/base-model/queries.d.ts +0 -41
  29. package/dist/base-model/queries.d.ts.map +0 -1
  30. package/dist/base-model/queries.js +0 -157
  31. package/dist/base-model/queries.js.map +0 -1
  32. package/dist/base-model/references/learn-tg.d.ts +0 -16
  33. package/dist/base-model/references/learn-tg.d.ts.map +0 -1
  34. package/dist/base-model/references/learn-tg.js +0 -60
  35. package/dist/base-model/references/learn-tg.js.map +0 -1
  36. package/dist/base-model/types.d.ts +0 -183
  37. package/dist/base-model/types.d.ts.map +0 -1
  38. package/dist/base-model/types.js +0 -10
  39. package/dist/base-model/types.js.map +0 -1
  40. package/dist/base-model/version.d.ts +0 -12
  41. package/dist/base-model/version.d.ts.map +0 -1
  42. package/dist/base-model/version.js +0 -20
  43. package/dist/base-model/version.js.map +0 -1
  44. package/dist/tasks/base-model.d.ts +0 -3
  45. package/dist/tasks/base-model.d.ts.map +0 -1
  46. package/dist/tasks/base-model.js +0 -177
  47. package/dist/tasks/base-model.js.map +0 -1
  48. package/dist/templates/apps/hardhat/contracts/MockUSDT.sol +0 -47
  49. package/dist/templates/apps/hardhat/test/MockUSDT.test.ts +0 -40
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseline.generated.js","sourceRoot":"","sources":["../../src/base-model/baseline.generated.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,195 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/base-model/check.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,184 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/base-model/generate.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,61 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,19 +0,0 @@
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
@@ -1 +0,0 @@
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"}