@bleedingdev/modern-js-server-runtime-extensions 0.0.0-trusted-publisher-bootstrap

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/dist/cjs/contractGateAutopilot.js +162 -0
  4. package/dist/cjs/contractGateSnapshotStore.js +253 -0
  5. package/dist/cjs/env.js +58 -0
  6. package/dist/cjs/index.js +162 -0
  7. package/dist/cjs/mfCache.js +106 -0
  8. package/dist/cjs/moduleFederationCss.js +285 -0
  9. package/dist/cjs/runtimeFallbackSignal.js +311 -0
  10. package/dist/cjs/telemetry.js +373 -0
  11. package/dist/cjs/telemetryCore.js +819 -0
  12. package/dist/esm/contractGateAutopilot.mjs +124 -0
  13. package/dist/esm/contractGateSnapshotStore.mjs +190 -0
  14. package/dist/esm/env.mjs +17 -0
  15. package/dist/esm/index.mjs +6 -0
  16. package/dist/esm/mfCache.mjs +55 -0
  17. package/dist/esm/moduleFederationCss.mjs +225 -0
  18. package/dist/esm/runtimeFallbackSignal.mjs +222 -0
  19. package/dist/esm/telemetry.mjs +275 -0
  20. package/dist/esm/telemetryCore.mjs +759 -0
  21. package/dist/esm-node/contractGateAutopilot.mjs +125 -0
  22. package/dist/esm-node/contractGateSnapshotStore.mjs +192 -0
  23. package/dist/esm-node/env.mjs +18 -0
  24. package/dist/esm-node/index.mjs +7 -0
  25. package/dist/esm-node/mfCache.mjs +56 -0
  26. package/dist/esm-node/moduleFederationCss.mjs +226 -0
  27. package/dist/esm-node/runtimeFallbackSignal.mjs +223 -0
  28. package/dist/esm-node/telemetry.mjs +276 -0
  29. package/dist/esm-node/telemetryCore.mjs +760 -0
  30. package/dist/types/contractGateAutopilot.d.ts +35 -0
  31. package/dist/types/contractGateSnapshotStore.d.ts +57 -0
  32. package/dist/types/env.d.ts +40 -0
  33. package/dist/types/index.d.ts +6 -0
  34. package/dist/types/mfCache.d.ts +27 -0
  35. package/dist/types/moduleFederationCss.d.ts +87 -0
  36. package/dist/types/runtimeFallbackSignal.d.ts +94 -0
  37. package/dist/types/telemetry.d.ts +12 -0
  38. package/dist/types/telemetryCore.d.ts +257 -0
  39. package/package.json +69 -0
  40. package/rslib.config.mts +4 -0
  41. package/rstest.config.mts +7 -0
  42. package/src/contractGateAutopilot.ts +247 -0
  43. package/src/contractGateSnapshotStore.ts +420 -0
  44. package/src/env.ts +63 -0
  45. package/src/index.ts +84 -0
  46. package/src/mfCache.ts +119 -0
  47. package/src/moduleFederationCss.ts +473 -0
  48. package/src/runtimeFallbackSignal.ts +584 -0
  49. package/src/telemetry.ts +554 -0
  50. package/src/telemetryCore.ts +1332 -0
  51. package/tests/contractGateAutopilot.test.ts +203 -0
  52. package/tests/contractGateSnapshotStore.test.ts +223 -0
  53. package/tests/env.test.ts +73 -0
  54. package/tests/helpers.ts +19 -0
  55. package/tests/mfCache.test.ts +150 -0
  56. package/tests/moduleFederationCss.test.ts +392 -0
  57. package/tests/registration.test.ts +112 -0
  58. package/tests/telemetry.test.ts +360 -0
  59. package/tests/telemetryAutopilot.test.ts +993 -0
  60. package/tests/telemetryCanaryOrchestrator.test.ts +140 -0
  61. package/tests/telemetryLifecycle.test.ts +168 -0
  62. package/tests/telemetryTraceparent.test.ts +167 -0
  63. package/tests/tsconfig.json +11 -0
  64. package/tsconfig.json +10 -0
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT: ()=>external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT,
32
+ DEFAULT_RUNTIME_STATUS_ENDPOINT: ()=>external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_STATUS_ENDPOINT,
33
+ TelemetryCanaryOrchestrator: ()=>external_telemetryCore_js_namespaceObject.TelemetryCanaryOrchestrator,
34
+ TelemetryRegistry: ()=>external_telemetryCore_js_namespaceObject.TelemetryRegistry,
35
+ TelemetryStartupHealthError: ()=>external_telemetryCore_js_namespaceObject.TelemetryStartupHealthError,
36
+ createOtlpTelemetryExporter: ()=>external_telemetryCore_js_namespaceObject.createOtlpTelemetryExporter,
37
+ createRuntimeFallbackSignalRuntimeState: ()=>external_runtimeFallbackSignal_js_namespaceObject.createRuntimeFallbackSignalRuntimeState,
38
+ createRuntimeSignalError: ()=>external_runtimeFallbackSignal_js_namespaceObject.createRuntimeSignalError,
39
+ createTelemetryAwareMetrics: ()=>external_telemetryCore_js_namespaceObject.createTelemetryAwareMetrics,
40
+ createVictoriaMetricsTelemetryExporter: ()=>external_telemetryCore_js_namespaceObject.createVictoriaMetricsTelemetryExporter,
41
+ enforceRuntimeFallbackSignalAuthToken: ()=>external_runtimeFallbackSignal_js_namespaceObject.enforceRuntimeFallbackSignalAuthToken,
42
+ enforceRuntimeFallbackSignalTrustPolicy: ()=>external_runtimeFallbackSignal_js_namespaceObject.enforceRuntimeFallbackSignalTrustPolicy,
43
+ getRuntimeSignalErrorStatusCode: ()=>external_runtimeFallbackSignal_js_namespaceObject.getRuntimeSignalErrorStatusCode,
44
+ hasEnabledTelemetryExporters: ()=>hasEnabledTelemetryExporters,
45
+ injectTelemetryPlugin: ()=>injectTelemetryPlugin,
46
+ normalizeRequiredRuntimeFallbackSignalAuthConfig: ()=>external_runtimeFallbackSignal_js_namespaceObject.normalizeRequiredRuntimeFallbackSignalAuthConfig,
47
+ normalizeRuntimeFallbackSignalAuthConfig: ()=>external_runtimeFallbackSignal_js_namespaceObject.normalizeRuntimeFallbackSignalAuthConfig,
48
+ normalizeRuntimeFallbackTrustPolicy: ()=>external_runtimeFallbackSignal_js_namespaceObject.normalizeRuntimeFallbackTrustPolicy,
49
+ parseRuntimeFallbackSignalPayloadFromRawBody: ()=>external_runtimeFallbackSignal_js_namespaceObject.parseRuntimeFallbackSignalPayloadFromRawBody,
50
+ resolveRuntimeFallbackSignalEndpoint: ()=>external_runtimeFallbackSignal_js_namespaceObject.resolveRuntimeFallbackSignalEndpoint,
51
+ resolveTelemetrySloOptions: ()=>resolveTelemetrySloOptions
52
+ });
53
+ const server_namespaceObject = require("@modern-js/create-request/server");
54
+ const utils_namespaceObject = require("@modern-js/utils");
55
+ const external_contractGateAutopilot_js_namespaceObject = require("./contractGateAutopilot.js");
56
+ const external_contractGateSnapshotStore_js_namespaceObject = require("./contractGateSnapshotStore.js");
57
+ const external_env_js_namespaceObject = require("./env.js");
58
+ const external_runtimeFallbackSignal_js_namespaceObject = require("./runtimeFallbackSignal.js");
59
+ const external_telemetryCore_js_namespaceObject = require("./telemetryCore.js");
60
+ function emitCanaryDecisionMetric(registry, decision, action) {
61
+ try {
62
+ registry.enqueueMetric({
63
+ name: `telemetry.canary.${action}`,
64
+ value: 1,
65
+ unit: 'count',
66
+ tags: {
67
+ action,
68
+ state: decision.state,
69
+ failures: String(decision.failures.length)
70
+ }
71
+ });
72
+ } catch (_error) {}
73
+ }
74
+ const hasEnabledTelemetryExporters = (config)=>Boolean(config?.exporters?.otlp?.enabled || config?.exporters?.victoriaMetrics?.enabled);
75
+ const resolveTelemetrySloOptions = (sloConfig, warnSink = (message)=>utils_namespaceObject.logger.warn(message))=>({
76
+ queueUtilizationWarnThreshold: sloConfig?.queueUtilizationWarnThreshold,
77
+ queueDroppedWarnThreshold: sloConfig?.queueDroppedWarnThreshold,
78
+ alertCooldownMs: sloConfig?.alertCooldownMs,
79
+ onAlert: (alert)=>{
80
+ warnSink(`[telemetry.slo] ${alert.type} threshold=${alert.threshold} value=${alert.value} depth=${alert.queueDepth}/${alert.queueCapacity} dropped=${alert.totalDropped}`);
81
+ }
82
+ });
83
+ const getRequestRemoteAddress = (c)=>{
84
+ const env = c.env;
85
+ const remoteAddress = env?.node?.req?.socket?.remoteAddress;
86
+ return 'string' == typeof remoteAddress && remoteAddress.trim().length > 0 ? remoteAddress.trim() : void 0;
87
+ };
88
+ const activeTelemetryLaneClosers = new Set();
89
+ let telemetryBeforeExitHookInstalled = false;
90
+ const ensureTelemetryBeforeExitHook = ()=>{
91
+ if (telemetryBeforeExitHookInstalled) return;
92
+ telemetryBeforeExitHookInstalled = true;
93
+ process.on('beforeExit', ()=>{
94
+ for (const close of [
95
+ ...activeTelemetryLaneClosers
96
+ ])close();
97
+ });
98
+ };
99
+ const injectTelemetryPlugin = ()=>({
100
+ name: '@modern-js/inject-telemetry',
101
+ setup (api) {
102
+ const serverConfig = api.getServerConfig();
103
+ const telemetryConfig = serverConfig?.server?.telemetry;
104
+ if (!telemetryConfig) return;
105
+ if (true !== telemetryConfig.enabled && !hasEnabledTelemetryExporters(telemetryConfig)) return;
106
+ const { middlewares, metaName, appDirectory } = api.getServerContext();
107
+ const serviceName = telemetryConfig.service || metaName || 'modern-js';
108
+ const moduleName = telemetryConfig.module || 'server';
109
+ const environmentName = telemetryConfig.environment || (0, external_env_js_namespaceObject.parseServerRuntimeExtensionsEnv)().environmentName;
110
+ const registry = new external_telemetryCore_js_namespaceObject.TelemetryRegistry({
111
+ service: serviceName,
112
+ module: moduleName,
113
+ environment: environmentName,
114
+ samplingRate: telemetryConfig.samplingRate,
115
+ flushIntervalMs: telemetryConfig.flushIntervalMs,
116
+ maxBatchSize: telemetryConfig.maxBatchSize,
117
+ maxQueueSize: telemetryConfig.maxQueueSize,
118
+ redactionKeys: telemetryConfig.redactionKeys,
119
+ slo: resolveTelemetrySloOptions(telemetryConfig.slo)
120
+ });
121
+ let canaryOrchestrator;
122
+ let contractGateAutopilot;
123
+ let runtimeFallbackSignalConfig;
124
+ let runtimeStatusAuthConfig;
125
+ let gateSnapshotStorePromise;
126
+ const canaryConfig = telemetryConfig.canary;
127
+ if (canaryConfig?.enabled) {
128
+ const contractGates = canaryConfig.contractGates;
129
+ canaryOrchestrator = new external_telemetryCore_js_namespaceObject.TelemetryCanaryOrchestrator({
130
+ registry,
131
+ evaluationIntervalMs: canaryConfig.evaluationIntervalMs,
132
+ minConsecutiveHealthyEvaluations: canaryConfig.minConsecutiveHealthyEvaluations,
133
+ rollbackConsecutiveFailures: canaryConfig.rollbackConsecutiveFailures,
134
+ maxQueueUtilization: canaryConfig.maxQueueUtilization,
135
+ maxTotalDropped: canaryConfig.maxTotalDropped,
136
+ maxUnhealthyExporters: canaryConfig.maxUnhealthyExporters,
137
+ requiredContractGates: Object.keys(contractGates || {}),
138
+ onPromote: (decision)=>{
139
+ emitCanaryDecisionMetric(registry, decision, 'promote');
140
+ },
141
+ onRollback: (decision)=>{
142
+ emitCanaryDecisionMetric(registry, decision, 'rollback');
143
+ }
144
+ });
145
+ if (contractGates) canaryOrchestrator.setContractGates(contractGates);
146
+ const autopilotEnabled = canaryConfig.autopilot?.enabled ?? true;
147
+ if (autopilotEnabled) {
148
+ const gateSnapshotPath = (0, external_contractGateSnapshotStore_js_namespaceObject.resolveContractGateSnapshotPath)(appDirectory, canaryConfig.autopilot?.gateSnapshotPath);
149
+ gateSnapshotStorePromise = (0, external_contractGateSnapshotStore_js_namespaceObject.resolveContractGateSnapshotStore)({
150
+ appDirectory,
151
+ gateSnapshotPath: gateSnapshotPath || external_contractGateSnapshotStore_js_namespaceObject.DEFAULT_CONTRACT_GATE_SNAPSHOT_PATH,
152
+ stateStore: canaryConfig.autopilot?.stateStore
153
+ });
154
+ const runtimeSignalConfig = canaryConfig.autopilot?.runtimeFallbackSignal;
155
+ const runtimeSignalEnabled = runtimeSignalConfig?.enabled === true;
156
+ if (runtimeSignalEnabled && gateSnapshotStorePromise) runtimeFallbackSignalConfig = {
157
+ endpoint: (0, external_runtimeFallbackSignal_js_namespaceObject.resolveRuntimeFallbackSignalEndpoint)(runtimeSignalConfig?.endpoint),
158
+ gateName: runtimeSignalConfig?.gateName?.trim() || external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_FALLBACK_GATE_NAME,
159
+ gateSnapshotStore: gateSnapshotStorePromise,
160
+ failureHoldMs: Math.max(1000, runtimeSignalConfig?.failureHoldMs ?? external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_FALLBACK_FAILURE_HOLD_MS),
161
+ maxBodyBytes: Math.max(512, runtimeSignalConfig?.maxBodyBytes ?? external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_FALLBACK_MAX_BODY_BYTES),
162
+ auth: (0, external_runtimeFallbackSignal_js_namespaceObject.normalizeRequiredRuntimeFallbackSignalAuthConfig)(runtimeSignalConfig?.auth),
163
+ trustPolicy: (0, external_runtimeFallbackSignal_js_namespaceObject.normalizeRuntimeFallbackTrustPolicy)(runtimeSignalConfig?.trustPolicy),
164
+ runtimeState: (0, external_runtimeFallbackSignal_js_namespaceObject.createRuntimeFallbackSignalRuntimeState)()
165
+ };
166
+ }
167
+ runtimeStatusAuthConfig = runtimeFallbackSignalConfig?.auth ?? (0, external_runtimeFallbackSignal_js_namespaceObject.normalizeRuntimeFallbackSignalAuthConfig)(canaryConfig.autopilot?.runtimeFallbackSignal?.auth);
168
+ }
169
+ if (runtimeFallbackSignalConfig) {
170
+ const signalConfig = runtimeFallbackSignalConfig;
171
+ middlewares.push({
172
+ name: 'telemetry-runtime-fallback-signal',
173
+ path: signalConfig.endpoint,
174
+ method: 'post',
175
+ order: 'pre',
176
+ handler: async (c)=>{
177
+ try {
178
+ (0, external_runtimeFallbackSignal_js_namespaceObject.enforceRuntimeFallbackSignalAuth)(c, signalConfig);
179
+ const { payload } = await (0, external_runtimeFallbackSignal_js_namespaceObject.parseRuntimeFallbackSignalPayload)(c, signalConfig.maxBodyBytes);
180
+ const trustResult = (0, external_runtimeFallbackSignal_js_namespaceObject.enforceRuntimeFallbackSignalTrustPolicy)(payload, signalConfig, {
181
+ remoteAddress: getRequestRemoteAddress(c)
182
+ });
183
+ if (trustResult.deduped) return c.json({
184
+ ok: true,
185
+ deduped: true
186
+ }, 202);
187
+ await (0, external_runtimeFallbackSignal_js_namespaceObject.persistRuntimeFallbackContractGate)(payload, signalConfig);
188
+ return c.json({
189
+ ok: true
190
+ }, 202);
191
+ } catch (error) {
192
+ const signalError = error;
193
+ const status = (0, external_runtimeFallbackSignal_js_namespaceObject.getRuntimeSignalErrorStatusCode)(signalError);
194
+ return c.json({
195
+ ok: false,
196
+ error: signalError instanceof Error ? signalError.message : String(signalError)
197
+ }, status);
198
+ }
199
+ }
200
+ });
201
+ }
202
+ middlewares.push({
203
+ name: 'telemetry-runtime-status',
204
+ path: external_runtimeFallbackSignal_js_namespaceObject.DEFAULT_RUNTIME_STATUS_ENDPOINT,
205
+ method: 'get',
206
+ order: 'pre',
207
+ handler: async (c)=>{
208
+ try {
209
+ if (!runtimeStatusAuthConfig?.enabled) return c.json({
210
+ ok: true,
211
+ timestamp: Date.now()
212
+ });
213
+ (0, external_runtimeFallbackSignal_js_namespaceObject.enforceRuntimeFallbackSignalAuthToken)(c.req.header(runtimeStatusAuthConfig.headerName), runtimeStatusAuthConfig);
214
+ return c.json({
215
+ ok: true,
216
+ timestamp: Date.now(),
217
+ telemetry: {
218
+ queueStats: registry.getQueueStats(),
219
+ exporterHealth: registry.getExporterHealth()
220
+ },
221
+ canary: canaryOrchestrator ? {
222
+ enabled: true,
223
+ ...canaryOrchestrator.getStatusSnapshot()
224
+ } : {
225
+ enabled: false
226
+ },
227
+ runtimeFallbackSignal: runtimeFallbackSignalConfig ? {
228
+ enabled: true,
229
+ endpoint: runtimeFallbackSignalConfig.endpoint,
230
+ gateName: runtimeFallbackSignalConfig.gateName,
231
+ failureHoldMs: runtimeFallbackSignalConfig.failureHoldMs,
232
+ maxBodyBytes: runtimeFallbackSignalConfig.maxBodyBytes,
233
+ auth: {
234
+ enabled: runtimeFallbackSignalConfig.auth.enabled,
235
+ headerName: runtimeFallbackSignalConfig.auth.headerName
236
+ },
237
+ trustPolicy: {
238
+ allowedApps: runtimeFallbackSignalConfig.trustPolicy.allowedApps,
239
+ allowedEntryOrigins: runtimeFallbackSignalConfig.trustPolicy.allowedEntryOrigins,
240
+ enforceRuntimeDigest: runtimeFallbackSignalConfig.trustPolicy.enforceRuntimeDigest,
241
+ expectedRuntimeDigestsCount: Object.keys(runtimeFallbackSignalConfig.trustPolicy.expectedRuntimeDigests).length,
242
+ maxSignalsPerWindow: runtimeFallbackSignalConfig.trustPolicy.maxSignalsPerWindow,
243
+ windowMs: runtimeFallbackSignalConfig.trustPolicy.windowMs,
244
+ dedupeWindowMs: runtimeFallbackSignalConfig.trustPolicy.dedupeWindowMs
245
+ }
246
+ } : {
247
+ enabled: false
248
+ }
249
+ });
250
+ } catch (error) {
251
+ const signalError = error;
252
+ return c.json({
253
+ ok: false,
254
+ error: signalError instanceof Error ? signalError.message : String(signalError)
255
+ }, (0, external_runtimeFallbackSignal_js_namespaceObject.getRuntimeSignalErrorStatusCode)(signalError));
256
+ }
257
+ }
258
+ });
259
+ middlewares.push({
260
+ name: 'inject-telemetry',
261
+ handler: async (c, next)=>{
262
+ const monitors = c.get('monitors');
263
+ if (monitors) {
264
+ const traceContext = (0, server_namespaceObject.parseTraceparent)(c.req.header('traceparent'));
265
+ const monitor = (event)=>{
266
+ registry.enqueue((0, external_telemetryCore_js_namespaceObject.toTelemetryEnvelope)(event, {
267
+ service: serviceName,
268
+ module: moduleName,
269
+ environment: environmentName,
270
+ traceId: traceContext?.traceId,
271
+ spanId: traceContext?.spanId,
272
+ attributes: {
273
+ requestMethod: c.req.method,
274
+ requestPath: c.req.path
275
+ }
276
+ }));
277
+ };
278
+ monitors.push(monitor);
279
+ }
280
+ await next();
281
+ }
282
+ });
283
+ let telemetryLaneClosed = false;
284
+ const closeTelemetryLane = async ()=>{
285
+ if (telemetryLaneClosed) return;
286
+ telemetryLaneClosed = true;
287
+ activeTelemetryLaneClosers.delete(closeTelemetryLane);
288
+ contractGateAutopilot?.stop();
289
+ canaryOrchestrator?.stop();
290
+ await registry.shutdown();
291
+ };
292
+ let prepared = false;
293
+ api.onPrepare(async ()=>{
294
+ if (prepared) return;
295
+ prepared = true;
296
+ const { nodeServer } = api.getServerContext();
297
+ if (nodeServer && 'function' == typeof nodeServer.once) nodeServer.once('close', ()=>{
298
+ closeTelemetryLane();
299
+ });
300
+ activeTelemetryLaneClosers.add(closeTelemetryLane);
301
+ ensureTelemetryBeforeExitHook();
302
+ if (telemetryConfig.exporters?.otlp?.enabled) {
303
+ (0, external_telemetryCore_js_namespaceObject.maybeWarnLegacyOtlpEndpoint)(telemetryConfig.exporters.otlp.endpoint);
304
+ await registry.register((0, external_telemetryCore_js_namespaceObject.createOtlpTelemetryExporter)(telemetryConfig.exporters.otlp));
305
+ }
306
+ if (telemetryConfig.exporters?.victoriaMetrics?.enabled) await registry.register((0, external_telemetryCore_js_namespaceObject.createVictoriaMetricsTelemetryExporter)(telemetryConfig.exporters.victoriaMetrics));
307
+ await registry.startupHealthCheck({
308
+ failLoud: telemetryConfig.failLoudStartup ?? true
309
+ });
310
+ if (!canaryOrchestrator) return;
311
+ canaryOrchestrator.start();
312
+ if (gateSnapshotStorePromise) {
313
+ const gateSnapshotStore = await gateSnapshotStorePromise;
314
+ contractGateAutopilot = new external_contractGateAutopilot_js_namespaceObject.ContractGateAutopilot({
315
+ orchestrator: canaryOrchestrator,
316
+ gateSnapshotPath: (0, external_contractGateSnapshotStore_js_namespaceObject.resolveContractGateSnapshotPath)(appDirectory, canaryConfig?.autopilot?.gateSnapshotPath),
317
+ gateSnapshotStore,
318
+ pollIntervalMs: canaryConfig?.autopilot?.pollIntervalMs,
319
+ gateStaleAfterMs: canaryConfig?.autopilot?.gateStaleAfterMs
320
+ });
321
+ }
322
+ if (contractGateAutopilot) await contractGateAutopilot.start();
323
+ canaryOrchestrator.evaluate();
324
+ });
325
+ }
326
+ });
327
+ exports.DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT = __webpack_exports__.DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT;
328
+ exports.DEFAULT_RUNTIME_STATUS_ENDPOINT = __webpack_exports__.DEFAULT_RUNTIME_STATUS_ENDPOINT;
329
+ exports.TelemetryCanaryOrchestrator = __webpack_exports__.TelemetryCanaryOrchestrator;
330
+ exports.TelemetryRegistry = __webpack_exports__.TelemetryRegistry;
331
+ exports.TelemetryStartupHealthError = __webpack_exports__.TelemetryStartupHealthError;
332
+ exports.createOtlpTelemetryExporter = __webpack_exports__.createOtlpTelemetryExporter;
333
+ exports.createRuntimeFallbackSignalRuntimeState = __webpack_exports__.createRuntimeFallbackSignalRuntimeState;
334
+ exports.createRuntimeSignalError = __webpack_exports__.createRuntimeSignalError;
335
+ exports.createTelemetryAwareMetrics = __webpack_exports__.createTelemetryAwareMetrics;
336
+ exports.createVictoriaMetricsTelemetryExporter = __webpack_exports__.createVictoriaMetricsTelemetryExporter;
337
+ exports.enforceRuntimeFallbackSignalAuthToken = __webpack_exports__.enforceRuntimeFallbackSignalAuthToken;
338
+ exports.enforceRuntimeFallbackSignalTrustPolicy = __webpack_exports__.enforceRuntimeFallbackSignalTrustPolicy;
339
+ exports.getRuntimeSignalErrorStatusCode = __webpack_exports__.getRuntimeSignalErrorStatusCode;
340
+ exports.hasEnabledTelemetryExporters = __webpack_exports__.hasEnabledTelemetryExporters;
341
+ exports.injectTelemetryPlugin = __webpack_exports__.injectTelemetryPlugin;
342
+ exports.normalizeRequiredRuntimeFallbackSignalAuthConfig = __webpack_exports__.normalizeRequiredRuntimeFallbackSignalAuthConfig;
343
+ exports.normalizeRuntimeFallbackSignalAuthConfig = __webpack_exports__.normalizeRuntimeFallbackSignalAuthConfig;
344
+ exports.normalizeRuntimeFallbackTrustPolicy = __webpack_exports__.normalizeRuntimeFallbackTrustPolicy;
345
+ exports.parseRuntimeFallbackSignalPayloadFromRawBody = __webpack_exports__.parseRuntimeFallbackSignalPayloadFromRawBody;
346
+ exports.resolveRuntimeFallbackSignalEndpoint = __webpack_exports__.resolveRuntimeFallbackSignalEndpoint;
347
+ exports.resolveTelemetrySloOptions = __webpack_exports__.resolveTelemetrySloOptions;
348
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
349
+ "DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
350
+ "DEFAULT_RUNTIME_STATUS_ENDPOINT",
351
+ "TelemetryCanaryOrchestrator",
352
+ "TelemetryRegistry",
353
+ "TelemetryStartupHealthError",
354
+ "createOtlpTelemetryExporter",
355
+ "createRuntimeFallbackSignalRuntimeState",
356
+ "createRuntimeSignalError",
357
+ "createTelemetryAwareMetrics",
358
+ "createVictoriaMetricsTelemetryExporter",
359
+ "enforceRuntimeFallbackSignalAuthToken",
360
+ "enforceRuntimeFallbackSignalTrustPolicy",
361
+ "getRuntimeSignalErrorStatusCode",
362
+ "hasEnabledTelemetryExporters",
363
+ "injectTelemetryPlugin",
364
+ "normalizeRequiredRuntimeFallbackSignalAuthConfig",
365
+ "normalizeRuntimeFallbackSignalAuthConfig",
366
+ "normalizeRuntimeFallbackTrustPolicy",
367
+ "parseRuntimeFallbackSignalPayloadFromRawBody",
368
+ "resolveRuntimeFallbackSignalEndpoint",
369
+ "resolveTelemetrySloOptions"
370
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
371
+ Object.defineProperty(exports, '__esModule', {
372
+ value: true
373
+ });