@dbml/parse 8.0.0-alpha.10 → 8.0.0-alpha.11
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.
- package/dist/dbml-parse.js +21 -21
- package/dist/dbml-parse.mjs +34 -14
- package/package.json +2 -2
package/dist/dbml-parse.mjs
CHANGED
|
@@ -7359,14 +7359,17 @@ var ProgramInterpreter = class {
|
|
|
7359
7359
|
let P = N.getValue();
|
|
7360
7360
|
P && this.pushElement(M, P);
|
|
7361
7361
|
}
|
|
7362
|
-
let r = /* @__PURE__ */ new Set(), M = this.compiler.symbolMembers(this.programSymbol).getFiltered(UNHANDLED) ?? [];
|
|
7363
|
-
for (
|
|
7364
|
-
|
|
7365
|
-
let
|
|
7366
|
-
|
|
7362
|
+
let r = /* @__PURE__ */ new Set(), M = (this.compiler.symbolMembers(this.programSymbol).getFiltered(UNHANDLED) ?? []).filter((r) => r instanceof SchemaSymbol);
|
|
7363
|
+
for (; M.length > 0;) {
|
|
7364
|
+
let N = M.shift(), P = this.compiler.symbolMembers(N).getFiltered(UNHANDLED) ?? [];
|
|
7365
|
+
for (let j of P) {
|
|
7366
|
+
if (j instanceof SchemaSymbol) {
|
|
7367
|
+
M.push(j);
|
|
7368
|
+
continue;
|
|
7369
|
+
}
|
|
7367
7370
|
if (!(j instanceof UseSymbol)) continue;
|
|
7368
|
-
let
|
|
7369
|
-
r.has(
|
|
7371
|
+
let N = j.originalSymbol.intern();
|
|
7372
|
+
r.has(N) || (r.add(N), this.interpretUseSymbol(j));
|
|
7370
7373
|
}
|
|
7371
7374
|
}
|
|
7372
7375
|
}
|
|
@@ -8324,7 +8327,7 @@ function usableMembers(r) {
|
|
|
8324
8327
|
function schemaMembership(r, M, N) {
|
|
8325
8328
|
let P = M.qualifiedName, F;
|
|
8326
8329
|
if (F = N instanceof UseSpecifierNode ? useUtils.visibleName(r, N) : r.nodeFullname(N).getFiltered(UNHANDLED), !F) return { kind: "none" };
|
|
8327
|
-
let I = F.length <= 1 ? [DEFAULT_SCHEMA_NAME] : F.slice(0, -1);
|
|
8330
|
+
let I = N instanceof UseSpecifierNode && N.getSymbolKind() === SymbolKind.Schema ? F : F.length <= 1 ? [DEFAULT_SCHEMA_NAME] : F.slice(0, -1);
|
|
8328
8331
|
return I.length < P.length || !P.every((r, j) => r === I[j]) ? { kind: "none" } : I.length === P.length ? { kind: "direct" } : {
|
|
8329
8332
|
kind: "child",
|
|
8330
8333
|
schemaName: I[P.length]
|
|
@@ -9498,11 +9501,15 @@ function handleMemberSelectiveUses(r, N, P, F) {
|
|
|
9498
9501
|
function mergeImportedSchema(r, M, N, P = /* @__PURE__ */ new Set()) {
|
|
9499
9502
|
if (N.getSymbolKind() !== SymbolKind.Schema || !N.name) return [];
|
|
9500
9503
|
let F = r.nodeReferee(N.name).getFiltered(UNHANDLED);
|
|
9501
|
-
if (!F || !F.isKind(SymbolKind.Schema)
|
|
9502
|
-
let I =
|
|
9503
|
-
|
|
9504
|
-
|
|
9505
|
-
|
|
9504
|
+
if (!F || !F.isKind(SymbolKind.Schema)) return [];
|
|
9505
|
+
let I = useUtils.visibleName(r, N), L = M.qualifiedName;
|
|
9506
|
+
return !I || I.length !== L.length || !I.every((r, j) => r === L[j]) ? [] : mergeSchemaMembers(r, M, N, F, P);
|
|
9507
|
+
}
|
|
9508
|
+
function mergeSchemaMembers(r, M, N, P, F) {
|
|
9509
|
+
let I = P.intern();
|
|
9510
|
+
if (F.has(I)) return [];
|
|
9511
|
+
F.add(I);
|
|
9512
|
+
let L = r.usableMembers(P).getFiltered(UNHANDLED);
|
|
9506
9513
|
if (!L) return [];
|
|
9507
9514
|
let R = L.nonSchemaMembers.filter((r) => r.canBeImported).map((j) => r.symbolFactory.create(UseSymbol, {
|
|
9508
9515
|
kind: j.kind,
|
|
@@ -9512,7 +9519,20 @@ function mergeImportedSchema(r, M, N, P = /* @__PURE__ */ new Set()) {
|
|
|
9512
9519
|
name: j.name
|
|
9513
9520
|
}, M.filepath));
|
|
9514
9521
|
for (let j of [...R]) j.isKind(SymbolKind.TableGroup) && R.push(...expandTableGroup(r, M, j));
|
|
9515
|
-
for (let
|
|
9522
|
+
for (let P of L.reuses.selective) if (R.push(...mergeImportedSchema(r, M, P, F)), schemaMembership(r, M, P).kind === "direct") {
|
|
9523
|
+
let F = r.nodeSymbol(P).getFiltered(UNHANDLED);
|
|
9524
|
+
F && F.canBeImported && R.push(r.symbolFactory.create(UseSymbol, {
|
|
9525
|
+
kind: F.kind,
|
|
9526
|
+
declaration: F.originalSymbol.declaration,
|
|
9527
|
+
usedSymbol: F.originalSymbol,
|
|
9528
|
+
useSpecifierDeclaration: N,
|
|
9529
|
+
name: F.name
|
|
9530
|
+
}, M.filepath));
|
|
9531
|
+
}
|
|
9532
|
+
for (let { importPath: j } of L.reuses.wildcard) {
|
|
9533
|
+
let P = findSchemaSymbolInFilepath(r, j, M.qualifiedName);
|
|
9534
|
+
P && R.push(...mergeSchemaMembers(r, M, N, P, F));
|
|
9535
|
+
}
|
|
9516
9536
|
return R;
|
|
9517
9537
|
}
|
|
9518
9538
|
function handleMemberWildcardUses(r, M, N, P, F, I = /* @__PURE__ */ new Set()) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@dbml/parse",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.11",
|
|
5
5
|
"description": "DBML parser v2",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=18"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "976e0f27c85468fa8a0fbb2ded04862e86b05b89"
|
|
50
50
|
}
|