@xemahq/xema-service-nest 2.0.2 → 3.1.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 +68 -15
- package/dist/database/index.d.ts +2 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +7 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/xema-database.module.d.ts +16 -0
- package/dist/database/xema-database.module.d.ts.map +1 -0
- package/dist/database/xema-database.module.js +80 -0
- package/dist/database/xema-database.module.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +7 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/xema-events.module.d.ts +18 -0
- package/dist/events/xema-events.module.d.ts.map +1 -0
- package/dist/events/xema-events.module.js +119 -0
- package/dist/events/xema-events.module.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/bootstrap-xema-service.d.ts +3 -1
- package/dist/lib/bootstrap-xema-service.d.ts.map +1 -1
- package/dist/lib/bootstrap-xema-service.js +13 -3
- package/dist/lib/bootstrap-xema-service.js.map +1 -1
- package/dist/lib/distribution-lock/distribution-lock-env.d.ts +3 -1
- package/dist/lib/distribution-lock/distribution-lock-env.d.ts.map +1 -1
- package/dist/lib/distribution-lock/distribution-lock-env.js +31 -6
- package/dist/lib/distribution-lock/distribution-lock-env.js.map +1 -1
- package/dist/lib/peers/xema-peers.module.d.ts +21 -0
- package/dist/lib/peers/xema-peers.module.d.ts.map +1 -0
- package/dist/lib/peers/xema-peers.module.js +110 -0
- package/dist/lib/peers/xema-peers.module.js.map +1 -0
- package/dist/lib/request-context/service-request-context.d.ts +7 -0
- package/dist/lib/request-context/service-request-context.d.ts.map +1 -0
- package/dist/lib/request-context/service-request-context.js +44 -0
- package/dist/lib/request-context/service-request-context.js.map +1 -0
- package/dist/lib/xema-service-module.d.ts +11 -5
- package/dist/lib/xema-service-module.d.ts.map +1 -1
- package/dist/lib/xema-service-module.js +81 -22
- package/dist/lib/xema-service-module.js.map +1 -1
- package/package.json +33 -5
- package/dist/lib/apply-xema-service-middleware.d.ts +0 -4
- package/dist/lib/apply-xema-service-middleware.d.ts.map +0 -1
- package/dist/lib/apply-xema-service-middleware.js +0 -8
- package/dist/lib/apply-xema-service-middleware.js.map +0 -1
package/README.md
CHANGED
|
@@ -31,29 +31,82 @@ The `descriptor` is generated from the biome's `xema-biome.json` by
|
|
|
31
31
|
`tooling/codegen/generate-service-bootstrap.mjs` — you declare name/version/
|
|
32
32
|
dependencies **once** in the manifest, never again in `app.module.ts`.
|
|
33
33
|
|
|
34
|
+
A biome service writes its domain modules and ONE declaration per platform
|
|
35
|
+
concern it uses. Everything else — identity bootstrap, registry, auth, the
|
|
36
|
+
request-context middleware, health, the database bootstrap, event-hub
|
|
37
|
+
registration, the CloudEvents webhook, peer-client wiring — is the SDK's.
|
|
38
|
+
|
|
34
39
|
```ts
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} from '@xemahq/xema-service-nest';
|
|
41
|
-
import {
|
|
40
|
+
// main.ts
|
|
41
|
+
void bootstrapXemaService({ appModule: AppModule, descriptor: FEED_API_BOOTSTRAP });
|
|
42
|
+
|
|
43
|
+
// app.module.ts
|
|
44
|
+
import { Module } from '@nestjs/common';
|
|
45
|
+
import { XemaPeersModule, PeerCredential, XemaServiceModule } from '@xemahq/xema-service-nest';
|
|
46
|
+
import { XemaDatabaseModule } from '@xemahq/xema-service-nest/database';
|
|
47
|
+
import { XemaEventsModule } from '@xemahq/xema-service-nest/events';
|
|
42
48
|
|
|
43
49
|
@Module({
|
|
44
50
|
imports: [
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
XemaServiceModule.forBiome(FEED_API_BOOTSTRAP, {
|
|
52
|
+
config: { load: [feedConfig] }, // adapters built by `xemaConfig`
|
|
53
|
+
responseEnvelope: true, // the `{ data }` wire envelope
|
|
54
|
+
}),
|
|
55
|
+
XemaDatabaseModule.forBiome(FEED_API_BOOTSTRAP, {
|
|
56
|
+
prismaService: PrismaService, // createBiomePrismaService(...)
|
|
57
|
+
packageDir: __dirname,
|
|
58
|
+
}),
|
|
59
|
+
XemaEventsModule.forBiome(FEED_API_BOOTSTRAP, {
|
|
60
|
+
produces: [FEED_DESCRIPTORS],
|
|
61
|
+
consumes: [FEED_CONSUMED_DESCRIPTORS],
|
|
62
|
+
replayStore: PrismaService,
|
|
63
|
+
}),
|
|
64
|
+
XemaPeersModule.forRoot({
|
|
65
|
+
credential: PeerCredential.ServiceIdentity,
|
|
66
|
+
clients: {
|
|
67
|
+
'artifact-store-api': configureArtifactStore,
|
|
68
|
+
// a peer that ships one client package per API surface
|
|
69
|
+
'user-hub-api': [configureUserHub, configureUserHubInternal],
|
|
70
|
+
},
|
|
71
|
+
stopSignal: () => currentJobSignal(), // optional: a stopped job stops waiting on a token
|
|
72
|
+
}),
|
|
73
|
+
FeedModule, // the domain
|
|
48
74
|
],
|
|
49
75
|
})
|
|
50
|
-
export class AppModule
|
|
51
|
-
configure(consumer: MiddlewareConsumer): void {
|
|
52
|
-
applyXemaServiceMiddleware(consumer);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
76
|
+
export class AppModule {}
|
|
55
77
|
```
|
|
56
78
|
|
|
79
|
+
### Configuration is read at the runtime boundary, never at import
|
|
80
|
+
|
|
81
|
+
`config` makes the SDK own `ConfigModule.forRoot`, and defining it reads
|
|
82
|
+
nothing: no `.env` file, no `process.env` enumeration, no write-back. Each
|
|
83
|
+
`xemaConfig` adapter is handed its source when Nest creates the application —
|
|
84
|
+
the process environment for a dedicated service, the mount's own for a member
|
|
85
|
+
of a composed process. A `.env` file is a process concern: load it where the
|
|
86
|
+
process starts (`node --env-file=.env dist/main.js`).
|
|
87
|
+
|
|
88
|
+
### Peer tokens honour cancellation
|
|
89
|
+
|
|
90
|
+
With `PeerCredential.ServiceIdentity`, every client's token mint receives the
|
|
91
|
+
request's own `AbortSignal` and, when `stopSignal` is declared, the current
|
|
92
|
+
job's — either one ends the wait. A service that calls some peers as itself
|
|
93
|
+
and others per call mounts `XemaPeersModule.forRoot` once per credential.
|
|
94
|
+
|
|
95
|
+
There is no `configure()`: `XemaServiceModule` mounts the request-context
|
|
96
|
+
middleware itself. A `@XemaPublicRoute` handler is excluded automatically, and
|
|
97
|
+
a controller guarded at CLASS level by a context-reading platform guard
|
|
98
|
+
(`ServiceActorGuard`, `InternalCallerGuard`, `TokenClassGuard`, `OrgRoleGuard`,
|
|
99
|
+
`PlatformAdminGuard` — each refuses without it) is opted in automatically. `requestContext: { extraExcludes,
|
|
100
|
+
additionalControllers }` carries only what cannot be derived.
|
|
101
|
+
|
|
102
|
+
### Plugging in another platform SDK
|
|
103
|
+
|
|
104
|
+
Every platform concern is ONE `imports` entry that resolves the identity
|
|
105
|
+
bootstrap and the service registry from `XemaServiceModule.forBiome`'s global
|
|
106
|
+
providers — it never re-wires them. An authorization or workload-identity SDK
|
|
107
|
+
plugs in the same way: `SomeSdkModule.forBiome(DESCRIPTOR, { ...what only the
|
|
108
|
+
service knows })`, taking its own facts from the descriptor.
|
|
109
|
+
|
|
57
110
|
## Route policy stays with the biome
|
|
58
111
|
|
|
59
112
|
This module wires the auth **stack**; it does **not** decide what your endpoints
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XemaDatabaseModule = exports.servicePackageRoot = void 0;
|
|
4
|
+
var xema_database_module_1 = require("./xema-database.module");
|
|
5
|
+
Object.defineProperty(exports, "servicePackageRoot", { enumerable: true, get: function () { return xema_database_module_1.servicePackageRoot; } });
|
|
6
|
+
Object.defineProperty(exports, "XemaDatabaseModule", { enumerable: true, get: function () { return xema_database_module_1.XemaDatabaseModule; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AAGA,+DAKgC;AAJ9B,0HAAA,kBAAkB,OAAA;AAClB,0HAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type EraseOrgDataOptions, type TenantScopedApi } from '@xemahq/biome-database-nest';
|
|
2
|
+
import type { BiomeServiceDescriptor } from '../lib/biome-service-descriptor';
|
|
3
|
+
import type { BiomeHealthDb } from '../lib/health/health.controller';
|
|
4
|
+
import type { DynamicModule, Type } from '@nestjs/common';
|
|
5
|
+
export type XemaPrismaServiceClass = Type<BiomeHealthDb & TenantScopedApi<unknown>> & (new () => BiomeHealthDb & TenantScopedApi<unknown>);
|
|
6
|
+
export interface XemaDatabaseOptions {
|
|
7
|
+
readonly prismaService: XemaPrismaServiceClass;
|
|
8
|
+
readonly packageDir: string;
|
|
9
|
+
readonly requiredExtensions?: readonly string[];
|
|
10
|
+
readonly orgErasure?: false | EraseOrgDataOptions;
|
|
11
|
+
}
|
|
12
|
+
export declare function servicePackageRoot(from: string): string;
|
|
13
|
+
export declare class XemaDatabaseModule {
|
|
14
|
+
static forBiome(descriptor: BiomeServiceDescriptor, options: XemaDatabaseOptions): DynamicModule;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=xema-database.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-database.module.d.ts","sourceRoot":"","sources":["../../src/database/xema-database.module.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAY,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUpE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,GACjF,CAAC,UAAU,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAKlC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAW/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAK5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAQhD,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC;CACnD;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAevD;AA0BD,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CACb,UAAU,EAAE,sBAAsB,EAClC,OAAO,EAAE,mBAAmB,GAC3B,aAAa;CA8CjB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.XemaDatabaseModule = void 0;
|
|
10
|
+
exports.servicePackageRoot = servicePackageRoot;
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const biome_database_nest_1 = require("@xemahq/biome-database-nest");
|
|
15
|
+
const health_module_1 = require("../lib/health/health.module");
|
|
16
|
+
function servicePackageRoot(from) {
|
|
17
|
+
let dir = (0, node_path_1.resolve)(from);
|
|
18
|
+
for (;;) {
|
|
19
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(dir, 'package.json'))) {
|
|
20
|
+
return dir;
|
|
21
|
+
}
|
|
22
|
+
const parent = (0, node_path_1.dirname)(dir);
|
|
23
|
+
if (parent === dir) {
|
|
24
|
+
throw new Error(`servicePackageRoot: no package.json at or above "${from}". Pass ` +
|
|
25
|
+
'`packageDir: __dirname` from a file inside the service package.');
|
|
26
|
+
}
|
|
27
|
+
dir = parent;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
let XemaDatabaseModuleHost = class XemaDatabaseModuleHost {
|
|
31
|
+
};
|
|
32
|
+
XemaDatabaseModuleHost = __decorate([
|
|
33
|
+
(0, common_1.Module)({})
|
|
34
|
+
], XemaDatabaseModuleHost);
|
|
35
|
+
class XemaDatabaseModule {
|
|
36
|
+
static forBiome(descriptor, options) {
|
|
37
|
+
const biomeId = descriptor.biomeId;
|
|
38
|
+
if (biomeId === undefined) {
|
|
39
|
+
throw new Error(`XemaDatabaseModule (${descriptor.name}): the descriptor carries no ` +
|
|
40
|
+
'`biomeId`, and a biome database is keyed on it — the control plane ' +
|
|
41
|
+
'derives the schema and runtime role from the biome, never from the ' +
|
|
42
|
+
'service name. Pass the generated bootstrap constant.');
|
|
43
|
+
}
|
|
44
|
+
const prisma = options.prismaService;
|
|
45
|
+
const providers = [
|
|
46
|
+
{
|
|
47
|
+
provide: prisma,
|
|
48
|
+
useFactory: () => new prisma(),
|
|
49
|
+
inject: [biome_database_nest_1.BIOME_DATABASE_READY],
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
return {
|
|
53
|
+
module: XemaDatabaseModuleHost,
|
|
54
|
+
global: true,
|
|
55
|
+
imports: [
|
|
56
|
+
biome_database_nest_1.BiomeDatabaseModule.forRoot({
|
|
57
|
+
biomeId,
|
|
58
|
+
migrationMode: biome_database_nest_1.BiomeDatabaseMigrationMode.ApplicationManaged,
|
|
59
|
+
databases: [{ workspaceDir: servicePackageRoot(options.packageDir) }],
|
|
60
|
+
...(options.requiredExtensions !== undefined
|
|
61
|
+
? { requiredExtensions: options.requiredExtensions }
|
|
62
|
+
: {}),
|
|
63
|
+
}),
|
|
64
|
+
...(options.orgErasure === false
|
|
65
|
+
? []
|
|
66
|
+
: [
|
|
67
|
+
biome_database_nest_1.OrgErasureModule.forRoot({
|
|
68
|
+
prismaServiceToken: prisma,
|
|
69
|
+
...(options.orgErasure ?? {}),
|
|
70
|
+
}),
|
|
71
|
+
]),
|
|
72
|
+
health_module_1.BiomeHealthModule.forPrisma(prisma),
|
|
73
|
+
],
|
|
74
|
+
providers,
|
|
75
|
+
exports: [prisma],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.XemaDatabaseModule = XemaDatabaseModule;
|
|
80
|
+
//# sourceMappingURL=xema-database.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-database.module.js","sourceRoot":"","sources":["../../src/database/xema-database.module.ts"],"names":[],"mappings":";;;;;;;;;AAmEA,gDAeC;AAlFD,qCAAqC;AACrC,yCAAmD;AAEnD,2CAAwC;AACxC,qEAOqC;AAErC,+DAAgE;AAsDhE,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,GAAG,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;IACxB,SAAS,CAAC;QACR,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,UAAU;gBAChE,iEAAiE,CACpE,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAGD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,sBAAsB;IAD3B,IAAA,eAAM,EAAC,EAAE,CAAC;GACL,sBAAsB,CAAG;AAuB/B,MAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CACb,UAAkC,EAClC,OAA4B;QAE5B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,uBAAuB,UAAU,CAAC,IAAI,+BAA+B;gBACnE,qEAAqE;gBACrE,qEAAqE;gBACrE,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;QACrC,MAAM,SAAS,GAAe;YAC5B;gBACE,OAAO,EAAE,MAAM;gBAGf,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE;gBAC9B,MAAM,EAAE,CAAC,0CAAoB,CAAC;aAC/B;SACF,CAAC;QACF,OAAO;YACL,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,yCAAmB,CAAC,OAAO,CAAC;oBAC1B,OAAO;oBACP,aAAa,EAAE,gDAA0B,CAAC,kBAAkB;oBAC5D,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrE,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;wBAC1C,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE;wBACpD,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;gBACF,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK;oBAC9B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,sCAAgB,CAAC,OAAO,CAAC;4BACvB,kBAAkB,EAAE,MAAM;4BAC1B,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;yBAC9B,CAAC;qBACH,CAAC;gBACN,iCAAiB,CAAC,SAAS,CAAC,MAAM,CAAC;aACpC;YACD,SAAS;YACT,OAAO,EAAE,CAAC,MAAM,CAAC;SAClB,CAAC;IACJ,CAAC;CACF;AAlDD,gDAkDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XemaEventsModule = exports.XEMA_EVENTS_WEBHOOK_PATH = void 0;
|
|
4
|
+
var xema_events_module_1 = require("./xema-events.module");
|
|
5
|
+
Object.defineProperty(exports, "XEMA_EVENTS_WEBHOOK_PATH", { enumerable: true, get: function () { return xema_events_module_1.XEMA_EVENTS_WEBHOOK_PATH; } });
|
|
6
|
+
Object.defineProperty(exports, "XemaEventsModule", { enumerable: true, get: function () { return xema_events_module_1.XemaEventsModule; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;AAIA,2DAI8B;AAH5B,8HAAA,wBAAwB,OAAA;AACxB,sHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type EventDescriptor } from '@xemahq/events';
|
|
2
|
+
import type { BiomeServiceDescriptor } from '../lib/biome-service-descriptor';
|
|
3
|
+
import type { DynamicModule, InjectionToken } from '@nestjs/common';
|
|
4
|
+
export declare const XEMA_EVENTS_WEBHOOK_PATH = "webhooks/events";
|
|
5
|
+
type DescriptorSet = readonly EventDescriptor[];
|
|
6
|
+
export interface XemaEventsOptions {
|
|
7
|
+
readonly produces?: readonly DescriptorSet[];
|
|
8
|
+
readonly consumes?: readonly DescriptorSet[];
|
|
9
|
+
readonly subscribe?: readonly string[];
|
|
10
|
+
readonly ownedDataTypes?: readonly string[];
|
|
11
|
+
readonly eventDomain?: string;
|
|
12
|
+
readonly replayStore?: InjectionToken;
|
|
13
|
+
}
|
|
14
|
+
export declare class XemaEventsModule {
|
|
15
|
+
static forBiome(descriptor: BiomeServiceDescriptor, options: XemaEventsOptions): DynamicModule;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=xema-events.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-events.module.d.ts","sourceRoot":"","sources":["../../src/events/xema-events.module.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAuBxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIpE,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAK1D,KAAK,aAAa,GAAG,SAAS,eAAe,EAAE,CAAC;AAUhD,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAE7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAO7C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAOvC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAc9B,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;CACvC;AAuDD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CACb,UAAU,EAAE,sBAAsB,EAClC,OAAO,EAAE,iBAAiB,GACzB,aAAa;CAkFjB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.XemaEventsModule = exports.XEMA_EVENTS_WEBHOOK_PATH = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
16
|
+
const event_hub_client_1 = require("@xemahq/event-hub-client");
|
|
17
|
+
const events_1 = require("@xemahq/events");
|
|
18
|
+
const nest_1 = require("@xemahq/events/nest");
|
|
19
|
+
const identity_client_1 = require("@xemahq/identity-client");
|
|
20
|
+
const platform_common_1 = require("@xemahq/platform-common");
|
|
21
|
+
const service_registry_nest_1 = require("@xemahq/service-registry-nest");
|
|
22
|
+
const xema_decorators_1 = require("@xemahq/xema-decorators");
|
|
23
|
+
const service_mount_scope_1 = require("../lib/service-mount-scope");
|
|
24
|
+
exports.XEMA_EVENTS_WEBHOOK_PATH = 'webhooks/events';
|
|
25
|
+
const EVENT_HUB_SCHEMA_VERSION = '1.0.0';
|
|
26
|
+
let XemaCloudEventWebhookController = class XemaCloudEventWebhookController extends nest_1.CloudEventWebhookController {
|
|
27
|
+
constructor(dispatcher) {
|
|
28
|
+
super(dispatcher);
|
|
29
|
+
}
|
|
30
|
+
handleWebhook(body, headers) {
|
|
31
|
+
return super.handleWebhook(body, headers);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, xema_decorators_1.XemaPublicRoute)({ reason: xema_decorators_1.PublicRouteReason.WebhookIngestion }),
|
|
36
|
+
(0, common_1.Post)('events'),
|
|
37
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
38
|
+
(0, common_1.UseGuards)(event_hub_client_1.EventHubWebhookGuard),
|
|
39
|
+
__metadata("design:type", Function),
|
|
40
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
41
|
+
__metadata("design:returntype", Promise)
|
|
42
|
+
], XemaCloudEventWebhookController.prototype, "handleWebhook", null);
|
|
43
|
+
XemaCloudEventWebhookController = __decorate([
|
|
44
|
+
(0, swagger_1.ApiExcludeController)(),
|
|
45
|
+
(0, xema_decorators_1.XemaResource)('webhook'),
|
|
46
|
+
(0, common_1.Controller)('webhooks'),
|
|
47
|
+
__metadata("design:paramtypes", [nest_1.EventDispatcherService])
|
|
48
|
+
], XemaCloudEventWebhookController);
|
|
49
|
+
function flatten(sets) {
|
|
50
|
+
return (sets ?? []).flatMap((set) => [...set]);
|
|
51
|
+
}
|
|
52
|
+
class XemaEventsModule {
|
|
53
|
+
static forBiome(descriptor, options) {
|
|
54
|
+
const produced = flatten(options.produces);
|
|
55
|
+
const consumed = flatten(options.consumes);
|
|
56
|
+
if (produced.length === 0 && consumed.length === 0) {
|
|
57
|
+
throw new Error(`XemaEventsModule (${descriptor.name}): neither \`produces\` nor ` +
|
|
58
|
+
'`consumes` names a descriptor. A service that neither publishes nor ' +
|
|
59
|
+
'handles an event does not mount the events module.');
|
|
60
|
+
}
|
|
61
|
+
const subscribe = [...(options.subscribe ?? consumed.map((d) => d.type))];
|
|
62
|
+
const dataTypes = [
|
|
63
|
+
...(0, events_1.producedDataTypes)({
|
|
64
|
+
from: [produced],
|
|
65
|
+
alwaysInclude: options.ownedDataTypes ?? [],
|
|
66
|
+
}),
|
|
67
|
+
];
|
|
68
|
+
const eventHub = event_hub_client_1.EventHubModule.forRootAsync({
|
|
69
|
+
useFactory: async (identity, kernelState) => ({
|
|
70
|
+
eventHubUrl: await (0, service_registry_nest_1.resolveHttpUrlEagerly)(kernelState, 'event-hub-api'),
|
|
71
|
+
serviceId: descriptor.name,
|
|
72
|
+
serviceName: descriptor.displayName,
|
|
73
|
+
...(options.eventDomain !== undefined
|
|
74
|
+
? { eventDomain: options.eventDomain }
|
|
75
|
+
: {}),
|
|
76
|
+
schemaVersion: EVENT_HUB_SCHEMA_VERSION,
|
|
77
|
+
dataTypes,
|
|
78
|
+
eventTypes: subscribe,
|
|
79
|
+
tokenProvider: () => identity.getAccessToken(),
|
|
80
|
+
...(subscribe.length > 0
|
|
81
|
+
? {
|
|
82
|
+
webhookUrl: `${(0, service_registry_nest_1.buildSelfHttpEndpointUrl)({ get: (key) => (0, service_mount_scope_1.resolveEnv)(key) }, descriptor.name)}/${exports.XEMA_EVENTS_WEBHOOK_PATH}`,
|
|
83
|
+
}
|
|
84
|
+
: {}),
|
|
85
|
+
}),
|
|
86
|
+
inject: [identity_client_1.IdentityBootstrapService, service_registry_nest_1.KERNEL_STATE_TOKEN],
|
|
87
|
+
});
|
|
88
|
+
const cloudEvents = nest_1.CloudEventsModule.forRootAsync({
|
|
89
|
+
useFactory: (client) => {
|
|
90
|
+
const registry = new events_1.EventRegistry();
|
|
91
|
+
registry.register(produced);
|
|
92
|
+
registry.register(consumed.filter((d) => !produced.some((p) => p.type === d.type)));
|
|
93
|
+
return { registry, transport: new nest_1.EventHubCloudEventTransport(client) };
|
|
94
|
+
},
|
|
95
|
+
inject: [event_hub_client_1.EventHubClient],
|
|
96
|
+
discovery: {
|
|
97
|
+
discoveryModule: core_1.DiscoveryModule,
|
|
98
|
+
discoveryService: core_1.DiscoveryService,
|
|
99
|
+
},
|
|
100
|
+
extraProviders: [
|
|
101
|
+
{ provide: nest_1.EVENT_DISPATCHER_CONSUMER_NAME, useValue: descriptor.name },
|
|
102
|
+
...(options.replayStore !== undefined
|
|
103
|
+
? [
|
|
104
|
+
{ provide: platform_common_1.IDEMPOTENCY_DATA_STORE_CLIENT, useExisting: options.replayStore },
|
|
105
|
+
{ provide: platform_common_1.IDEMPOTENCY_SERVICE, useClass: platform_common_1.DataStoreIdempotencyService },
|
|
106
|
+
]
|
|
107
|
+
: []),
|
|
108
|
+
],
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
module: XemaEventsModule,
|
|
112
|
+
imports: [eventHub, cloudEvents],
|
|
113
|
+
controllers: subscribe.length > 0 ? [XemaCloudEventWebhookController] : [],
|
|
114
|
+
exports: [eventHub, cloudEvents],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.XemaEventsModule = XemaEventsModule;
|
|
119
|
+
//# sourceMappingURL=xema-events.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-events.module.js","sourceRoot":"","sources":["../../src/events/xema-events.module.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { HttpCapabilityProjectionModule, isHttpCapabilityProjectionEnabled, XemaServiceModule, type XemaServiceConfigOptions, type XemaServiceModuleOptions, buildPlatformAuthOptions, } from './lib/xema-service-module';
|
|
1
|
+
export { HttpCapabilityProjectionModule, isHttpCapabilityProjectionEnabled, XemaServiceModule, XEMA_REQUEST_CONTEXT_OPTIONS, type XemaServiceConfigOptions, type XemaServiceModuleOptions, buildPlatformAuthOptions, } from './lib/xema-service-module';
|
|
2
2
|
export * from './lib/http-capability-projection';
|
|
3
3
|
export { findOptionalProvider } from './lib/resolve-optional-provider';
|
|
4
4
|
export { AuthorityDomain, AuthorityEffectReason, AuthorityResource, AuthorityVerb, classifyAuthorityEffect, classifyAuthorityEffectFacts, isAuthorityResourceSegment, isMutatingVerb, type AuthorityEffectClassification, type CapabilityRefFacts, type ClassifyAuthorityEffectOptions, type FirstPartyDomainOracle, } from './lib/capability-authority-effect';
|
|
@@ -7,13 +7,13 @@ export { type BootstrapSwaggerOptions, type ResolvedSwaggerConfig, DEFAULT_PORT,
|
|
|
7
7
|
export { applyKeycloakSwagger } from './lib/bootstrap-swagger';
|
|
8
8
|
export { applySpecCorsHeaders, type SpecCorsResponse } from './lib/spec-cors';
|
|
9
9
|
export { buildTelemetryConfigInput, DEPLOYMENT_ENVIRONMENT_ENV, SERVICE_VERSION_ENV, } from './lib/telemetry-input';
|
|
10
|
-
export { DISTRIBUTION_LOCK_PATH_ENV, DistributionLockRequirement, loadDistributionLockFromEnv, readDistributionLockFile, type LoadDistributionLockOptions, } from './lib/distribution-lock/distribution-lock-env';
|
|
10
|
+
export { DISTRIBUTION_LOCK_PATH_ENV, DISTRIBUTION_LOCK_SHA256_ENV, distributionLockSha256, DistributionLockRequirement, loadDistributionLockFromEnv, readDistributionLockFile, type LoadDistributionLockOptions, } from './lib/distribution-lock/distribution-lock-env';
|
|
11
11
|
export { FIRST_PARTY_CAPABILITY_DOMAINS_TOKEN, FirstPartyCapabilityDomainsModule, type FirstPartyCapabilityDomainsModuleOptions, } from './lib/distribution-lock/first-party-capability-domains.module';
|
|
12
12
|
export { BIOME_HEALTH_DB, BIOME_HEALTH_READINESS, BiomeHealthController, DatabaseHealthReadiness, StatelessHealthReadiness, type BiomeHealthDb, type BiomeHealthReadiness, } from './lib/health/health.controller';
|
|
13
13
|
export { BiomeHealthModule } from './lib/health/health.module';
|
|
14
14
|
export { bindHttpServerBeforeHooks, BootConvergenceModule, BootConvergenceRunner, BootConvergenceState, DEFAULT_BOOT_CONVERGENCE_RETRY, XEMA_BOOT_CONVERGENCE_RETRY, XEMA_BOOT_CONVERGENCE_TASK, type BootConvergenceRetryPolicy, type BootConvergenceStatus, type BootConvergenceTask, } from './lib/boot';
|
|
15
|
-
export {
|
|
16
|
-
export { type
|
|
15
|
+
export { PeerCredential, XemaPeersModule, peerServiceTokenCallback, type PeerClientConfigurer, type PeerClientConfigurers, type PeerStopSignalResolver, type XemaPeersOptions, } from './lib/peers/xema-peers.module';
|
|
16
|
+
export { discoverContextRequiringControllers, type XemaRequestContextOptions, } from './lib/request-context/service-request-context';
|
|
17
17
|
export { validateServiceDescriptor, ServiceDescriptorError, type ServiceDescriptor, type ValidateServiceDescriptorOptions, } from './lib/service-descriptor';
|
|
18
18
|
export { validateBiomeServiceDescriptor, BiomeServiceDescriptorError, type BiomeServiceDescriptor, } from './lib/biome-service-descriptor';
|
|
19
19
|
export { ServiceKind } from '@xemahq/xema-decorators';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAQ7B,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAKnC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAOvE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,YAAY,EACZ,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAiBnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAM9E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,2BAA2B,GACjC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,oCAAoC,EACpC,iCAAiC,EACjC,KAAK,wCAAwC,GAC9C,MAAM,+DAA+D,CAAC;AAWvE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAS/D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,EAC3B,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,13 +14,14 @@ 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.
|
|
18
|
-
exports.
|
|
19
|
-
exports.runComposedProcess = exports.readServiceEntry = exports.PROCESS_READY_PATH = exports.PROCESS_PROBE_PREFIX = void 0;
|
|
17
|
+
exports.validateServiceDescriptor = exports.discoverContextRequiringControllers = exports.peerServiceTokenCallback = exports.XemaPeersModule = exports.PeerCredential = exports.XEMA_BOOT_CONVERGENCE_TASK = exports.XEMA_BOOT_CONVERGENCE_RETRY = exports.DEFAULT_BOOT_CONVERGENCE_RETRY = exports.BootConvergenceState = exports.BootConvergenceRunner = exports.BootConvergenceModule = exports.bindHttpServerBeforeHooks = exports.BiomeHealthModule = exports.StatelessHealthReadiness = exports.DatabaseHealthReadiness = exports.BiomeHealthController = exports.BIOME_HEALTH_READINESS = exports.BIOME_HEALTH_DB = exports.FirstPartyCapabilityDomainsModule = exports.FIRST_PARTY_CAPABILITY_DOMAINS_TOKEN = exports.readDistributionLockFile = exports.loadDistributionLockFromEnv = exports.DistributionLockRequirement = exports.distributionLockSha256 = exports.DISTRIBUTION_LOCK_SHA256_ENV = exports.DISTRIBUTION_LOCK_PATH_ENV = exports.SERVICE_VERSION_ENV = exports.DEPLOYMENT_ENVIRONMENT_ENV = exports.buildTelemetryConfigInput = exports.applySpecCorsHeaders = exports.applyKeycloakSwagger = exports.SWAGGER_PUBLIC_JSON_PATH = exports.DEFAULT_SWAGGER_JSON_PATH = exports.DEFAULT_SWAGGER_DOCS_PATH = exports.DEFAULT_PORT = exports.bootstrapXemaService = exports.isMutatingVerb = exports.isAuthorityResourceSegment = exports.classifyAuthorityEffectFacts = exports.classifyAuthorityEffect = exports.AuthorityVerb = exports.AuthorityResource = exports.AuthorityEffectReason = exports.AuthorityDomain = exports.findOptionalProvider = exports.buildPlatformAuthOptions = exports.XEMA_REQUEST_CONTEXT_OPTIONS = exports.XemaServiceModule = exports.isHttpCapabilityProjectionEnabled = exports.HttpCapabilityProjectionModule = void 0;
|
|
18
|
+
exports.assertMountConfigScoped = exports.xemaConfigSourceFromRecord = exports.xemaConfigSourceFromReader = exports.xemaConfigSourceForMount = exports.xemaConfigNamespace = exports.xemaConfig = exports.resolveConfigSource = exports.isXemaConfigFactory = exports.XEMA_SCOPED_CONFIG = exports.uninstallServiceMountScope = exports.resolveEnvViewFrom = exports.resolveEnvView = exports.resolveEnvFrom = exports.resolveEnv = exports.requireScopedEnvView = exports.requireEnvFrom = exports.requireEnv = exports.isServiceMountScopeInstalled = exports.installServiceMountScope = exports.currentServiceMount = exports.XEMA_SERVICE_MOUNT_SCOPE = exports.XEMA_SCOPED_ENV_VIEW = exports.unwrapCapabilityEnvelope = exports.longRunningSucceeded = exports.longRunningRunning = exports.longRunningFailed = exports.longRunningAccepted = exports.LONG_RUNNING_STATUS_INPUT_JSON_SCHEMA = exports.LONG_RUNNING_INVOCATION_STATUS_JSON_SCHEMA = exports.LONG_RUNNING_INVOCATION_RESPONSE_JSON_SCHEMA = exports.CapabilityRouterUnavailableError = exports.CapabilityRouterRefusedError = exports.CapabilityMetaToolFailure = exports.CapabilityMetaToolClient = exports.CapabilityInvokerModule = exports.CapabilityInvoker = exports.CapabilityInvokeClient = exports.CapabilityInvocationError = exports.CapabilityDecisionStatus = exports.CapabilityDecisionMalformedError = exports.CAPABILITY_SEARCH_PLACEHOLDER_REF = exports.buildAgentExecutionContext = exports.xemaOrgScopedClaim = exports.RegistryResolvedCapabilityRegistryClient = exports.IdentityBootstrapService = exports.IdentityBootstrapModule = exports.ServiceKind = exports.BiomeServiceDescriptorError = exports.validateBiomeServiceDescriptor = exports.ServiceDescriptorError = void 0;
|
|
19
|
+
exports.runComposedProcess = exports.readServiceEntry = exports.PROCESS_READY_PATH = exports.PROCESS_PROBE_PREFIX = exports.PROCESS_LIVE_PATH = exports.DB_POOL_MAX_ENV = exports.poolCeilingEnvFragment = exports.joinPoolCeiling = exports.findMountConfigViolations = exports.composeXemaProcess = void 0;
|
|
20
20
|
var xema_service_module_1 = require("./lib/xema-service-module");
|
|
21
21
|
Object.defineProperty(exports, "HttpCapabilityProjectionModule", { enumerable: true, get: function () { return xema_service_module_1.HttpCapabilityProjectionModule; } });
|
|
22
22
|
Object.defineProperty(exports, "isHttpCapabilityProjectionEnabled", { enumerable: true, get: function () { return xema_service_module_1.isHttpCapabilityProjectionEnabled; } });
|
|
23
23
|
Object.defineProperty(exports, "XemaServiceModule", { enumerable: true, get: function () { return xema_service_module_1.XemaServiceModule; } });
|
|
24
|
+
Object.defineProperty(exports, "XEMA_REQUEST_CONTEXT_OPTIONS", { enumerable: true, get: function () { return xema_service_module_1.XEMA_REQUEST_CONTEXT_OPTIONS; } });
|
|
24
25
|
Object.defineProperty(exports, "buildPlatformAuthOptions", { enumerable: true, get: function () { return xema_service_module_1.buildPlatformAuthOptions; } });
|
|
25
26
|
__exportStar(require("./lib/http-capability-projection"), exports);
|
|
26
27
|
var resolve_optional_provider_1 = require("./lib/resolve-optional-provider");
|
|
@@ -51,6 +52,8 @@ Object.defineProperty(exports, "DEPLOYMENT_ENVIRONMENT_ENV", { enumerable: true,
|
|
|
51
52
|
Object.defineProperty(exports, "SERVICE_VERSION_ENV", { enumerable: true, get: function () { return telemetry_input_1.SERVICE_VERSION_ENV; } });
|
|
52
53
|
var distribution_lock_env_1 = require("./lib/distribution-lock/distribution-lock-env");
|
|
53
54
|
Object.defineProperty(exports, "DISTRIBUTION_LOCK_PATH_ENV", { enumerable: true, get: function () { return distribution_lock_env_1.DISTRIBUTION_LOCK_PATH_ENV; } });
|
|
55
|
+
Object.defineProperty(exports, "DISTRIBUTION_LOCK_SHA256_ENV", { enumerable: true, get: function () { return distribution_lock_env_1.DISTRIBUTION_LOCK_SHA256_ENV; } });
|
|
56
|
+
Object.defineProperty(exports, "distributionLockSha256", { enumerable: true, get: function () { return distribution_lock_env_1.distributionLockSha256; } });
|
|
54
57
|
Object.defineProperty(exports, "DistributionLockRequirement", { enumerable: true, get: function () { return distribution_lock_env_1.DistributionLockRequirement; } });
|
|
55
58
|
Object.defineProperty(exports, "loadDistributionLockFromEnv", { enumerable: true, get: function () { return distribution_lock_env_1.loadDistributionLockFromEnv; } });
|
|
56
59
|
Object.defineProperty(exports, "readDistributionLockFile", { enumerable: true, get: function () { return distribution_lock_env_1.readDistributionLockFile; } });
|
|
@@ -73,8 +76,12 @@ Object.defineProperty(exports, "BootConvergenceState", { enumerable: true, get:
|
|
|
73
76
|
Object.defineProperty(exports, "DEFAULT_BOOT_CONVERGENCE_RETRY", { enumerable: true, get: function () { return boot_1.DEFAULT_BOOT_CONVERGENCE_RETRY; } });
|
|
74
77
|
Object.defineProperty(exports, "XEMA_BOOT_CONVERGENCE_RETRY", { enumerable: true, get: function () { return boot_1.XEMA_BOOT_CONVERGENCE_RETRY; } });
|
|
75
78
|
Object.defineProperty(exports, "XEMA_BOOT_CONVERGENCE_TASK", { enumerable: true, get: function () { return boot_1.XEMA_BOOT_CONVERGENCE_TASK; } });
|
|
76
|
-
var
|
|
77
|
-
Object.defineProperty(exports, "
|
|
79
|
+
var xema_peers_module_1 = require("./lib/peers/xema-peers.module");
|
|
80
|
+
Object.defineProperty(exports, "PeerCredential", { enumerable: true, get: function () { return xema_peers_module_1.PeerCredential; } });
|
|
81
|
+
Object.defineProperty(exports, "XemaPeersModule", { enumerable: true, get: function () { return xema_peers_module_1.XemaPeersModule; } });
|
|
82
|
+
Object.defineProperty(exports, "peerServiceTokenCallback", { enumerable: true, get: function () { return xema_peers_module_1.peerServiceTokenCallback; } });
|
|
83
|
+
var service_request_context_1 = require("./lib/request-context/service-request-context");
|
|
84
|
+
Object.defineProperty(exports, "discoverContextRequiringControllers", { enumerable: true, get: function () { return service_request_context_1.discoverContextRequiringControllers; } });
|
|
78
85
|
var service_descriptor_1 = require("./lib/service-descriptor");
|
|
79
86
|
Object.defineProperty(exports, "validateServiceDescriptor", { enumerable: true, get: function () { return service_descriptor_1.validateServiceDescriptor; } });
|
|
80
87
|
Object.defineProperty(exports, "ServiceDescriptorError", { enumerable: true, get: function () { return service_descriptor_1.ServiceDescriptorError; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,10 @@ export interface BootstrapXemaServiceOptions {
|
|
|
12
12
|
readonly corsAllowedOrigins?: readonly string[];
|
|
13
13
|
readonly swagger?: boolean | BootstrapSwaggerOptions;
|
|
14
14
|
readonly registerGlobalExceptionFilter?: boolean;
|
|
15
|
-
readonly
|
|
15
|
+
readonly rawBody?: boolean;
|
|
16
|
+
readonly beforeBodyParsers?: (app: NestExpressApplication) => void | Promise<void>;
|
|
16
17
|
readonly configureApp?: (app: NestExpressApplication) => void | Promise<void>;
|
|
18
|
+
readonly onPublicDocument?: (app: NestExpressApplication, publicDoc: OpenApiDoc) => void | Promise<void>;
|
|
17
19
|
}
|
|
18
20
|
export declare function bootstrapXemaService(options: BootstrapXemaServiceOptions): Promise<INestApplication>;
|
|
19
21
|
export interface CreatedXemaServiceApp {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-xema-service.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap-xema-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap-xema-service.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap-xema-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AASxD,OAAO,EAQL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAO1D,MAAM,WAAW,2BAA2B;IAE1C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAiBlC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAO5C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAK7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAWhC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAOhD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAOrD,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAMjD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAS3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAQnF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAS9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,UAAU,KAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AA+CD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAgG3B;AAGD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;CAC5C;AAkCD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC7C,WAAW,GAAE;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAO,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAsFhC;AAOD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -29,12 +29,22 @@ async function bootstrapXemaService(options) {
|
|
|
29
29
|
await initXemaServiceApp(app, publicDoc, logger, options.descriptor.name);
|
|
30
30
|
return app;
|
|
31
31
|
}
|
|
32
|
+
const CLOUDEVENTS_JSON_MEDIA_TYPE = 'application/cloudevents+json';
|
|
33
|
+
const CLOUDEVENTS_BODY_LIMIT = '1mb';
|
|
32
34
|
async function createXemaServiceApp(options, readEnv, nestOptions = {}) {
|
|
33
35
|
const app = await core_1.NestFactory.create(options.appModule, {
|
|
34
36
|
...nestOptions,
|
|
37
|
+
...(options.rawBody === true ? { rawBody: true } : {}),
|
|
35
38
|
cors: (0, bootstrap_internals_1.resolveCorsOptions)(options.corsAllowedOrigins, () => readEnv('CORS_ALLOWED_ORIGINS')),
|
|
36
39
|
});
|
|
40
|
+
if (options.beforeBodyParsers) {
|
|
41
|
+
await options.beforeBodyParsers(app);
|
|
42
|
+
}
|
|
37
43
|
(0, platform_common_1.applyStandardBodyParsers)(app);
|
|
44
|
+
app.useBodyParser('json', {
|
|
45
|
+
type: CLOUDEVENTS_JSON_MEDIA_TYPE,
|
|
46
|
+
limit: CLOUDEVENTS_BODY_LIMIT,
|
|
47
|
+
});
|
|
38
48
|
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
39
49
|
whitelist: true,
|
|
40
50
|
forbidNonWhitelisted: true,
|
|
@@ -43,9 +53,6 @@ async function createXemaServiceApp(options, readEnv, nestOptions = {}) {
|
|
|
43
53
|
if (options.registerGlobalExceptionFilter !== false) {
|
|
44
54
|
app.useGlobalFilters(new platform_common_1.GlobalExceptionFilter());
|
|
45
55
|
}
|
|
46
|
-
if (options.registerResponseEnvelopeInterceptor === true) {
|
|
47
|
-
app.useGlobalInterceptors(new platform_common_1.ResponseEnvelopeInterceptor());
|
|
48
|
-
}
|
|
49
56
|
if (options.configureApp) {
|
|
50
57
|
await options.configureApp(app);
|
|
51
58
|
}
|
|
@@ -67,6 +74,9 @@ async function createXemaServiceApp(options, readEnv, nestOptions = {}) {
|
|
|
67
74
|
? swaggerConfig
|
|
68
75
|
: { ...swaggerConfig, jwtIssuer })
|
|
69
76
|
: undefined;
|
|
77
|
+
if (publicDoc !== undefined && options.onPublicDocument) {
|
|
78
|
+
await options.onPublicDocument(app, publicDoc);
|
|
79
|
+
}
|
|
70
80
|
return { app, publicDoc };
|
|
71
81
|
}
|
|
72
82
|
async function initXemaServiceApp(app, publicDoc, logger, serviceName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-xema-service.js","sourceRoot":"","sources":["../../src/lib/bootstrap-xema-service.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"bootstrap-xema-service.js","sourceRoot":"","sources":["../../src/lib/bootstrap-xema-service.ts"],"names":[],"mappings":"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"}
|