@askdb/enrich 0.2.0-beta.14 → 0.2.0-beta.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EAER,OAAO,EACP,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,UAAU,CA6BZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,kBAAkB,CAgCpB;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKtD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAE7D;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,GAChB,MAAM,EAAE,CASV;AA+BD,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAQlE;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAStD"}
1
+ {"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EAER,OAAO,EACP,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,UAAU,CA6BZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,kBAAkB,CAgCpB;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKtD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAE7D;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,GAChB,MAAM,EAAE,CAKV;AA2BD,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAQlE;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAStD"}
package/dist/draft.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { findMentionedNames } from "@askdb/core";
1
2
  export function buildTableDraft(physical, parsed) {
2
3
  const fm = parsed?.frontmatter;
3
4
  const columns = {};
@@ -94,17 +95,7 @@ export function formatList(list) {
94
95
  }
95
96
  /** Sensitive column names (per physical layer) referenced in a description. */
96
97
  export function findSensitiveColumnReferences(description, physical) {
97
- const lower = description.toLowerCase();
98
- return physical.columns
99
- .filter((c) => c.sensitive)
100
- .map((c) => c.name)
101
- .filter((name) => {
102
- const re = new RegExp(`\\b${escapeRegex(name)}\\b`, "i");
103
- return re.test(lower);
104
- });
105
- }
106
- function escapeRegex(s) {
107
- return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
98
+ return findMentionedNames(description, physical.columns.filter((c) => c.sensitive).map((c) => c.name));
108
99
  }
109
100
  function nonEmptyStrings(list) {
110
101
  return Array.isArray(list) && list.length > 0;
package/dist/draft.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"draft.js","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft.js","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ParsedConceptsMarkdown, type ParsedTableMarkdown, type SchemaV2Warning, type V2Concept, type V2ConceptsFrontmatter, type V2SchemaJson, type V2Table, type V2TableFrontmatter } from "@askdb/core";
1
+ import { type BundledSchemaV2 as CoreBundledSchemaV2, type ParsedConceptsMarkdown, type ParsedTableMarkdown, type SchemaV2Warning, type V2Concept, type V2ConceptsFrontmatter, type V2SchemaJson, type V2Table, type V2TableFrontmatter } from "@askdb/core";
2
2
  /**
3
3
  * One table in the workspace. Pairs the physical layer entry with the (optional)
4
4
  * describable-layer markdown file so save knows where to write.
@@ -25,12 +25,12 @@ export type Workspace = {
25
25
  concepts: ParsedConceptsMarkdown | undefined;
26
26
  warnings: SchemaV2Warning[];
27
27
  };
28
- export type BundledSchemaV2 = {
29
- bundled: true;
30
- physical: V2SchemaJson;
31
- tables: Record<string, string>;
32
- concepts?: string;
33
- };
28
+ /**
29
+ * The bundle format, re-exported from `@askdb/core`, whose loader defines it.
30
+ *
31
+ * @deprecated Import `BundledSchemaV2` from `@askdb/core` instead.
32
+ */
33
+ export type BundledSchemaV2 = CoreBundledSchemaV2;
34
34
  /**
35
35
  * Load a Schema v2 workspace from disk, preserving file-path information for
36
36
  * round-trippable save.
@@ -45,7 +45,15 @@ export declare function saveTable(workspace: Workspace, tableId: string, frontma
45
45
  export declare function saveConcepts(workspace: Workspace, frontmatter: V2ConceptsFrontmatter, body?: string): void;
46
46
  export declare function validateConceptLinks(workspace: Workspace, concepts: V2Concept[]): string[];
47
47
  export declare function pruneOrphanedColumns(workspace: Workspace): number;
48
- export declare function bundleSchemaDirectory(schemaDir: string): BundledSchemaV2;
48
+ export declare function bundleSchemaDirectory(schemaDir: string): CoreBundledSchemaV2;
49
+ /**
50
+ * `mode` for a file whose group could not be kept: the group and others both get
51
+ * only what both had before, so neither the group the file lands in nor the old
52
+ * group's non-members gain access (`0660` becomes `0600`, `0604` becomes `0600`).
53
+ *
54
+ * @internal Exported for its tests; `index.ts` doesn't re-export it.
55
+ */
56
+ export declare function modeWhenGroupLost(mode: number): number;
49
57
  /**
50
58
  * Build a default body skeleton for a brand-new table .md file:
51
59
  * `# Table: <name>` heading + the description as the first paragraph.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CA4D1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,MAAM,GACX,IAAI,CAWN;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,qBAAqB,EAClC,IAAI,SAAwE,GAC3E,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAO1F;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA2BjE;AAqCD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAwBxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkDpF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBvF"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAqBA,OAAO,EAOL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CA+E1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,MAAM,GACX,IAAI,CAWN;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,qBAAqB,EAClC,IAAI,SAAwE,GAC3E,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAO1F;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA2BjE;AAqCD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAiB5E;AAiQD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkDpF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBvF"}
package/dist/workspace.js CHANGED
@@ -1,5 +1,6 @@
1
- import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
2
- import { join } from "node:path";
1
+ import { createHash, randomBytes } from "node:crypto";
2
+ import { accessSync, closeSync, constants as fsConstants, existsSync, fchmodSync, fchownSync, fstatSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync, } from "node:fs";
3
+ import { basename, dirname, join, resolve } from "node:path";
3
4
  import { parseConceptsMarkdown, parseTableMarkdown, loadSchema, writeConceptsMarkdown, writeTableMarkdown, v2SchemaJsonSchema, } from "@askdb/core";
4
5
  /**
5
6
  * Load a Schema v2 workspace from disk, preserving file-path information for
@@ -13,8 +14,11 @@ export function loadWorkspace(schemaDir) {
13
14
  const physical = parsePhysical(readFileSync(schemaJsonPath, "utf8"), schemaJsonPath);
14
15
  const tableDir = join(schemaDir, "tables");
15
16
  const parsedByFile = new Map();
17
+ // Every name in tables/, not only the `.md` files the loader reads: a default
18
+ // filename must not land on any of them (`Orders.MD` is `orders.md` on APFS).
19
+ const entriesOnDisk = existsSync(tableDir) ? readdirSync(tableDir) : [];
16
20
  if (existsSync(tableDir)) {
17
- for (const entry of readdirSync(tableDir)) {
21
+ for (const entry of entriesOnDisk) {
18
22
  if (!entry.endsWith(".md"))
19
23
  continue;
20
24
  const content = readFileSync(join(tableDir, entry), "utf8");
@@ -35,15 +39,28 @@ export function loadWorkspace(schemaDir) {
35
39
  escalatedByOtherFiles.set(owner, set);
36
40
  }
37
41
  }
38
- // Pair physical tables with their .md (if any). New physical tables get a
39
- // default filename derived from the table name.
40
- const tables = physical.tables.map((physTable) => {
42
+ // Pair physical tables with their .md (if any), matched by front-matter id —
43
+ // existing files keep their filename whatever it is. Physical tables without
44
+ // a .md get a safe, collision-free default filename.
45
+ const matchedByTableId = new Map();
46
+ for (const physTable of physical.tables) {
41
47
  const matched = [...parsedByFile.entries()].find(([, p]) => p.frontmatter.id === physTable.id);
48
+ if (matched)
49
+ matchedByTableId.set(physTable.id, matched);
50
+ }
51
+ const defaultFilenames = assignDefaultTableFilenames(physical.tables.filter((t) => !matchedByTableId.has(t.id)), physical.tables, entriesOnDisk);
52
+ const tables = physical.tables.map((physTable) => {
53
+ const matched = matchedByTableId.get(physTable.id);
42
54
  const escalated = [...(escalatedByOtherFiles.get(physTable.id) ?? [])];
43
55
  if (matched) {
44
56
  return { physical: physTable, filename: matched[0], parsed: matched[1], escalatedByOtherFiles: escalated };
45
57
  }
46
- return { physical: physTable, filename: `${physTable.name}.md`, parsed: undefined, escalatedByOtherFiles: escalated };
58
+ return {
59
+ physical: physTable,
60
+ filename: defaultFilenames.get(physTable.id),
61
+ parsed: undefined,
62
+ escalatedByOtherFiles: escalated,
63
+ };
47
64
  });
48
65
  let concepts;
49
66
  const conceptsPath = join(schemaDir, "concepts.md");
@@ -67,10 +84,10 @@ export function saveTable(workspace, tableId, frontmatter, body) {
67
84
  if (!wt)
68
85
  throw new Error(`No such table: ${tableId}`);
69
86
  const tablesDir = join(workspace.schemaDir, "tables");
87
+ const filePath = resolveTableFilePath(tablesDir, wt.filename);
70
88
  mkdirSync(tablesDir, { recursive: true });
71
- const filePath = join(tablesDir, wt.filename);
72
89
  const md = writeTableMarkdown(frontmatter, body);
73
- writeFileSync(filePath, md, "utf8");
90
+ replaceTableFile(tablesDir, filePath, wt.filename, md);
74
91
  // Update in-memory parse so subsequent edits see the saved state.
75
92
  const reparsed = parseTableMarkdown(md, filePath);
76
93
  wt.parsed = reparsed;
@@ -163,24 +180,270 @@ export function bundleSchemaDirectory(schemaDir) {
163
180
  }
164
181
  const physical = parsePhysical(readFileSync(schemaJsonPath, "utf8"), schemaJsonPath);
165
182
  const tables = {};
166
- const tableDir = join(schemaDir, "tables");
167
- if (existsSync(tableDir)) {
168
- for (const entry of readdirSync(tableDir).sort()) {
169
- if (!entry.endsWith(".md"))
170
- continue;
171
- tables[entry] = readFileSync(join(tableDir, entry), "utf8");
183
+ for (const entry of (readOptionalDir(join(schemaDir, "tables")) ?? []).sort()) {
184
+ if (!entry.endsWith(".md"))
185
+ continue;
186
+ tables[entry] = readFileSync(join(schemaDir, "tables", entry), "utf8");
187
+ }
188
+ const bundle = { bundled: true, physical, tables };
189
+ for (const [key, file] of Object.entries(OPTIONAL_BUNDLE_FILES)) {
190
+ const content = readOptionalFile(join(schemaDir, file));
191
+ if (content !== undefined)
192
+ bundle[key] = content;
193
+ }
194
+ return bundle;
195
+ }
196
+ /**
197
+ * Each optional bundle field and the schema-directory file it carries. Typed
198
+ * against core's `BundledSchemaV2`, so a field the loader starts reading fails
199
+ * this build until the bundler writes it too.
200
+ */
201
+ const OPTIONAL_BUNDLE_FILES = {
202
+ concepts: "concepts.md",
203
+ tenantPolicy: "tenant-policy.md",
204
+ };
205
+ // Like core's directory loader, only a missing path (ENOENT) counts as absent. Any
206
+ // other failure (EACCES, ELOOP, ENOTDIR, ...) throws, because skipping an unreadable
207
+ // tenant-policy.md would write a bundle that loads with tenant enforcement off.
208
+ function readOptionalFile(filePath) {
209
+ try {
210
+ return readFileSync(filePath, "utf8");
211
+ }
212
+ catch (e) {
213
+ if (isMissingPathError(e))
214
+ return undefined;
215
+ throw e;
216
+ }
217
+ }
218
+ function readOptionalDir(dirPath) {
219
+ try {
220
+ return readdirSync(dirPath);
221
+ }
222
+ catch (e) {
223
+ if (isMissingPathError(e))
224
+ return undefined;
225
+ throw e;
226
+ }
227
+ }
228
+ function isMissingPathError(e) {
229
+ return e?.code === "ENOENT";
230
+ }
231
+ /**
232
+ * Turn a database identifier into a filename-safe slug. Path separators, NUL,
233
+ * control characters, lone UTF-16 surrogates, and characters reserved on Windows
234
+ * become `_`; names that would be hidden files (including `.` / `..`) or Windows
235
+ * device names get a `_` prefix; trailing dots and spaces (which Windows strips)
236
+ * become `_`.
237
+ * Everything else, including non-ASCII letters, is kept so ordinary names
238
+ * stay readable.
239
+ */
240
+ function toSafeFilenameSlug(identifier) {
241
+ // Node writes a lone UTF-16 surrogate in a path as U+FFFD, so `a\ud800` and
242
+ // `a\ud801` would name the same file.
243
+ let slug = identifier.replace(/\p{Surrogate}/gu, "_");
244
+ slug = slug.replace(/[\u0000-\u001f\u007f/\\<>:"|?*]/g, "_");
245
+ slug = slug.replace(/[. ]+$/, (m) => "_".repeat(m.length));
246
+ if (slug === "")
247
+ return "_";
248
+ if (slug.startsWith("."))
249
+ slug = `_${slug}`;
250
+ if (/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\.|$)/i.test(slug))
251
+ slug = `_${slug}`;
252
+ return slug;
253
+ }
254
+ /**
255
+ * The key under which two names are the same file on a case-insensitive file
256
+ * system. APFS ignores Unicode normalization and compares with full case folding
257
+ * (`straße` = `STRASSE` = `STRAẞE`, NFC `café` = NFD `café`); NTFS compares with a
258
+ * per-character uppercase table and no normalization. NFC removes normalization
259
+ * differences; lowercasing first maps capital sharp s `ẞ` to `ß`, and the uppercase
260
+ * step then expands `ß` to `SS`, so the key agrees with full case folding (ADR 0013
261
+ * records how that was checked). Over-matching only costs a longer filename.
262
+ */
263
+ function filenameKey(name) {
264
+ return name.normalize("NFC").toLowerCase().toUpperCase().toLowerCase();
265
+ }
266
+ /**
267
+ * Longest default filename, counted in UTF-8 bytes of its decomposed (NFD) form.
268
+ * That count is at least the length every common file system limits: UTF-8 bytes
269
+ * (ext4, APFS: 255), UTF-16 units (NTFS: 255), and decomposed UTF-16 units (HFS+:
270
+ * 255). The margin under 255 leaves room for editor and atomic-write temp names
271
+ * such as `.orders.md.swp`.
272
+ */
273
+ const MAX_FILENAME_BYTES = 200;
274
+ const nfdByteLength = (s) => Buffer.byteLength(s.normalize("NFD"), "utf8");
275
+ /**
276
+ * `<stem>.md`, or, when that is longer than `MAX_FILENAME_BYTES`, the longest
277
+ * whole-code-point prefix of `stem` that fits, then `~<8 hex chars of
278
+ * sha256(stem)>.md`. The hash keeps two long names that share a prefix apart.
279
+ */
280
+ function fitFilename(stem) {
281
+ const filename = `${stem}.md`;
282
+ if (nfdByteLength(filename) <= MAX_FILENAME_BYTES)
283
+ return filename;
284
+ const suffix = `~${createHash("sha256").update(stem).digest("hex").slice(0, 8)}.md`;
285
+ let budget = MAX_FILENAME_BYTES - suffix.length;
286
+ let prefix = "";
287
+ for (const ch of stem) {
288
+ budget -= nfdByteLength(ch);
289
+ if (budget < 0)
290
+ break;
291
+ prefix += ch;
292
+ }
293
+ return `${prefix}${suffix}`;
294
+ }
295
+ /**
296
+ * Pick default `tables/` filenames for tables that do not have a markdown file
297
+ * yet (ADR 0013). Uses `<name>.md` when the bare name is unique across the
298
+ * physical layer, otherwise the schema-qualified `<schema>.<name>.md`, comparing
299
+ * names as a case-insensitive file system would (`filenameKey`). Never reuses a
300
+ * filename already on disk or already assigned; falls back to a numeric suffix
301
+ * if needed. Over-long names are shortened with a hash suffix (`fitFilename`).
302
+ */
303
+ function assignDefaultTableFilenames(unassigned, allTables, existingFilenames) {
304
+ const bareNameCounts = new Map();
305
+ for (const t of allTables) {
306
+ const key = filenameKey(toSafeFilenameSlug(t.name));
307
+ bareNameCounts.set(key, (bareNameCounts.get(key) ?? 0) + 1);
308
+ }
309
+ const taken = new Set(existingFilenames.map(filenameKey));
310
+ const assigned = new Map();
311
+ for (const t of unassigned) {
312
+ const bare = toSafeFilenameSlug(t.name);
313
+ const qualified = toSafeFilenameSlug(`${t.schema}.${t.name}`);
314
+ const nameCollides = (bareNameCounts.get(filenameKey(bare)) ?? 0) > 1;
315
+ let filename = fitFilename(nameCollides ? qualified : bare);
316
+ if (taken.has(filenameKey(filename)))
317
+ filename = fitFilename(qualified);
318
+ for (let n = 2; taken.has(filenameKey(filename)); n += 1) {
319
+ filename = fitFilename(`${qualified}-${n}`);
172
320
  }
321
+ taken.add(filenameKey(filename));
322
+ assigned.set(t.id, filename);
173
323
  }
174
- const conceptsPath = join(schemaDir, "concepts.md");
175
- const concepts = existsSync(conceptsPath)
176
- ? readFileSync(conceptsPath, "utf8")
177
- : undefined;
178
- return {
179
- bundled: true,
180
- physical,
181
- tables,
182
- ...(concepts !== undefined ? { concepts } : {}),
324
+ return assigned;
325
+ }
326
+ /**
327
+ * Resolve a workspace table filename to an absolute path, refusing anything
328
+ * that would land outside `tablesDir` (path separators, `..`, absolute paths,
329
+ * NUL bytes) or is not a `.md` file. `\` separates paths only on Windows; on
330
+ * macOS and Linux it is an ordinary filename character, so a file such as
331
+ * `ord\ers.md` already in `tables/` can still be saved.
332
+ */
333
+ function resolveTableFilePath(tablesDir, filename) {
334
+ const root = resolve(tablesDir);
335
+ const filePath = resolve(root, filename);
336
+ if (filename.includes("\0") ||
337
+ filename.includes("/") ||
338
+ (process.platform === "win32" && filename.includes("\\")) ||
339
+ basename(filePath) !== filename ||
340
+ dirname(filePath) !== root ||
341
+ !filename.endsWith(".md")) {
342
+ throw new Error(`Refusing to write table markdown outside tables/: ${JSON.stringify(filename)}`);
343
+ }
344
+ return filePath;
345
+ }
346
+ /**
347
+ * Write a table markdown file so that no link can redirect the write out of
348
+ * `tables/`. A schema directory can come from an untrusted checkout (git stores
349
+ * symbolic links, tar archives also store hard links), and Studio saves into it
350
+ * for as long as it runs.
351
+ *
352
+ * - `tables/` itself and the target file must not be symbolic links; either one
353
+ * is refused.
354
+ * - The content goes to a new temp file in `tables/` (`O_EXCL`, so it never opens
355
+ * an existing path), which is then renamed over the target. `rename` replaces
356
+ * the directory entry instead of writing into the existing file, so a hard link
357
+ * to a file elsewhere is detached, not written through, and a symbolic link
358
+ * planted at the target after the check is replaced, not followed. This holds on
359
+ * Windows too, which has no `O_NOFOLLOW`.
360
+ * - A target the caller can't write is refused with `EACCES`, as a plain write
361
+ * would be. `rename` needs only write access to `tables/`, so without this check
362
+ * a read-only file (how Perforce and ClearCase mark files not checked out) would
363
+ * be replaced on macOS and Linux.
364
+ * - The temp file gets the target's owner, group, and permission bits before any
365
+ * content is written, so a `0600` file's new content is never readable by others
366
+ * and a `0660` file stays shared with its own group, not the group a new file in
367
+ * `tables/` would get (`keepOwnerAndGroup`). It is `fsync`ed before the rename.
368
+ * Readers, and a crash or power loss, see either the old file or the new one,
369
+ * never a partial write.
370
+ *
371
+ * Not covered: `tables/` being swapped for a link after the check and before the
372
+ * rename, since the temp path and the rename still resolve through it. That needs
373
+ * a concurrent local writer racing a save. And only root can give a file to another
374
+ * user, so on macOS and Linux a save by someone other than the file's owner (a
375
+ * member of a group that may write it) makes the saver its owner.
376
+ */
377
+ function replaceTableFile(tablesDir, filePath, filename, content) {
378
+ const refuse = (why) => new Error(`Refusing to write table markdown outside tables/: ${why}`);
379
+ if (lstatSync(tablesDir).isSymbolicLink())
380
+ throw refuse("tables/ is a symbolic link");
381
+ const existing = lstatSync(filePath, { throwIfNoEntry: false });
382
+ if (existing?.isSymbolicLink())
383
+ throw refuse(`${JSON.stringify(filename)} is a symbolic link`);
384
+ if (existing)
385
+ accessSync(filePath, fsConstants.W_OK);
386
+ const tempPath = join(tablesDir, `.askdb-save-${randomBytes(8).toString("hex")}.tmp`);
387
+ const fd = openSync(tempPath, fsConstants.O_WRONLY | fsConstants.O_CREAT | fsConstants.O_EXCL, 0o666);
388
+ try {
389
+ try {
390
+ // Keep the replaced file's owner, group, and permission bits, before the content lands.
391
+ if (existing) {
392
+ const mode = existing.mode & 0o777;
393
+ const groupKept = keepOwnerAndGroup(fd, existing);
394
+ fchmodSync(fd, groupKept ? mode : modeWhenGroupLost(mode));
395
+ }
396
+ writeFileSync(fd, content, "utf8");
397
+ fsyncSync(fd);
398
+ }
399
+ finally {
400
+ closeSync(fd);
401
+ }
402
+ renameSync(tempPath, filePath);
403
+ }
404
+ catch (e) {
405
+ try {
406
+ rmSync(tempPath, { force: true });
407
+ }
408
+ catch {
409
+ // Report the save's own error, not a failed cleanup (e.g. Windows EPERM).
410
+ }
411
+ throw e;
412
+ }
413
+ }
414
+ /**
415
+ * Give the file open at `fd` the owner and group of `existing`, as far as the
416
+ * process may: only root can change a file's owner, and anyone else can set only
417
+ * a group they belong to. Returns whether the group now matches; Windows has no
418
+ * POSIX owner or group, so there it is always true.
419
+ */
420
+ function keepOwnerAndGroup(fd, existing) {
421
+ if (process.platform === "win32")
422
+ return true;
423
+ const tryChown = (uid, gid) => {
424
+ try {
425
+ fchownSync(fd, uid, gid);
426
+ }
427
+ catch {
428
+ // Not permitted (or not supported by this file system); checked below.
429
+ }
183
430
  };
431
+ if (fstatSync(fd).uid !== existing.uid)
432
+ tryChown(existing.uid, existing.gid);
433
+ if (fstatSync(fd).gid !== existing.gid)
434
+ tryChown(-1, existing.gid);
435
+ return fstatSync(fd).gid === existing.gid;
436
+ }
437
+ /**
438
+ * `mode` for a file whose group could not be kept: the group and others both get
439
+ * only what both had before, so neither the group the file lands in nor the old
440
+ * group's non-members gain access (`0660` becomes `0600`, `0604` becomes `0600`).
441
+ *
442
+ * @internal Exported for its tests; `index.ts` doesn't re-export it.
443
+ */
444
+ export function modeWhenGroupLost(mode) {
445
+ const shared = (mode >> 3) & mode & 0o007;
446
+ return (mode & 0o700) | (shared << 3) | shared;
184
447
  }
185
448
  /**
186
449
  * Build a default body skeleton for a brand-new table .md file:
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/enrich",
3
- "version": "0.2.0-beta.14",
3
+ "version": "0.2.0-beta.15",
4
4
  "description": "AskDB enrichment workspace helpers for Schema v2 authoring surfaces.",
5
5
  "keywords": [
6
6
  "askdb",
@@ -37,18 +37,18 @@
37
37
  "NOTICE"
38
38
  ],
39
39
  "engines": {
40
- "node": ">=22.12"
40
+ "node": ">=22.23.4"
41
41
  },
42
42
  "dependencies": {
43
- "@askdb/core": "1.0.0-beta.43"
43
+ "@askdb/core": "1.0.0-beta.44"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^6.0.3",
47
- "vitest": "^5.0.1"
47
+ "vitest": "^5.0.5"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsc -p tsconfig.build.json",
51
- "lint": "tsc -p tsconfig.build.json --noEmit",
51
+ "lint": "tsc -p tsconfig.json --noEmit",
52
52
  "test": "vitest run --config ../../vitest.config.ts"
53
53
  }
54
54
  }