@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.
- package/README.md +50 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/biome-worker.d.ts +33 -9
- package/dist/lib/biome-worker.d.ts.map +1 -1
- package/dist/lib/biome-worker.js +102 -7
- package/dist/lib/biome-worker.js.map +1 -1
- package/dist/lib/fairness-constants.d.ts +1 -0
- package/dist/lib/fairness-constants.d.ts.map +1 -1
- package/dist/lib/fairness-constants.js +2 -1
- package/dist/lib/fairness-constants.js.map +1 -1
- package/dist/lib/nexus-constants.d.ts +8 -0
- package/dist/lib/nexus-constants.d.ts.map +1 -0
- package/dist/lib/nexus-constants.js +14 -0
- package/dist/lib/nexus-constants.js.map +1 -0
- package/dist/lib/nexus-contract.d.ts +43 -0
- package/dist/lib/nexus-contract.d.ts.map +1 -0
- package/dist/lib/nexus-contract.js +101 -0
- package/dist/lib/nexus-contract.js.map +1 -0
- package/dist/lib/nexus-handler.d.ts +32 -0
- package/dist/lib/nexus-handler.d.ts.map +1 -0
- package/dist/lib/nexus-handler.js +144 -0
- package/dist/lib/nexus-handler.js.map +1 -0
- package/dist/lib/nexus-workflow.d.ts +22 -0
- package/dist/lib/nexus-workflow.d.ts.map +1 -0
- package/dist/lib/nexus-workflow.js +74 -0
- package/dist/lib/nexus-workflow.js.map +1 -0
- package/dist/lib/worker.d.ts +1 -0
- package/dist/lib/worker.d.ts.map +1 -1
- package/dist/lib/worker.js +23 -1
- package/dist/lib/worker.js.map +1 -1
- package/dist/lib/workflow-interceptors/fairness-guard.d.ts.map +1 -1
- package/dist/lib/workflow-interceptors/fairness-guard.js +14 -0
- package/dist/lib/workflow-interceptors/fairness-guard.js.map +1 -1
- 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.
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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":"
|
|
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
|
|
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
|
|
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
|
|
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":"AAEA,OAAO,EAGL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"biome-worker.d.ts","sourceRoot":"","sources":["../../src/lib/biome-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/biome-worker.js
CHANGED
|
@@ -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 =
|
|
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) =>
|
|
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(
|
|
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
|
-
? {
|
|
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":"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"}
|
|
@@ -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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"}
|
package/dist/lib/worker.d.ts
CHANGED
|
@@ -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>;
|
package/dist/lib/worker.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/lib/worker.js
CHANGED
|
@@ -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: (
|
|
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 ?? []),
|
package/dist/lib/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/lib/worker.ts"],"names":[],"mappings":";;
|
|
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,
|
|
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":";;
|
|
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.
|
|
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.
|
|
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.
|
|
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"
|