@dereekb/dbx-components-mcp 13.12.0 → 13.12.2
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/dbx-components-mcp.js +102 -17
- package/package.json +11 -11
package/dbx-components-mcp.js
CHANGED
|
@@ -5,7 +5,7 @@ const require = __createRequire(import.meta.url);
|
|
|
5
5
|
// packages/dbx-components-mcp/package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "@dereekb/dbx-components-mcp",
|
|
8
|
-
version: "13.12.
|
|
8
|
+
version: "13.12.2",
|
|
9
9
|
type: "module",
|
|
10
10
|
bin: {
|
|
11
11
|
"dbx-components-mcp": "dbx-components-mcp.js"
|
|
@@ -20,20 +20,20 @@ var package_default = {
|
|
|
20
20
|
"@angular/core": "21.2.11",
|
|
21
21
|
"@angular/forms": "21.2.11",
|
|
22
22
|
"@angular/material": "^21.2.9",
|
|
23
|
-
"@dereekb/dbx-cli": "13.12.
|
|
24
|
-
"@dereekb/dbx-core": "13.12.
|
|
25
|
-
"@dereekb/dbx-firebase": "13.12.
|
|
26
|
-
"@dereekb/dbx-form": "13.12.
|
|
27
|
-
"@dereekb/dbx-web": "13.12.
|
|
28
|
-
"@dereekb/firebase": "13.12.
|
|
29
|
-
"@dereekb/firebase-server": "13.12.
|
|
30
|
-
"@dereekb/rxjs": "13.12.
|
|
31
|
-
"@dereekb/util": "13.12.
|
|
23
|
+
"@dereekb/dbx-cli": "13.12.2",
|
|
24
|
+
"@dereekb/dbx-core": "13.12.2",
|
|
25
|
+
"@dereekb/dbx-firebase": "13.12.2",
|
|
26
|
+
"@dereekb/dbx-form": "13.12.2",
|
|
27
|
+
"@dereekb/dbx-web": "13.12.2",
|
|
28
|
+
"@dereekb/firebase": "13.12.2",
|
|
29
|
+
"@dereekb/firebase-server": "13.12.2",
|
|
30
|
+
"@dereekb/rxjs": "13.12.2",
|
|
31
|
+
"@dereekb/util": "13.12.2",
|
|
32
32
|
"@uirouter/angular": "21.0.0",
|
|
33
33
|
rxjs: "^7.8.2"
|
|
34
34
|
},
|
|
35
35
|
devDependencies: {
|
|
36
|
-
"@dereekb/model": "13.12.
|
|
36
|
+
"@dereekb/model": "13.12.2"
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
|
|
@@ -7039,6 +7039,8 @@ var AUTH_ROLE_CLAIMS_SERVICE_FN = "authRoleClaimsService";
|
|
|
7039
7039
|
function extractAuthEntries(input) {
|
|
7040
7040
|
const { project, knownRoles } = input;
|
|
7041
7041
|
const warnings = [];
|
|
7042
|
+
const localRoleConsts = collectLocalRoleConsts(project);
|
|
7043
|
+
const mergedKnownRoles = mergeKnownRoles(knownRoles, localRoleConsts.scalars);
|
|
7042
7044
|
const taggedAppDecls = collectTaggedAppDecls(project, warnings);
|
|
7043
7045
|
const serviceMappings = collectServiceMappings(project, warnings, taggedAppDecls);
|
|
7044
7046
|
const apps = [];
|
|
@@ -7052,7 +7054,8 @@ function extractAuthEntries(input) {
|
|
|
7052
7054
|
interfaceName: tagged.interfaceName,
|
|
7053
7055
|
filePath: tagged.filePath,
|
|
7054
7056
|
service: serviceForApp,
|
|
7055
|
-
knownRoles,
|
|
7057
|
+
knownRoles: mergedKnownRoles,
|
|
7058
|
+
localArrayRoles: localRoleConsts.arrays,
|
|
7056
7059
|
warnings
|
|
7057
7060
|
});
|
|
7058
7061
|
for (const claim of ownClaims) claims.push(claim);
|
|
@@ -7243,6 +7246,11 @@ function readRoleAtom(node) {
|
|
|
7243
7246
|
result = { text: node.getLiteralText(), resolvable: true };
|
|
7244
7247
|
} else if (Node11.isIdentifier(node)) {
|
|
7245
7248
|
result = { text: node.getText(), resolvable: false };
|
|
7249
|
+
} else if (Node11.isSpreadElement(node)) {
|
|
7250
|
+
const inner = node.getExpression();
|
|
7251
|
+
if (Node11.isIdentifier(inner)) {
|
|
7252
|
+
result = { text: inner.getText(), resolvable: false };
|
|
7253
|
+
}
|
|
7246
7254
|
}
|
|
7247
7255
|
return result;
|
|
7248
7256
|
}
|
|
@@ -7298,7 +7306,7 @@ function collectPropertySignaturesFromTypeNode(typeNode, sink) {
|
|
|
7298
7306
|
}
|
|
7299
7307
|
}
|
|
7300
7308
|
function buildClaimFromProperty(input) {
|
|
7301
|
-
const { property, app, interfaceName, filePath, service, knownRoles, warnings } = input;
|
|
7309
|
+
const { property, app, interfaceName, filePath, service, knownRoles, localArrayRoles, warnings } = input;
|
|
7302
7310
|
const tagState = readPropertyTagState(property.getJsDocs());
|
|
7303
7311
|
let result;
|
|
7304
7312
|
if (tagState.hasMarker) {
|
|
@@ -7310,7 +7318,7 @@ function buildClaimFromProperty(input) {
|
|
|
7310
7318
|
if (parsed === void 0) {
|
|
7311
7319
|
warnings.push({ kind: "claim-missing-mapping", app, key, filePath, line });
|
|
7312
7320
|
}
|
|
7313
|
-
const mapping = parsed === void 0 ? { roles: [], inverse: false, customEncodeDecode: false } : resolveMappingRoles({ mapping: parsed.mapping, unresolvedRoleConsts: parsed.unresolvedRoleConsts, knownRoles, app, key, filePath, line, warnings });
|
|
7321
|
+
const mapping = parsed === void 0 ? { roles: [], inverse: false, customEncodeDecode: false } : resolveMappingRoles({ mapping: parsed.mapping, unresolvedRoleConsts: parsed.unresolvedRoleConsts, knownRoles, localArrayRoles, app, key, filePath, line, warnings });
|
|
7314
7322
|
result = {
|
|
7315
7323
|
key,
|
|
7316
7324
|
type: typeText,
|
|
@@ -7326,20 +7334,97 @@ function buildClaimFromProperty(input) {
|
|
|
7326
7334
|
return result;
|
|
7327
7335
|
}
|
|
7328
7336
|
function resolveMappingRoles(input) {
|
|
7329
|
-
const { mapping, knownRoles, app, key, filePath, line, warnings } = input;
|
|
7337
|
+
const { mapping, knownRoles, localArrayRoles, app, key, filePath, line, warnings } = input;
|
|
7330
7338
|
const resolved = [];
|
|
7331
7339
|
for (const role of mapping.roles) {
|
|
7332
7340
|
if (knownRoles.has(role)) {
|
|
7333
7341
|
resolved.push(knownRoles.get(role));
|
|
7334
7342
|
} else if (input.unresolvedRoleConsts.includes(role)) {
|
|
7335
|
-
|
|
7336
|
-
|
|
7343
|
+
const aggregate = resolveRoleConstByName(role, { knownRoles, localArrayRoles, seen: /* @__PURE__ */ new Set() });
|
|
7344
|
+
if (aggregate.unresolved.length === 0) {
|
|
7345
|
+
for (const aggregateRole of aggregate.roles) resolved.push(aggregateRole);
|
|
7346
|
+
} else {
|
|
7347
|
+
warnings.push({ kind: "unresolved-role-const", app, key, constName: role, filePath, line });
|
|
7348
|
+
resolved.push(role);
|
|
7349
|
+
}
|
|
7337
7350
|
} else {
|
|
7338
7351
|
resolved.push(role);
|
|
7339
7352
|
}
|
|
7340
7353
|
}
|
|
7341
7354
|
return { ...mapping, roles: resolved };
|
|
7342
7355
|
}
|
|
7356
|
+
function collectLocalRoleConsts(project) {
|
|
7357
|
+
const scalars = /* @__PURE__ */ new Map();
|
|
7358
|
+
const arrays = /* @__PURE__ */ new Map();
|
|
7359
|
+
for (const sourceFile of project.getSourceFiles()) {
|
|
7360
|
+
for (const stmt of sourceFile.getVariableStatements()) {
|
|
7361
|
+
if (!stmt.isExported()) continue;
|
|
7362
|
+
for (const decl of stmt.getDeclarations()) {
|
|
7363
|
+
const initializer = decl.getInitializer();
|
|
7364
|
+
const name = decl.getName();
|
|
7365
|
+
if (initializer === void 0) continue;
|
|
7366
|
+
if (Node11.isStringLiteral(initializer) || Node11.isNoSubstitutionTemplateLiteral(initializer)) {
|
|
7367
|
+
if (!scalars.has(name)) scalars.set(name, initializer.getLiteralText());
|
|
7368
|
+
} else if (Node11.isArrayLiteralExpression(initializer) && !arrays.has(name)) arrays.set(name, initializer);
|
|
7369
|
+
}
|
|
7370
|
+
}
|
|
7371
|
+
}
|
|
7372
|
+
return { scalars, arrays };
|
|
7373
|
+
}
|
|
7374
|
+
function mergeKnownRoles(builtins, localScalars) {
|
|
7375
|
+
const out = /* @__PURE__ */ new Map();
|
|
7376
|
+
for (const [name, role] of localScalars) out.set(name, role);
|
|
7377
|
+
for (const [name, role] of builtins) out.set(name, role);
|
|
7378
|
+
return out;
|
|
7379
|
+
}
|
|
7380
|
+
var EMPTY_ROLE_CONST_RESOLUTION = { roles: [], unresolved: [] };
|
|
7381
|
+
function resolveRoleConstByName(name, ctx) {
|
|
7382
|
+
let result;
|
|
7383
|
+
const scalar = ctx.knownRoles.get(name);
|
|
7384
|
+
if (scalar !== void 0) {
|
|
7385
|
+
result = { roles: [scalar], unresolved: [] };
|
|
7386
|
+
} else {
|
|
7387
|
+
const arrayExpr = ctx.localArrayRoles.get(name);
|
|
7388
|
+
if (arrayExpr === void 0) {
|
|
7389
|
+
result = { roles: [], unresolved: [name] };
|
|
7390
|
+
} else if (ctx.seen.has(name)) {
|
|
7391
|
+
result = EMPTY_ROLE_CONST_RESOLUTION;
|
|
7392
|
+
} else {
|
|
7393
|
+
const nextSeen = new Set(ctx.seen);
|
|
7394
|
+
nextSeen.add(name);
|
|
7395
|
+
result = resolveRoleArrayLiteral(arrayExpr, { ...ctx, seen: nextSeen });
|
|
7396
|
+
}
|
|
7397
|
+
}
|
|
7398
|
+
return result;
|
|
7399
|
+
}
|
|
7400
|
+
function resolveRoleArrayLiteral(arrayExpr, ctx) {
|
|
7401
|
+
const roles = [];
|
|
7402
|
+
const unresolved = [];
|
|
7403
|
+
for (const element of arrayExpr.getElements()) {
|
|
7404
|
+
const elementResult = resolveRoleArrayElement(element, ctx);
|
|
7405
|
+
for (const role of elementResult.roles) roles.push(role);
|
|
7406
|
+
for (const name of elementResult.unresolved) unresolved.push(name);
|
|
7407
|
+
}
|
|
7408
|
+
return { roles, unresolved };
|
|
7409
|
+
}
|
|
7410
|
+
function resolveRoleArrayElement(element, ctx) {
|
|
7411
|
+
let result = EMPTY_ROLE_CONST_RESOLUTION;
|
|
7412
|
+
if (Node11.isStringLiteral(element) || Node11.isNoSubstitutionTemplateLiteral(element)) {
|
|
7413
|
+
result = { roles: [element.getLiteralText()], unresolved: [] };
|
|
7414
|
+
} else if (Node11.isIdentifier(element)) {
|
|
7415
|
+
result = resolveRoleConstByName(element.getText(), ctx);
|
|
7416
|
+
} else if (Node11.isSpreadElement(element)) {
|
|
7417
|
+
const inner = element.getExpression();
|
|
7418
|
+
if (Node11.isIdentifier(inner)) {
|
|
7419
|
+
result = resolveRoleConstByName(inner.getText(), ctx);
|
|
7420
|
+
} else if (Node11.isArrayLiteralExpression(inner)) {
|
|
7421
|
+
result = resolveRoleArrayLiteral(inner, ctx);
|
|
7422
|
+
} else {
|
|
7423
|
+
result = { roles: [], unresolved: [inner.getText()] };
|
|
7424
|
+
}
|
|
7425
|
+
}
|
|
7426
|
+
return result;
|
|
7427
|
+
}
|
|
7343
7428
|
function readPropertyTagState(jsDocs) {
|
|
7344
7429
|
const summaries = [];
|
|
7345
7430
|
const tags = [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-components-mcp",
|
|
3
|
-
"version": "13.12.
|
|
3
|
+
"version": "13.12.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"dbx-components-mcp": "dbx-components-mcp.js"
|
|
@@ -15,19 +15,19 @@
|
|
|
15
15
|
"@angular/core": "21.2.11",
|
|
16
16
|
"@angular/forms": "21.2.11",
|
|
17
17
|
"@angular/material": "^21.2.9",
|
|
18
|
-
"@dereekb/dbx-cli": "13.12.
|
|
19
|
-
"@dereekb/dbx-core": "13.12.
|
|
20
|
-
"@dereekb/dbx-firebase": "13.12.
|
|
21
|
-
"@dereekb/dbx-form": "13.12.
|
|
22
|
-
"@dereekb/dbx-web": "13.12.
|
|
23
|
-
"@dereekb/firebase": "13.12.
|
|
24
|
-
"@dereekb/firebase-server": "13.12.
|
|
25
|
-
"@dereekb/rxjs": "13.12.
|
|
26
|
-
"@dereekb/util": "13.12.
|
|
18
|
+
"@dereekb/dbx-cli": "13.12.2",
|
|
19
|
+
"@dereekb/dbx-core": "13.12.2",
|
|
20
|
+
"@dereekb/dbx-firebase": "13.12.2",
|
|
21
|
+
"@dereekb/dbx-form": "13.12.2",
|
|
22
|
+
"@dereekb/dbx-web": "13.12.2",
|
|
23
|
+
"@dereekb/firebase": "13.12.2",
|
|
24
|
+
"@dereekb/firebase-server": "13.12.2",
|
|
25
|
+
"@dereekb/rxjs": "13.12.2",
|
|
26
|
+
"@dereekb/util": "13.12.2",
|
|
27
27
|
"@uirouter/angular": "21.0.0",
|
|
28
28
|
"rxjs": "^7.8.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@dereekb/model": "13.12.
|
|
31
|
+
"@dereekb/model": "13.12.2"
|
|
32
32
|
}
|
|
33
33
|
}
|