@marinoscar/platform-api 0.1.0-next.21 → 0.1.0-next.22

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.
Files changed (96) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/ai/features/ai-feature.registry.d.ts +7 -0
  3. package/dist/ai/features/ai-feature.registry.d.ts.map +1 -1
  4. package/dist/ai/features/ai-feature.registry.js +3 -0
  5. package/dist/ai/features/ai-feature.registry.js.map +1 -1
  6. package/dist/ai/keys/ai-key-resolver.service.d.ts +16 -0
  7. package/dist/ai/keys/ai-key-resolver.service.d.ts.map +1 -1
  8. package/dist/ai/keys/ai-key-resolver.service.js +44 -0
  9. package/dist/ai/keys/ai-key-resolver.service.js.map +1 -1
  10. package/dist/ai/keys/usable-models.service.d.ts +13 -1
  11. package/dist/ai/keys/usable-models.service.d.ts.map +1 -1
  12. package/dist/ai/keys/usable-models.service.js +37 -12
  13. package/dist/ai/keys/usable-models.service.js.map +1 -1
  14. package/dist/ai/runtime/ai-limits.service.d.ts +2 -1
  15. package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
  16. package/dist/ai/runtime/ai-limits.service.js +7 -2
  17. package/dist/ai/runtime/ai-limits.service.js.map +1 -1
  18. package/dist/ai/runtime/ai-runtime.types.d.ts +46 -1
  19. package/dist/ai/runtime/ai-runtime.types.d.ts.map +1 -1
  20. package/dist/ai/runtime/ai-runtime.types.js.map +1 -1
  21. package/dist/ai/runtime/ai.service.d.ts +142 -5
  22. package/dist/ai/runtime/ai.service.d.ts.map +1 -1
  23. package/dist/ai/runtime/ai.service.js +353 -46
  24. package/dist/ai/runtime/ai.service.js.map +1 -1
  25. package/dist/ai/runtime/index.d.ts +1 -1
  26. package/dist/ai/runtime/index.d.ts.map +1 -1
  27. package/dist/ai/runtime/target-resolver.d.ts +2 -2
  28. package/dist/ai/runtime/target-resolver.d.ts.map +1 -1
  29. package/dist/ai/runtime/target-resolver.js +2 -1
  30. package/dist/ai/runtime/target-resolver.js.map +1 -1
  31. package/dist/ai/testing/conformance/ai-key-policy.suite.d.ts.map +1 -1
  32. package/dist/ai/testing/conformance/ai-key-policy.suite.js +54 -0
  33. package/dist/ai/testing/conformance/ai-key-policy.suite.js.map +1 -1
  34. package/dist/ai/testing/conformance/ai-secret-egress.suite.d.ts.map +1 -1
  35. package/dist/ai/testing/conformance/ai-secret-egress.suite.js +59 -0
  36. package/dist/ai/testing/conformance/ai-secret-egress.suite.js.map +1 -1
  37. package/dist/identity/device-auth/device-auth.service.d.ts +9 -2
  38. package/dist/identity/device-auth/device-auth.service.d.ts.map +1 -1
  39. package/dist/identity/device-auth/device-auth.service.js +44 -4
  40. package/dist/identity/device-auth/device-auth.service.js.map +1 -1
  41. package/dist/identity/device-auth/dto/device-code-request.dto.d.ts +12 -0
  42. package/dist/identity/device-auth/dto/device-code-request.dto.d.ts.map +1 -1
  43. package/dist/identity/identity.options.d.ts +25 -0
  44. package/dist/identity/identity.options.d.ts.map +1 -1
  45. package/dist/identity/identity.options.js +11 -0
  46. package/dist/identity/identity.options.js.map +1 -1
  47. package/dist/identity/index.d.ts +1 -1
  48. package/dist/identity/index.d.ts.map +1 -1
  49. package/dist/nodes/current-node.decorator.d.ts +18 -0
  50. package/dist/nodes/current-node.decorator.d.ts.map +1 -0
  51. package/dist/nodes/current-node.decorator.js +28 -0
  52. package/dist/nodes/current-node.decorator.js.map +1 -0
  53. package/dist/nodes/index.d.ts +8 -0
  54. package/dist/nodes/index.d.ts.map +1 -1
  55. package/dist/nodes/index.js +21 -2
  56. package/dist/nodes/index.js.map +1 -1
  57. package/dist/nodes/node-ownership.d.ts +34 -0
  58. package/dist/nodes/node-ownership.d.ts.map +1 -0
  59. package/dist/nodes/node-ownership.js +92 -0
  60. package/dist/nodes/node-ownership.js.map +1 -0
  61. package/dist/nodes/node-route.decorator.d.ts +31 -0
  62. package/dist/nodes/node-route.decorator.d.ts.map +1 -0
  63. package/dist/nodes/node-route.decorator.js +54 -0
  64. package/dist/nodes/node-route.decorator.js.map +1 -0
  65. package/dist/nodes/node-route.guard.d.ts +22 -0
  66. package/dist/nodes/node-route.guard.d.ts.map +1 -0
  67. package/dist/nodes/node-route.guard.js +74 -0
  68. package/dist/nodes/node-route.guard.js.map +1 -0
  69. package/dist/nodes/node-route.module.d.ts +21 -0
  70. package/dist/nodes/node-route.module.d.ts.map +1 -0
  71. package/dist/nodes/node-route.module.js +99 -0
  72. package/dist/nodes/node-route.module.js.map +1 -0
  73. package/dist/nodes/node-route.options.d.ts +59 -0
  74. package/dist/nodes/node-route.options.d.ts.map +1 -0
  75. package/dist/nodes/node-route.options.js +29 -0
  76. package/dist/nodes/node-route.options.js.map +1 -0
  77. package/dist/nodes/node-route.paths.d.ts +47 -0
  78. package/dist/nodes/node-route.paths.d.ts.map +1 -0
  79. package/dist/nodes/node-route.paths.js +129 -0
  80. package/dist/nodes/node-route.paths.js.map +1 -0
  81. package/dist/nodes/nodes.service.d.ts.map +1 -1
  82. package/dist/nodes/nodes.service.js +3 -15
  83. package/dist/nodes/nodes.service.js.map +1 -1
  84. package/dist/nodes/testing/conformance.d.ts +86 -0
  85. package/dist/nodes/testing/conformance.d.ts.map +1 -0
  86. package/dist/nodes/testing/conformance.js +230 -0
  87. package/dist/nodes/testing/conformance.js.map +1 -0
  88. package/dist/nodes/testing/discover.d.ts +13 -0
  89. package/dist/nodes/testing/discover.d.ts.map +1 -0
  90. package/dist/nodes/testing/discover.js +42 -0
  91. package/dist/nodes/testing/discover.js.map +1 -0
  92. package/dist/nodes/testing/index.d.ts +3 -0
  93. package/dist/nodes/testing/index.d.ts.map +1 -0
  94. package/dist/nodes/testing/index.js +13 -0
  95. package/dist/nodes/testing/index.js.map +1 -0
  96. package/package.json +7 -3
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // Where an app node route may live: the reserved sub-paths of `/api/nodes`
4
+ // =============================================================================
5
+ //
6
+ // `JwtAuthGuard` admits a `nod_` credential on `/api/nodes` and anything under
7
+ // it (by raw URL). The platform's own control plane occupies part of that
8
+ // space; an app route that landed on top of it would be shadowed by, or would
9
+ // shadow, a platform route depending on module order. These helpers state the
10
+ // reserved part once, and compute a controller's routes so that the bootstrap
11
+ // check (`NodeRouteModule`) and the `nodes` conformance suite apply the very
12
+ // same rule.
13
+ // =============================================================================
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RESERVED_NODE_SUBPATHS = void 0;
16
+ exports.controllerRoutes = controllerRoutes;
17
+ exports.reservedNodeSubpathOverlap = reservedNodeSubpathOverlap;
18
+ const constants_1 = require("@nestjs/common/constants");
19
+ const index_1 = require("../identity/index");
20
+ /**
21
+ * The sub-paths of `/api/nodes` the platform owns, relative to the collection,
22
+ * with `:param` for a path parameter. `''` is the collection itself; a trailing
23
+ * `/*` reserves everything beneath. A `@NodeRoute()` route that overlaps one
24
+ * (a parameter overlaps a literal, the HTTP method is ignored) fails at
25
+ * bootstrap and in the `nodes` conformance suite. Mount an app feature on a
26
+ * sub-path NOT listed here, for example `nodes/:id/<feature>/...`.
27
+ *
28
+ * @stability stable
29
+ */
30
+ exports.RESERVED_NODE_SUBPATHS = Object.freeze([
31
+ '',
32
+ 'register',
33
+ 'job-types',
34
+ ':id',
35
+ ':id/events',
36
+ ':id/deregister',
37
+ ':id/heartbeat',
38
+ ':id/claim',
39
+ ':id/telemetry',
40
+ ':id/jobs/*',
41
+ 'models/*',
42
+ ]);
43
+ function pathsOf(value) {
44
+ if (Array.isArray(value))
45
+ return value.map(String);
46
+ if (typeof value === 'string')
47
+ return [value];
48
+ return [''];
49
+ }
50
+ function segmentsOf(path) {
51
+ return path.split('/').filter((segment) => segment.length > 0);
52
+ }
53
+ /** The collection name, `nodes`, from {@link NODE_ROUTE_PREFIX}. */
54
+ const NODES_SEGMENT = index_1.NODE_ROUTE_PREFIX.split('/').filter(Boolean).pop();
55
+ /**
56
+ * Every route of `controller` with its full path. A leading `api` segment (the
57
+ * global prefix) is dropped, so `api/nodes/x` and `nodes/x` read the same.
58
+ *
59
+ * @param controller - a controller class.
60
+ * @returns one entry per handler per declared path.
61
+ *
62
+ * @stability experimental
63
+ */
64
+ function controllerRoutes(controller) {
65
+ const out = [];
66
+ const prototype = controller.prototype;
67
+ const names = new Set();
68
+ for (let proto = prototype; proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {
69
+ for (const name of Object.getOwnPropertyNames(proto))
70
+ names.add(name);
71
+ }
72
+ for (const handler of names) {
73
+ const fn = prototype[handler];
74
+ if (handler === 'constructor' || typeof fn !== 'function')
75
+ continue;
76
+ if (Reflect.getMetadata(constants_1.METHOD_METADATA, fn) === undefined || Reflect.getMetadata(constants_1.PATH_METADATA, fn) === undefined)
77
+ continue;
78
+ for (const base of pathsOf(Reflect.getMetadata(constants_1.PATH_METADATA, controller))) {
79
+ for (const leaf of pathsOf(Reflect.getMetadata(constants_1.PATH_METADATA, fn))) {
80
+ let segments = [...segmentsOf(base), ...segmentsOf(leaf)];
81
+ if (segments[0] === 'api')
82
+ segments = segments.slice(1);
83
+ out.push({
84
+ id: `${controller.name}#${handler}`,
85
+ handler,
86
+ path: segments.join('/'),
87
+ nodeSegments: segments[0] === NODES_SEGMENT ? segments.slice(1) : null,
88
+ });
89
+ }
90
+ }
91
+ }
92
+ return out;
93
+ }
94
+ function isParam(segment) {
95
+ return segment.startsWith(':');
96
+ }
97
+ /**
98
+ * Whether the route's leading segments can match `pattern`. `routeParamMatches`
99
+ * lets a route's own `:param` match a reserved literal: right for an exact
100
+ * entry (a route `nodes/:x` swallows `nodes/register`), wrong for a `/*` prefix
101
+ * (a route `nodes/:id/reports` is not `nodes/models/...`: a node id is a uuid).
102
+ */
103
+ function segmentsOverlap(route, pattern, routeParamMatches) {
104
+ return pattern.every((segment, index) => {
105
+ const other = route[index];
106
+ return segment === other || isParam(segment) || (routeParamMatches && isParam(other));
107
+ });
108
+ }
109
+ /**
110
+ * The reserved sub-path a route overlaps, or `null`.
111
+ *
112
+ * @param nodeSegments - the route's segments after `nodes`.
113
+ * @returns the entry of {@link RESERVED_NODE_SUBPATHS} it collides with.
114
+ *
115
+ * @stability stable
116
+ */
117
+ function reservedNodeSubpathOverlap(nodeSegments) {
118
+ for (const reserved of exports.RESERVED_NODE_SUBPATHS) {
119
+ const wildcard = reserved.endsWith('/*');
120
+ const pattern = segmentsOf(wildcard ? reserved.slice(0, -2) : reserved);
121
+ const overlaps = wildcard
122
+ ? nodeSegments.length >= pattern.length && segmentsOverlap(nodeSegments, pattern, false)
123
+ : nodeSegments.length === pattern.length && segmentsOverlap(nodeSegments, pattern, true);
124
+ if (overlaps)
125
+ return reserved;
126
+ }
127
+ return null;
128
+ }
129
+ //# sourceMappingURL=node-route.paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-route.paths.js","sourceRoot":"","sources":["../../src/nodes/node-route.paths.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.service.d.ts","sourceRoot":"","sources":["../../src/nodes/nodes.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.service.d.ts","sourceRoot":"","sources":["../../src/nodes/nodes.service.ts"],"names":[],"mappings":"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"}
@@ -150,6 +150,7 @@ const index_8 = require("../jobs/index");
150
150
  const index_9 = require("../jobs/index");
151
151
  const index_10 = require("../jobs/index");
152
152
  const node_events_service_1 = require("./node-events.service");
153
+ const node_ownership_1 = require("./node-ownership");
153
154
  const node_settlement_ledger_1 = require("./node-settlement-ledger");
154
155
  /**
155
156
  * How recently a node must have heartbeated for a re-register to be WORTH
@@ -880,21 +881,8 @@ let NodesService = NodesService_1 = class NodesService {
880
881
  * from "not yours" where `NodeCredentialService` deliberately does not.
881
882
  */
882
883
  async assertOwnership(userId, nodeId) {
883
- const node = await this.prisma.workerNode.findUnique({ where: { id: nodeId } });
884
- if (!node) {
885
- throw new common_1.NotFoundException({
886
- message: `Worker node ${nodeId} was not found.`,
887
- details: { nodeId },
888
- });
889
- }
890
- if (node.createdById !== userId) {
891
- throw new common_1.ForbiddenException({
892
- message: `Worker node ${nodeId} belongs to another user. Check that this credential and ` +
893
- `this node id came from the same registration.`,
894
- details: { nodeId },
895
- });
896
- }
897
- return node;
884
+ // One rule, shared with the app-route guard (`node-ownership.ts`).
885
+ return (0, node_ownership_1.assertNodeOwnedBy)(this.prisma, userId, nodeId);
898
886
  }
899
887
  /**
900
888
  * The job is claimed by THIS node, is `running`, its lease has not expired,
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.service.js","sourceRoot":"","sources":["../../src/nodes/nodes.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.service.js","sourceRoot":"","sources":["../../src/nodes/nodes.service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,2DAA2D;AAC3D,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,iDAAiD;AACjD,EAAE;AACF,gFAAgF;AAChF,kDAAkD;AAClD,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,6EAA6E;AAC7E,4EAA4E;AAC5E,yCAAyC;AACzC,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,wEAAwE;AACxE,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,8EAA8E;AAC9E,6EAA6E;AAC7E,uEAAuE;AACvE,8EAA8E;AAC9E,4EAA4E;AAC5E,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,gEAAgE;AAChE,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,oEAAoE;AACpE,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,mCAAmC;AACnC,EAAE;AACF,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,2EAA2E;AAC3E,oCAAoC;AACpC,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,0DAA0D;AAC1D,gFAAgF;;;;;;;;;;;;;;;;AAEhF,2CAUwB;AACxB,2CAA+C;AAC/C,yCAAgH;AAChH,yCAAgD;AAChD,6BAAwB;AAExB,yCAAgD;AAChD,yCAIuB;AACvB,yCAAmD;AACnD,yCAAmD;AACnD,yCAAgD;AAChD,yCAA6C;AAC7C,yCAAqE;AACrE,0CAAkD;AAQlD,+DAA0D;AAC1D,qDAAqD;AACrD,qEAAgE;AAEhE;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,MAAM,CAAC;AA0DvC;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA4B,CAAC,IAAI,KAAK,OAAO,CAC/C,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IAEtD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAA6C,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3D,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,eAAe;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AAEI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAIqB;IACzB;IACA;IACA;IAIA;IACA;IAOA;IAQA;IAGY;IA7Bd,MAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAExD,YAC4C,MAAkB,EAC3C,MAAqB,EACrB,MAAuB,EACvB,QAA4B;IAC7C,iEAAiE;IACjE,wEAAwE;IACxE,wBAAwB;IACP,MAAuB,EACvB,QAA4B;IAC7C,oEAAoE;IACpE,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,8BAA8B;IACb,OAA2B,EAQ3B,cAAoC,IAAI,6CAAoB,EAAE,EAGlD,UAA8B;QA1BjB,WAAM,GAAN,MAAM,CAAY;QAC3C,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAoB;QAI5B,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAoB;QAO5B,YAAO,GAAP,OAAO,CAAoB;QAQ3B,gBAAW,GAAX,WAAW,CAAmD;QAGlD,eAAU,GAAV,UAAU,CAAoB;IAC1D,CAAC;IAEJ,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,GAAoB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC/C,IAAI,EAAE;oBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,MAAM,EAAE,kBAAU,CAAC,MAAM;oBACzB,WAAW,EAAE,MAAM;oBACnB,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAkC,EAAE,CAAC;iBAC9D;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,0BAA0B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,QAAQ,IAAI;gBACvE,eAAe,IAAI,CAAC,WAAW,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/E,CAAC;YAEF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAEtD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,oEAAoE;gBACpE,gEAAgE;gBAChE,yCAAyC;gBACzC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,GAAG,CAAC,IAAI,cAAc,MAAM,IAAI;gBAClE,oCAAoC,KAAK,CAAC,EAAE,IAAI,CACnD,CAAC;YAEF,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,KAAK,CAAC,QAAQ,CAAC,QAAoB,EAAE,GAAoB;QAC/D,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC;QAE/C,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,uBAAuB,EAAE,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,EAAE,wBAAwB,GAAG,CAAC,QAAQ,SAAS;gBAClF,gCAAgC,QAAQ,CAAC,QAAQ,0BAA0B;gBAC3E,IAAI,aAAa,CAAC,WAAW,EAAE,oDAAoD;gBACnF,0CAA0C,CAC7C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACnC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC1B,IAAI,EAAE;gBACJ,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,kBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAU,CAAC,MAAM,EAAE,CAAC;gBACjF,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAkC,EAAE,CAAC;aAC9D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACnC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,IAAI,EAAE,EAAE,MAAM,EAAE,kBAAU,CAAC,OAAO,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,SAAS,CACb,MAAc,EACd,MAAc,EACd,GAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,aAAa,GACjB,IAAI,CAAC,MAAM,KAAK,kBAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAU,CAAC,QAAQ,CAAC;QAE7E,IAAI,GAAG,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iBAAiB,IAAI,CAAC,EAAE,4BAA4B,GAAG,CAAC,MAAM,gBAAgB;gBAC5E,IAAI,IAAI,CAAC,MAAM,uCAAuC,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAClD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,IAAI,EAAE;gBACJ,eAAe,EAAE,GAAG;gBACpB,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC1E,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAkC,EAAE,CAAC;gBAC7D,gEAAgE;gBAChE,mEAAmE;gBACnE,mEAAmE;gBACnE,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS;oBAC1B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAA4B,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;aACzE;SACF,CAAC,CAAC;QAEH,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8EAA8E;IAC9E,QAAQ;IACR,8EAA8E;IAE9E,uCAAuC;IACvC,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;YAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,8EAA8E;IAC9E,WAAW;IACX,8EAA8E;IAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,GAAiB;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAU,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,OAAO,EACL,QAAQ,IAAI,CAAC,EAAE,gEAAgE;oBAC/E,qCAAqC;gBACvC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;aAClD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAU,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,kCAAkC,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACrE,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,QAAQ,IAAI,CAAC,EAAE,0CAA0C;gBACvD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD;gBAC5E,iBAAiB,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,QAAQ,IAAI,CAAC,EAAE,uCAAuC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAC9E,kFAAkF;gBAClF,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,MAAM;YAChB,aAAa;YACb,KAAK;YACL,sEAAsE;YACtE,sEAAsE;YACtE,2BAA2B;YAC3B,EAAE;YACF,yDAAyD;YACzD,iEAAiE;YACjE,sEAAsE;YACtE,kEAAkE;YAClE,8DAA8D;YAC9D,uEAAuE;YACvE,uEAAuE;YACvE,4DAA4D;YAC5D,MAAM,EAAE,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kBAAkB,CAAC,IAAY;QAC7B,OAAO,IAAA,8BAAsB,EAC3B,IAAA,0BAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAA,yBAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,MAAc,EACd,KAAa,EACb,UAAmB;QAOnB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE9E,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,cAAc,GAAG,IAAI,IAAI,CAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,0BAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAA,yBAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5F,CAAC;QAEF,0EAA0E;QAC1E,mEAAmE;QACnE,uDAAuD;QACvD,EAAE;QACF,qEAAqE;QACrE,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,uDAAuD;QACvD,EAAE;QACF,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC;IAC3C,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,MAAc,EACd,KAAa,EACb,GAAqB;QAErB,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,uCAAuC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAElF,sEAAsE;QACtE,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,OAAO,EACL,8BAA8B,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc;oBACvE,IAAI,GAAG,CAAC,IAAI,2BAA2B;gBACzC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE;aAC3E,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,gBAAgB,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,EAAE,iBAAiB,CAAC;QAE3C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,OAAO,EACL,aAAa,GAAG,CAAC,IAAI,oDAAoD;oBACzE,yEAAyE;oBACzE,8BAA8B;gBAChC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,IAAI,MAAe,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,OAAO,EAAE,sBAAsB,GAAG,CAAC,EAAE,gCAAgC,GAAG,CAAC,IAAI,IAAI;gBACjF,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE;aACnF,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/D,uEAAuE;YACvE,mEAAmE;YACnE,qEAAqE;YACrE,+DAA+D;YAC/D,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mBAAmB,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,mBAAmB;oBAClF,sEAAsE;oBACtE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;gBAEF,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,mEAAmE;YACnE,qCAAqC;YACrC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mBAAmB,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,mBAAmB;gBAClF,mBAAmB,OAAO,qCAAqC;gBAC/D,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;YAEF,MAAM,IAAI,qCAA4B,CAAC;gBACrC,OAAO,EACL,sBAAsB,GAAG,CAAC,EAAE,oDAAoD;oBAChF,kCAAkC;gBACpC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;aACrD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE3D,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAExC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,MAAc,EACd,KAAa,EACb,GAAsB;QAEtB,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC5E,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,QAAQ,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,yBAAyB,OAAO,GAAG;YACnF,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,EAAE,CACvE,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,8EAA8E;IAC9E,yBAAyB;IACzB,8EAA8E;IAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,KAAK,CAAC,wBAAwB;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI;YACJ,KAAK,EAAE,IAAA,oBAAY,EAAC,IAAI,CAAC;YACzB,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SAC7C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CAAC,IAAY;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,OAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,aAAa,IAAI,iEAAiE;gBAChF,2EAA2E;gBAC3E,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,wBAAwB;IACxB,8EAA8E;IAE9E;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAc;QAClD,mEAAmE;QACnE,OAAO,IAAA,kCAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,mBAAmB,CACvB,MAAc,EACd,MAAc,EACd,KAAa,EACb,UAAmB;QAEnB,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,0BAAiB,CAAC;gBAC1B,OAAO,EAAE,OAAO,KAAK,iBAAiB;gBACtC,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IACE,GAAG,CAAC,eAAe,KAAK,MAAM;YAC9B,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,GAAG,CAAC,cAAc;YACnB,GAAG,CAAC,cAAc,IAAI,IAAI,IAAI,EAAE;YAChC,yEAAyE;YACzE,oEAAoE;YACpE,4DAA4D;YAC5D,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC,EAC3D,CAAC;YACD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;;;;;;;;;;;OAaG;IACK,aAAa,CAAC,KAAa,EAAE,MAAc;QACjD,OAAO,IAAI,0BAAiB,CAAC;YAC3B,OAAO,EACL,OAAO,KAAK,wBAAwB,MAAM,yCAAyC;gBACnF,qFAAqF;gBACrF,mCAAmC;YACrC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IACvD,UAAU,CAAC,MAAc,EAAE,IAAY;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YACvC,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,8DAA8D;IACtD,SAAS,CAAC,OAAyB;QACzC,OAAO,OAAO,KAAK,iBAAiB,IAAI,OAAO,KAAK,qBAAqB,CAAC;IAC5E,CAAC;CACF,CAAA;AA/6BY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,uBAAe,CAAC,CAAA;IAsBvB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAIV,WAAA,IAAA,iBAAQ,GAAE,CAAA;6CAzBc,sBAAa;QACb,uBAAe;QACb,0BAAkB;QAIpB,uBAAe;QACb,0BAAkB;QAOnB,0BAAkB;QAQd,6CAAoB;QAGR,uCAAiB;GA9BlD,YAAY,CA+6BxB"}
@@ -0,0 +1,86 @@
1
+ import { type DynamicModule, type Type } from '@nestjs/common';
2
+ import type { ConformanceFinding, ConformanceSuite } from '../../testing/index';
3
+ import { type ResolvedNodeRouteOptions } from '../node-route.options';
4
+ declare module '../../testing/index' {
5
+ interface PlatformConformanceSuiteOptions {
6
+ /** The nodes slice's suite: its options, or `false` to opt out. Registered by importing `@marinoscar/platform-api/nodes/testing`. */
7
+ nodes?: NodesConformanceOptions | false;
8
+ }
9
+ }
10
+ /**
11
+ * What an app passes as `suites.nodes` to `runPlatformConformance()`.
12
+ *
13
+ * @stability experimental
14
+ */
15
+ export interface NodesConformanceOptions {
16
+ /** The app's root module; every controller reachable from it is checked. */
17
+ readonly rootModule: Type<unknown> | DynamicModule;
18
+ /** Fewest packaged control-plane routes the walk must find (a vacuity guard); 1 by default. */
19
+ readonly minPlatformRoutes?: number;
20
+ }
21
+ /**
22
+ * One app route under `/api/nodes`, as the suite sees it.
23
+ *
24
+ * @stability experimental
25
+ */
26
+ export interface NodeAppRoute {
27
+ /** `Controller#handler`. */
28
+ readonly id: string;
29
+ /** The controller class. */
30
+ readonly controller: Type<unknown>;
31
+ /** The handler function. */
32
+ readonly handler: (...args: never[]) => unknown;
33
+ /** The path after `nodes`, as segments. */
34
+ readonly nodeSegments: readonly string[];
35
+ /** What `@NodeRoute()` recorded, or `undefined` when the route does not carry it. */
36
+ readonly declared: ResolvedNodeRouteOptions | undefined;
37
+ /** Whether `NodeRouteGuard` is among the route's guards. */
38
+ readonly guarded: boolean;
39
+ }
40
+ /**
41
+ * What {@link discoverNodeAppRoutes} found.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export interface NodeAppRouteDiscovery {
46
+ /** The app's routes under `/api/nodes`. */
47
+ routes: NodeAppRoute[];
48
+ /** How many packaged control-plane routes the walk saw (a vacuity guard). */
49
+ platformRoutes: number;
50
+ }
51
+ /**
52
+ * Every route the app mounts under `/api/nodes` outside the packaged control plane.
53
+ *
54
+ * @param controllers - from `discoverControllers`.
55
+ * @returns the app routes, plus the count of packaged routes seen.
56
+ *
57
+ * @stability experimental
58
+ */
59
+ export declare function discoverNodeAppRoutes(controllers: ReadonlyArray<Type<unknown>>): NodeAppRouteDiscovery;
60
+ /**
61
+ * Checks 1 and 2: declared, placed, guarded.
62
+ *
63
+ * @param routes - from {@link discoverNodeAppRoutes}.
64
+ * @returns the violations.
65
+ *
66
+ * @stability experimental
67
+ */
68
+ export declare function checkNodeAppRoutes(routes: readonly NodeAppRoute[]): ConformanceFinding[];
69
+ /**
70
+ * Check 3: the guard on each declared route enforces credential kind and node ownership.
71
+ *
72
+ * @param routes - from {@link discoverNodeAppRoutes}.
73
+ * @returns the violations.
74
+ *
75
+ * @stability experimental
76
+ */
77
+ export declare function checkNodeRouteOwnership(routes: readonly NodeAppRoute[]): Promise<ConformanceFinding[]>;
78
+ /**
79
+ * The `nodes` conformance suite. Registered when
80
+ * `@marinoscar/platform-api/nodes/testing` is imported.
81
+ *
82
+ * @extensionPoint registry
83
+ * @stability experimental
84
+ */
85
+ export declare const nodesConformanceSuite: ConformanceSuite<NodesConformanceOptions>;
86
+ //# sourceMappingURL=conformance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../../src/nodes/testing/conformance.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAyC,KAAK,aAAa,EAAyB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAO7H,OAAO,KAAK,EAAmB,kBAAkB,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGpH,OAAO,EAAuB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAK3F,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,+BAA+B;QACvC,qIAAqI;QACrI,KAAK,CAAC,EAAE,uBAAuB,GAAG,KAAK,CAAC;KACzC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC;IACnD,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;IAChD,2CAA2C;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACxD,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,qBAAqB,CA0BtG;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAwBxF;AA6CD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmB5G;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAAC,uBAAuB,CAoC3E,CAAC"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The nodes slice's conformance suite (issue #1076)
4
+ // =============================================================================
5
+ //
6
+ // What it proves about the APP that consumes the package. Importing
7
+ // `@marinoscar/platform-api/nodes/testing` registers the `nodes` suite with
8
+ // `runPlatformConformance()`.
9
+ //
10
+ // 1. node-route-declared: every route an app mounts under `/api/nodes`
11
+ // (outside the packaged control plane) carries `@NodeRoute()`. A
12
+ // `nod_` credential reaches the whole prefix, so a route without it is
13
+ // one a leaked worker token can call with no node-ownership check.
14
+ // 2. node-route-placement: no such route overlaps `RESERVED_NODE_SUBPATHS`,
15
+ // and the guard is really on it.
16
+ // 3. node-route-ownership: for each declared route, the guard `@NodeRoute()`
17
+ // applies refuses a credential kind the route did not admit, refuses
18
+ // another user's node (403), a missing node (404), and admits the owner.
19
+ //
20
+ // Checks 1 and 2 run in the scan; 3 is asynchronous and runs in its own case.
21
+ // =============================================================================
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.nodesConformanceSuite = void 0;
24
+ exports.discoverNodeAppRoutes = discoverNodeAppRoutes;
25
+ exports.checkNodeAppRoutes = checkNodeAppRoutes;
26
+ exports.checkNodeRouteOwnership = checkNodeRouteOwnership;
27
+ const common_1 = require("@nestjs/common");
28
+ const constants_1 = require("@nestjs/common/constants");
29
+ const core_1 = require("@nestjs/core");
30
+ const discover_1 = require("./discover");
31
+ const index_1 = require("../../testing/index");
32
+ const current_node_decorator_1 = require("../current-node.decorator");
33
+ const node_route_guard_1 = require("../node-route.guard");
34
+ const node_route_options_1 = require("../node-route.options");
35
+ const node_route_paths_1 = require("../node-route.paths");
36
+ const nodes_controller_1 = require("../nodes.controller");
37
+ /**
38
+ * Every route the app mounts under `/api/nodes` outside the packaged control plane.
39
+ *
40
+ * @param controllers - from `discoverControllers`.
41
+ * @returns the app routes, plus the count of packaged routes seen.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ function discoverNodeAppRoutes(controllers) {
46
+ const routes = [];
47
+ let platformRoutes = 0;
48
+ for (const controller of controllers) {
49
+ for (const route of (0, node_route_paths_1.controllerRoutes)(controller)) {
50
+ if (route.nodeSegments === null)
51
+ continue;
52
+ if (controller === nodes_controller_1.NodesController) {
53
+ platformRoutes += 1;
54
+ continue;
55
+ }
56
+ const handler = controller.prototype[route.handler];
57
+ const guards = [
58
+ ...(Reflect.getMetadata(constants_1.GUARDS_METADATA, controller) ?? []),
59
+ ...(Reflect.getMetadata(constants_1.GUARDS_METADATA, handler) ?? []),
60
+ ];
61
+ routes.push({
62
+ id: route.id,
63
+ controller,
64
+ handler,
65
+ nodeSegments: route.nodeSegments,
66
+ declared: (Reflect.getMetadata(node_route_options_1.NODE_ROUTE_METADATA, handler) ?? Reflect.getMetadata(node_route_options_1.NODE_ROUTE_METADATA, controller)),
67
+ guarded: guards.includes(node_route_guard_1.NodeRouteGuard),
68
+ });
69
+ }
70
+ }
71
+ return { routes, platformRoutes };
72
+ }
73
+ /**
74
+ * Checks 1 and 2: declared, placed, guarded.
75
+ *
76
+ * @param routes - from {@link discoverNodeAppRoutes}.
77
+ * @returns the violations.
78
+ *
79
+ * @stability experimental
80
+ */
81
+ function checkNodeAppRoutes(routes) {
82
+ const out = [];
83
+ for (const route of routes) {
84
+ const where = `/api/nodes/${route.nodeSegments.join('/')}`;
85
+ if (!route.declared) {
86
+ out.push({
87
+ file: route.id,
88
+ message: `is mounted at ${where}, which a nod_ worker credential can reach, but carries no @NodeRoute(). Add @NodeRoute() (it enforces node ownership before the handler runs) or move the route off /api/nodes.`,
89
+ });
90
+ continue;
91
+ }
92
+ if (!route.guarded) {
93
+ out.push({ file: route.id, message: `carries @NodeRoute() metadata but NodeRouteGuard is not among its guards, so ownership is not enforced.` });
94
+ }
95
+ const reserved = (0, node_route_paths_1.reservedNodeSubpathOverlap)(route.nodeSegments);
96
+ if (reserved !== null) {
97
+ out.push({ file: route.id, message: `${where} overlaps the platform-reserved sub-path "${reserved}" (RESERVED_NODE_SUBPATHS).` });
98
+ }
99
+ const param = route.declared.nodeParam;
100
+ if (param !== false && !route.nodeSegments.includes(`:${param}`)) {
101
+ out.push({ file: route.id, message: `declares nodeParam "${param}" but ${where} has no :${param} segment, so no node is ever resolved.` });
102
+ }
103
+ }
104
+ return out;
105
+ }
106
+ const OWNER = 'user-owner';
107
+ const STRANGER = 'user-stranger';
108
+ const OWN_NODE = '11111111-1111-4111-8111-111111111111';
109
+ const OTHER_NODE = '22222222-2222-4222-8222-222222222222';
110
+ const MISSING_NODE = '33333333-3333-4333-8333-333333333333';
111
+ const KINDS = [
112
+ { kind: 'node', name: 'nod' },
113
+ { kind: 'pat', name: 'pat' },
114
+ { kind: 'jwt', name: 'jwt' },
115
+ ];
116
+ const stubOwnership = {
117
+ async assertOwnership(userId, nodeId) {
118
+ if (nodeId === MISSING_NODE)
119
+ throw new common_1.NotFoundException();
120
+ if (nodeId === OTHER_NODE || userId !== OWNER)
121
+ throw new common_1.ForbiddenException();
122
+ return { id: nodeId, createdById: userId };
123
+ },
124
+ };
125
+ async function outcome(route, kind, userId, nodeId) {
126
+ const guard = new node_route_guard_1.NodeRouteGuard(new core_1.Reflector(), stubOwnership);
127
+ const request = {
128
+ user: { id: userId },
129
+ authCredential: kind === 'pat' ? { kind, tokenId: 'pat-1' } : { kind },
130
+ params: route.declared && route.declared.nodeParam !== false && nodeId ? { [route.declared.nodeParam]: nodeId } : {},
131
+ };
132
+ const context = {
133
+ getHandler: () => route.handler,
134
+ getClass: () => route.controller,
135
+ switchToHttp: () => ({ getRequest: () => request }),
136
+ };
137
+ try {
138
+ const admitted = await guard.canActivate(context);
139
+ if (admitted && request[current_node_decorator_1.NODE_ROUTE_REQUEST_KEY] === undefined && route.declared?.nodeParam !== false)
140
+ return 'other';
141
+ return admitted ? 'admitted' : 'other';
142
+ }
143
+ catch (error) {
144
+ if (error instanceof common_1.ForbiddenException)
145
+ return 'forbidden';
146
+ if (error instanceof common_1.NotFoundException)
147
+ return 'not-found';
148
+ return 'other';
149
+ }
150
+ }
151
+ /**
152
+ * Check 3: the guard on each declared route enforces credential kind and node ownership.
153
+ *
154
+ * @param routes - from {@link discoverNodeAppRoutes}.
155
+ * @returns the violations.
156
+ *
157
+ * @stability experimental
158
+ */
159
+ async function checkNodeRouteOwnership(routes) {
160
+ const out = [];
161
+ for (const route of routes) {
162
+ const declared = route.declared;
163
+ if (!declared)
164
+ continue;
165
+ for (const { kind, name } of KINDS) {
166
+ const expected = declared.credentials.includes(name) ? 'admitted' : 'forbidden';
167
+ const actual = await outcome(route, kind, OWNER, OWN_NODE);
168
+ if (actual !== expected)
169
+ out.push({ file: route.id, message: `a ${name} credential should be ${expected} (it ${declared.credentials.includes(name) ? 'is' : 'is not'} listed), got ${actual}.` });
170
+ }
171
+ if (declared.nodeParam === false)
172
+ continue;
173
+ const foreign = await outcome(route, 'node', OWNER, OTHER_NODE);
174
+ if (foreign !== 'forbidden')
175
+ out.push({ file: route.id, message: `another user's node should be refused with 403, got ${foreign}.` });
176
+ const stranger = await outcome(route, 'node', STRANGER, OWN_NODE);
177
+ if (stranger !== 'forbidden')
178
+ out.push({ file: route.id, message: `a caller who does not own the node should be refused with 403, got ${stranger}.` });
179
+ const missing = await outcome(route, 'node', OWNER, MISSING_NODE);
180
+ if (missing !== 'not-found')
181
+ out.push({ file: route.id, message: `a missing node should answer 404, got ${missing}.` });
182
+ }
183
+ return out;
184
+ }
185
+ /**
186
+ * The `nodes` conformance suite. Registered when
187
+ * `@marinoscar/platform-api/nodes/testing` is imported.
188
+ *
189
+ * @extensionPoint registry
190
+ * @stability experimental
191
+ */
192
+ exports.nodesConformanceSuite = {
193
+ id: 'nodes',
194
+ title: 'app routes on the node plane enforce node ownership',
195
+ description: 'Every app route under /api/nodes carries @NodeRoute(), stays off the platform-reserved sub-paths, and its guard refuses an unlisted credential kind, another user\'s node and a missing node.',
196
+ check(_context, options) {
197
+ const controllers = (0, discover_1.discoverAppControllers)(options.rootModule);
198
+ const { routes, platformRoutes } = discoverNodeAppRoutes(controllers);
199
+ const findings = checkNodeAppRoutes(routes);
200
+ const minimum = options.minPlatformRoutes ?? 1;
201
+ if (platformRoutes < minimum) {
202
+ findings.push({ file: 'routes', message: `the walk found ${platformRoutes} packaged node route(s), fewer than ${minimum}: is rootModule the app's root module?` });
203
+ }
204
+ return {
205
+ scanned: { appNodeRoutes: routes.length, platformNodeRoutes: platformRoutes },
206
+ scannedFiles: { appNodeRoutes: routes.map((route) => route.id) },
207
+ findings,
208
+ };
209
+ },
210
+ cases(options) {
211
+ return [
212
+ {
213
+ name: 'node-route-declared: every app route under /api/nodes carries @NodeRoute() and stays off the reserved sub-paths',
214
+ run: (report, expect) => {
215
+ expect(report.findings).toEqual([]);
216
+ },
217
+ },
218
+ {
219
+ name: 'node-route-ownership: the guard refuses an unlisted credential, another user\'s node and a missing node',
220
+ run: async (_report, expect) => {
221
+ const { routes } = discoverNodeAppRoutes((0, discover_1.discoverAppControllers)(options.rootModule));
222
+ expect(await checkNodeRouteOwnership(routes)).toEqual([]);
223
+ },
224
+ },
225
+ ];
226
+ },
227
+ };
228
+ if (!index_1.conformanceSuites.has(exports.nodesConformanceSuite.id))
229
+ index_1.conformanceSuites.register(exports.nodesConformanceSuite);
230
+ //# sourceMappingURL=conformance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../../src/nodes/testing/conformance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { DynamicModule, Type } from '@nestjs/common';
2
+ /**
3
+ * Every controller class reachable from `root` through module imports (static
4
+ * and dynamic), each once. A local copy of the identity suite's walk: a slice
5
+ * may not import another slice's internals, only its index.
6
+ *
7
+ * @param root - the app's root module.
8
+ * @returns the controllers, in discovery order.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare function discoverAppControllers(root: Type<unknown> | DynamicModule): Array<Type<unknown>>;
13
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/nodes/testing/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQ5E;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAoBhG"}