@contractspec/integration.runtime 1.57.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/health.d.ts +14 -18
  2. package/dist/health.d.ts.map +1 -1
  3. package/dist/health.js +71 -68
  4. package/dist/index.d.ts +4 -8
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +828 -9
  7. package/dist/node/health.js +72 -0
  8. package/dist/node/index.js +827 -0
  9. package/dist/node/runtime.js +208 -0
  10. package/dist/node/secrets/env-secret-provider.js +158 -0
  11. package/dist/node/secrets/gcp-secret-manager.js +346 -0
  12. package/dist/node/secrets/index.js +549 -0
  13. package/dist/node/secrets/manager.js +182 -0
  14. package/dist/node/secrets/provider.js +73 -0
  15. package/dist/runtime.d.ts +86 -90
  16. package/dist/runtime.d.ts.map +1 -1
  17. package/dist/runtime.js +204 -181
  18. package/dist/secrets/env-secret-provider.d.ts +20 -23
  19. package/dist/secrets/env-secret-provider.d.ts.map +1 -1
  20. package/dist/secrets/env-secret-provider.js +157 -80
  21. package/dist/secrets/gcp-secret-manager.d.ts +25 -28
  22. package/dist/secrets/gcp-secret-manager.d.ts.map +1 -1
  23. package/dist/secrets/gcp-secret-manager.js +339 -222
  24. package/dist/secrets/index.d.ts +5 -5
  25. package/dist/secrets/index.d.ts.map +1 -0
  26. package/dist/secrets/index.js +549 -5
  27. package/dist/secrets/manager.d.ts +32 -35
  28. package/dist/secrets/manager.d.ts.map +1 -1
  29. package/dist/secrets/manager.js +180 -101
  30. package/dist/secrets/provider.d.ts +42 -45
  31. package/dist/secrets/provider.d.ts.map +1 -1
  32. package/dist/secrets/provider.js +69 -54
  33. package/package.json +76 -30
  34. package/dist/health.js.map +0 -1
  35. package/dist/runtime.js.map +0 -1
  36. package/dist/secrets/env-secret-provider.js.map +0 -1
  37. package/dist/secrets/gcp-secret-manager.js.map +0 -1
  38. package/dist/secrets/manager.js.map +0 -1
  39. package/dist/secrets/provider.js.map +0 -1
