@xemahq/contracts 0.5.0 → 0.6.0

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,5 +1,5 @@
1
1
  {
2
2
  "algorithm": "sha256/len-framed-v1",
3
- "hash": "6e6481dcc57460f6c9f9d06334c68a535bc0b95f5af7d6867558c6c00b561d80",
4
- "fileCount": 514
3
+ "hash": "215a5086538b6716d986c0902e636d5df1c7db96d68ed3200185b4637ed0b4ff",
4
+ "fileCount": 515
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { type OwnerQualifiedRevisionTarget } from '../../revision-target';
3
- import { type OwnerSpaceRef, type SpaceKind } from '../../space';
3
+ import { type OwnerSpaceRef, type ScopedResolution, type SpaceKind } from '../../space';
4
4
  export declare const RESOURCE_ROLE_PATTERN: RegExp;
5
5
  export declare const RESOURCE_ROLE_QUALIFIER_PATTERN: RegExp;
6
6
  export interface ResourceRoleKey {
@@ -32,4 +32,5 @@ export interface RankedResourceRoleBinding {
32
32
  readonly binding: ResourceRoleBinding;
33
33
  }
34
34
  export declare function resolveResourceRoleBinding(candidates: readonly RankedResourceRoleBinding[], roleKey: ResourceRoleKey): ResourceRoleBinding | undefined;
35
+ export declare function resolveResourceRoleBindingResolution(candidates: readonly RankedResourceRoleBinding[], roleKey: ResourceRoleKey): ScopedResolution<ResourceRoleBinding> | undefined;
35
36
  //# sourceMappingURL=resource-role-binding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-role-binding.d.ts","sourceRoot":"","sources":["../../../src/resource-role/lib/resource-role-binding.ts"],"names":[],"mappings":"AAiIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,qBAAqB,QAA4B,CAAC;AAU/D,eAAO,MAAM,+BAA+B,QAA4B,CAAC;AAkCzE,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IActB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAmBD,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAMT,CAAC;AASrD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAKlE;AAqBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAuBnE;AAgBD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,kCAAkC,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAO1E,CAAC;AAkBd,MAAM,MAAM,kBAAkB,GAC1B,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAGhC,CAAC;AAGpC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,4BAA4B,CAExC;AASD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAIjF;AAGD,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAMlC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CA2BpB,CAAC;AASlD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAiGD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,yBAAyB,EAAE,EAChD,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,SAAS,CA2BjC"}
1
+ {"version":3,"file":"resource-role-binding.d.ts","sourceRoot":"","sources":["../../../src/resource-role/lib/resource-role-binding.ts"],"names":[],"mappings":"AAiIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,qBAAqB,QAA4B,CAAC;AAU/D,eAAO,MAAM,+BAA+B,QAA4B,CAAC;AAkCzE,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IActB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAmBD,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAMT,CAAC;AASrD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAKlE;AAqBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAuBnE;AAgBD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,kCAAkC,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAO1E,CAAC;AAkBd,MAAM,MAAM,kBAAkB,GAC1B,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAGhC,CAAC;AAGpC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,4BAA4B,CAExC;AASD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAIjF;AAGD,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAMlC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CA2BpB,CAAC;AASlD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAiGD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,yBAAyB,EAAE,EAChD,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,SAAS,CAEjC;AAgBD,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,SAAS,yBAAyB,EAAE,EAChD,OAAO,EAAE,eAAe,GACvB,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAYnD"}
@@ -6,6 +6,7 @@ exports.parseResourceRoleKey = parseResourceRoleKey;
6
6
  exports.isRevisionRoleTarget = isRevisionRoleTarget;
7
7
  exports.resourceRoleTargetResourceKind = resourceRoleTargetResourceKind;
8
8
  exports.resolveResourceRoleBinding = resolveResourceRoleBinding;
9
+ exports.resolveResourceRoleBindingResolution = resolveResourceRoleBindingResolution;
9
10
  const zod_1 = require("zod");
10
11
  const revision_target_1 = require("../../revision-target");
11
12
  const space_1 = require("../../space");
@@ -97,22 +98,12 @@ function roleKeySpecificityRank(candidate, wanted) {
97
98
  : undefined;
98
99
  }
99
100
  function resolveResourceRoleBinding(candidates, roleKey) {
100
- let winner;
101
- let bestSpecificity = Number.POSITIVE_INFINITY;
102
- let bestTier = Number.POSITIVE_INFINITY;
103
- for (const candidate of candidates) {
104
- const specificity = roleKeySpecificityRank(candidate.binding.roleKey, roleKey);
105
- if (specificity === undefined)
106
- continue;
107
- const tier = (0, space_1.spaceKindRank)(candidate.ownerSpaceKind);
108
- if (specificity > bestSpecificity)
109
- continue;
110
- if (specificity < bestSpecificity || tier < bestTier) {
111
- winner = candidate;
112
- bestSpecificity = specificity;
113
- bestTier = tier;
114
- }
115
- }
116
- return winner?.binding;
101
+ return resolveResourceRoleBindingResolution(candidates, roleKey)?.value;
102
+ }
103
+ function resolveResourceRoleBindingResolution(candidates, roleKey) {
104
+ return (0, space_1.resolveScopedCandidate)(candidates.map((candidate) => ({
105
+ ownerSpaceKind: candidate.ownerSpaceKind,
106
+ value: candidate.binding,
107
+ })), (binding) => roleKeySpecificityRank(binding.roleKey, roleKey));
117
108
  }
118
109
  //# sourceMappingURL=resource-role-binding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-role-binding.js","sourceRoot":"","sources":["../../../src/resource-role/lib/resource-role-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-role-binding.js","sourceRoot":"","sources":["../../../src/resource-role/lib/resource-role-binding.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from './lib/space';
2
2
  export * from './lib/space-classification';
3
3
  export * from './lib/space-kind-rank';
4
+ export * from './lib/scoped-resolution';
4
5
  export * from './lib/space-promotion';
5
6
  export * from './lib/space-ref-parser';
6
7
  export * from './lib/space-traversal';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/space/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/space/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./lib/space"), exports);
18
18
  __exportStar(require("./lib/space-classification"), exports);
19
19
  __exportStar(require("./lib/space-kind-rank"), exports);
20
+ __exportStar(require("./lib/scoped-resolution"), exports);
20
21
  __exportStar(require("./lib/space-promotion"), exports);
21
22
  __exportStar(require("./lib/space-ref-parser"), exports);
22
23
  __exportStar(require("./lib/space-traversal"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/space/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6DAA2C;AAC3C,wDAAsC;AACtC,wDAAsC;AACtC,yDAAuC;AACvC,wDAAsC;AACtC,wDAAsC;AACtC,+DAA6C;AAC7C,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/space/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6DAA2C;AAC3C,wDAAsC;AACtC,0DAAwC;AACxC,wDAAsC;AACtC,yDAAuC;AACvC,wDAAsC;AACtC,wDAAsC;AACtC,+DAA6C;AAC7C,+DAA6C"}
@@ -0,0 +1,15 @@
1
+ import type { SpaceKind } from './space';
2
+ export interface ScopedCandidate<TValue> {
3
+ readonly ownerSpaceKind: SpaceKind;
4
+ readonly value: TValue;
5
+ }
6
+ export interface ScopedResolution<TValue> {
7
+ readonly value: TValue;
8
+ readonly ownerSpaceKind: SpaceKind;
9
+ readonly specificity: number;
10
+ readonly consideredCount: number;
11
+ readonly answeredCount: number;
12
+ }
13
+ export type ScopedSpecificityRanker<TValue> = (value: TValue) => number | undefined;
14
+ export declare function resolveScopedCandidate<TValue>(candidates: readonly ScopedCandidate<TValue>[], rankSpecificity: ScopedSpecificityRanker<TValue>): ScopedResolution<TValue> | undefined;
15
+ //# sourceMappingURL=scoped-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-resolution.d.ts","sourceRoot":"","sources":["../../../src/space/lib/scoped-resolution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA8CzC,MAAM,WAAW,eAAe,CAAC,MAAM;IAErC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,gBAAgB,CAAC,MAAM;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IAEnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IASjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AASD,MAAM,MAAM,uBAAuB,CAAC,MAAM,IAAI,CAC5C,KAAK,EAAE,MAAM,KACV,MAAM,GAAG,SAAS,CAAC;AAQxB,wBAAgB,sBAAsB,CAAC,MAAM,EAC3C,UAAU,EAAE,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,EAC9C,eAAe,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAC/C,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,CA8BtC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveScopedCandidate = resolveScopedCandidate;
4
+ const space_kind_rank_1 = require("./space-kind-rank");
5
+ function resolveScopedCandidate(candidates, rankSpecificity) {
6
+ let winner;
7
+ let bestSpecificity = Number.POSITIVE_INFINITY;
8
+ let bestTier = Number.POSITIVE_INFINITY;
9
+ let answered = 0;
10
+ for (const candidate of candidates) {
11
+ const specificity = rankSpecificity(candidate.value);
12
+ if (specificity === undefined)
13
+ continue;
14
+ answered += 1;
15
+ const tier = (0, space_kind_rank_1.spaceKindRank)(candidate.ownerSpaceKind);
16
+ if (specificity > bestSpecificity)
17
+ continue;
18
+ if (specificity < bestSpecificity || tier < bestTier) {
19
+ winner = candidate;
20
+ bestSpecificity = specificity;
21
+ bestTier = tier;
22
+ }
23
+ }
24
+ if (winner === undefined)
25
+ return undefined;
26
+ return {
27
+ value: winner.value,
28
+ ownerSpaceKind: winner.ownerSpaceKind,
29
+ specificity: bestSpecificity,
30
+ consideredCount: candidates.length,
31
+ answeredCount: answered,
32
+ };
33
+ }
34
+ //# sourceMappingURL=scoped-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-resolution.js","sourceRoot":"","sources":["../../../src/space/lib/scoped-resolution.ts"],"names":[],"mappings":";;AA8FA,wDAiCC;AA/HD,uDAAkD;AA8FlD,SAAgB,sBAAsB,CACpC,UAA8C,EAC9C,eAAgD;IAEhD,IAAI,MAA2C,CAAC;IAChD,IAAI,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC/C,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QACxC,QAAQ,IAAI,CAAC,CAAC;QAId,MAAM,IAAI,GAAG,IAAA,+BAAa,EAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,WAAW,GAAG,eAAe;YAAE,SAAS;QAC5C,IAAI,WAAW,GAAG,eAAe,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,SAAS,CAAC;YACnB,eAAe,GAAG,WAAW,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,eAAe;QAC5B,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,aAAa,EAAE,QAAQ;KACxB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/contracts",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Consolidated Xema OS kernel wire contracts — pure types + zod schemas for the kernel protocol surfaces. One package, one npm scope, wildcard per-surface subpath exports. No framework/runtime deps.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",