openxiangda-nest 2.0.0-alpha.49 → 2.0.0-alpha.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +14 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/data-api.d.ts +13 -0
- package/dist/data-api.d.ts.map +1 -1
- package/dist/data-api.js +32 -0
- package/dist/data-api.js.map +1 -1
- package/dist/event-context.d.ts +15 -0
- package/dist/event-context.d.ts.map +1 -0
- package/dist/event-context.js +33 -0
- package/dist/event-context.js.map +1 -0
- package/dist/event-handler.d.ts +36 -0
- package/dist/event-handler.d.ts.map +1 -0
- package/dist/event-handler.js +172 -0
- package/dist/event-handler.js.map +1 -0
- package/dist/events.d.ts +18 -8
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +160 -21
- package/dist/events.js.map +1 -1
- package/dist/gateway-transport.js +1 -1
- package/dist/gateway-transport.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +11 -0
- package/dist/module.js.map +1 -1
- package/dist/platform-client.d.ts +3 -1
- package/dist/platform-client.d.ts.map +1 -1
- package/dist/platform-client.js +17 -3
- package/dist/platform-client.js.map +1 -1
- package/dist/types.d.ts +12 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,sCAAsC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,sCAAsC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAyBD;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EACzB,OAAO,GAAE,sCAA2C,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAgBjC"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { NestFactory } from '@nestjs/core';
|
|
2
2
|
import { FastifyAdapter, } from '@nestjs/platform-fastify';
|
|
3
|
+
const STRUCTURED_CLOUD_EVENT_CONTENT_TYPE = 'application/cloudevents+json';
|
|
4
|
+
const STRUCTURED_CLOUD_EVENT_BODY_LIMIT = 65_536;
|
|
5
|
+
class OpenXiangdaFastifyAdapter extends FastifyAdapter {
|
|
6
|
+
registerParserMiddleware(prefix, rawBody) {
|
|
7
|
+
super.registerParserMiddleware(prefix, rawBody);
|
|
8
|
+
const fastify = this.getInstance();
|
|
9
|
+
const { onProtoPoisoning, onConstructorPoisoning } = fastify.initialConfig;
|
|
10
|
+
const jsonParser = fastify.getDefaultJsonParser(onProtoPoisoning ?? 'error', onConstructorPoisoning ?? 'error');
|
|
11
|
+
this.useBodyParser(STRUCTURED_CLOUD_EVENT_CONTENT_TYPE, rawBody === true, { bodyLimit: STRUCTURED_CLOUD_EVENT_BODY_LIMIT }, (request, body, done) => jsonParser(request, body.toString('utf8'), done));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
3
14
|
/**
|
|
4
15
|
* Starts the canonical OpenXiangda 2.0 NestJS runtime.
|
|
5
16
|
*
|
|
@@ -7,7 +18,9 @@ import { FastifyAdapter, } from '@nestjs/platform-fastify';
|
|
|
7
18
|
* must not reproduce the NestFactory/Fastify setup themselves.
|
|
8
19
|
*/
|
|
9
20
|
export async function bootstrapOpenXiangdaApplication(rootModule, options = {}) {
|
|
10
|
-
const app = await NestFactory.create(rootModule, new
|
|
21
|
+
const app = await NestFactory.create(rootModule, new OpenXiangdaFastifyAdapter({
|
|
22
|
+
trustProxy: options.trustProxy ?? true,
|
|
23
|
+
}), { rawBody: true });
|
|
11
24
|
app.enableShutdownHooks();
|
|
12
25
|
const production = process.env.NODE_ENV === 'production';
|
|
13
26
|
const port = options.port ??
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAQlC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAyB,EACzB,UAAkD,EAAE;IAEpD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,UAAU,EACV,IAAI,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAQlC,MAAM,mCAAmC,GAAG,8BAA8B,CAAC;AAC3E,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAEjD,MAAM,yBAA0B,SAAQ,cAAc;IAC3C,wBAAwB,CAAC,MAAe,EAAE,OAAiB;QAClE,KAAK,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAC7C,gBAAgB,IAAI,OAAO,EAC3B,sBAAsB,IAAI,OAAO,CAClC,CAAC;QACF,IAAI,CAAC,aAAa,CAChB,mCAAmC,EACnC,OAAO,KAAK,IAAI,EAChB,EAAE,SAAS,EAAE,iCAAiC,EAAE,EAChD,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACtB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CACnD,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAyB,EACzB,UAAkD,EAAE;IAEpD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,UAAU,EACV,IAAI,yBAAyB,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;KACvC,CAAC,EACF,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IACF,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IACzD,MAAM,IAAI,GACR,OAAO,CAAC,IAAI;QACZ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/data-api.d.ts
CHANGED
|
@@ -2,6 +2,17 @@ import type { DataPage, DataAggregatePage, DataAggregateQuery, DataAuditPage, Da
|
|
|
2
2
|
import { OpenXiangdaApplicationCredentials } from './application-credentials.js';
|
|
3
3
|
import { OpenXiangdaPlatformClient } from './platform-client.js';
|
|
4
4
|
import type { OpenXiangdaHttpRequest } from './types.js';
|
|
5
|
+
export interface OpenXiangdaDomainEventEmitInput {
|
|
6
|
+
idempotencyKey: string;
|
|
7
|
+
eventType: string;
|
|
8
|
+
subject?: string;
|
|
9
|
+
data: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface OpenXiangdaDomainEventEmitResult {
|
|
12
|
+
eventId: string;
|
|
13
|
+
eventType: string;
|
|
14
|
+
replayed: boolean;
|
|
15
|
+
}
|
|
5
16
|
export declare class OpenXiangdaDataApiService {
|
|
6
17
|
private readonly request;
|
|
7
18
|
private readonly platform;
|
|
@@ -28,6 +39,7 @@ export declare class OpenXiangdaDataApiService {
|
|
|
28
39
|
}): Promise<DataRecord<T>>;
|
|
29
40
|
delete<T extends Record<string, unknown>>(resourceCode: string, id: string, expectedRevision: number): Promise<DataRecord<T>>;
|
|
30
41
|
transaction(transaction: DataTransactionRequest): Promise<DataTransactionResult>;
|
|
42
|
+
emitEvent(input: OpenXiangdaDomainEventEmitInput): Promise<OpenXiangdaDomainEventEmitResult>;
|
|
31
43
|
private context;
|
|
32
44
|
}
|
|
33
45
|
/** Data API facade for Worker/Scheduler and other work without an HTTP request. */
|
|
@@ -57,5 +69,6 @@ export declare class OpenXiangdaApplicationDataApiService {
|
|
|
57
69
|
}): Promise<DataRecord<T>>;
|
|
58
70
|
delete<T extends Record<string, unknown>>(resourceCode: string, id: string, expectedRevision: number): Promise<DataRecord<T>>;
|
|
59
71
|
transaction(transaction: DataTransactionRequest): Promise<DataTransactionResult>;
|
|
72
|
+
emitEvent(input: OpenXiangdaDomainEventEmitInput): Promise<OpenXiangdaDomainEventEmitResult>;
|
|
60
73
|
}
|
|
61
74
|
//# sourceMappingURL=data-api.d.ts.map
|
package/dist/data-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api.d.ts","sourceRoot":"","sources":["../src/data-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"data-api.d.ts","sourceRoot":"","sources":["../src/data-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA+BD,qBACa,yBAAyB;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAEzC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFS,OAAO,EAAE,sBAAsB,EAEhD,QAAQ,EAAE,yBAAyB;IAGhD,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAUjB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAUnB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAU1B,KAAK,CACT,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,KAAK,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,aAAa,CAAC;IAWnB,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,kBAAkB,CAAC;IAUxB,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAUjB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAUnB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACjE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAWnB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAWnB,WAAW,CACf,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,qBAAqB,CAAC;IAS3B,SAAS,CACb,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC;IAI5C,OAAO,CAAC,OAAO;CAMhB;AAED,mFAAmF;AACnF,qBACa,oCAAoC;IAG7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,QAAQ,EAAE,yBAAyB,EAEnC,WAAW,EAAE,iCAAiC;IAG3D,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAMjB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAMnB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAM1B,KAAK,CACT,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,KAAK,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,aAAa,CAAC;IAMnB,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,kBAAkB,CAAC;IAWxB,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAWjB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAMnB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACjE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAMnB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAYnB,WAAW,CACf,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,qBAAqB,CAAC;IAM3B,SAAS,CACb,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC;CAG7C"}
|
package/dist/data-api.js
CHANGED
|
@@ -12,8 +12,34 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { Inject, Injectable, Scope, UnauthorizedException } from '@nestjs/common';
|
|
14
14
|
import { REQUEST } from '@nestjs/core';
|
|
15
|
+
import { SCHEMA_VERSIONS } from 'openxiangda-contracts';
|
|
15
16
|
import { OpenXiangdaApplicationCredentials } from './application-credentials.js';
|
|
16
17
|
import { OpenXiangdaPlatformClient } from './platform-client.js';
|
|
18
|
+
function domainEventTransaction(input) {
|
|
19
|
+
return {
|
|
20
|
+
schemaVersion: SCHEMA_VERSIONS.dataTransactionRequest,
|
|
21
|
+
idempotencyKey: input.idempotencyKey,
|
|
22
|
+
operations: [
|
|
23
|
+
{
|
|
24
|
+
operation: 'emitEvent',
|
|
25
|
+
eventType: input.eventType,
|
|
26
|
+
...(input.subject ? { subject: input.subject } : {}),
|
|
27
|
+
data: input.data,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function domainEventResult(result) {
|
|
33
|
+
const item = result.items[0];
|
|
34
|
+
if (!item || item.operation !== 'emitEvent') {
|
|
35
|
+
throw new Error('OPENXIANGDA_DOMAIN_EVENT_RESULT_INVALID');
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
eventId: item.eventId,
|
|
39
|
+
eventType: item.eventType,
|
|
40
|
+
replayed: result.replayed,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
17
43
|
let OpenXiangdaDataApiService = class OpenXiangdaDataApiService {
|
|
18
44
|
request;
|
|
19
45
|
platform;
|
|
@@ -61,6 +87,9 @@ let OpenXiangdaDataApiService = class OpenXiangdaDataApiService {
|
|
|
61
87
|
const context = this.context();
|
|
62
88
|
return await this.platform.transactData(context.authorization, context.roleSessionId, transaction);
|
|
63
89
|
}
|
|
90
|
+
async emitEvent(input) {
|
|
91
|
+
return domainEventResult(await this.transaction(domainEventTransaction(input)));
|
|
92
|
+
}
|
|
64
93
|
context() {
|
|
65
94
|
if (!this.request.openxiangda) {
|
|
66
95
|
throw new UnauthorizedException('OPENXIANGDA_CONTEXT_NOT_VERIFIED');
|
|
@@ -113,6 +142,9 @@ let OpenXiangdaApplicationDataApiService = class OpenXiangdaApplicationDataApiSe
|
|
|
113
142
|
async transaction(transaction) {
|
|
114
143
|
return await this.credentials.withAuthorization(async (authorization) => this.platform.transactData(authorization, null, transaction));
|
|
115
144
|
}
|
|
145
|
+
async emitEvent(input) {
|
|
146
|
+
return domainEventResult(await this.transaction(domainEventTransaction(input)));
|
|
147
|
+
}
|
|
116
148
|
};
|
|
117
149
|
OpenXiangdaApplicationDataApiService = __decorate([
|
|
118
150
|
Injectable(),
|
package/dist/data-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api.js","sourceRoot":"","sources":["../src/data-api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAavC,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"data-api.js","sourceRoot":"","sources":["../src/data-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CloudEvent } from 'openxiangda-contracts';
|
|
2
|
+
export interface OpenXiangdaEventHandlerContext {
|
|
3
|
+
eventId: string;
|
|
4
|
+
deliveryId: string;
|
|
5
|
+
subscriptionCode: string;
|
|
6
|
+
traceId: string;
|
|
7
|
+
idempotencyKey: string;
|
|
8
|
+
causationDepth: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class OpenXiangdaEventContext {
|
|
11
|
+
private readonly storage;
|
|
12
|
+
run<T>(event: CloudEvent, deliveryId: string, subscriptionCode: string, operation: (context: OpenXiangdaEventHandlerContext) => Promise<T> | T): Promise<T> | T;
|
|
13
|
+
current(): OpenXiangdaEventHandlerContext | null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=event-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-context.d.ts","sourceRoot":"","sources":["../src/event-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBACa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CACkC;IAE1D,GAAG,CAAC,CAAC,EACH,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBjB,OAAO;CAGR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
8
|
+
import { Injectable } from '@nestjs/common';
|
|
9
|
+
let OpenXiangdaEventContext = class OpenXiangdaEventContext {
|
|
10
|
+
storage = new AsyncLocalStorage();
|
|
11
|
+
run(event, deliveryId, subscriptionCode, operation) {
|
|
12
|
+
const inputDepth = Number(event.data?.cause?.depth ?? 0);
|
|
13
|
+
const context = Object.freeze({
|
|
14
|
+
eventId: event.id,
|
|
15
|
+
deliveryId,
|
|
16
|
+
subscriptionCode,
|
|
17
|
+
traceId: String(event.traceid || event.id),
|
|
18
|
+
idempotencyKey: event.id,
|
|
19
|
+
causationDepth: Number.isSafeInteger(inputDepth) && inputDepth >= 0
|
|
20
|
+
? inputDepth + 1
|
|
21
|
+
: 1,
|
|
22
|
+
});
|
|
23
|
+
return this.storage.run(context, () => operation(context));
|
|
24
|
+
}
|
|
25
|
+
current() {
|
|
26
|
+
return this.storage.getStore() || null;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
OpenXiangdaEventContext = __decorate([
|
|
30
|
+
Injectable()
|
|
31
|
+
], OpenXiangdaEventContext);
|
|
32
|
+
export { OpenXiangdaEventContext };
|
|
33
|
+
//# sourceMappingURL=event-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-context.js","sourceRoot":"","sources":["../src/event-context.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAarC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACjB,OAAO,GACtB,IAAI,iBAAiB,EAAkC,CAAC;IAE1D,GAAG,CACD,KAAiB,EACjB,UAAkB,EAClB,gBAAwB,EACxB,SAAsE;QAEtE,MAAM,UAAU,GAAG,MAAM,CACtB,KAAK,CAAC,IAAwC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CACnE,CAAC;QACF,MAAM,OAAO,GAAmC,MAAM,CAAC,MAAM,CAAC;YAC5D,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,UAAU;YACV,gBAAgB;YAChB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1C,cAAc,EAAE,KAAK,CAAC,EAAE;YACxB,cAAc,EACZ,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;gBACjD,CAAC,CAAC,UAAU,GAAG,CAAC;gBAChB,CAAC,CAAC,CAAC;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;IACzC,CAAC;CACF,CAAA;AA9BY,uBAAuB;IADnC,UAAU,EAAE;GACA,uBAAuB,CA8BnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService, Reflector } from '@nestjs/core';
|
|
3
|
+
import { type AppEventHandlerContract, type CloudEvent } from 'openxiangda-contracts';
|
|
4
|
+
import type { OpenXiangdaEventHandlerContext } from './event-context.js';
|
|
5
|
+
import { OpenXiangdaEventReceiver } from './events.js';
|
|
6
|
+
import type { OpenXiangdaModuleOptions } from './types.js';
|
|
7
|
+
export type OpenXiangdaEventHandlerDeclaration = Omit<AppEventHandlerContract, 'eventTypes' | 'dataSchemaVersions'> & {
|
|
8
|
+
readonly eventTypes: readonly string[];
|
|
9
|
+
readonly dataSchemaVersions: readonly string[];
|
|
10
|
+
};
|
|
11
|
+
export interface OpenXiangdaEventConsumer<TEvent extends CloudEvent = CloudEvent> {
|
|
12
|
+
handle(event: TEvent, context: OpenXiangdaEventHandlerContext): Promise<unknown> | unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare function OpenXiangdaEventHandler(declaration: OpenXiangdaEventHandlerDeclaration): ClassDecorator;
|
|
15
|
+
export declare class OpenXiangdaEventRegistry implements OnModuleInit {
|
|
16
|
+
private readonly discovery;
|
|
17
|
+
private readonly reflector;
|
|
18
|
+
private readonly options;
|
|
19
|
+
private readonly handlers;
|
|
20
|
+
constructor(discovery: DiscoveryService, reflector: Reflector, options: OpenXiangdaModuleOptions);
|
|
21
|
+
onModuleInit(): void;
|
|
22
|
+
resolve(code: string): {
|
|
23
|
+
contract: AppEventHandlerContract;
|
|
24
|
+
consumer: OpenXiangdaEventConsumer;
|
|
25
|
+
};
|
|
26
|
+
private declaredHandlers;
|
|
27
|
+
}
|
|
28
|
+
export declare class OpenXiangdaEventController {
|
|
29
|
+
private readonly receiver;
|
|
30
|
+
private readonly registry;
|
|
31
|
+
constructor(receiver: OpenXiangdaEventReceiver, registry: OpenXiangdaEventRegistry);
|
|
32
|
+
deliver(subscriptionCode: string, headers: Record<string, string | string[] | undefined>, request: {
|
|
33
|
+
rawBody?: Buffer;
|
|
34
|
+
}): Promise<import("openxiangda-contracts").EventDeliveryAck>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=event-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../src/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,YAAY,EAKb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACnD,uBAAuB,EACvB,YAAY,GAAG,oBAAoB,CACpC,GAAG;IACF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,wBAAwB,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU;IAC9E,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,kCAAkC,GAC9C,cAAc,CAGhB;AAED,qBACa,wBAAyB,YAAW,YAAY;IAWzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMrB;gBAIe,SAAS,EAAE,gBAAgB,EAE3B,SAAS,EAAE,SAAS,EAEpB,OAAO,EAAE,wBAAwB;IAGpD,YAAY;IAkCZ,OAAO,CAAC,IAAI,EAAE,MAAM;kBAhDN,uBAAuB;kBACvB,wBAAwB;;IAyDtC,OAAO,CAAC,gBAAgB;CAqBzB;AAED,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,QAAQ,EAAE,wBAAwB,EAElC,QAAQ,EAAE,wBAAwB;IAI/C,OAAO,CACgB,gBAAgB,EAAE,MAAM,EACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EAC1D,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CAcvC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { BadRequestException, Controller, Headers, Inject, Injectable, NotFoundException, Param, Post, Req, SetMetadata, } from '@nestjs/common';
|
|
14
|
+
import { DiscoveryService, Reflector } from '@nestjs/core';
|
|
15
|
+
import { APPLICATION_EVENT_HANDLER_PATH_PREFIX_V2, SCHEMA_VERSIONS, applicationEventHandlerPathV2, sha256Digest, } from 'openxiangda-contracts';
|
|
16
|
+
import { OpenXiangdaEventReceiver } from './events.js';
|
|
17
|
+
import { OPENXIANGDA_MODULE_OPTIONS } from './tokens.js';
|
|
18
|
+
const OPENXIANGDA_EVENT_HANDLER = Symbol('OPENXIANGDA_EVENT_HANDLER');
|
|
19
|
+
export function OpenXiangdaEventHandler(declaration) {
|
|
20
|
+
const normalized = normalizeHandlerDeclaration(declaration);
|
|
21
|
+
return SetMetadata(OPENXIANGDA_EVENT_HANDLER, normalized);
|
|
22
|
+
}
|
|
23
|
+
let OpenXiangdaEventRegistry = class OpenXiangdaEventRegistry {
|
|
24
|
+
discovery;
|
|
25
|
+
reflector;
|
|
26
|
+
options;
|
|
27
|
+
handlers = new Map();
|
|
28
|
+
constructor(discovery, reflector, options) {
|
|
29
|
+
this.discovery = discovery;
|
|
30
|
+
this.reflector = reflector;
|
|
31
|
+
this.options = options;
|
|
32
|
+
}
|
|
33
|
+
onModuleInit() {
|
|
34
|
+
const declared = this.declaredHandlers();
|
|
35
|
+
for (const wrapper of this.discovery.getProviders()) {
|
|
36
|
+
const contract = wrapper.metatype
|
|
37
|
+
? this.reflector.get(OPENXIANGDA_EVENT_HANDLER, wrapper.metatype)
|
|
38
|
+
: undefined;
|
|
39
|
+
if (!contract || !wrapper.instance)
|
|
40
|
+
continue;
|
|
41
|
+
const expected = declared.get(contract.code);
|
|
42
|
+
if (!expected || sha256Digest(expected) !== sha256Digest(contract)) {
|
|
43
|
+
throw new Error(`事件 handler 与 generated manifest 不一致: ${contract.code}`);
|
|
44
|
+
}
|
|
45
|
+
if (typeof wrapper.instance.handle !== 'function') {
|
|
46
|
+
throw new Error(`事件 handler ${contract.code} 缺少 handle()`);
|
|
47
|
+
}
|
|
48
|
+
if (this.handlers.has(contract.code)) {
|
|
49
|
+
throw new Error(`事件 handler 重复注册: ${contract.code}`);
|
|
50
|
+
}
|
|
51
|
+
this.handlers.set(contract.code, {
|
|
52
|
+
contract: expected,
|
|
53
|
+
consumer: wrapper.instance,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
for (const code of declared.keys()) {
|
|
57
|
+
if (!this.handlers.has(code)) {
|
|
58
|
+
throw new Error(`generated manifest 的事件 handler 未注册: ${code}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
resolve(code) {
|
|
63
|
+
const registered = this.handlers.get(String(code || '').trim());
|
|
64
|
+
if (!registered) {
|
|
65
|
+
throw new NotFoundException({
|
|
66
|
+
code: 'OPENXIANGDA_EVENT_HANDLER_NOT_FOUND',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return registered;
|
|
70
|
+
}
|
|
71
|
+
declaredHandlers() {
|
|
72
|
+
const manifest = this.options.eventHandlerManifest;
|
|
73
|
+
if (!manifest)
|
|
74
|
+
return new Map();
|
|
75
|
+
if (manifest.schemaVersion !== SCHEMA_VERSIONS.eventHandlerManifest ||
|
|
76
|
+
manifest.appCode !== this.options.appCode ||
|
|
77
|
+
!Array.isArray(manifest.handlers) ||
|
|
78
|
+
manifest.handlers.length > 100) {
|
|
79
|
+
throw new Error('eventHandlerManifest 与当前应用不一致');
|
|
80
|
+
}
|
|
81
|
+
const entries = manifest.handlers.map(handler => {
|
|
82
|
+
const normalized = normalizeHandlerDeclaration(handler);
|
|
83
|
+
return [normalized.code, normalized];
|
|
84
|
+
});
|
|
85
|
+
const result = new Map(entries);
|
|
86
|
+
if (result.size !== entries.length) {
|
|
87
|
+
throw new Error('eventHandlerManifest 包含重复 code');
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
OpenXiangdaEventRegistry = __decorate([
|
|
93
|
+
Injectable(),
|
|
94
|
+
__param(0, Inject(DiscoveryService)),
|
|
95
|
+
__param(1, Inject(Reflector)),
|
|
96
|
+
__param(2, Inject(OPENXIANGDA_MODULE_OPTIONS)),
|
|
97
|
+
__metadata("design:paramtypes", [DiscoveryService,
|
|
98
|
+
Reflector, Object])
|
|
99
|
+
], OpenXiangdaEventRegistry);
|
|
100
|
+
export { OpenXiangdaEventRegistry };
|
|
101
|
+
let OpenXiangdaEventController = class OpenXiangdaEventController {
|
|
102
|
+
receiver;
|
|
103
|
+
registry;
|
|
104
|
+
constructor(receiver, registry) {
|
|
105
|
+
this.receiver = receiver;
|
|
106
|
+
this.registry = registry;
|
|
107
|
+
}
|
|
108
|
+
async deliver(subscriptionCode, headers, request) {
|
|
109
|
+
if (!Buffer.isBuffer(request.rawBody)) {
|
|
110
|
+
throw new BadRequestException('事件入口必须保留 raw body');
|
|
111
|
+
}
|
|
112
|
+
const registered = this.registry.resolve(subscriptionCode);
|
|
113
|
+
return await this.receiver.accept(registered.contract, headers, request.rawBody, async (event, context) => await registered.consumer.handle(event, context));
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
__decorate([
|
|
117
|
+
Post('/:subscriptionCode'),
|
|
118
|
+
__param(0, Param('subscriptionCode')),
|
|
119
|
+
__param(1, Headers()),
|
|
120
|
+
__param(2, Req()),
|
|
121
|
+
__metadata("design:type", Function),
|
|
122
|
+
__metadata("design:paramtypes", [String, Object, Object]),
|
|
123
|
+
__metadata("design:returntype", Promise)
|
|
124
|
+
], OpenXiangdaEventController.prototype, "deliver", null);
|
|
125
|
+
OpenXiangdaEventController = __decorate([
|
|
126
|
+
Controller(APPLICATION_EVENT_HANDLER_PATH_PREFIX_V2),
|
|
127
|
+
__param(0, Inject(OpenXiangdaEventReceiver)),
|
|
128
|
+
__param(1, Inject(OpenXiangdaEventRegistry)),
|
|
129
|
+
__metadata("design:paramtypes", [OpenXiangdaEventReceiver,
|
|
130
|
+
OpenXiangdaEventRegistry])
|
|
131
|
+
], OpenXiangdaEventController);
|
|
132
|
+
export { OpenXiangdaEventController };
|
|
133
|
+
function normalizeHandlerDeclaration(input) {
|
|
134
|
+
const code = String(input?.code || '').trim();
|
|
135
|
+
if (!/^[a-z][a-z0-9-]*$/.test(code)) {
|
|
136
|
+
throw new Error('事件 handler code 必须是 kebab-case');
|
|
137
|
+
}
|
|
138
|
+
const endpointPath = applicationEventHandlerPathV2(code);
|
|
139
|
+
if (input.endpointPath !== endpointPath) {
|
|
140
|
+
throw new Error(`事件 handler endpoint 必须是 ${endpointPath}`);
|
|
141
|
+
}
|
|
142
|
+
const eventTypes = unique(input.eventTypes);
|
|
143
|
+
const dataSchemaVersions = unique(input.dataSchemaVersions);
|
|
144
|
+
if (eventTypes.length < 1 ||
|
|
145
|
+
eventTypes.length > 20 ||
|
|
146
|
+
dataSchemaVersions.length < 1 ||
|
|
147
|
+
dataSchemaVersions.length > 20 ||
|
|
148
|
+
input.maxBodyBytes !== 65_536 ||
|
|
149
|
+
input.receiptProtocolVersion !== 2) {
|
|
150
|
+
throw new Error(`事件 handler contract 不合法: ${code}`);
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
code,
|
|
154
|
+
endpointPath,
|
|
155
|
+
eventTypes,
|
|
156
|
+
dataSchemaVersions,
|
|
157
|
+
maxBodyBytes: 65_536,
|
|
158
|
+
receiptProtocolVersion: 2,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function unique(values) {
|
|
162
|
+
const normalized = values.map(value => String(value || '').trim());
|
|
163
|
+
if (normalized.some(value => !value)) {
|
|
164
|
+
throw new Error('事件 handler contract 包含空值');
|
|
165
|
+
}
|
|
166
|
+
const result = [...new Set(normalized)].sort();
|
|
167
|
+
if (result.length !== normalized.length) {
|
|
168
|
+
throw new Error('事件 handler contract 包含重复值');
|
|
169
|
+
}
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=event-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../src/event-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpException } from '@nestjs/common';
|
|
2
|
+
import { type AppEventHandlerContract, type CloudEvent, type EventDeliveryAck } from 'openxiangda-contracts';
|
|
3
|
+
import { OpenXiangdaEventContext, type OpenXiangdaEventHandlerContext } from './event-context.js';
|
|
2
4
|
import type { OpenXiangdaEventReceiptContext, OpenXiangdaEventReceiptStore, OpenXiangdaModuleOptions } from './types.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export type OpenXiangdaEventAcceptResult = EventDeliveryAck;
|
|
6
|
+
export declare class OpenXiangdaEventRetryableError extends HttpException {
|
|
7
|
+
constructor(code: string, message?: string, status?: number);
|
|
8
|
+
}
|
|
9
|
+
export declare class OpenXiangdaEventDeterministicError extends HttpException {
|
|
10
|
+
constructor(code: string, message?: string, status?: number);
|
|
8
11
|
}
|
|
9
12
|
/**
|
|
10
13
|
* Resolves only declared event subscription credentials from the standard
|
|
@@ -44,11 +47,18 @@ export declare class PlatformOpenXiangdaEventReceiptStore implements OpenXiangda
|
|
|
44
47
|
export declare class OpenXiangdaEventReceiver {
|
|
45
48
|
private readonly options;
|
|
46
49
|
private readonly receipts;
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
private readonly eventContext;
|
|
51
|
+
private readonly validators;
|
|
52
|
+
constructor(options: OpenXiangdaModuleOptions, receipts: OpenXiangdaEventReceiptStore, eventContext: OpenXiangdaEventContext);
|
|
53
|
+
accept(contract: AppEventHandlerContract, headers: Record<string, string | string[] | undefined>, rawBody: Buffer | string, handler: (event: CloudEvent, context: OpenXiangdaEventHandlerContext) => Promise<unknown> | unknown): Promise<OpenXiangdaEventAcceptResult>;
|
|
49
54
|
private parseEvent;
|
|
50
55
|
private assertTimestamp;
|
|
51
56
|
private assertSignature;
|
|
57
|
+
private assertContentType;
|
|
58
|
+
private assertEventSchema;
|
|
59
|
+
private manifestDigest;
|
|
60
|
+
private schemaKey;
|
|
61
|
+
private ack;
|
|
52
62
|
private header;
|
|
53
63
|
}
|
|
54
64
|
//# sourceMappingURL=events.d.ts.map
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|