@xemahq/temporal-runtime 0.7.0 → 0.8.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.
Files changed (37) hide show
  1. package/README.md +50 -1
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +10 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/biome-worker.d.ts +33 -9
  7. package/dist/lib/biome-worker.d.ts.map +1 -1
  8. package/dist/lib/biome-worker.js +102 -7
  9. package/dist/lib/biome-worker.js.map +1 -1
  10. package/dist/lib/fairness-constants.d.ts +1 -0
  11. package/dist/lib/fairness-constants.d.ts.map +1 -1
  12. package/dist/lib/fairness-constants.js +2 -1
  13. package/dist/lib/fairness-constants.js.map +1 -1
  14. package/dist/lib/nexus-constants.d.ts +8 -0
  15. package/dist/lib/nexus-constants.d.ts.map +1 -0
  16. package/dist/lib/nexus-constants.js +14 -0
  17. package/dist/lib/nexus-constants.js.map +1 -0
  18. package/dist/lib/nexus-contract.d.ts +43 -0
  19. package/dist/lib/nexus-contract.d.ts.map +1 -0
  20. package/dist/lib/nexus-contract.js +101 -0
  21. package/dist/lib/nexus-contract.js.map +1 -0
  22. package/dist/lib/nexus-handler.d.ts +32 -0
  23. package/dist/lib/nexus-handler.d.ts.map +1 -0
  24. package/dist/lib/nexus-handler.js +144 -0
  25. package/dist/lib/nexus-handler.js.map +1 -0
  26. package/dist/lib/nexus-workflow.d.ts +22 -0
  27. package/dist/lib/nexus-workflow.d.ts.map +1 -0
  28. package/dist/lib/nexus-workflow.js +74 -0
  29. package/dist/lib/nexus-workflow.js.map +1 -0
  30. package/dist/lib/worker.d.ts +1 -0
  31. package/dist/lib/worker.d.ts.map +1 -1
  32. package/dist/lib/worker.js +23 -1
  33. package/dist/lib/worker.js.map +1 -1
  34. package/dist/lib/workflow-interceptors/fairness-guard.d.ts.map +1 -1
  35. package/dist/lib/workflow-interceptors/fairness-guard.js +14 -0
  36. package/dist/lib/workflow-interceptors/fairness-guard.js.map +1 -1
  37. package/package.json +16 -4
package/README.md CHANGED
@@ -111,6 +111,55 @@ it, scheduling work under a different key fails the run, and a
111
111
  operations do not carry a priority in SDK 1.24, so a Nexus handler sets the
112
112
  fairness key of the work it starts from the caller's org.
113
113
 
114
+ ### Nexus services
115
+
116
+ A biome publishes its contract as its own package, importing only the
117
+ sandbox-safe subpath:
118
+
119
+ ```ts
120
+ import { asyncOperation, defineNexusContract, NexusOperationScope, syncOperation }
121
+ from '@xemahq/temporal-runtime/nexus-contract';
122
+
123
+ export const agentSessionContract = defineNexusContract({
124
+ service: 'agent-session',
125
+ version: 'v1',
126
+ operations: {
127
+ start: asyncOperation<StartInput, StartResult>({ scope: NexusOperationScope.Org }),
128
+ erase: syncOperation<EraseInput, EraseReceipt>({ scope: NexusOperationScope.Org }),
129
+ },
130
+ });
131
+ ```
132
+
133
+ The provider implements it and passes the result to `defineBiomeWorker`, where
134
+ it is checked against the manifest's `nexus.provides` (operations and modes):
135
+
136
+ ```ts
137
+ nexusServices: [nexusHandlerFor(agentSessionContract, {
138
+ start: (ctx, input) => ctx.startWorkflow(sessionWorkflow, { workflowId, args: [input] }),
139
+ erase: async (ctx, input) => eraseSession(ctx.orgId, input),
140
+ })],
141
+ ```
142
+
143
+ Callers call it from workflow code:
144
+
145
+ ```ts
146
+ import { nexusClientFor } from '@xemahq/temporal-runtime/nexus-workflow';
147
+ try {
148
+ const result = await nexusClientFor(agentSessionContract)
149
+ .executeOperation('start', input, { scheduleToCloseTimeout: '2h' });
150
+ } catch (error) {
151
+ if (error instanceof NexusOperationTimedOut) { /* typed ending: error.timeoutType */ }
152
+ throw error;
153
+ }
154
+ ```
155
+
156
+ `composeBiomeWorkers` takes the distribution lock (`lock: { biomes, nexusBindings }`).
157
+ A caller's bundle carries exactly the endpoints its manifest requires and the
158
+ lock binds; a provider admits only the caller namespaces the lock binds, read
159
+ from the request's calling-workflow link. The caller run's org travels as the
160
+ `xema-org-id` header; an org-scoped operation refuses a request without it, and
161
+ `ctx.startWorkflow` makes it the started run's fairness key and `OrgId`.
162
+
114
163
  ### Standalone Activities
115
164
 
