@principal-ai/principal-view-core 0.24.81 → 0.24.82
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/LibraryLoader.d.ts.map +1 -1
- package/dist/LibraryLoader.js +7 -5
- package/dist/LibraryLoader.js.map +1 -1
- package/dist/scopes/utils.d.ts +3 -0
- package/dist/scopes/utils.d.ts.map +1 -1
- package/dist/scopes/utils.js +3 -1
- package/dist/scopes/utils.js.map +1 -1
- package/dist/types/library.d.ts +7 -2
- package/dist/types/library.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/LibraryLoader.ts +7 -5
- package/src/discovery/LibraryDiscovery.test.ts +25 -11
- package/src/scopes/utils.ts +5 -1
- package/src/types/library.ts +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibraryLoader.d.ts","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa3E;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEhD;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+BvD;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiChE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBnD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,MAAM;IAKzE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"LibraryLoader.d.ts","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa3E;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEhD;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+BvD;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiChE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBnD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,MAAM;IAKzE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAkIjB"}
|
package/dist/LibraryLoader.js
CHANGED
|
@@ -229,8 +229,10 @@ class LibraryLoader {
|
|
|
229
229
|
if (typeof scopeDef !== 'object' || scopeDef === null) {
|
|
230
230
|
return `Scope '${scopeName}' must be an object in ${filePath}`;
|
|
231
231
|
}
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
// External scopes don't require color (defined elsewhere)
|
|
233
|
+
const isExternal = scopeDef.external === true;
|
|
234
|
+
if (!isExternal && typeof scopeDef.color !== 'string') {
|
|
235
|
+
return `Scope '${scopeName}' is missing required 'color' property in ${filePath}. Use 'external: true' for scopes defined in other libraries.`;
|
|
234
236
|
}
|
|
235
237
|
}
|
|
236
238
|
}
|
|
@@ -277,9 +279,9 @@ class LibraryLoader {
|
|
|
277
279
|
if (typeof scope !== 'string') {
|
|
278
280
|
return `Resource '${serviceId}' attribute 'owned-scopes' array must contain only strings in ${filePath}`;
|
|
279
281
|
}
|
|
280
|
-
// Validate that scope references exist in top-level scopes
|
|
281
|
-
if (library.scopes
|
|
282
|
-
return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section.`;
|
|
282
|
+
// Validate that scope references exist in top-level scopes (strict)
|
|
283
|
+
if (!library.scopes || !library.scopes[scope]) {
|
|
284
|
+
return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section (use 'external: true' for scopes from other libraries).`;
|
|
283
285
|
}
|
|
284
286
|
}
|
|
285
287
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibraryLoader.js","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,8CAAgC;AAEhC;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC;;GAEG;AACH,MAAa,aAAa;IACxB,YAAoB,SAA4B;QAA5B,cAAS,GAAT,SAAS,CAAmB;IAAG,CAAC;IAEpD;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE5D,6CAA6C;QAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElF,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE;YAC3B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qDAAqD;gBAC5D,IAAI,EAAE,UAAU;aACjB,CAAC;SACH;QAED,qCAAqC;QACrC,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE3D,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACpC;SACF;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2CAA2C,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpF,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,MAAM;gBACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEtC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,eAAe,EAAE;gBACnB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,QAAQ;iBACf,CAAC;aACH;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,IAAI,EAAE,QAAQ;aACf,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B,YAAY,EAAE;gBAChD,IAAI,EAAE,QAAQ;aACf,CAAC;SACH;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,OAAe,EAAE,SAA0B,MAAM;QAC9D,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;QACrE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,OAAe,EAAE,QAAgB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;SACzD;QAED,OAAO,IAAwB,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,OAAe,EAAE,QAAgB;QACjD,IAAI;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,IAAwB,CAAC;SACjC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,KAAK,YAAY,EAAE,CAAC,CAAC;SACjE;IACH,CAAC;IAED;;;;;;OAMG;IACK,QAAQ,CAAC,OAAyB,EAAE,QAAgB;QAC1D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,OAAO,uCAAuC,QAAQ,EAAE,CAAC;SAC1D;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,OAAO,oCAAoC,QAAQ,EAAE,CAAC;SACvD;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;YACzE,OAAO,0CAA0C,QAAQ,EAAE,CAAC;SAC7D;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;YACzE,OAAO,0CAA0C,QAAQ,EAAE,CAAC;SAC7D;QAED,wFAAwF;QACxF,yEAAyE;QACzE,oFAAoF;QAEpF,oCAAoC;QACpC,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAC5C,OAAO,6CAA6C,QAAQ,EAAE,CAAC;aAChE;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACtE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvB,OAAO,iBAAiB,SAAS,gDAAgD,QAAQ,EAAE,CAAC;iBAC7F;gBAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE;oBAC/D,OAAO,iBAAiB,SAAS,qDAAqD,QAAQ,EAAE,CAAC;iBAClG;gBAED,8CAA8C;gBAC9C,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBACtE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;wBACpB,OAAO,iBAAiB,SAAS,gBAAgB,QAAQ,yCAAyC,QAAQ,EAAE,CAAC;qBAC9G;oBAED,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACtE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;wBACzC,OAAO,iBAAiB,SAAS,gBAAgB,QAAQ,uBAAuB,UAAU,CAAC,IAAI,QAAQ,QAAQ,kBAAkB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC1J;iBACF;aACF;SACF;QAED,uCAAuC;QACvC,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACvE,OAAO,uCAAuC,QAAQ,EAAE,CAAC;aAC1D;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACrD,OAAO,UAAU,SAAS,0BAA0B,QAAQ,EAAE,CAAC;iBAChE;gBACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"LibraryLoader.js","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/scopes/utils.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface NormalizedScope {
|
|
|
16
16
|
name: string;
|
|
17
17
|
color: string;
|
|
18
18
|
description?: string;
|
|
19
|
+
/** Whether this scope is defined externally (in another library) */
|
|
20
|
+
external?: boolean;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Get all scope names from owned-scopes array
|
|
@@ -37,6 +39,7 @@ export declare function normalizeScopes(scopeNames: OwnedScopes | undefined, lib
|
|
|
37
39
|
/**
|
|
38
40
|
* Build a scope color map from library scopes
|
|
39
41
|
* Returns a simple name -> color mapping for fast lookups
|
|
42
|
+
* External scopes (without color) use the default color
|
|
40
43
|
*/
|
|
41
44
|
export declare function buildScopeColorMap(library: {
|
|
42
45
|
scopes?: Record<string, ScopeDefinition>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CAE7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GACzD,eAAe,EAAE,CAYnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,EAAE,CAGV"}
|
package/dist/scopes/utils.js
CHANGED
|
@@ -45,6 +45,7 @@ function normalizeScopes(scopeNames, libraryScopes) {
|
|
|
45
45
|
name,
|
|
46
46
|
color: definition?.color ?? exports.DEFAULT_SCOPE_COLOR,
|
|
47
47
|
description: definition?.description,
|
|
48
|
+
external: definition?.external,
|
|
48
49
|
};
|
|
49
50
|
});
|
|
50
51
|
}
|
|
@@ -52,12 +53,13 @@ exports.normalizeScopes = normalizeScopes;
|
|
|
52
53
|
/**
|
|
53
54
|
* Build a scope color map from library scopes
|
|
54
55
|
* Returns a simple name -> color mapping for fast lookups
|
|
56
|
+
* External scopes (without color) use the default color
|
|
55
57
|
*/
|
|
56
58
|
function buildScopeColorMap(library) {
|
|
57
59
|
const colorMap = {};
|
|
58
60
|
if (library?.scopes) {
|
|
59
61
|
for (const [name, def] of Object.entries(library.scopes)) {
|
|
60
|
-
colorMap[name] = def.color;
|
|
62
|
+
colorMap[name] = def.color ?? exports.DEFAULT_SCOPE_COLOR;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
return colorMap;
|
package/dist/scopes/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,SAAS,CAAC,CAAC,WAAW;AAEzD,+CAA+C;AAClC,QAAA,gBAAgB,GAAG,SAAS,CAAC,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,SAAS,CAAC,CAAC,WAAW;AAEzD,+CAA+C;AAClC,QAAA,gBAAgB,GAAG,SAAS,CAAC,CAAC,WAAW;AAatD;;GAEG;AACH,SAAgB,aAAa,CAAC,MAA+B;IAC3D,OAAO,MAAM,IAAI,EAAE,CAAC;AACtB,CAAC;AAFD,sCAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AALD,gDAKC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,2BAAmB,CAAC;AAClE,CAAC;AALD,sCAKC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,UAAmC,EACnC,aAA0D;IAE1D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,2BAAmB;YAC/C,WAAW,EAAE,UAAU,EAAE,WAAW;YACpC,QAAQ,EAAE,UAAU,EAAE,QAAQ;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,0CAeC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,OAAiE;IAEjE,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,IAAI,OAAO,EAAE,MAAM,EAAE;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,2BAAmB,CAAC;SACnD;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAZD,gDAYC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAiE;IAEjE,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AALD,4CAKC"}
|
package/dist/types/library.d.ts
CHANGED
|
@@ -19,10 +19,15 @@ import type { PVNodeShape, PVEdgeStyle, PVAnimationType, PVNodeState, PVEventSch
|
|
|
19
19
|
* Used for consistent visual representation across canvases.
|
|
20
20
|
*/
|
|
21
21
|
export interface ScopeDefinition {
|
|
22
|
-
/** Color for nodes belonging to this scope (hex format) */
|
|
23
|
-
color
|
|
22
|
+
/** Color for nodes belonging to this scope (hex format). Required unless external. */
|
|
23
|
+
color?: string;
|
|
24
24
|
/** Human-readable description of what this scope covers */
|
|
25
25
|
description?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Mark this scope as external - defined in another library/package.
|
|
28
|
+
* External scopes don't require color (they inherit from the defining library).
|
|
29
|
+
*/
|
|
30
|
+
external?: boolean;
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
28
33
|
* Owned scopes: array of scope names that reference top-level scopes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/types/library.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,eAAe,EAEf,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAMlB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/types/library.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/LibraryLoader.ts
CHANGED
|
@@ -237,8 +237,10 @@ export class LibraryLoader {
|
|
|
237
237
|
if (typeof scopeDef !== 'object' || scopeDef === null) {
|
|
238
238
|
return `Scope '${scopeName}' must be an object in ${filePath}`;
|
|
239
239
|
}
|
|
240
|
-
|
|
241
|
-
|
|
240
|
+
// External scopes don't require color (defined elsewhere)
|
|
241
|
+
const isExternal = scopeDef.external === true;
|
|
242
|
+
if (!isExternal && typeof scopeDef.color !== 'string') {
|
|
243
|
+
return `Scope '${scopeName}' is missing required 'color' property in ${filePath}. Use 'external: true' for scopes defined in other libraries.`;
|
|
242
244
|
}
|
|
243
245
|
}
|
|
244
246
|
}
|
|
@@ -291,9 +293,9 @@ export class LibraryLoader {
|
|
|
291
293
|
if (typeof scope !== 'string') {
|
|
292
294
|
return `Resource '${serviceId}' attribute 'owned-scopes' array must contain only strings in ${filePath}`;
|
|
293
295
|
}
|
|
294
|
-
// Validate that scope references exist in top-level scopes
|
|
295
|
-
if (library.scopes
|
|
296
|
-
return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section.`;
|
|
296
|
+
// Validate that scope references exist in top-level scopes (strict)
|
|
297
|
+
if (!library.scopes || !library.scopes[scope]) {
|
|
298
|
+
return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section (use 'external: true' for scopes from other libraries).`;
|
|
297
299
|
}
|
|
298
300
|
}
|
|
299
301
|
} else if (typeof attrValue !== 'string') {
|
|
@@ -16,6 +16,11 @@ describe('LibraryDiscovery', () => {
|
|
|
16
16
|
const libraryYaml = `
|
|
17
17
|
version: '1.0'
|
|
18
18
|
name: test-library
|
|
19
|
+
scopes:
|
|
20
|
+
scope-a:
|
|
21
|
+
color: "#ff0000"
|
|
22
|
+
scope-b:
|
|
23
|
+
color: "#00ff00"
|
|
19
24
|
nodeComponents:
|
|
20
25
|
box: { shape: rectangle }
|
|
21
26
|
edgeComponents:
|
|
@@ -24,10 +29,8 @@ resources:
|
|
|
24
29
|
my-service:
|
|
25
30
|
service.name: my-service
|
|
26
31
|
owned-scopes:
|
|
27
|
-
scope-a
|
|
28
|
-
|
|
29
|
-
scope-b:
|
|
30
|
-
color: "#00ff00"
|
|
32
|
+
- scope-a
|
|
33
|
+
- scope-b
|
|
31
34
|
`;
|
|
32
35
|
mockFsAdapter = createMockFsAdapter({
|
|
33
36
|
'/.principal-views': { isDir: true, contents: ['library.yaml'] },
|
|
@@ -52,6 +55,9 @@ resources:
|
|
|
52
55
|
const libraryYaml = `
|
|
53
56
|
version: '1.0'
|
|
54
57
|
name: test-library
|
|
58
|
+
scopes:
|
|
59
|
+
scope-a:
|
|
60
|
+
color: "#ff0000"
|
|
55
61
|
nodeComponents:
|
|
56
62
|
box: { shape: rectangle }
|
|
57
63
|
edgeComponents:
|
|
@@ -60,8 +66,7 @@ resources:
|
|
|
60
66
|
my-service:
|
|
61
67
|
service.name: my-service
|
|
62
68
|
owned-scopes:
|
|
63
|
-
scope-a
|
|
64
|
-
color: "#ff0000"
|
|
69
|
+
- scope-a
|
|
65
70
|
`;
|
|
66
71
|
mockFsAdapter = createMockFsAdapter({
|
|
67
72
|
'/.principal-views': { isDir: true, contents: ['library.yaml', 'architecture.scopes.canvas'] },
|
|
@@ -110,10 +115,15 @@ resources:
|
|
|
110
115
|
expect(result.errors).toHaveLength(0);
|
|
111
116
|
});
|
|
112
117
|
|
|
113
|
-
test('
|
|
118
|
+
test('validates scope references exist in top-level scopes', async () => {
|
|
114
119
|
const libraryYaml = `
|
|
115
120
|
version: '1.0'
|
|
116
121
|
name: test-library
|
|
122
|
+
scopes:
|
|
123
|
+
scope-a:
|
|
124
|
+
color: "#ff0000"
|
|
125
|
+
scope-b:
|
|
126
|
+
color: "#00ff00"
|
|
117
127
|
nodeComponents:
|
|
118
128
|
box: { shape: rectangle }
|
|
119
129
|
edgeComponents:
|
|
@@ -147,6 +157,9 @@ resources:
|
|
|
147
157
|
const libraryYaml = `
|
|
148
158
|
version: '1.0'
|
|
149
159
|
name: test-library
|
|
160
|
+
scopes:
|
|
161
|
+
scope-a:
|
|
162
|
+
color: "#ff0000"
|
|
150
163
|
nodeComponents:
|
|
151
164
|
box: { shape: rectangle }
|
|
152
165
|
edgeComponents:
|
|
@@ -155,8 +168,7 @@ resources:
|
|
|
155
168
|
my-service:
|
|
156
169
|
service.name: my-service
|
|
157
170
|
owned-scopes:
|
|
158
|
-
scope-a
|
|
159
|
-
color: "#ff0000"
|
|
171
|
+
- scope-a
|
|
160
172
|
`;
|
|
161
173
|
mockFsAdapter = createMockFsAdapter({
|
|
162
174
|
'/.principal-views': { isDir: true, contents: ['library.yaml', 'architecture'] },
|
|
@@ -182,6 +194,9 @@ resources:
|
|
|
182
194
|
const libraryYaml = `
|
|
183
195
|
version: '1.0'
|
|
184
196
|
name: test-library
|
|
197
|
+
scopes:
|
|
198
|
+
scope-a:
|
|
199
|
+
color: "#ff0000"
|
|
185
200
|
nodeComponents:
|
|
186
201
|
box: { shape: rectangle }
|
|
187
202
|
edgeComponents:
|
|
@@ -190,8 +205,7 @@ resources:
|
|
|
190
205
|
my-service:
|
|
191
206
|
service.name: my-service
|
|
192
207
|
owned-scopes:
|
|
193
|
-
scope-a
|
|
194
|
-
color: "#ff0000"
|
|
208
|
+
- scope-a
|
|
195
209
|
`;
|
|
196
210
|
mockFsAdapter = createMockFsAdapter({
|
|
197
211
|
'/.principal-views': { isDir: true, contents: ['library.yaml'] },
|
package/src/scopes/utils.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface NormalizedScope {
|
|
|
20
20
|
name: string;
|
|
21
21
|
color: string;
|
|
22
22
|
description?: string;
|
|
23
|
+
/** Whether this scope is defined externally (in another library) */
|
|
24
|
+
external?: boolean;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
/**
|
|
@@ -65,6 +67,7 @@ export function normalizeScopes(
|
|
|
65
67
|
name,
|
|
66
68
|
color: definition?.color ?? DEFAULT_SCOPE_COLOR,
|
|
67
69
|
description: definition?.description,
|
|
70
|
+
external: definition?.external,
|
|
68
71
|
};
|
|
69
72
|
});
|
|
70
73
|
}
|
|
@@ -72,6 +75,7 @@ export function normalizeScopes(
|
|
|
72
75
|
/**
|
|
73
76
|
* Build a scope color map from library scopes
|
|
74
77
|
* Returns a simple name -> color mapping for fast lookups
|
|
78
|
+
* External scopes (without color) use the default color
|
|
75
79
|
*/
|
|
76
80
|
export function buildScopeColorMap(
|
|
77
81
|
library: { scopes?: Record<string, ScopeDefinition> } | undefined
|
|
@@ -80,7 +84,7 @@ export function buildScopeColorMap(
|
|
|
80
84
|
|
|
81
85
|
if (library?.scopes) {
|
|
82
86
|
for (const [name, def] of Object.entries(library.scopes)) {
|
|
83
|
-
colorMap[name] = def.color;
|
|
87
|
+
colorMap[name] = def.color ?? DEFAULT_SCOPE_COLOR;
|
|
84
88
|
}
|
|
85
89
|
}
|
|
86
90
|
|
package/src/types/library.ts
CHANGED
|
@@ -32,11 +32,17 @@ import type {
|
|
|
32
32
|
* Used for consistent visual representation across canvases.
|
|
33
33
|
*/
|
|
34
34
|
export interface ScopeDefinition {
|
|
35
|
-
/** Color for nodes belonging to this scope (hex format) */
|
|
36
|
-
color
|
|
35
|
+
/** Color for nodes belonging to this scope (hex format). Required unless external. */
|
|
36
|
+
color?: string;
|
|
37
37
|
|
|
38
38
|
/** Human-readable description of what this scope covers */
|
|
39
39
|
description?: string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Mark this scope as external - defined in another library/package.
|
|
43
|
+
* External scopes don't require color (they inherit from the defining library).
|
|
44
|
+
*/
|
|
45
|
+
external?: boolean;
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
/**
|