package/dist/health.d.ts CHANGED
@@ -1,22 +1,18 @@
1
- import { IntegrationContext, IntegrationTelemetryEmitter } from "./runtime.js";
2
- import { IntegrationConnectionHealth } from "@contractspec/lib.contracts/integrations/connection";
3
-
4
- //#region src/health.d.ts
5
- interface IntegrationHealthCheckResult extends IntegrationConnectionHealth {
6
- metadata?: Record<string, string>;
1
+ import type { IntegrationConnectionHealth } from '@contractspec/lib.contracts/integrations/connection';
2
+ import type { IntegrationContext, IntegrationTelemetryEmitter } from './runtime';
3
+ export interface IntegrationHealthCheckResult extends IntegrationConnectionHealth {
4
+ metadata?: Record<string, string>;
7
5
  }
8
- type IntegrationHealthCheckExecutor = (context: IntegrationContext) => Promise<void>;
9
- interface IntegrationHealthServiceOptions {
10
- telemetry?: IntegrationTelemetryEmitter;
11
- now?: () => Date;
6
+ export type IntegrationHealthCheckExecutor = (context: IntegrationContext) => Promise<void>;
7
+ export interface IntegrationHealthServiceOptions {
8
+ telemetry?: IntegrationTelemetryEmitter;
9
+ now?: () => Date;
12
10
  }
13
- declare class IntegrationHealthService {
14
- private readonly telemetry?;
15
- private readonly nowFn;
16
- constructor(options?: IntegrationHealthServiceOptions);
17
- check(context: IntegrationContext, executor: IntegrationHealthCheckExecutor): Promise<IntegrationHealthCheckResult>;
18
- private emitTelemetry;
11
+ export declare class IntegrationHealthService {
12
+ private readonly telemetry?;
13
+ private readonly nowFn;
14
+ constructor(options?: IntegrationHealthServiceOptions);
15
+ check(context: IntegrationContext, executor: IntegrationHealthCheckExecutor): Promise<IntegrationHealthCheckResult>;
16
+ private emitTelemetry;
19
17
  }
20
- //#endregion
21
- export { IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions };
22
18
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","names":[],"sources":["../src/health.ts"],"mappings":";;;;UAQiB,4BAAA,SAAqC,2BAAA;EACpD,QAAA,GAAW,MAAA;AAAA;AAAA,KAGD,8BAAA,IACV,OAAA,EAAS,kBAAA,KACN,OAAA;AAAA,UAEY,+BAAA;EACf,SAAA,GAAY,2BAAA;EACZ,GAAA,SAAY,IAAA;AAAA;AAAA,cAGD,wBAAA;EAAA,iBACM,SAAA;EAAA,iBACA,KAAA;cAEL,OAAA,GAAS,+BAAA;EAKf,KAAA,CACJ,OAAA,EAAS,kBAAA,EACT,QAAA,EAAU,8BAAA,GACT,OAAA,CAAQ,4BAAA;EAAA,QA4BH,aAAA;AAAA"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AAEvG,OAAO,KAAK,EACV,kBAAkB,EAElB,2BAA2B,EAC5B,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;gBAEvB,OAAO,GAAE,+BAAoC;IAKnD,KAAK,CACT,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,8BAA8B,GACvC,OAAO,CAAC,4BAA4B,CAAC;IA4BxC,OAAO,CAAC,aAAa;CAgCtB"}
package/dist/health.js CHANGED
@@ -1,70 +1,73 @@
1
- //#region src/health.ts
2
- var IntegrationHealthService = class {
3
- telemetry;
4
- nowFn;
5
- constructor(options = {}) {
6
- this.telemetry = options.telemetry;
7
- this.nowFn = options.now ?? (() => /* @__PURE__ */ new Date());
8
- }
9
- async check(context, executor) {
10
- const start = this.nowFn();
11
- try {
12
- await executor(context);
13
- const end = this.nowFn();
14
- const result = {
15
- status: "connected",
16
- checkedAt: end,
17
- latencyMs: end.getTime() - start.getTime()
18
- };
19
- this.emitTelemetry(context, result, "success");
20
- return result;
21
- } catch (error) {
22
- const end = this.nowFn();
23
- const message = error instanceof Error ? error.message : "Unknown error";
24
- const code = extractErrorCode(error);
25
- const result = {
26
- status: "error",
27
- checkedAt: end,
28
- latencyMs: end.getTime() - start.getTime(),
29
- errorMessage: message,
30
- errorCode: code
31
- };
32
- this.emitTelemetry(context, result, "error", code, message);
33
- return result;
34
- }
35
- }
36
- emitTelemetry(context, result, status, errorCode, errorMessage) {
37
- if (!this.telemetry) return;
38
- this.telemetry.record({
39
- tenantId: context.tenantId,
40
- appId: context.appId,
41
- environment: context.environment,
42
- slotId: context.slotId,
43
- integrationKey: context.spec.meta.key,
44
- integrationVersion: context.spec.meta.version,
45
- connectionId: context.connection.meta.id,
46
- status,
47
- durationMs: result.latencyMs,
48
- errorCode,
49
- errorMessage,
50
- occurredAt: result.checkedAt ?? this.nowFn(),
51
- metadata: {
52
- ...context.trace ? {
53
- blueprint: `${context.trace.blueprintName}.v${context.trace.blueprintVersion}`,
54
- configVersion: context.trace.configVersion
55
- } : {},
56
- status: result.status
57
- }
58
- });
59
- }
60
- };
1
+ // @bun
2
+ // src/health.ts
3
+ class IntegrationHealthService {
4
+ telemetry;
5
+ nowFn;
6
+ constructor(options = {}) {
7
+ this.telemetry = options.telemetry;
8
+ this.nowFn = options.now ?? (() => new Date);
9
+ }
10
+ async check(context, executor) {
11
+ const start = this.nowFn();
12
+ try {
13
+ await executor(context);
14
+ const end = this.nowFn();
15
+ const result = {
16
+ status: "connected",
17
+ checkedAt: end,
18
+ latencyMs: end.getTime() - start.getTime()
19
+ };
20
+ this.emitTelemetry(context, result, "success");
21
+ return result;
22
+ } catch (error) {
23
+ const end = this.nowFn();
24
+ const message = error instanceof Error ? error.message : "Unknown error";
25
+ const code = extractErrorCode(error);
26
+ const result = {
27
+ status: "error",
28
+ checkedAt: end,
29
+ latencyMs: end.getTime() - start.getTime(),
30
+ errorMessage: message,
31
+ errorCode: code
32
+ };
33
+ this.emitTelemetry(context, result, "error", code, message);
34
+ return result;
35
+ }
36
+ }
37
+ emitTelemetry(context, result, status, errorCode, errorMessage) {
38
+ if (!this.telemetry)
39
+ return;
40
+ this.telemetry.record({
41
+ tenantId: context.tenantId,
42
+ appId: context.appId,
43
+ environment: context.environment,
44
+ slotId: context.slotId,
45
+ integrationKey: context.spec.meta.key,
46
+ integrationVersion: context.spec.meta.version,
47
+ connectionId: context.connection.meta.id,
48
+ status,
49
+ durationMs: result.latencyMs,
50
+ errorCode,
51
+ errorMessage,
52
+ occurredAt: result.checkedAt ?? this.nowFn(),
53
+ metadata: {
54
+ ...context.trace ? {
55
+ blueprint: `${context.trace.blueprintName}.v${context.trace.blueprintVersion}`,
56
+ configVersion: context.trace.configVersion
57
+ } : {},
58
+ status: result.status
59
+ }
60
+ });
61
+ }
62
+ }
61
63
  function extractErrorCode(error) {
62
- if (!error || typeof error !== "object") return void 0;
63
- const candidate = error;
64
- if (candidate.code == null) return void 0;
65
- return String(candidate.code);
64
+ if (!error || typeof error !== "object")
65
+ return;
66
+ const candidate = error;
67
+ if (candidate.code == null)
68
+ return;
69
+ return String(candidate.code);
66
70
  }
67
-
68
- //#endregion
69
- export { IntegrationHealthService };
70
- //# sourceMappingURL=health.js.map
71
+ export {
72
+ IntegrationHealthService
73
+ };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,4 @@
1
- import { ParsedSecretUri, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, normalizeSecretPayload, parseSecretUri } from "./secrets/provider.js";
2
- import { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady } from "./runtime.js";
3
- import { IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions } from "./health.js";
4
- import { GcpSecretManagerProvider } from "./secrets/gcp-secret-manager.js";
5
- import { EnvSecretProvider } from "./secrets/env-secret-provider.js";
6
- import { SecretProviderManager, SecretProviderManagerOptions } from "./secrets/manager.js";
7
- import "./secrets/index.js";
8
- export { EnvSecretProvider, GcpSecretManagerProvider, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, ParsedSecretUri, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretProviderManager, SecretProviderManagerOptions, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, connectionStatusLabel, ensureConnectionReady, normalizeSecretPayload, parseSecretUri };
1
+ export * from './runtime';
2
+ export * from './health';
3
+ export * from './secrets';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}