116
165
  ```ts
@@ -199,7 +248,7 @@ runs the connection suite against it.
199
248
 
200
249
  - `@nestjs/common` ^11
201
250
  - `reflect-metadata` ^0.2
202
- - `@xemahq/contracts` >=0.52.0
251
+ - `@xemahq/contracts` >=0.55.0
203
252
  - `@xemahq/identity-client` >=0.9.0
204
253
 
205
254
  ## License
package/dist/index.d.ts CHANGED
@@ -13,6 +13,9 @@ export * from './lib/workflow-purity';
13
13
  export * from './lib/worker-deployment-version';
14
14
  export * from './lib/biome-worker';
15
15
  export * from './lib/fairness';
16
+ export * from './lib/nexus-contract';
17
+ export * from './lib/nexus-handler';
18
+ export { NEXUS_CALLER_NOT_BOUND, NEXUS_ENDPOINTS_NOT_DEFINED, NEXUS_OPERATION_TIMED_OUT, NEXUS_ORG_MISSING, NEXUS_SERVICE_NOT_BOUND, nexusServiceKey, } from './lib/nexus-constants';
16
19
  export * from './lib/standalone-activity';
17
20
  export * from './lib/auth-kind';
18
21
  export * from './lib/service-http-client';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyCA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8CA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.nexusServiceKey = exports.NEXUS_SERVICE_NOT_BOUND = exports.NEXUS_ORG_MISSING = exports.NEXUS_OPERATION_TIMED_OUT = exports.NEXUS_ENDPOINTS_NOT_DEFINED = exports.NEXUS_CALLER_NOT_BOUND = void 0;
17
18
  __exportStar(require("./lib/connection"), exports);
18
19
  __exportStar(require("./lib/controller-token-publisher"), exports);
19
20
  __exportStar(require("./lib/access-token"), exports);
@@ -29,6 +30,15 @@ __exportStar(require("./lib/workflow-purity"), exports);
29
30
  __exportStar(require("./lib/worker-deployment-version"), exports);
30
31
  __exportStar(require("./lib/biome-worker"), exports);
31
32
  __exportStar(require("./lib/fairness"), exports);
33
+ __exportStar(require("./lib/nexus-contract"), exports);
34
+ __exportStar(require("./lib/nexus-handler"), exports);
35
+ var nexus_constants_1 = require("./lib/nexus-constants");
36
+ Object.defineProperty(exports, "NEXUS_CALLER_NOT_BOUND", { enumerable: true, get: function () { return nexus_constants_1.NEXUS_CALLER_NOT_BOUND; } });
37
+ Object.defineProperty(exports, "NEXUS_ENDPOINTS_NOT_DEFINED", { enumerable: true, get: function () { return nexus_constants_1.NEXUS_ENDPOINTS_NOT_DEFINED; } });
38
+ Object.defineProperty(exports, "NEXUS_OPERATION_TIMED_OUT", { enumerable: true, get: function () { return nexus_constants_1.NEXUS_OPERATION_TIMED_OUT; } });
39
+ Object.defineProperty(exports, "NEXUS_ORG_MISSING", { enumerable: true, get: function () { return nexus_constants_1.NEXUS_ORG_MISSING; } });
40
+ Object.defineProperty(exports, "NEXUS_SERVICE_NOT_BOUND", { enumerable: true, get: function () { return nexus_constants_1.NEXUS_SERVICE_NOT_BOUND; } });
41
+ Object.defineProperty(exports, "nexusServiceKey", { enumerable: true, get: function () { return nexus_constants_1.nexusServiceKey; } });
32
42
  __exportStar(require("./lib/standalone-activity"), exports);
33
43
  __exportStar(require("./lib/auth-kind"), exports);
34
44
  __exportStar(require("./lib/service-http-client"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAyCA,mDAAiC;AACjC,mEAAiD;AACjD,qDAAmC;AACnC,sDAAoC;AACpC,wEAAsD;AACtD,kEAAgD;AAChD,kDAAgC;AAChC,qEAAmD;AACnD,8DAA4C;AAC5C,iEAA+C;AAC/C,+CAA6B;AAC7B,wDAAsC;AACtC,kEAAgD;AAChD,qDAAmC;AACnC,iDAA+B;AAC/B,4DAA0C;AAC1C,kDAAgC;AAChC,4DAA0C;AAC1C,iDAA+B;AAC/B,0DAAwC;AACxC,oDAAkC;AAClC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA8CA,mDAAiC;AACjC,mEAAiD;AACjD,qDAAmC;AACnC,sDAAoC;AACpC,wEAAsD;AACtD,kEAAgD;AAChD,kDAAgC;AAChC,qEAAmD;AACnD,8DAA4C;AAC5C,iEAA+C;AAC/C,+CAA6B;AAC7B,wDAAsC;AACtC,kEAAgD;AAChD,qDAAmC;AACnC,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,yDAO+B;AAN7B,yHAAA,sBAAsB,OAAA;AACtB,8HAAA,2BAA2B,OAAA;AAC3B,4HAAA,yBAAyB,OAAA;AACzB,oHAAA,iBAAiB,OAAA;AACjB,0HAAA,uBAAuB,OAAA;AACvB,kHAAA,eAAe,OAAA;AAEjB,4DAA0C;AAC1C,kDAAgC;AAChC,4DAA0C;AAC1C,iDAA+B;AAC/B,0DAAwC;AACxC,oDAAkC;AAClC,qDAAmC"}
@@ -1,7 +1,9 @@
1
1
  import { BiomeWorkerTaskQueueFairness, BiomeWorkerTaskQueueServes, type BiomeOrigin } from '@xemahq/contracts/biome';
2
+ import { type LockedNexusBinding } from '@xemahq/contracts/distribution';
2
3
  import { type ProcessTrustPolicy } from '@xemahq/contracts/process-topology';
3
- import { type PlatformNexusServiceHandler, type PlatformWorkerSinks, type PlatformWorkerTuning } from './versioned-worker';
4
+ import { type PlatformWorkerSinks, type PlatformWorkerTuning } from './versioned-worker';
4
5
  import { type WorkerDeploymentVersion } from './worker-deployment-version';
6
+ import type { XemaNexusServiceImplementation } from './nexus-handler';
5
7
  import type { PayloadCodec } from '@temporalio/common';
6
8
  import type { ActivityInterceptorsFactory, NativeConnection, Worker } from '@temporalio/worker';
7
9
  export declare enum BiomeWorkerErrorCode {
@@ -12,17 +14,15 @@ export declare enum BiomeWorkerErrorCode {
12
14
  DuplicateComponent = "duplicate-component",
13
15
  DuplicateTaskQueue = "duplicate-task-queue",
14
16
  MixedTrustDomains = "mixed-trust-domains",
15
- EmptyComposition = "empty-composition"
17
+ EmptyComposition = "empty-composition",
18
+ NexusLockMissing = "nexus-lock-missing",
19
+ NexusBindingAbsent = "nexus-binding-absent",
20
+ NexusBindingMismatch = "nexus-binding-mismatch"
16
21
  }
17
22
  export declare class BiomeWorkerError extends Error {
18
23
  readonly code: BiomeWorkerErrorCode;
19
24
  constructor(code: BiomeWorkerErrorCode, message: string);
20
25
  }
21
- export interface BiomeNexusServiceImplementation {
22
- readonly service: string;
23
- readonly version: string;
24
- readonly handler: PlatformNexusServiceHandler;
25
- }
26
26
  export interface DefineBiomeWorkerOptions {
27
27
  readonly biomeId: string;
28
28
  readonly componentKey: string;
@@ -30,7 +30,7 @@ export interface DefineBiomeWorkerOptions {
30
30
  readonly protocol: unknown;
31
31
  readonly workflowsPath?: string;
32
32
  readonly activities?: object;
33
- readonly nexusServices?: readonly BiomeNexusServiceImplementation[];
33
+ readonly nexusServices?: readonly XemaNexusServiceImplementation[];
34
34
  readonly workflowInterceptorModules?: readonly string[];
35
35
  readonly activityInterceptors?: readonly ActivityInterceptorsFactory[];
36
36
  readonly payloadCodec?: PayloadCodec;
@@ -42,13 +42,19 @@ export interface BiomeWorkerQueue {
42
42
  readonly taskQueue: string;
43
43
  readonly serves: readonly BiomeWorkerTaskQueueServes[];
44
44
  readonly fairness: BiomeWorkerTaskQueueFairness;
45
- readonly nexusServices: readonly BiomeNexusServiceImplementation[];
45
+ readonly nexusServices: readonly XemaNexusServiceImplementation[];
46
+ }
47
+ export interface BiomeNexusRequirement {
48
+ readonly service: string;
49
+ readonly version: string;
50
+ readonly optional: boolean;
46
51
  }
47
52
  export interface BiomeWorkerDefinition {
48
53
  readonly biomeId: string;
49
54
  readonly componentKey: string;
50
55
  readonly origin: BiomeOrigin;
51
56
  readonly queues: readonly BiomeWorkerQueue[];
57
+ readonly nexusRequires: readonly BiomeNexusRequirement[];
52
58
  readonly workflowsPath?: string;
53
59
  readonly activities?: object;
54
60
  readonly workflowInterceptorModules: readonly string[];
@@ -64,7 +70,25 @@ export interface ComposeBiomeWorkersOptions {
64
70
  readonly version: WorkerDeploymentVersion;
65
71
  readonly trustPolicy?: ProcessTrustPolicy;
66
72
  readonly definitions: readonly BiomeWorkerDefinition[];
73
+ readonly lock?: ComposeNexusLock;
67
74
  }
75
+ export interface ComposeNexusLock {
76
+ readonly biomes: readonly {
77
+ readonly id: string;
78
+ readonly origin: BiomeOrigin;
79
+ }[];
80
+ readonly nexusBindings?: readonly LockedNexusBinding[];
81
+ }
82
+ export interface ResolvedNexusTopology {
83
+ readonly allowedCallers: ReadonlyMap<string, ReadonlySet<string>>;
84
+ readonly endpoints: ReadonlyMap<string, Readonly<Record<string, string>>>;
85
+ }
86
+ export declare function resolveNexusTopology(options: {
87
+ readonly deploymentId: string;
88
+ readonly trustPolicy?: ProcessTrustPolicy;
89
+ readonly definitions: readonly BiomeWorkerDefinition[];
90
+ readonly lock?: ComposeNexusLock;
91
+ }): ResolvedNexusTopology;
68
92
  export interface ComposedBiomeWorker {
69
93
  readonly biomeId: string;
70
94
  readonly componentKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"biome-worker.d.ts","sourceRoot":"","sources":["../../src/lib/biome-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"biome-worker.d.ts","sourceRoot":"","sources":["../../src/lib/biome-worker.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BiomeWorkerError = exports.BiomeWorkerErrorCode = void 0;
4
4
  exports.defineBiomeWorker = defineBiomeWorker;
5
+ exports.resolveNexusTopology = resolveNexusTopology;
5
6
  exports.composeBiomeWorkers = composeBiomeWorkers;
6
7
  const node_path_1 = require("node:path");
7
8
  const biome_1 = require("@xemahq/contracts/biome");
@@ -9,6 +10,7 @@ const deployment_1 = require("@xemahq/contracts/deployment");
9
10
  const process_topology_1 = require("@xemahq/contracts/process-topology");
10
11
  const workflow_1 = require("@xemahq/contracts/workflow");
11
12
  const fairness_1 = require("./fairness");
13
+ const nexus_constants_1 = require("./nexus-constants");
12
14
  const versioned_worker_1 = require("./versioned-worker");
13
15
  const worker_1 = require("./worker");
14
16
  const worker_deployment_version_1 = require("./worker-deployment-version");
@@ -22,6 +24,9 @@ var BiomeWorkerErrorCode;
22
24
  BiomeWorkerErrorCode["DuplicateTaskQueue"] = "duplicate-task-queue";
23
25
  BiomeWorkerErrorCode["MixedTrustDomains"] = "mixed-trust-domains";
24
26
  BiomeWorkerErrorCode["EmptyComposition"] = "empty-composition";
27
+ BiomeWorkerErrorCode["NexusLockMissing"] = "nexus-lock-missing";
28
+ BiomeWorkerErrorCode["NexusBindingAbsent"] = "nexus-binding-absent";
29
+ BiomeWorkerErrorCode["NexusBindingMismatch"] = "nexus-binding-mismatch";
25
30
  })(BiomeWorkerErrorCode || (exports.BiomeWorkerErrorCode = BiomeWorkerErrorCode = {}));
26
31
  class BiomeWorkerError extends Error {
27
32
  code;
@@ -37,9 +42,6 @@ const FAIRNESS_INTERCEPTOR_MODULE = {
37
42
  [biome_1.BiomeWorkerTaskQueueFairness.Org]: (0, node_path_1.join)(__dirname, 'workflow-interceptors', 'org-fairness-required'),
38
43
  [biome_1.BiomeWorkerTaskQueueFairness.None]: (0, node_path_1.join)(__dirname, 'workflow-interceptors', 'fairness-propagation'),
39
44
  };
40
- function nexusKey(service, version) {
41
- return `${service}@${version}`;
42
- }
43
45
  function servesAny(queues, kind) {
44
46
  return queues.some((queue) => queue.serves.includes(kind));
45
47
  }
@@ -78,13 +80,13 @@ function defineBiomeWorker(options) {
78
80
  const supplied = options.nexusServices ?? [];
79
81
  const suppliedByKey = new Map();
80
82
  for (const impl of supplied) {
81
- const key = nexusKey(impl.service, impl.version);
83
+ const key = (0, nexus_constants_1.nexusServiceKey)(impl.service, impl.version);
82
84
  if (suppliedByKey.has(key)) {
83
85
  throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusMismatch, `${where}: Nexus service ${key} was supplied twice.`);
84
86
  }
85
87
  suppliedByKey.set(key, impl);
86
88
  }
87
- const declaredKeys = new Set(provides.map((p) => nexusKey(p.service, p.version)));
89
+ const declaredKeys = new Set(provides.map((p) => (0, nexus_constants_1.nexusServiceKey)(p.service, p.version)));
88
90
  const undeclared = [...suppliedByKey.keys()].filter((k) => !declaredKeys.has(k));
89
91
  const unimplemented = [...declaredKeys].filter((k) => !suppliedByKey.has(k));
90
92
  if (undeclared.length > 0 || unimplemented.length > 0) {
@@ -97,10 +99,24 @@ function defineBiomeWorker(options) {
97
99
  : '') +
98
100
  '.');
99
101
  }
102
+ for (const provided of provides) {
103
+ const impl = suppliedByKey.get((0, nexus_constants_1.nexusServiceKey)(provided.service, provided.version));
104
+ const declaredOps = new Map(provided.operations.map((o) => [o.name, o.mode]));
105
+ const drift = [
106
+ ...[...declaredOps].filter(([name, mode]) => impl.operations.get(name) !== mode)
107
+ .map(([name, mode]) => `${name} (manifest ${mode}, contract ${impl.operations.get(name) ?? 'absent'})`),
108
+ ...[...impl.operations.keys()].filter((name) => !declaredOps.has(name))
109
+ .map((name) => `${name} (contract only)`),
110
+ ];
111
+ if (drift.length > 0) {
112
+ throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusMismatch, `${where}: Nexus service ${(0, nexus_constants_1.nexusServiceKey)(provided.service, provided.version)} operations ` +
113
+ `differ from nexus.provides: ${drift.join(', ')}.`);
114
+ }
115
+ }
100
116
  const queues = declared.map((queue) => {
101
117
  const nexusServices = provides
102
118
  .filter((p) => p.taskQueue === queue.name)
103
- .map((p) => suppliedByKey.get(nexusKey(p.service, p.version)));
119
+ .map((p) => suppliedByKey.get((0, nexus_constants_1.nexusServiceKey)(p.service, p.version)));
104
120
  if (queue.serves.includes(biome_1.BiomeWorkerTaskQueueServes.Nexus) &&
105
121
  nexusServices.length === 0) {
106
122
  throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusMismatch, `${where}: task queue ${queue.name} serves 'nexus' but no nexus.provides entry names it.`);
@@ -118,6 +134,11 @@ function defineBiomeWorker(options) {
118
134
  componentKey: options.componentKey,
119
135
  origin: options.origin,
120
136
  queues: Object.freeze(queues),
137
+ nexusRequires: Object.freeze((protocol.nexus?.requires ?? []).map((r) => Object.freeze({
138
+ service: r.service,
139
+ version: r.version,
140
+ optional: r.optional === true,
141
+ }))),
121
142
  ...(options.workflowsPath !== undefined
122
143
  ? { workflowsPath: options.workflowsPath }
123
144
  : {}),
@@ -137,6 +158,69 @@ function defineBiomeWorker(options) {
137
158
  tuning: Object.freeze({ ...(options.tuning ?? {}) }),
138
159
  });
139
160
  }
161
+ function resolveNexusTopology(options) {
162
+ const deploymentId = (0, deployment_1.parseDeploymentId)(options.deploymentId);
163
+ const usesNexus = options.definitions.some((d) => d.nexusRequires.length > 0 || d.queues.some((q) => q.nexusServices.length > 0));
164
+ const allowedCallers = new Map();
165
+ const endpoints = new Map();
166
+ if (!usesNexus) {
167
+ for (const def of options.definitions) {
168
+ endpoints.set(`${def.biomeId}/${def.componentKey}`, Object.freeze({}));
169
+ }
170
+ return { allowedCallers, endpoints };
171
+ }
172
+ const lock = options.lock;
173
+ if (lock === undefined) {
174
+ throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusLockMissing, 'a composed definition provides or requires Nexus, and no distribution lock was supplied: ' +
175
+ 'the lock alone says which callers a provider admits and which endpoints a caller may name.');
176
+ }
177
+ const origins = new Map(lock.biomes.map((b) => [b.id, b.origin]));
178
+ const bindings = new Map((lock.nexusBindings ?? []).map((b) => [(0, nexus_constants_1.nexusServiceKey)(b.service, b.version), b]));
179
+ const namespaceOf = (biomeId) => {
180
+ const origin = origins.get(biomeId);
181
+ if (origin === undefined) {
182
+ throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusBindingMismatch, `the lock binds biome ${biomeId} as a Nexus caller and ships no biome by that id.`);
183
+ }
184
+ return (0, workflow_1.workflowNamespaceForTrustDomain)(deploymentId, (0, process_topology_1.resolveTrustDomain)(biomeId, origin, options.trustPolicy));
185
+ };
186
+ for (const def of options.definitions) {
187
+ const component = `${def.biomeId}/${def.componentKey}`;
188
+ for (const queue of def.queues) {
189
+ for (const impl of queue.nexusServices) {
190
+ const key = (0, nexus_constants_1.nexusServiceKey)(impl.service, impl.version);
191
+ const binding = bindings.get(key);
192
+ if (binding === undefined) {
193
+ allowedCallers.set(key, new Set());
194
+ continue;
195
+ }
196
+ if (binding.providerBiome !== def.biomeId ||
197
+ binding.providerComponent !== def.componentKey ||
198
+ binding.taskQueue !== queue.taskQueue) {
199
+ throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusBindingMismatch, `${component} provides ${key} on ${queue.taskQueue}, and the lock binds it to ` +
200
+ `${binding.providerBiome}/${binding.providerComponent} on ${binding.taskQueue}.`);
201
+ }
202
+ allowedCallers.set(key, new Set(binding.callers.map(namespaceOf)));
203
+ }
204
+ }
205
+ const map = {};
206
+ for (const req of def.nexusRequires) {
207
+ const key = (0, nexus_constants_1.nexusServiceKey)(req.service, req.version);
208
+ const binding = bindings.get(key);
209
+ if (binding === undefined || !binding.callers.includes(def.biomeId)) {
210
+ if (req.optional && binding === undefined) {
211
+ continue;
212
+ }
213
+ throw new BiomeWorkerError(BiomeWorkerErrorCode.NexusBindingAbsent, `${component} requires Nexus service ${key}, and the lock ` +
214
+ (binding === undefined
215
+ ? 'binds no provider for it.'
216
+ : `does not name biome ${def.biomeId} among its callers (${binding.callers.join(', ')}).`));
217
+ }
218
+ map[key] = (0, workflow_1.nexusEndpointName)(deploymentId, req.service, req.version);
219
+ }
220
+ endpoints.set(component, Object.freeze(map));
221
+ }
222
+ return { allowedCallers, endpoints };
223
+ }
140
224
  async function composeBiomeWorkers(options) {
141
225
  const { definitions } = options;
142
226
  if (definitions.length === 0) {
@@ -169,6 +253,12 @@ async function composeBiomeWorkers(options) {
169
253
  }
170
254
  const trustDomain = [...domains.keys()][0];
171
255
  const namespace = (0, workflow_1.workflowNamespaceForTrustDomain)(deploymentId, trustDomain);
256
+ const nexus = resolveNexusTopology({
257
+ deploymentId,
258
+ definitions,
259
+ ...(options.trustPolicy !== undefined ? { trustPolicy: options.trustPolicy } : {}),
260
+ ...(options.lock !== undefined ? { lock: options.lock } : {}),
261
+ });
172
262
  const bundles = new Map();
173
263
  async function bundleFor(def, fairness) {
174
264
  const key = `${def.biomeId}/${def.componentKey}#${fairness}`;
