@xemahq/service-registry-nest 0.3.0 → 0.3.2
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/openapi-extraction.d.ts +4 -0
- package/dist/lib/openapi-extraction.d.ts.map +1 -0
- package/dist/lib/openapi-extraction.js +14 -0
- package/dist/lib/openapi-extraction.js.map +1 -0
- package/dist/lib/parse-kernel-state-profile.d.ts.map +1 -1
- package/dist/lib/parse-kernel-state-profile.js.map +1 -1
- package/dist/lib/resolve-http-url-eagerly.d.ts.map +1 -1
- package/dist/lib/resolve-http-url-eagerly.js +4 -0
- package/dist/lib/resolve-http-url-eagerly.js.map +1 -1
- package/dist/lib/service-registry.module.d.ts +4 -1
- package/dist/lib/service-registry.module.d.ts.map +1 -1
- package/dist/lib/service-registry.module.js +71 -1
- package/dist/lib/service-registry.module.js.map +1 -1
- package/package.json +12 -3
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { InjectService, typedServiceClientToken, } from './lib/inject-service.de
|
|
|
4
4
|
export { KERNEL_STATE_TOKEN, type KernelStateFactory, } from './lib/kernel-state-token';
|
|
5
5
|
export { ServiceRegistryBootstrap, ServiceRegistryModule, SERVICE_REGISTRY_TOKEN, SERVICE_TOKEN_PROVIDER_TOKEN, type ServiceRegistryModuleAsyncOptions, type ServiceRegistryModuleOptions, } from './lib/service-registry.module';
|
|
6
6
|
export { IdentityBackedServiceTokenProvider, type IdentityTokenSource, } from './lib/identity-backed-service-token-provider';
|
|
7
|
+
export { OPENAPI_EXTRACTION_ENV_VAR, isOpenApiExtraction, openApiExtractionStubUrl, } from './lib/openapi-extraction';
|
|
7
8
|
export { createOpenApiStubRegistry } from './lib/openapi-stub-registry';
|
|
8
9
|
export { parseKernelStateProfile } from './lib/parse-kernel-state-profile';
|
|
9
10
|
export { resolveHttpUrl } from './lib/resolve-http-url';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,UAAU,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kCAAkC,EAClC,KAAK,mBAAmB,GACzB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,UAAU,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kCAAkC,EAClC,KAAK,mBAAmB,GACzB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TypedServiceClientMethod = exports.TypedServiceClient = exports.ServiceUnavailableError = exports.SERVICE_TOKEN_ENV_VAR = exports.EnvServiceTokenProvider = exports.KernelStateServiceRegistry = exports.resolveHttpUrlEagerly = exports.resolveHttpUrl = exports.parseKernelStateProfile = exports.createOpenApiStubRegistry = exports.IdentityBackedServiceTokenProvider = exports.SERVICE_TOKEN_PROVIDER_TOKEN = exports.SERVICE_REGISTRY_TOKEN = exports.ServiceRegistryModule = exports.ServiceRegistryBootstrap = exports.KERNEL_STATE_TOKEN = exports.typedServiceClientToken = exports.InjectService = exports.resolveServiceInstanceId = exports.buildSelfHttpEndpointUrlFromEnv = exports.buildSelfHttpEndpointUrl = exports.resolveAdapterKind = exports.SERVICE_REGISTRY_ADAPTER_ENV_VAR = exports.ServiceRegistryAdapterKind = void 0;
|
|
3
|
+
exports.TypedServiceClientMethod = exports.TypedServiceClient = exports.ServiceUnavailableError = exports.SERVICE_TOKEN_ENV_VAR = exports.EnvServiceTokenProvider = exports.KernelStateServiceRegistry = exports.resolveHttpUrlEagerly = exports.resolveHttpUrl = exports.parseKernelStateProfile = exports.createOpenApiStubRegistry = exports.openApiExtractionStubUrl = exports.isOpenApiExtraction = exports.OPENAPI_EXTRACTION_ENV_VAR = exports.IdentityBackedServiceTokenProvider = exports.SERVICE_TOKEN_PROVIDER_TOKEN = exports.SERVICE_REGISTRY_TOKEN = exports.ServiceRegistryModule = exports.ServiceRegistryBootstrap = exports.KERNEL_STATE_TOKEN = exports.typedServiceClientToken = exports.InjectService = exports.resolveServiceInstanceId = exports.buildSelfHttpEndpointUrlFromEnv = exports.buildSelfHttpEndpointUrl = exports.resolveAdapterKind = exports.SERVICE_REGISTRY_ADAPTER_ENV_VAR = exports.ServiceRegistryAdapterKind = void 0;
|
|
4
4
|
var adapter_kind_1 = require("./lib/adapter-kind");
|
|
5
5
|
Object.defineProperty(exports, "ServiceRegistryAdapterKind", { enumerable: true, get: function () { return adapter_kind_1.ServiceRegistryAdapterKind; } });
|
|
6
6
|
Object.defineProperty(exports, "SERVICE_REGISTRY_ADAPTER_ENV_VAR", { enumerable: true, get: function () { return adapter_kind_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR; } });
|
|
@@ -21,6 +21,10 @@ Object.defineProperty(exports, "SERVICE_REGISTRY_TOKEN", { enumerable: true, get
|
|
|
21
21
|
Object.defineProperty(exports, "SERVICE_TOKEN_PROVIDER_TOKEN", { enumerable: true, get: function () { return service_registry_module_1.SERVICE_TOKEN_PROVIDER_TOKEN; } });
|
|
22
22
|
var identity_backed_service_token_provider_1 = require("./lib/identity-backed-service-token-provider");
|
|
23
23
|
Object.defineProperty(exports, "IdentityBackedServiceTokenProvider", { enumerable: true, get: function () { return identity_backed_service_token_provider_1.IdentityBackedServiceTokenProvider; } });
|
|
24
|
+
var openapi_extraction_1 = require("./lib/openapi-extraction");
|
|
25
|
+
Object.defineProperty(exports, "OPENAPI_EXTRACTION_ENV_VAR", { enumerable: true, get: function () { return openapi_extraction_1.OPENAPI_EXTRACTION_ENV_VAR; } });
|
|
26
|
+
Object.defineProperty(exports, "isOpenApiExtraction", { enumerable: true, get: function () { return openapi_extraction_1.isOpenApiExtraction; } });
|
|
27
|
+
Object.defineProperty(exports, "openApiExtractionStubUrl", { enumerable: true, get: function () { return openapi_extraction_1.openApiExtractionStubUrl; } });
|
|
24
28
|
var openapi_stub_registry_1 = require("./lib/openapi-stub-registry");
|
|
25
29
|
Object.defineProperty(exports, "createOpenApiStubRegistry", { enumerable: true, get: function () { return openapi_stub_registry_1.createOpenApiStubRegistry; } });
|
|
26
30
|
var parse_kernel_state_profile_1 = require("./lib/parse-kernel-state-profile");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAI4B;AAH1B,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAChC,kHAAA,kBAAkB,OAAA;AAEpB,yEAKuC;AAJrC,mIAAA,wBAAwB,OAAA;AACxB,0IAAA,+BAA+B,OAAA;AAC/B,mIAAA,wBAAwB,OAAA;AAG1B,2EAGwC;AAFtC,yHAAA,aAAa,OAAA;AACb,mIAAA,uBAAuB,OAAA;AAEzB,+DAGkC;AAFhC,wHAAA,kBAAkB,OAAA;AAGpB,yEAOuC;AANrC,mIAAA,wBAAwB,OAAA;AACxB,gIAAA,qBAAqB,OAAA;AACrB,iIAAA,sBAAsB,OAAA;AACtB,uIAAA,4BAA4B,OAAA;AAI9B,uGAGsD;AAFpD,4JAAA,kCAAkC,OAAA;AAGpC,qEAAwE;AAA/D,kIAAA,yBAAyB,OAAA;AAClC,+EAA2E;AAAlE,qIAAA,uBAAuB,OAAA;AAChC,2DAAwD;AAA/C,kHAAA,cAAc,OAAA;AACvB,2EAAiG;AAAxF,iIAAA,qBAAqB,OAAA;AAC9B,qEAAyE;AAAhE,mIAAA,0BAA0B,OAAA;AACnC,uEAIsC;AAHpC,iIAAA,uBAAuB,OAAA;AACvB,+HAAA,qBAAqB,OAAA;AAGvB,6EAA0E;AAAjE,oIAAA,uBAAuB,OAAA;AAChC,mEAKoC;AAJlC,0HAAA,kBAAkB,OAAA;AAClB,gIAAA,wBAAwB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAI4B;AAH1B,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAChC,kHAAA,kBAAkB,OAAA;AAEpB,yEAKuC;AAJrC,mIAAA,wBAAwB,OAAA;AACxB,0IAAA,+BAA+B,OAAA;AAC/B,mIAAA,wBAAwB,OAAA;AAG1B,2EAGwC;AAFtC,yHAAA,aAAa,OAAA;AACb,mIAAA,uBAAuB,OAAA;AAEzB,+DAGkC;AAFhC,wHAAA,kBAAkB,OAAA;AAGpB,yEAOuC;AANrC,mIAAA,wBAAwB,OAAA;AACxB,gIAAA,qBAAqB,OAAA;AACrB,iIAAA,sBAAsB,OAAA;AACtB,uIAAA,4BAA4B,OAAA;AAI9B,uGAGsD;AAFpD,4JAAA,kCAAkC,OAAA;AAGpC,+DAIkC;AAHhC,gIAAA,0BAA0B,OAAA;AAC1B,yHAAA,mBAAmB,OAAA;AACnB,8HAAA,wBAAwB,OAAA;AAE1B,qEAAwE;AAA/D,kIAAA,yBAAyB,OAAA;AAClC,+EAA2E;AAAlE,qIAAA,uBAAuB,OAAA;AAChC,2DAAwD;AAA/C,kHAAA,cAAc,OAAA;AACvB,2EAAiG;AAAxF,iIAAA,qBAAqB,OAAA;AAC9B,qEAAyE;AAAhE,mIAAA,0BAA0B,OAAA;AACnC,uEAIsC;AAHpC,iIAAA,uBAAuB,OAAA;AACvB,+HAAA,qBAAqB,OAAA;AAGvB,6EAA0E;AAAjE,oIAAA,uBAAuB,OAAA;AAChC,mEAKoC;AAJlC,0HAAA,kBAAkB,OAAA;AAClB,gIAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-extraction.d.ts","sourceRoot":"","sources":["../../src/lib/openapi-extraction.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,0BAA0B,EAAG,yBAAkC,CAAC;AAU7E,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AASD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OPENAPI_EXTRACTION_ENV_VAR = void 0;
|
|
4
|
+
exports.isOpenApiExtraction = isOpenApiExtraction;
|
|
5
|
+
exports.openApiExtractionStubUrl = openApiExtractionStubUrl;
|
|
6
|
+
exports.OPENAPI_EXTRACTION_ENV_VAR = 'XEMA_OPENAPI_EXTRACTION';
|
|
7
|
+
const OPENAPI_EXTRACTION_ACTIVE_VALUE = '1';
|
|
8
|
+
function isOpenApiExtraction() {
|
|
9
|
+
return process.env[exports.OPENAPI_EXTRACTION_ENV_VAR] === OPENAPI_EXTRACTION_ACTIVE_VALUE;
|
|
10
|
+
}
|
|
11
|
+
function openApiExtractionStubUrl(serviceName) {
|
|
12
|
+
return `http://${serviceName}.openapi-extraction.invalid`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=openapi-extraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-extraction.js","sourceRoot":"","sources":["../../src/lib/openapi-extraction.ts"],"names":[],"mappings":";;;AAyBA,kDAEC;AASD,4DAEC;AAvBY,QAAA,0BAA0B,GAAG,yBAAkC,CAAC;AAG7E,MAAM,+BAA+B,GAAG,GAAY,CAAC;AAOrD,SAAgB,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,kCAA0B,CAAC,KAAK,+BAA+B,CAAC;AACrF,CAAC;AASD,SAAgB,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,UAAU,WAAW,6BAA6B,CAAC;AAC5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-kernel-state-profile.d.ts","sourceRoot":"","sources":["../../src/lib/parse-kernel-state-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-kernel-state-profile.d.ts","sourceRoot":"","sources":["../../src/lib/parse-kernel-state-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAclE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,kBAAkB,CAepB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-kernel-state-profile.js","sourceRoot":"","sources":["../../src/lib/parse-kernel-state-profile.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"parse-kernel-state-profile.js","sourceRoot":"","sources":["../../src/lib/parse-kernel-state-profile.ts"],"names":[],"mappings":";;AAcA,0DAiBC;AA/BD,uEAAkE;AAclE,SAAgB,uBAAuB,CACrC,GAAuB;IAEvB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,yCAAkB,CAAC,cAAc,CAAC;IAC3C,CAAC;IACD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,yCAAkB,CAAC,GAAG,CAAC;QAC5B,KAAK,yCAAkB,CAAC,cAAc,CAAC;QACvC,KAAK,yCAAkB,CAAC,OAAO;YAC7B,OAAO,GAAG,CAAC;QACb;YACE,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,sBAAsB;gBAC7D,GAAG,MAAM,CAAC,MAAM,CAAC,yCAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-http-url-eagerly.d.ts","sourceRoot":"","sources":["../../src/lib/resolve-http-url-eagerly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-http-url-eagerly.d.ts","sourceRoot":"","sources":["../../src/lib/resolve-http-url-eagerly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAUzE,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA2CD,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAyCjB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveHttpUrlEagerly = resolveHttpUrlEagerly;
|
|
4
|
+
const openapi_extraction_1 = require("./openapi-extraction");
|
|
4
5
|
const resolve_http_url_1 = require("./resolve-http-url");
|
|
5
6
|
const service_registry_impl_1 = require("./service-registry-impl");
|
|
6
7
|
const DEFAULT_DEADLINE_MS = 30_000;
|
|
@@ -16,6 +17,9 @@ function errorMessage(err) {
|
|
|
16
17
|
return err instanceof Error ? err.message : String(err);
|
|
17
18
|
}
|
|
18
19
|
async function resolveHttpUrlEagerly(kernelState, serviceName, options) {
|
|
20
|
+
if ((0, openapi_extraction_1.isOpenApiExtraction)()) {
|
|
21
|
+
return (0, openapi_extraction_1.openApiExtractionStubUrl)(serviceName);
|
|
22
|
+
}
|
|
19
23
|
const deadlineMs = options?.deadlineMs ?? DEFAULT_DEADLINE_MS;
|
|
20
24
|
const initialDelayMs = options?.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;
|
|
21
25
|
const maxDelayMs = options?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-http-url-eagerly.js","sourceRoot":"","sources":["../../src/lib/resolve-http-url-eagerly.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"resolve-http-url-eagerly.js","sourceRoot":"","sources":["../../src/lib/resolve-http-url-eagerly.ts"],"names":[],"mappings":";;AA4DA,sDA6CC;AAvGD,6DAG8B;AAC9B,yDAAoD;AACpD,mEAAqE;AAYrE,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAErC,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AA2BM,KAAK,UAAU,qBAAqB,CACzC,WAAwB,EACxB,WAAmB,EACnB,OAA6B;IAO7B,IAAI,IAAA,wCAAmB,GAAE,EAAE,CAAC;QAC1B,OAAO,IAAA,6CAAwB,EAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,mBAAmB,CAAC;IAC9D,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,wBAAwB,CAAC;IAC3E,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,oBAAoB,CAAC;IAE/D,MAAM,QAAQ,GAAG,IAAI,kDAA0B,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QACzC,IAAI,KAAK,GAAG,cAAc,CAAC;QAC3B,IAAI,SAAkB,CAAC;QACvB,SAAS,CAAC;YACR,IAAI,CAAC;gBACH,OAAO,MAAM,IAAA,iCAAc,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,CAAC;gBAChB,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;oBACnB,MAAM;gBACR,CAAC;gBACD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,gCAAgC;YACpE,2BAA2B,MAAM,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -26,8 +26,11 @@ export declare class ServiceRegistryBootstrap implements OnApplicationBootstrap,
|
|
|
26
26
|
private renewTimer;
|
|
27
27
|
private consecutiveFailures;
|
|
28
28
|
private currentLease;
|
|
29
|
+
private shuttingDown;
|
|
29
30
|
constructor(options: ServiceRegistryModuleOptions, registry: ServiceRegistry);
|
|
30
|
-
onApplicationBootstrap():
|
|
31
|
+
onApplicationBootstrap(): void;
|
|
32
|
+
private registerWhenListening;
|
|
33
|
+
private waitForSelfListening;
|
|
31
34
|
onApplicationShutdown(): Promise<void>;
|
|
32
35
|
private renewOnce;
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.module.d.ts","sourceRoot":"","sources":["../../src/lib/service-registry.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-registry.module.d.ts","sourceRoot":"","sources":["../../src/lib/service-registry.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAE/B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EAChB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,0BAA0B,EAE3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAQlC,eAAO,MAAM,sBAAsB,eAElC,CAAC;AAOF,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAuGF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,cAAc,GAAG,yBAAyB,CAAC,CAAC;IAC5E,QAAQ,CAAC,UAAU,EAAE,CACnB,GAAG,IAAI,EAAE,KAAK,EAAE,KACb,OAAO,CAAC,4BAA4B,CAAC,GAAG,4BAA4B,CAAC;IAQ1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAMD,qBACa,wBACX,YAAW,sBAAsB,EAAE,qBAAqB;IAUtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,YAAY,CAAS;gBAIV,OAAO,EAAE,4BAA4B,EAErC,QAAQ,EAAE,eAAe;IAGrC,sBAAsB,IAAI,IAAI;YAWvB,qBAAqB;YA6BrB,oBAAoB;IAwBrB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;YAuBrC,SAAS;CAuBxB;AAgBD,qBACa,qBAAqB;WAClB,OAAO,CAAC,OAAO,EAAE,4BAA4B,GAAG,aAAa;WAoB7D,YAAY,CACxB,SAAS,EAAE,iCAAiC,GAC3C,aAAa;CAqBjB"}
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
var ServiceRegistryBootstrap_1, ServiceRegistryModule_1;
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.ServiceRegistryModule = exports.ServiceRegistryBootstrap = exports.SERVICE_TOKEN_PROVIDER_TOKEN = exports.SERVICE_REGISTRY_TOKEN = void 0;
|
|
17
|
+
const node_net_1 = require("node:net");
|
|
17
18
|
const common_1 = require("@nestjs/common");
|
|
18
19
|
const adapter_kind_1 = require("./adapter-kind");
|
|
19
20
|
const kernel_state_token_1 = require("./kernel-state-token");
|
|
@@ -26,6 +27,45 @@ exports.SERVICE_TOKEN_PROVIDER_TOKEN = Symbol.for('@xemahq/service-registry-nest
|
|
|
26
27
|
const OPTIONS_TOKEN = Symbol.for('@xemahq/service-registry-nest/module-options');
|
|
27
28
|
const DEFAULT_RENEW_INTERVAL_SECONDS = 15;
|
|
28
29
|
const MAX_CONSECUTIVE_RENEW_FAILURES = 3;
|
|
30
|
+
const SELF_LISTEN_DEADLINE_MS = 30_000;
|
|
31
|
+
function selfListenTarget(descriptor) {
|
|
32
|
+
const url = descriptor.endpoints[0]?.url;
|
|
33
|
+
if (url === undefined) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
let parsed;
|
|
37
|
+
try {
|
|
38
|
+
parsed = new URL(url);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const port = parsed.port !== '' ? Number(parsed.port) : parsed.protocol === 'https:' ? 443 : 80;
|
|
47
|
+
if (!Number.isInteger(port) || port <= 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return { host: '127.0.0.1', port };
|
|
51
|
+
}
|
|
52
|
+
function tcpPortAccepts(host, port) {
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
const socket = (0, node_net_1.connect)({ host, port });
|
|
55
|
+
const done = (ok) => {
|
|
56
|
+
socket.removeAllListeners();
|
|
57
|
+
socket.destroy();
|
|
58
|
+
resolve(ok);
|
|
59
|
+
};
|
|
60
|
+
socket.setTimeout(1_000);
|
|
61
|
+
socket.once('connect', () => done(true));
|
|
62
|
+
socket.once('error', () => done(false));
|
|
63
|
+
socket.once('timeout', () => done(false));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function sleep(ms) {
|
|
67
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
68
|
+
}
|
|
29
69
|
let ServiceRegistryBootstrap = ServiceRegistryBootstrap_1 = class ServiceRegistryBootstrap {
|
|
30
70
|
options;
|
|
31
71
|
registry;
|
|
@@ -33,11 +73,19 @@ let ServiceRegistryBootstrap = ServiceRegistryBootstrap_1 = class ServiceRegistr
|
|
|
33
73
|
renewTimer = null;
|
|
34
74
|
consecutiveFailures = 0;
|
|
35
75
|
currentLease = null;
|
|
76
|
+
shuttingDown = false;
|
|
36
77
|
constructor(options, registry) {
|
|
37
78
|
this.options = options;
|
|
38
79
|
this.registry = registry;
|
|
39
80
|
}
|
|
40
|
-
|
|
81
|
+
onApplicationBootstrap() {
|
|
82
|
+
void this.registerWhenListening();
|
|
83
|
+
}
|
|
84
|
+
async registerWhenListening() {
|
|
85
|
+
await this.waitForSelfListening();
|
|
86
|
+
if (this.shuttingDown) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
41
89
|
const adapterKind = (0, adapter_kind_1.resolveAdapterKind)(this.options.adapter);
|
|
42
90
|
this.currentLease = await this.registry.register(this.options.descriptor);
|
|
43
91
|
this.logger.log(`Registered ${this.options.descriptor.name}/${this.options.descriptor.instanceId} ` +
|
|
@@ -50,7 +98,29 @@ let ServiceRegistryBootstrap = ServiceRegistryBootstrap_1 = class ServiceRegistr
|
|
|
50
98
|
}, intervalMs);
|
|
51
99
|
this.renewTimer.unref?.();
|
|
52
100
|
}
|
|
101
|
+
async waitForSelfListening() {
|
|
102
|
+
const target = selfListenTarget(this.options.descriptor);
|
|
103
|
+
if (target === null) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const deadline = Date.now() + SELF_LISTEN_DEADLINE_MS;
|
|
107
|
+
let delayMs = 50;
|
|
108
|
+
for (;;) {
|
|
109
|
+
if (this.shuttingDown || (await tcpPortAccepts(target.host, target.port))) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (Date.now() >= deadline) {
|
|
113
|
+
this.logger.warn(`${this.options.descriptor.name}: self-listen probe ` +
|
|
114
|
+
`(${target.host}:${String(target.port)}) did not confirm within ` +
|
|
115
|
+
`${String(SELF_LISTEN_DEADLINE_MS)}ms — registering anyway.`);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
await sleep(Math.min(delayMs, deadline - Date.now()));
|
|
119
|
+
delayMs = Math.min(delayMs * 2, 500);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
53
122
|
async onApplicationShutdown() {
|
|
123
|
+
this.shuttingDown = true;
|
|
54
124
|
if (this.renewTimer !== null) {
|
|
55
125
|
clearInterval(this.renewTimer);
|
|
56
126
|
this.renewTimer = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.module.js","sourceRoot":"","sources":["../../src/lib/service-registry.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAWwB;AAQxB,iDAGwB;AACxB,6DAG8B;AAC9B,yEAAqE;AACrE,mEAAqE;AACrE,qEAGkC;AAClC,iEAA4D;AAO/C,QAAA,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAC9C,wCAAwC,CACzC,CAAC;AAOW,QAAA,4BAA4B,GAAG,MAAM,CAAC,GAAG,CACpD,8CAA8C,CAC/C,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAC9B,8CAA8C,CAC/C,CAAC;AAMF,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAQ1C,MAAM,8BAA8B,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"service-registry.module.js","sourceRoot":"","sources":["../../src/lib/service-registry.module.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/service-registry-nest",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "NestJS runtime SDK for the Xema OS Service Registry
|
|
3
|
+
"version": "0.3.2",
|
|
4
|
+
"description": "NestJS runtime SDK for the Xema OS Service Registry. Provides `ServiceRegistryModule.forRootAsync()` — registers the host service's `ServiceDescriptor` against KernelState at boot, renews the lease on a heartbeat, removes the entry on shutdown, and exposes the `@InjectService(name)` decorator that hands consumers a typed HTTP client whose base URL is resolved dynamically from the registry on every call. The SDK is adapter-agnostic; the `KernelState` instance is injected via a factory so the same code runs against a SQLite-backed dev adapter and an etcd-backed cluster adapter.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
|
|
7
|
+
"homepage": "https://xema.dev",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/xema-dev/xema-kernel-sdk.git",
|
|
11
|
+
"directory": "packages/sdks/service-registry-nest"
|
|
12
|
+
},
|
|
13
|
+
"bugs": "https://github.com/xema-dev/xema-kernel-sdk/issues",
|
|
5
14
|
"publishConfig": {
|
|
6
15
|
"registry": "https://registry.npmjs.org/",
|
|
7
16
|
"access": "public"
|
|
@@ -21,7 +30,7 @@
|
|
|
21
30
|
"reflect-metadata": "0.2.2",
|
|
22
31
|
"ts-jest": "^29.4.9",
|
|
23
32
|
"typescript": "5.9.3",
|
|
24
|
-
"@xemahq/kernel-contracts": "^0.
|
|
33
|
+
"@xemahq/kernel-contracts": "^0.39.0"
|
|
25
34
|
},
|
|
26
35
|
"peerDependencies": {
|
|
27
36
|
"@nestjs/common": "^10 || ^11",
|