@@ -181,6 +271,7 @@ async function composeBiomeWorkers(options) {
181
271
  FAIRNESS_INTERCEPTOR_MODULE[fairness],
182
272
  ...def.workflowInterceptorModules,
183
273
  ],
274
+ nexusEndpoints: nexus.endpoints.get(`${def.biomeId}/${def.componentKey}`),
184
275
  });
185
276
  bundles.set(key, bundle);
186
277
  return bundle;
@@ -201,7 +292,11 @@ async function composeBiomeWorkers(options) {
201
292
  : {}),
202
293
  ...(servesActivities ? { activities: def.activities } : {}),
203
294
  ...(queue.nexusServices.length > 0
204
- ? { nexusServices: queue.nexusServices.map((n) => n.handler) }
295
+ ? {
296
+ nexusServices: queue.nexusServices.map((n) => n.bind({
297
+ allowedCallerNamespaces: nexus.allowedCallers.get((0, nexus_constants_1.nexusServiceKey)(n.service, n.version)),
298
+ })),
299
+ }
205
300
  : {}),
206
301
  activityInterceptors: [
207
302
  ...(queue.fairness === biome_1.BiomeWorkerTaskQueueFairness.Org
@@ -1 +1 @@
1
- {"version":3,"file":"biome-worker.js","sourceRoot":"","sources":["../../src/lib/biome-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"biome-worker.js","sourceRoot":"","sources":["../../src/lib/biome-worker.ts"],"names":[],"mappings":";;;AA+LA,8CA+JC;AAkDD,oDA2FC;AAyCD,kDAqKC;AAzrBD,yCAAiC;AAEjC,mDAOiC;AACjC,6DAAiE;AAEjE,yEAG4C;AAC5C,yDAIoC;AAEpC,yCAA4D;AAC5D,uDAAoD;AACpD,yDAK4B;AAC5B,qCAAmD;AACnD,2EAGqC;AAarC,IAAY,oBAuBX;AAvBD,WAAY,oBAAoB;IAE9B,sEAA8C,CAAA;IAE9C,0EAAkD,CAAA;IAElD,wDAAgC,CAAA;IAEhC,qEAA6C,CAAA;IAE7C,kEAA0C,CAAA;IAE1C,mEAA2C,CAAA;IAE3C,iEAAyC,CAAA;IAEzC,8DAAsC,CAAA;IAEtC,+DAAuC,CAAA;IAEvC,mEAA2C,CAAA;IAE3C,uEAA+C,CAAA;AACjD,CAAC,EAvBW,oBAAoB,oCAApB,oBAAoB,QAuB/B;AAED,MAAa,gBAAiB,SAAQ,KAAK;IAE9B;IADX,YACW,IAA0B,EACnC,OAAe;QAEf,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAHrB,SAAI,GAAJ,IAAI,CAAsB;QAInC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AARD,4CAQC;AAqED,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAOlD,MAAM,2BAA2B,GAE7B;IACF,CAAC,oCAA4B,CAAC,GAAG,CAAC,EAAE,IAAA,gBAAI,EACtC,SAAS,EACT,uBAAuB,EACvB,uBAAuB,CACxB;IACD,CAAC,oCAA4B,CAAC,IAAI,CAAC,EAAE,IAAA,gBAAI,EACvC,SAAS,EACT,uBAAuB,EACvB,sBAAsB,CACvB;CACF,CAAC;AAEF,SAAS,SAAS,CAChB,MAAuC,EACvC,IAAgC;IAEhC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAeD,SAAgB,iBAAiB,CAC/B,OAAiC;IAEjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,mBAAmB,EACxC,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,iCAAyB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,IACE,CAAC,MAAM,CAAC,OAAO;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,kCAA0B,CAAC,MAAM;QACtD,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAC7B,CAAC;QACD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,mBAAmB,EACxC,GAAG,KAAK,yDAAyD;YAC/D,CAAC,MAAM,CAAC,OAAO;gBACb,CAAC,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI;gBAC5C,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CACnC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;IAErC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpC;YACE,kCAA0B,CAAC,SAAS;YACpC,OAAO,CAAC,aAAa;YACrB,eAAe;SAChB;QACD,CAAC,kCAA0B,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;KACjE,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,sBAAsB,EAC3C,MAAM;gBACJ,CAAC,CAAC,GAAG,KAAK,0BAA0B,IAAI,YAAY,KAAK,gBAAgB;gBACzE,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,2CAA2C,IAAI,IAAI,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0C,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAA,iCAAe,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,aAAa,EAClC,GAAG,KAAK,mBAAmB,GAAG,sBAAsB,CACrD,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iCAAe,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAC3D,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5B,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,aAAa,EAClC,GAAG,KAAK,oDAAoD;YAC1D,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CACN,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAC5B,IAAA,iCAAe,EAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAClB,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;iBAC7E,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,cAAc,IAAI,cAAc,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC;YACzG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACpE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,kBAAkB,CAAC;SAC5C,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,aAAa,EAClC,GAAG,KAAK,mBAAmB,IAAA,iCAAe,EAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;gBAC1F,+BAA+B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAuB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxD,MAAM,aAAa,GAAG,QAAQ;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC;aACzC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,aAAa,CAAC,GAAG,CACf,IAAA,iCAAe,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CACJ,CACtC,CAAC;QACJ,IACE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAA0B,CAAC,KAAK,CAAC;YACvD,aAAa,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC;YACD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,aAAa,EAClC,GAAG,KAAK,gBAAgB,KAAK,CAAC,IAAI,uDAAuD,CAC1F,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAA,yBAAc,EAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;YACtD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,CAC1B,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,MAAM,CAAC,MAAM,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;SAC9B,CAAC,CACH,CACF;QACD,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;YAC1C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;QACP,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;YACxC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;SAC9C,CAAC;QACF,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;SACxC,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;KACrD,CAAC,CAAC;AACL,CAAC;AAkDD,SAAgB,oBAAoB,CAAC,OAKpC;IACC,MAAM,YAAY,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CACtF,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4C,CAAC;IACtE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACtC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,gBAAgB,EACrC,2FAA2F;YACzF,4FAA4F,CAC/F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,iCAAe,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAClF,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,oBAAoB,EACzC,wBAAwB,OAAO,mDAAmD,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,0CAA+B,EACpC,YAAY,EACZ,IAAA,qCAAkB,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CACzD,CAAC;IACJ,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAA,iCAAe,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAG1B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,IACE,OAAO,CAAC,aAAa,KAAK,GAAG,CAAC,OAAO;oBACrC,OAAO,CAAC,iBAAiB,KAAK,GAAG,CAAC,YAAY;oBAC9C,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EACrC,CAAC;oBACD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,oBAAoB,EACzC,GAAG,SAAS,aAAa,GAAG,OAAO,KAAK,CAAC,SAAS,6BAA6B;wBAC7E,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,OAAO,OAAO,CAAC,SAAS,GAAG,CACnF,CAAC;gBACJ,CAAC;gBACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAA,iCAAe,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpE,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,kBAAkB,EACvC,GAAG,SAAS,2BAA2B,GAAG,iBAAiB;oBACzD,CAAC,OAAO,KAAK,SAAS;wBACpB,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,uBAAuB,GAAG,CAAC,OAAO,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/F,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAA,4BAAiB,EAAC,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC;AAyCM,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,gBAAgB,EACrC,oDAAoD,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAA,yDAA6B,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACvD,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,kBAAkB,EACvC,GAAG,SAAS,qBAAqB,CAClC,CAAC;QACJ,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,kBAAkB,EACvC,cAAc,KAAK,CAAC,SAAS,yCAAyC,CACvE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,qCAAkB,EAC/B,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,MAAM,EACV,OAAO,CAAC,WAAW,CACpB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,iBAAiB,EACtC,2EAA2E;YACzE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACpE,GAAG,CACN,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;IACrD,MAAM,SAAS,GAAG,IAAA,0CAA+B,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,oBAAoB,CAAC;QACjC,YAAY;QACZ,WAAW;QACX,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,KAAK,UAAU,SAAS,CACtB,GAA0B,EAC1B,QAAsC;QAEtC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,QAAQ,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAuB,EAAC,GAAG,CAAC,aAAuB,EAAE;YACxE,0BAA0B,EAAE;gBAC1B,2BAA2B,CAAC,QAAQ,CAAC;gBACrC,GAAG,GAAG,CAAC,0BAA0B;aAClC;YACD,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CACjC,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,CACD;SACtC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAC3C,kCAA0B,CAAC,SAAS,CACrC,CAAC;YACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAC5C,kCAA0B,CAAC,UAAU,CACtC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAqB,EAAC;gBACzC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO;gBACP,QAAQ,EAAE,IAAA,yCAAsB,EAC9B,qBAAqB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,EACtD,SAAS,EACT,KAAK,CAAC,SAAS,CAChB;gBACD,GAAG,CAAC,eAAe;oBACjB,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;oBAC1D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;oBAChC,CAAC,CAAC;wBACE,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC,CAAC,IAAI,CAAC;4BACL,uBAAuB,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAC/C,IAAA,iCAAe,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CACf;yBACzB,CAAC,CACH;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,oBAAoB,EAAE;oBACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,oCAA4B,CAAC,GAAG;wBACrD,CAAC,CAAC,CAAC,yCAA8B,CAAC;wBAClC,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,GAAG,CAAC,oBAAoB;iBAC5B;gBACD,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,GAAG,CAAC,MAAM;aACd,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CACV,MAAM,CAAC,MAAM,CAAC;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM;aACP,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,QAAQ;QACf,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,UAAU,GAAG;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW;QACX,SAAS;QACT,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,GAAG;QACH,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export declare const ORG_FAIRNESS_KEY_MISSING = "ORG_FAIRNESS_KEY_MISSING";
2
2
  export declare const ORG_FAIRNESS_KEY_OVERRIDDEN = "ORG_FAIRNESS_KEY_OVERRIDDEN";
3
+ export declare const XEMA_NEXUS_ORG_HEADER = "xema-org-id";
3
4
  //# sourceMappingURL=fairness-constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fairness-constants.d.ts","sourceRoot":"","sources":["../../src/lib/fairness-constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAOnE,eAAO,MAAM,2BAA2B,gCAAgC,CAAC"}
1
+ {"version":3,"file":"fairness-constants.d.ts","sourceRoot":"","sources":["../../src/lib/fairness-constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAOnE,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AASzE,eAAO,MAAM,qBAAqB,gBAAgB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ORG_FAIRNESS_KEY_OVERRIDDEN = exports.ORG_FAIRNESS_KEY_MISSING = void 0;
3
+ exports.XEMA_NEXUS_ORG_HEADER = exports.ORG_FAIRNESS_KEY_OVERRIDDEN = exports.ORG_FAIRNESS_KEY_MISSING = void 0;
4
4
  exports.ORG_FAIRNESS_KEY_MISSING = 'ORG_FAIRNESS_KEY_MISSING';
5
5
  exports.ORG_FAIRNESS_KEY_OVERRIDDEN = 'ORG_FAIRNESS_KEY_OVERRIDDEN';
6
+ exports.XEMA_NEXUS_ORG_HEADER = 'xema-org-id';
6
7
  //# sourceMappingURL=fairness-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fairness-constants.js","sourceRoot":"","sources":["../../src/lib/fairness-constants.ts"],"names":[],"mappings":";;;AASa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAOtD,QAAA,2BAA2B,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"fairness-constants.js","sourceRoot":"","sources":["../../src/lib/fairness-constants.ts"],"names":[],"mappings":";;;AASa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAOtD,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAS5D,QAAA,qBAAqB,GAAG,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const NEXUS_ENDPOINTS_DEFINE = "__XEMA_NEXUS_ENDPOINTS__";
2
+ export declare const NEXUS_SERVICE_NOT_BOUND = "NEXUS_SERVICE_NOT_BOUND";
3
+ export declare const NEXUS_ENDPOINTS_NOT_DEFINED = "NEXUS_ENDPOINTS_NOT_DEFINED";
4
+ export declare const NEXUS_CALLER_NOT_BOUND = "NEXUS_CALLER_NOT_BOUND";
5
+ export declare const NEXUS_ORG_MISSING = "NEXUS_ORG_MISSING";
6
+ export declare function nexusServiceKey(service: string, version: string): string;
7
+ export declare const NEXUS_OPERATION_TIMED_OUT = "NEXUS_OPERATION_TIMED_OUT";
8
+ //# sourceMappingURL=nexus-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-constants.d.ts","sourceRoot":"","sources":["../../src/lib/nexus-constants.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAOjE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAGjE,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AAGzE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAG/D,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAGrD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAMD,eAAO,MAAM,yBAAyB,8BAA8B,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NEXUS_OPERATION_TIMED_OUT = exports.NEXUS_ORG_MISSING = exports.NEXUS_CALLER_NOT_BOUND = exports.NEXUS_ENDPOINTS_NOT_DEFINED = exports.NEXUS_SERVICE_NOT_BOUND = exports.NEXUS_ENDPOINTS_DEFINE = void 0;
4
+ exports.nexusServiceKey = nexusServiceKey;
5
+ exports.NEXUS_ENDPOINTS_DEFINE = '__XEMA_NEXUS_ENDPOINTS__';
6
+ exports.NEXUS_SERVICE_NOT_BOUND = 'NEXUS_SERVICE_NOT_BOUND';
7
+ exports.NEXUS_ENDPOINTS_NOT_DEFINED = 'NEXUS_ENDPOINTS_NOT_DEFINED';
8
+ exports.NEXUS_CALLER_NOT_BOUND = 'NEXUS_CALLER_NOT_BOUND';
9
+ exports.NEXUS_ORG_MISSING = 'NEXUS_ORG_MISSING';
10
+ function nexusServiceKey(service, version) {
11
+ return `${service}@${version}`;
12
+ }
13
+ exports.NEXUS_OPERATION_TIMED_OUT = 'NEXUS_OPERATION_TIMED_OUT';
14
+ //# sourceMappingURL=nexus-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-constants.js","sourceRoot":"","sources":["../../src/lib/nexus-constants.ts"],"names":[],"mappings":";;;AA8BA,0CAEC;AArBY,QAAA,sBAAsB,GAAG,0BAA0B,CAAC;AAOpD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAGpD,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAG5D,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAGlD,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAGrD,SAAgB,eAAe,CAAC,OAAe,EAAE,OAAe;IAC9D,OAAO,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;AACjC,CAAC;AAMY,QAAA,yBAAyB,GAAG,2BAA2B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { BiomeNexusOperationMode } from '@xemahq/contracts/biome';
2
+ import * as nexus from 'nexus-rpc';
3
+ export { BiomeNexusOperationMode };
4
+ export declare enum NexusOperationScope {
5
+ Org = "org",
6
+ Deployment = "deployment"
7
+ }
8
+ declare const operationTypes: unique symbol;
9
+ export interface XemaNexusOperation<I, O, M extends BiomeNexusOperationMode = BiomeNexusOperationMode> {
10
+ readonly mode: M;
11
+ readonly scope: NexusOperationScope;
12
+ readonly [operationTypes]?: {
13
+ readonly input: I;
14
+ readonly output: O;
15
+ };
16
+ }
17
+ export interface NexusOperationOptions {
18
+ readonly scope: NexusOperationScope;
19
+ }
20
+ export declare function syncOperation<I, O>(options: NexusOperationOptions): XemaNexusOperation<I, O, BiomeNexusOperationMode.Sync>;
21
+ export declare function asyncOperation<I, O>(options: NexusOperationOptions): XemaNexusOperation<I, O, BiomeNexusOperationMode.Async>;
22
+ export type XemaNexusOperationMap = Record<string, XemaNexusOperation<any, any>>;
23
+ export type NexusOperationInputOf<T> = T extends XemaNexusOperation<infer I, any> ? I : never;
24
+ export type NexusOperationOutputOf<T> = T extends XemaNexusOperation<any, infer O> ? O : never;
25
+ export type NexusDefinitionOperations<Ops extends XemaNexusOperationMap> = {
26
+ [K in keyof Ops & string]: nexus.OperationDefinition<NexusOperationInputOf<Ops[K]>, NexusOperationOutputOf<Ops[K]>>;
27
+ };
28
+ export interface XemaNexusContract<Ops extends XemaNexusOperationMap = XemaNexusOperationMap> {
29
+ readonly service: string;
30
+ readonly version: string;
31
+ readonly operations: Readonly<Ops>;
32
+ readonly definition: nexus.ServiceDefinition<NexusDefinitionOperations<Ops>>;
33
+ }
34
+ export declare class NexusContractError extends Error {
35
+ constructor(message: string);
36
+ }
37
+ export declare function nexusWireServiceName(service: string, version: string): string;
38
+ export declare function defineNexusContract<const Ops extends XemaNexusOperationMap>(spec: {
39
+ readonly service: string;
40
+ readonly version: string;
41
+ readonly operations: Ops;
42
+ }): XemaNexusContract<Ops>;
43
+ //# sourceMappingURL=nexus-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-contract.d.ts","sourceRoot":"","sources":["../../src/lib/nexus-contract.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAYnC,oBAAY,mBAAmB;IAC7B,GAAG,QAAQ;IACX,UAAU,eAAe;CAC1B;AAED,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAG5C,MAAM,WAAW,kBAAkB,CACjC,CAAC,EACD,CAAC,EACD,CAAC,SAAS,uBAAuB,GAAG,uBAAuB;IAE3D,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAEpC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;CACvE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAChC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAExD;AAOD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EACjC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAEzD;AAGD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC,MAAM,EACN,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAGzD,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,qBAAqB,IAAI;KACxE,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAClD,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC7B,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B;CACF,CAAC;AAEF,MAAM,WAAW,iBAAiB,CAChC,GAAG,SAAS,qBAAqB,GAAG,qBAAqB;IAGzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAMnC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9E;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7E;AAQD,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,GAAG,SAAS,qBAAqB,EAAE,IAAI,EAAE;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;CAC1B,GAAG,iBAAiB,CAAC,GAAG,CAAC,CA6CzB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NexusContractError = exports.NexusOperationScope = exports.BiomeNexusOperationMode = void 0;
37
+ exports.syncOperation = syncOperation;
38
+ exports.asyncOperation = asyncOperation;
39
+ exports.nexusWireServiceName = nexusWireServiceName;
40
+ exports.defineNexusContract = defineNexusContract;
41
+ const biome_1 = require("@xemahq/contracts/biome");
42
+ Object.defineProperty(exports, "BiomeNexusOperationMode", { enumerable: true, get: function () { return biome_1.BiomeNexusOperationMode; } });
43
+ const workflow_1 = require("@xemahq/contracts/workflow");
44
+ const nexus = __importStar(require("nexus-rpc"));
45
+ var NexusOperationScope;
46
+ (function (NexusOperationScope) {
47
+ NexusOperationScope["Org"] = "org";
48
+ NexusOperationScope["Deployment"] = "deployment";
49
+ })(NexusOperationScope || (exports.NexusOperationScope = NexusOperationScope = {}));
50
+ function syncOperation(options) {
51
+ return Object.freeze({ mode: biome_1.BiomeNexusOperationMode.Sync, scope: options.scope });
52
+ }
53
+ function asyncOperation(options) {
54
+ return Object.freeze({ mode: biome_1.BiomeNexusOperationMode.Async, scope: options.scope });
55
+ }
56
+ class NexusContractError extends Error {
57
+ constructor(message) {
58
+ super(message);
59
+ this.name = 'NexusContractError';
60
+ }
61
+ }
62
+ exports.NexusContractError = NexusContractError;
63
+ function nexusWireServiceName(service, version) {
64
+ return `${service}.${version}`;
65
+ }
66
+ function defineNexusContract(spec) {
67
+ const where = `nexus contract ${spec.service}@${spec.version}`;
68
+ for (const [what, schema, value] of [
69
+ ['service', workflow_1.NexusServiceNameSchema, spec.service],
70
+ ['version', workflow_1.NexusServiceVersionSchema, spec.version],
71
+ ]) {
72
+ const parsed = schema.safeParse(value);
73
+ if (!parsed.success) {
74
+ throw new NexusContractError(`${where}: ${what} ${JSON.stringify(value)} is invalid: ${parsed.error.issues.map((i) => i.message).join('; ')}`);
75
+ }
76
+ }
77
+ const names = Object.keys(spec.operations);
78
+ if (names.length === 0) {
79
+ throw new NexusContractError(`${where}: a contract with no operations states nothing.`);
80
+ }
81
+ const partial = {};
82
+ for (const name of names) {
83
+ if (!workflow_1.NexusOperationNameSchema.safeParse(name).success) {
84
+ throw new NexusContractError(`${where}: operation ${JSON.stringify(name)} must be lower camelCase.`);
85
+ }
86
+ const op = spec.operations[name];
87
+ if (!Object.values(biome_1.BiomeNexusOperationMode).includes(op?.mode) ||
88
+ !Object.values(NexusOperationScope).includes(op?.scope)) {
89
+ throw new NexusContractError(`${where}: operation ${name} must be built with syncOperation() or asyncOperation().`);
90
+ }
91
+ partial[name] = nexus.operation({ name });
92
+ }
93
+ const definition = nexus.service(nexusWireServiceName(spec.service, spec.version), partial);
94
+ return Object.freeze({
95
+ service: spec.service,
96
+ version: spec.version,
97
+ operations: Object.freeze({ ...spec.operations }),
98
+ definition,
99
+ });
100
+ }
101
+ //# sourceMappingURL=nexus-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-contract.js","sourceRoot":"","sources":["../../src/lib/nexus-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type WorkflowHandle, type WorkflowStartOptions as NexusWorkflowStartOptions } from '@temporalio/nexus';
2
+ import * as nexus from 'nexus-rpc';
3
+ import { BiomeNexusOperationMode, NexusOperationScope, type NexusOperationInputOf, type NexusOperationOutputOf, type XemaNexusContract, type XemaNexusOperation, type XemaNexusOperationMap } from './nexus-contract';
4
+ import type { PlatformNexusServiceHandler } from './versioned-worker';
5
+ import type { Priority, Workflow, WorkflowResultType } from '@temporalio/common';
6
+ export type NexusOrgWorkflowStartOptions<T extends Workflow> = Omit<NexusWorkflowStartOptions<T>, 'priority' | 'searchAttributes' | 'typedSearchAttributes'> & {
7
+ readonly priority?: Omit<Priority, 'fairnessKey'>;
8
+ };
9
+ export interface XemaNexusOperationContext<S extends NexusOperationScope = NexusOperationScope> {
10
+ readonly orgId: S extends NexusOperationScope.Org ? string : string | undefined;
11
+ readonly callerNamespace: string;
12
+ readonly nexus: nexus.StartOperationContext;
13
+ startWorkflow<T extends Workflow>(workflowTypeOrFunc: string | T, options: NexusOrgWorkflowStartOptions<T>): Promise<WorkflowHandle<WorkflowResultType<T>>>;
14
+ }
15
+ type ScopeOf<Op> = Op extends XemaNexusOperation<any, any> ? Op['scope'] : never;
16
+ export type XemaNexusOperationImpl<Op> = Op extends XemaNexusOperation<infer I, infer O, BiomeNexusOperationMode.Async> ? (ctx: XemaNexusOperationContext<ScopeOf<Op>>, input: I) => Promise<WorkflowHandle<O>> : Op extends XemaNexusOperation<infer I, infer O, BiomeNexusOperationMode.Sync> ? (ctx: XemaNexusOperationContext<ScopeOf<Op>>, input: I) => Promise<O> : never;
17
+ export type XemaNexusServiceImpl<Ops extends XemaNexusOperationMap> = {
18
+ readonly [K in keyof Ops & string]: XemaNexusOperationImpl<Ops[K]>;
19
+ };
20
+ export interface NexusCallerPolicy {
21
+ readonly allowedCallerNamespaces: ReadonlySet<string>;
22
+ }
23
+ export interface XemaNexusServiceImplementation {
24
+ readonly service: string;
25
+ readonly version: string;
26
+ readonly operations: ReadonlyMap<string, BiomeNexusOperationMode>;
27
+ bind(policy: NexusCallerPolicy): PlatformNexusServiceHandler;
28
+ }
29
+ export declare function callerNamespaceOf(links: readonly nexus.Link[]): string | undefined;
30
+ export declare function nexusHandlerFor<Ops extends XemaNexusOperationMap>(contract: XemaNexusContract<Ops>, impl: XemaNexusServiceImpl<Ops>): XemaNexusServiceImplementation;
31
+ export type { NexusOperationInputOf, NexusOperationOutputOf };
32
+ //# sourceMappingURL=nexus-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-handler.d.ts","sourceRoot":"","sources":["../../src/lib/nexus-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.callerNamespaceOf = callerNamespaceOf;
37
+ exports.nexusHandlerFor = nexusHandlerFor;
38
+ const nexus_1 = require("@temporalio/nexus");
39
+ const nexus = __importStar(require("nexus-rpc"));
40
+ const fairness_1 = require("./fairness");
41
+ const fairness_constants_1 = require("./fairness-constants");
42
+ const nexus_constants_1 = require("./nexus-constants");
43
+ const nexus_contract_1 = require("./nexus-contract");
44
+ const search_attribute_constants_1 = require("./search-attribute-constants");
45
+ const WORKFLOW_EVENT_LINK_TYPE = 'temporal.api.common.v1.Link.WorkflowEvent';
46
+ const WORKFLOW_EVENT_LINK_PATH = /^\/namespaces\/([^/]+)\/workflows\//;
47
+ function refuse(code, message) {
48
+ return new nexus.HandlerError(code === nexus_constants_1.NEXUS_CALLER_NOT_BOUND ? 'UNAUTHORIZED' : 'BAD_REQUEST', `[${code}] ${message}`, { retryableOverride: false });
49
+ }
50
+ function callerNamespaceOf(links) {
51
+ for (const link of links) {
52
+ if (link.type !== WORKFLOW_EVENT_LINK_TYPE || link.url.protocol !== 'temporal:') {
53
+ continue;
54
+ }
55
+ const match = WORKFLOW_EVENT_LINK_PATH.exec(link.url.pathname);
56
+ if (match?.[1] !== undefined) {
57
+ return decodeURIComponent(match[1]);
58
+ }
59
+ }
60
+ return undefined;
61
+ }
62
+ function headerValue(headers, name) {
63
+ for (const [key, value] of Object.entries(headers)) {
64
+ if (key.toLowerCase() === name)
65
+ return value;
66
+ }
67
+ return undefined;
68
+ }
69
+ function admit(where, op, policy, ctx) {
70
+ const callerNamespace = callerNamespaceOf(ctx.inboundLinks);
71
+ if (callerNamespace === undefined) {
72
+ throw refuse(nexus_constants_1.NEXUS_CALLER_NOT_BOUND, `${where}: the request carries no calling-workflow link, so its caller cannot be verified.`);
73
+ }
74
+ if (!policy.allowedCallerNamespaces.has(callerNamespace)) {
75
+ throw refuse(nexus_constants_1.NEXUS_CALLER_NOT_BOUND, `${where}: namespace ${callerNamespace} is not bound to this service by the distribution lock.`);
76
+ }
77
+ const rawOrg = headerValue(ctx.headers, fairness_constants_1.XEMA_NEXUS_ORG_HEADER);
78
+ let orgId;
79
+ if (rawOrg !== undefined && rawOrg.length > 0) {
80
+ try {
81
+ orgId = (0, fairness_1.orgFairnessKey)(rawOrg);
82
+ }
83
+ catch (error) {
84
+ throw refuse(nexus_constants_1.NEXUS_ORG_MISSING, `${where}: ${error.message}`);
85
+ }
86
+ }
87
+ if (op.scope === nexus_contract_1.NexusOperationScope.Org && orgId === undefined) {
88
+ throw refuse(nexus_constants_1.NEXUS_ORG_MISSING, `${where} is org-scoped and the request names no org (${fairness_constants_1.XEMA_NEXUS_ORG_HEADER}). ` +
89
+ 'Call it from a run started with startWorkflowForOrg.');
90
+ }
91
+ return {
92
+ orgId,
93
+ callerNamespace,
94
+ nexus: ctx,
95
+ startWorkflow(workflowTypeOrFunc, options) {
96
+ const supplied = options.priority;
97
+ if (supplied?.fairnessKey !== undefined) {
98
+ throw new Error(`${where}: priority.fairnessKey is derived from the caller's org and may not be supplied.`);
99
+ }
100
+ return (0, nexus_1.startWorkflow)(ctx, workflowTypeOrFunc, {
101
+ ...options,
102
+ ...(orgId !== undefined
103
+ ? {
104
+ priority: { ...supplied, fairnessKey: orgId },
105
+ searchAttributes: { [search_attribute_constants_1.SEARCH_ATTR_ORG_ID]: [orgId] },
106
+ }
107
+ : {}),
108
+ });
109
+ },
110
+ };
111
+ }
112
+ function nexusHandlerFor(contract, impl) {
113
+ const names = Object.keys(contract.operations);
114
+ const implemented = Object.keys(impl);
115
+ const missing = names.filter((n) => typeof impl[n] !== 'function');
116
+ const extra = implemented.filter((n) => !names.includes(n));
117
+ if (missing.length > 0 || extra.length > 0) {
118
+ throw new Error(`nexusHandlerFor(${contract.service}@${contract.version}): implementations must match the contract` +
119
+ (missing.length > 0 ? `; missing: ${missing.join(', ')}` : '') +
120
+ (extra.length > 0 ? `; not in the contract: ${extra.join(', ')}` : '') +
121
+ '.');
122
+ }
123
+ const operations = new Map(names.map((n) => [n, contract.operations[n].mode]));
124
+ function bind(policy) {
125
+ const handlers = {};
126
+ for (const name of names) {
127
+ const op = contract.operations[name];
128
+ const where = `${contract.service}@${contract.version}.${name}`;
129
+ const run = impl[name];
130
+ handlers[name] =
131
+ op.mode === nexus_contract_1.BiomeNexusOperationMode.Async
132
+ ? new nexus_1.WorkflowRunOperationHandler((ctx, input) => run(admit(where, op, policy, ctx), input))
133
+ : (ctx, input) => run(admit(where, op, policy, ctx), input);
134
+ }
135
+ return nexus.serviceHandler(contract.definition, handlers);
136
+ }
137
+ return Object.freeze({
138
+ service: contract.service,
139
+ version: contract.version,
140
+ operations,
141
+ bind,
142
+ });
143
+ }
144
+ //# sourceMappingURL=nexus-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-handler.js","sourceRoot":"","sources":["../../src/lib/nexus-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ApplicationFailure, type TimeoutType } from '@temporalio/common';
2
+ import { type StartNexusOperationOptions } from '@temporalio/workflow';
3
+ import type { NexusOperationInputOf, NexusOperationOutputOf, XemaNexusContract, XemaNexusOperationMap } from './nexus-contract';
4
+ export declare class NexusOperationTimedOut extends ApplicationFailure {
5
+ readonly service: string;
6
+ readonly version: string;
7
+ readonly operation: string;
8
+ readonly timeoutType: TimeoutType;
9
+ constructor(service: string, version: string, operation: string, timeoutType: TimeoutType, cause: Error);
10
+ }
11
+ export type XemaNexusCallOptions = Partial<StartNexusOperationOptions>;
12
+ export interface XemaNexusOperationHandle<O> {
13
+ readonly operation: string;
14
+ readonly token: string | undefined;
15
+ result(): Promise<O>;
16
+ }
17
+ export interface XemaNexusClient<Ops extends XemaNexusOperationMap> {
18
+ executeOperation<K extends keyof Ops & string>(operation: K, input: NexusOperationInputOf<Ops[K]>, options?: XemaNexusCallOptions): Promise<NexusOperationOutputOf<Ops[K]>>;
19
+ startOperation<K extends keyof Ops & string>(operation: K, input: NexusOperationInputOf<Ops[K]>, options?: XemaNexusCallOptions): Promise<XemaNexusOperationHandle<NexusOperationOutputOf<Ops[K]>>>;
20
+ }
21
+ export declare function nexusClientFor<Ops extends XemaNexusOperationMap>(contract: XemaNexusContract<Ops>): XemaNexusClient<Ops>;
22
+ //# sourceMappingURL=nexus-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-workflow.d.ts","sourceRoot":"","sources":["../../src/lib/nexus-workflow.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAGlB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAS9B,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAU1B,qBAAa,sBAAuB,SAAQ,kBAAkB;IAE1D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW;gBAHxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACjC,KAAK,EAAE,KAAK;CAYf;AAGD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAEvE,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACtB;AAGD,MAAM,WAAW,eAAe,CAAC,GAAG,SAAS,qBAAqB;IAChE,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,EAC3C,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,EACzC,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE;AAsCD,wBAAgB,cAAc,CAAC,GAAG,SAAS,qBAAqB,EAC9D,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC/B,eAAe,CAAC,GAAG,CAAC,CA4DtB"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NexusOperationTimedOut = void 0;
4
+ exports.nexusClientFor = nexusClientFor;
5
+ const common_1 = require("@temporalio/common");
6
+ const workflow_1 = require("@temporalio/workflow");
7
+ const nexus_constants_1 = require("./nexus-constants");
8
+ class NexusOperationTimedOut extends common_1.ApplicationFailure {
9
+ service;
10
+ version;
11
+ operation;
12
+ timeoutType;
13
+ constructor(service, version, operation, timeoutType, cause) {
14
+ super(`Nexus operation ${service}@${version}.${operation} timed out (${String(timeoutType)}).`, nexus_constants_1.NEXUS_OPERATION_TIMED_OUT, true, undefined, cause);
15
+ this.service = service;
16
+ this.version = version;
17
+ this.operation = operation;
18
+ this.timeoutType = timeoutType;
19
+ }
20
+ }
21
+ exports.NexusOperationTimedOut = NexusOperationTimedOut;
22
+ function timeoutOf(error) {
23
+ if (!(error instanceof common_1.NexusOperationFailure))
24
+ return undefined;
25
+ let cause = error.cause;
26
+ while (cause instanceof Error) {
27
+ if (cause instanceof common_1.TimeoutFailure)
28
+ return cause;
29
+ cause = cause.cause;
30
+ }
31
+ return undefined;
32
+ }
33
+ function boundEndpoints() {
34
+ return typeof __XEMA_NEXUS_ENDPOINTS__ === 'undefined'
35
+ ? undefined
36
+ : __XEMA_NEXUS_ENDPOINTS__;
37
+ }
38
+ function nexusClientFor(contract) {
39
+ const endpoints = boundEndpoints();
40
+ const key = (0, nexus_constants_1.nexusServiceKey)(contract.service, contract.version);
41
+ if (endpoints === undefined) {
42
+ throw common_1.ApplicationFailure.nonRetryable(`nexusClientFor(${key}): this workflow bundle carries no Nexus endpoints; ` +
43
+ 'it was not built by composeBiomeWorkers, which resolves them from the lock.', nexus_constants_1.NEXUS_ENDPOINTS_NOT_DEFINED);
44
+ }
45
+ const endpoint = endpoints[key];
46
+ if (endpoint === undefined) {
47
+ throw common_1.ApplicationFailure.nonRetryable(`nexusClientFor(${key}): this component's manifest does not require ${key}, ` +
48
+ 'or requires it optionally and no biome in this edition provides it. ' +
49
+ `Bound: ${Object.keys(endpoints).sort().join(', ') || 'none'}.`, nexus_constants_1.NEXUS_SERVICE_NOT_BOUND);
50
+ }
51
+ const client = (0, workflow_1.createNexusServiceClient)({ endpoint, service: contract.definition });
52
+ const typed = (operation, pending) => pending.catch((error) => {
53
+ const timeout = timeoutOf(error);
54
+ throw timeout === undefined
55
+ ? error
56
+ : new NexusOperationTimedOut(contract.service, contract.version, operation, timeout.timeoutType, error);
57
+ });
58
+ const raw = client;
59
+ async function startOperation(operation, input, options) {
60
+ const handle = await typed(operation, raw.startOperation(operation, input, options));
61
+ return {
62
+ operation,
63
+ token: handle.token,
64
+ result: () => typed(operation, handle.result()),
65
+ };
66
+ }
67
+ return {
68
+ startOperation,
69
+ async executeOperation(operation, input, options) {
70
+ return (await startOperation(operation, input, options)).result();
71
+ },
72
+ };
73
+ }
74
+ //# sourceMappingURL=nexus-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-workflow.js","sourceRoot":"","sources":["../../src/lib/nexus-workflow.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { PayloadCodec } from '@temporalio/common';
5
5
  export type { PlatformNexusServiceHandler, PlatformWorkerSinks, PlatformWorkerTuning, } from './versioned-worker';
6
6
  export interface BundlePlatformWorkflowsOptions {
7
7
  readonly workflowInterceptorModules?: readonly string[];
8
+ readonly nexusEndpoints?: Readonly<Record<string, string>>;
8
9
  }
9
10
  export declare function bundlePlatformWorkflows(workflowsPath: string, options?: BundlePlatformWorkflowsOptions): Promise<WorkflowBundle>;
10
11
  export declare function assertWorkflowsBundle(workflowsPath: string, options?: BundlePlatformWorkflowsOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/lib/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAa5B,MAAM,WAAW,8BAA8B;IAM7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzD;AAaD,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,cAAc,CAAC,CAsBzB;AAQD,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IAEjE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAO5B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAK1C,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAKrC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAEvE,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAYD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CASjB"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/lib/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAa5B,MAAM,WAAW,8BAA8B;IAM7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAOxD,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D;AA6CD,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAQD,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IAEjE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAO5B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAK1C,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAKrC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAEvE,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAYD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CASjB"}
@@ -7,14 +7,36 @@ const node_path_1 = require("node:path");
7
7
  const worker_1 = require("@temporalio/worker");
8
8
  const versioned_worker_1 = require("./versioned-worker");
9
9
  const workflow_purity_1 = require("./workflow-purity");
10
+ const nexus_constants_1 = require("./nexus-constants");
10
11
  const ORG_SEARCH_ATTRIBUTE_INTERCEPTOR_MODULE = (0, node_path_1.join)(__dirname, 'workflow-interceptors', 'org-search-attribute');
12
+ function defineNexusEndpoints(endpoints) {
13
+ const value = JSON.stringify(endpoints);
14
+ return (config) => ({
15
+ ...config,
16
+ plugins: [
17
+ ...(config.plugins ?? []),
18
+ {
19
+ apply(compiler) {
20
+ new compiler.webpack.DefinePlugin({
21
+ [nexus_constants_1.NEXUS_ENDPOINTS_DEFINE]: value,
22
+ }).apply(compiler);
23
+ },
24
+ },
25
+ ],
26
+ });
27
+ }
11
28
  async function bundlePlatformWorkflows(workflowsPath, options) {
12
29
  const violations = [];
13
30
  let bundle;
14
31
  try {
15
32
  bundle = await (0, worker_1.bundleWorkflowCode)({
16
33
  workflowsPath,
17
- webpackConfigHook: (0, workflow_purity_1.workflowPurityWebpackHook)(violations),
34
+ webpackConfigHook: (config) => {
35
+ const pure = (0, workflow_purity_1.workflowPurityWebpackHook)(violations)(config);
36
+ return options?.nexusEndpoints !== undefined
37
+ ? defineNexusEndpoints(options.nexusEndpoints)(pure)
38
+ : pure;
39
+ },
18
40
  workflowInterceptorModules: [
19
41
  ORG_SEARCH_ATTRIBUTE_INTERCEPTOR_MODULE,
20
42
  ...(options?.workflowInterceptorModules ?? []),
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/lib/worker.ts"],"names":[],"mappings":";;AA+DA,0DAyBC;AAQD,sDAKC;AA6CD,oDAWC;AA7JD,yCAAiC;AAEjC,+CAM4B;AAE5B,yDAK4B;AAE5B,uDAI2B;AAgB3B,MAAM,uCAAuC,GAAG,IAAA,gBAAI,EAClD,SAAS,EACT,uBAAuB,EACvB,sBAAsB,CACvB,CAAC;AAsBK,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,OAAwC;IAExC,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAA,2BAAkB,EAAC;YAChC,aAAa;YACb,iBAAiB,EAAE,IAAA,2CAAyB,EAAC,UAAU,CAAC;YACxD,0BAA0B,EAAE;gBAC1B,uCAAuC;gBACvC,GAAG,CAAC,OAAO,EAAE,0BAA0B,IAAI,EAAE,CAAC;aAC/C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,qCAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,qCAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQM,KAAK,UAAU,qBAAqB,CACzC,aAAqB,EACrB,OAAwC;IAExC,MAAM,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AA6CM,KAAK,UAAU,oBAAoB,CACxC,OAA8B;IAE9B,OAAO,IAAA,wCAAqB,EAAC;QAC3B,GAAG,OAAO;QACV,QAAQ,EAAE,IAAA,yCAAsB,EAC9B,sBAAsB,EACtB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/lib/worker.ts"],"names":[],"mappings":";;AAwGA,0DA8BC;AAQD,sDAKC;AA6CD,oDAWC;AA3MD,yCAAiC;AAEjC,+CAM4B;AAE5B,yDAK4B;AAE5B,uDAI2B;AAE3B,uDAA2D;AAgB3D,MAAM,uCAAuC,GAAG,IAAA,gBAAI,EAClD,SAAS,EACT,uBAAuB,EACvB,sBAAsB,CACvB,CAAC;AA+BF,SAAS,oBAAoB,CAC3B,SAA2C;IAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG,MAAM;QACT,OAAO,EAAE;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACzB;gBACE,KAAK,CAAC,QAAwB;oBAC5B,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;wBAChC,CAAC,wCAAsB,CAAC,EAAE,KAAK;qBAChC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACrB,CAAC;aACgE;SACpE;KACF,CAAC,CAAC;AACL,CAAC;AAaM,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,OAAwC;IAExC,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAA,2BAAkB,EAAC;YAChC,aAAa;YACb,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,IAAA,2CAAyB,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3D,OAAO,OAAO,EAAE,cAAc,KAAK,SAAS;oBAC1C,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC;oBACpD,CAAC,CAAC,IAAI,CAAC;YACX,CAAC;YACD,0BAA0B,EAAE;gBAC1B,uCAAuC;gBACvC,GAAG,CAAC,OAAO,EAAE,0BAA0B,IAAI,EAAE,CAAC;aAC/C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,qCAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,qCAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQM,KAAK,UAAU,qBAAqB,CACzC,aAAqB,EACrB,OAAwC;IAExC,MAAM,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AA6CM,KAAK,UAAU,oBAAoB,CACxC,OAA8B;IAE9B,OAAO,IAAA,wCAAqB,EAAC;QAC3B,GAAG,OAAO;QACV,QAAQ,EAAE,IAAA,yCAAsB,EAC9B,sBAAsB,EACtB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fairness-guard.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow-interceptors/fairness-guard.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAmG9B,wBAAgB,+BAA+B,IAAI,oBAAoB,CAEtE;AAGD,wBAAgB,+BAA+B,IAAI,oBAAoB,CAKtE"}
1
+ {"version":3,"file":"fairness-guard.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow-interceptors/fairness-guard.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AA+H9B,wBAAgB,+BAA+B,IAAI,oBAAoB,CAEtE;AAGD,wBAAgB,+BAA+B,IAAI,oBAAoB,CAKtE"}
@@ -42,6 +42,20 @@ class FairnessPropagationOutbound {
42
42
  },
43
43
  });
44
44
  }
45
+ async startNexusOperation(input, next) {
46
+ const requested = Object.entries(input.headers ?? {}).find(([name]) => name.toLowerCase() === fairness_constants_1.XEMA_NEXUS_ORG_HEADER)?.[1];
47
+ const key = propagatedKey(requested, `Nexus operation ${input.service}/${input.operation}`);
48
+ if (key === undefined) {
49
+ return next(input);
50
+ }
51
+ const headers = {};
52
+ for (const [name, value] of Object.entries(input.headers ?? {})) {
53
+ if (name.toLowerCase() !== fairness_constants_1.XEMA_NEXUS_ORG_HEADER)
54
+ headers[name] = value;
55
+ }
56
+ headers[fairness_constants_1.XEMA_NEXUS_ORG_HEADER] = key;
57
+ return next({ ...input, headers });
58
+ }
45
59
  }
46
60
  class OrgFairnessRequiredInbound {
47
61
  async execute(input, next) {
@@ -1 +1 @@
1
- {"version":3,"file":"fairness-guard.js","sourceRoot":"","sources":["../../../src/lib/workflow-interceptors/fairness-guard.ts"],"names":[],"mappings":";;AAgHA,0EAEC;AAGD,0EAKC;AAtHD,mDAS8B;AAE9B,8DAG+B;AAE/B,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,IAAA,uBAAY,GAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;IACjD,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,CAAC;AASD,SAAS,aAAa,CACpB,SAA6B,EAC7B,IAAY;IAEZ,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACzE,MAAM,6BAAkB,CAAC,YAAY,CACnC,GAAG,IAAI,qCAAqC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ;YAC3E,qBAAqB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,2BAA2B;YACzE,8CAA8C,EAChD,gDAA2B,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,2BAA2B;IAC/B,KAAK,CAAC,gBAAgB,CACpB,KAAoB,EACpB,IAAgE;QAEhE,MAAM,GAAG,GAAG,aAAa,CACvB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EACnC,YAAY,KAAK,CAAC,YAAY,EAAE,CACjC,CAAC;QACF,OAAO,IAAI,CACT,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,KAAK;YACP,CAAC,CAAC;gBACE,GAAG,KAAK;gBACR,OAAO,EAAE;oBACP,GAAG,KAAK,CAAC,OAAO;oBAChB,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE;iBAC1D;aACF,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,KAAuC,EACvC,IAA2E;QAE3E,MAAM,GAAG,GAAG,aAAa,CACvB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EACnC,kBAAkB,KAAK,CAAC,YAAY,EAAE,CACvC,CAAC;QACF,OAAO,IAAI,CACT,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,KAAK;YACP,CAAC,CAAC;gBACE,GAAG,KAAK;gBACR,OAAO,EAAE;oBACP,GAAG,KAAK,CAAC,OAAO;oBAChB,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE;iBAC1D;aACF,CACN,CAAC;IACJ,CAAC;CACF;AAED,MAAM,0BAA0B;IAC9B,KAAK,CAAC,OAAO,CACX,KAEI,EACJ,IAAsD;QAEtD,IAAI,cAAc,EAAE,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAA,uBAAY,GAAE,CAAC;YAC5B,MAAM,6BAAkB,CAAC,YAAY,CACnC,YAAY,IAAI,CAAC,YAAY,kCAAkC;gBAC7D,GAAG,IAAI,CAAC,SAAS,2DAA2D,EAC9E,6CAAwB,CACzB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CACF;AAGD,SAAgB,+BAA+B;IAC7C,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,2BAA2B,EAAE,CAAC,EAAE,CAAC;AAC3D,CAAC;AAGD,SAAgB,+BAA+B;IAC7C,OAAO;QACL,OAAO,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC3C,QAAQ,EAAE,CAAC,IAAI,2BAA2B,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fairness-guard.js","sourceRoot":"","sources":["../../../src/lib/workflow-interceptors/fairness-guard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/temporal-runtime",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Temporal workers and clients for Xema — connection management, on-behalf-of auth interceptors, schedules, and search attributes.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
@@ -28,7 +28,7 @@
28
28
  "@temporalio/activity": "^1.24.0",
29
29
  "@types/jest": "^30.0.0",
30
30
  "@types/node": "25.2.3",
31
- "@xemahq/contracts": "^0.54.0",
31
+ "@xemahq/contracts": "^0.55.0",
32
32
  "@xemahq/identity-client": "^0.14.0",
33
33
  "jest": "^30.3.0",
34
34
  "prettier": "3.6.2",
@@ -41,14 +41,16 @@
41
41
  "@nestjs/common": "^11.0.0",
42
42
  "reflect-metadata": "^0.2",
43
43
  "@xemahq/identity-client": ">=0.9.0",
44
- "@xemahq/contracts": ">=0.52.0"
44
+ "@xemahq/contracts": ">=0.55.0"
45
45
  },
46
46
  "dependencies": {
47
47
  "@temporalio/client": "^1.24.0",
48
48
  "@temporalio/common": "^1.24.0",
49
+ "@temporalio/nexus": "^1.24.0",
49
50
  "@temporalio/proto": "^1.24.0",
50
51
  "@temporalio/worker": "^1.24.0",
51
- "@temporalio/workflow": "^1.24.0"
52
+ "@temporalio/workflow": "^1.24.0",
53
+ "nexus-rpc": "0.0.3"
52
54
  },
53
55
  "exports": {
54
56
  ".": {
@@ -56,6 +58,16 @@
56
58
  "xema-source": "./src/index.ts",
57
59
  "default": "./dist/index.js"
58
60
  },
61
+ "./nexus-contract": {
62
+ "types": "./dist/lib/nexus-contract.d.ts",
63
+ "xema-source": "./src/lib/nexus-contract.ts",
64
+ "default": "./dist/lib/nexus-contract.js"
65
+ },
66
+ "./nexus-workflow": {
67
+ "types": "./dist/lib/nexus-workflow.d.ts",
68
+ "xema-source": "./src/lib/nexus-workflow.ts",
69
+ "default": "./dist/lib/nexus-workflow.js"
70
+ },
59
71
  "./dist/lib/*": {
60
72
  "types": "./dist/lib/*.d.ts",
61
73
  "default": "./dist/lib/*.js"