@naylence/runtime 0.3.13 → 0.3.15
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/browser/index.cjs +549 -539
- package/dist/browser/index.mjs +550 -540
- package/dist/cjs/browser.js +15 -0
- package/dist/cjs/naylence/fame/util/logging.js +2 -2
- package/dist/cjs/node.js +22 -0
- package/dist/cjs/version.js +2 -2
- package/dist/esm/browser.js +15 -0
- package/dist/esm/naylence/fame/util/logging.js +2 -2
- package/dist/esm/node.js +22 -0
- package/dist/esm/version.js +2 -2
- package/dist/node/index.cjs +4 -4
- package/dist/node/index.mjs +4 -4
- package/dist/node/node.cjs +567 -545
- package/dist/node/node.mjs +568 -546
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parseAddressComponents, FlowFlags, FameAddress, DEFAULT_POLLING_TIMEOUT_MS, extractEnvelopeAndContext, createChannelMessage, generateId, createFameEnvelope, parseAddress, formatAddress, formatAddressFromComponents, FameResponseType, localDeliveryContext, Binding, DeliveryOriginType, makeResponse, isFameMessageResponse, parseRequest, makeRequest, DEFAULT_INVOKE_TIMEOUT_MILLIS, parseResponse, ConnectorState, ConnectorStateUtils, FameFabric, isFameMessageService, isFameRPCService, FameServiceProxy, generateIdAsync, snakeToCamelObject, getDefaultFameConfigResolver, setDefaultFameConfigResolver, SigningMaterial, AuthorizationContextSchema, FameDeliveryContextSchema, SecurityContextSchema, withFabric, FameEnvelopeSchema, deserializeEnvelope, FameChannelMessage, SINK_CAPABILITY, FameFabricFactory, serializeEnvelope, createAuthorizationContext } from '@naylence/core';
|
|
2
2
|
export * from '@naylence/core';
|
|
3
3
|
import { z, ZodError } from 'zod';
|
|
4
|
-
import { AbstractResourceFactory, createResource as createResource$1, createDefaultResource, registerFactory, Expressions, ExtensionManager, ExpressionEvaluationPolicy,
|
|
4
|
+
import { Registry, AbstractResourceFactory, createResource as createResource$1, createDefaultResource, registerFactory, Expressions, ExtensionManager, ExpressionEvaluationPolicy, configValidator } from '@naylence/factory';
|
|
5
5
|
import { sign, hashes, verify } from '@noble/ed25519';
|
|
6
6
|
import { sha256, sha512 } from '@noble/hashes/sha2.js';
|
|
7
7
|
import { chacha20poly1305 } from '@noble/ciphers/chacha.js';
|
|
@@ -97,13 +97,453 @@ function installProcessEnvShim() {
|
|
|
97
97
|
installProcessEnvShim();
|
|
98
98
|
// --- END ENV SHIM ---
|
|
99
99
|
|
|
100
|
+
/**
|
|
101
|
+
* AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
|
|
102
|
+
* Generated by scripts/generate-factory-manifest.mjs
|
|
103
|
+
*
|
|
104
|
+
* Provides the list of runtime factory modules for registration.
|
|
105
|
+
*/
|
|
106
|
+
const MODULES = [
|
|
107
|
+
"./connector/broadcast-channel-connector-factory.js",
|
|
108
|
+
"./connector/broadcast-channel-listener-factory.js",
|
|
109
|
+
"./connector/http-listener-factory.js",
|
|
110
|
+
"./connector/http-stateless-connector-factory.js",
|
|
111
|
+
"./connector/inpage-connector-factory.js",
|
|
112
|
+
"./connector/inpage-listener-factory.js",
|
|
113
|
+
"./connector/websocket-connector-factory.js",
|
|
114
|
+
"./connector/websocket-listener-factory.js",
|
|
115
|
+
"./delivery/at-least-once-delivery-policy-factory.js",
|
|
116
|
+
"./delivery/at-most-once-delivery-policy-factory.js",
|
|
117
|
+
"./delivery/delivery-profile-factory.js",
|
|
118
|
+
"./fabric/in-process-fame-fabric-factory.js",
|
|
119
|
+
"./node/admission/admission-profile-factory.js",
|
|
120
|
+
"./node/admission/direct-admission-client-factory.js",
|
|
121
|
+
"./node/admission/noop-admission-client-factory.js",
|
|
122
|
+
"./node/admission/welcome-service-client-factory.js",
|
|
123
|
+
"./node/default-node-identity-policy-factory.js",
|
|
124
|
+
"./node/node-factory.js",
|
|
125
|
+
"./node/node-identity-policy-profile-factory.js",
|
|
126
|
+
"./node/token-subject-node-identity-policy-factory.js",
|
|
127
|
+
"./placement/static-node-placement-strategy-factory.js",
|
|
128
|
+
"./security/auth/bearer-token-header-auth-injection-strategy-factory.js",
|
|
129
|
+
"./security/auth/default-authorizer-factory.js",
|
|
130
|
+
"./security/auth/jwks-jwt-token-verifier-factory.js",
|
|
131
|
+
"./security/auth/jwt-token-issuer-factory.js",
|
|
132
|
+
"./security/auth/jwt-token-verifier-factory.js",
|
|
133
|
+
"./security/auth/no-auth-injection-strategy-factory.js",
|
|
134
|
+
"./security/auth/none-token-provider-factory.js",
|
|
135
|
+
"./security/auth/noop-authorizer-factory.js",
|
|
136
|
+
"./security/auth/noop-token-issuer-factory.js",
|
|
137
|
+
"./security/auth/noop-token-verifier-factory.js",
|
|
138
|
+
"./security/auth/oauth2-authorizer-factory.js",
|
|
139
|
+
"./security/auth/oauth2-client-credentials-token-provider-factory.js",
|
|
140
|
+
"./security/auth/oauth2-pkce-token-provider-factory.js",
|
|
141
|
+
"./security/auth/query-param-auth-injection-strategy-factory.js",
|
|
142
|
+
"./security/auth/shared-secret-authorizer-factory.js",
|
|
143
|
+
"./security/auth/shared-secret-token-provider-factory.js",
|
|
144
|
+
"./security/auth/shared-secret-token-verifier-factory.js",
|
|
145
|
+
"./security/auth/static-token-provider-factory.js",
|
|
146
|
+
"./security/auth/websocket-subprotocol-auth-injection-strategy-factory.js",
|
|
147
|
+
"./security/credential/dev-fixed-key-credential-provider-factory.js",
|
|
148
|
+
"./security/credential/env-credential-provider-factory.js",
|
|
149
|
+
"./security/credential/none-credential-provider-factory.js",
|
|
150
|
+
"./security/credential/prompt-credential-provider-factory.js",
|
|
151
|
+
"./security/credential/secret-store-credential-provider-factory.js",
|
|
152
|
+
"./security/credential/session-key-credential-provider-factory.js",
|
|
153
|
+
"./security/credential/static-credential-provider-factory.js",
|
|
154
|
+
"./security/default-security-manager-factory.js",
|
|
155
|
+
"./security/encryption/noop-encryption-manager-factory.js",
|
|
156
|
+
"./security/encryption/noop-secure-channel-manager-factory.js",
|
|
157
|
+
"./security/keys/default-key-manager-factory.js",
|
|
158
|
+
"./security/keys/in-memory-key-store-factory.js",
|
|
159
|
+
"./security/keys/noop-key-validator-factory.js",
|
|
160
|
+
"./security/node-security-profile-factory.js",
|
|
161
|
+
"./security/policy/default-security-policy-factory.js",
|
|
162
|
+
"./security/policy/no-security-policy-factory.js",
|
|
163
|
+
"./security/signing/eddsa-envelope-signer-factory.js",
|
|
164
|
+
"./security/signing/eddsa-envelope-verifier-factory.js",
|
|
165
|
+
"./security/trust-store/noop-trust-store-provider-factory.js",
|
|
166
|
+
"./sentinel/capability-aware-routing-policy-factory.js",
|
|
167
|
+
"./sentinel/composite-routing-policy-factory.js",
|
|
168
|
+
"./sentinel/hybrid-path-routing-policy-factory.js",
|
|
169
|
+
"./sentinel/load-balancing/composite-load-balancing-strategy-factory.js",
|
|
170
|
+
"./sentinel/load-balancing/hrw-load-balancing-strategy-factory.js",
|
|
171
|
+
"./sentinel/load-balancing/load-balancing-profile-factory.js",
|
|
172
|
+
"./sentinel/load-balancing/random-load-balancing-strategy-factory.js",
|
|
173
|
+
"./sentinel/load-balancing/round-robin-load-balancing-strategy-factory.js",
|
|
174
|
+
"./sentinel/load-balancing/sticky-load-balancing-strategy-factory.js",
|
|
175
|
+
"./sentinel/routing-profile-factory.js",
|
|
176
|
+
"./sentinel/sentinel-factory.js",
|
|
177
|
+
"./sentinel/store/route-store-factory.js",
|
|
178
|
+
"./stickiness/simple-load-balancer-stickiness-manager-factory.js",
|
|
179
|
+
"./telemetry/noop-trace-emitter-factory.js",
|
|
180
|
+
"./telemetry/open-telemetry-trace-emitter-factory.js",
|
|
181
|
+
"./telemetry/trace-emitter-profile-factory.js",
|
|
182
|
+
"./welcome/default-welcome-service-factory.js"
|
|
183
|
+
];
|
|
184
|
+
const MODULE_LOADERS = {
|
|
185
|
+
"./connector/broadcast-channel-connector-factory.js": () => Promise.resolve().then(function () { return broadcastChannelConnectorFactory; }),
|
|
186
|
+
"./connector/broadcast-channel-listener-factory.js": () => Promise.resolve().then(function () { return broadcastChannelListenerFactory; }),
|
|
187
|
+
"./connector/http-listener-factory.js": () => Promise.resolve().then(function () { return httpListenerFactory; }),
|
|
188
|
+
"./connector/http-stateless-connector-factory.js": () => Promise.resolve().then(function () { return httpStatelessConnectorFactory; }),
|
|
189
|
+
"./connector/inpage-connector-factory.js": () => Promise.resolve().then(function () { return inpageConnectorFactory; }),
|
|
190
|
+
"./connector/inpage-listener-factory.js": () => Promise.resolve().then(function () { return inpageListenerFactory; }),
|
|
191
|
+
"./connector/websocket-connector-factory.js": () => Promise.resolve().then(function () { return websocketConnectorFactory; }),
|
|
192
|
+
"./connector/websocket-listener-factory.js": () => Promise.resolve().then(function () { return websocketListenerFactory; }),
|
|
193
|
+
"./delivery/at-least-once-delivery-policy-factory.js": () => Promise.resolve().then(function () { return atLeastOnceDeliveryPolicyFactory; }),
|
|
194
|
+
"./delivery/at-most-once-delivery-policy-factory.js": () => Promise.resolve().then(function () { return atMostOnceDeliveryPolicyFactory; }),
|
|
195
|
+
"./delivery/delivery-profile-factory.js": () => Promise.resolve().then(function () { return deliveryProfileFactory; }),
|
|
196
|
+
"./fabric/in-process-fame-fabric-factory.js": () => Promise.resolve().then(function () { return inProcessFameFabricFactory; }),
|
|
197
|
+
"./node/admission/admission-profile-factory.js": () => Promise.resolve().then(function () { return admissionProfileFactory; }),
|
|
198
|
+
"./node/admission/direct-admission-client-factory.js": () => Promise.resolve().then(function () { return directAdmissionClientFactory; }),
|
|
199
|
+
"./node/admission/noop-admission-client-factory.js": () => Promise.resolve().then(function () { return noopAdmissionClientFactory; }),
|
|
200
|
+
"./node/admission/welcome-service-client-factory.js": () => Promise.resolve().then(function () { return welcomeServiceClientFactory; }),
|
|
201
|
+
"./node/default-node-identity-policy-factory.js": () => Promise.resolve().then(function () { return defaultNodeIdentityPolicyFactory; }),
|
|
202
|
+
"./node/node-factory.js": () => Promise.resolve().then(function () { return nodeFactory; }),
|
|
203
|
+
"./node/node-identity-policy-profile-factory.js": () => Promise.resolve().then(function () { return nodeIdentityPolicyProfileFactory; }),
|
|
204
|
+
"./node/token-subject-node-identity-policy-factory.js": () => Promise.resolve().then(function () { return tokenSubjectNodeIdentityPolicyFactory; }),
|
|
205
|
+
"./placement/static-node-placement-strategy-factory.js": () => Promise.resolve().then(function () { return staticNodePlacementStrategyFactory; }),
|
|
206
|
+
"./security/auth/bearer-token-header-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return bearerTokenHeaderAuthInjectionStrategyFactory; }),
|
|
207
|
+
"./security/auth/default-authorizer-factory.js": () => Promise.resolve().then(function () { return defaultAuthorizerFactory; }),
|
|
208
|
+
"./security/auth/jwks-jwt-token-verifier-factory.js": () => Promise.resolve().then(function () { return jwksJwtTokenVerifierFactory; }),
|
|
209
|
+
"./security/auth/jwt-token-issuer-factory.js": () => Promise.resolve().then(function () { return jwtTokenIssuerFactory; }),
|
|
210
|
+
"./security/auth/jwt-token-verifier-factory.js": () => Promise.resolve().then(function () { return jwtTokenVerifierFactory; }),
|
|
211
|
+
"./security/auth/no-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return noAuthInjectionStrategyFactory; }),
|
|
212
|
+
"./security/auth/none-token-provider-factory.js": () => Promise.resolve().then(function () { return noneTokenProviderFactory; }),
|
|
213
|
+
"./security/auth/noop-authorizer-factory.js": () => Promise.resolve().then(function () { return noopAuthorizerFactory; }),
|
|
214
|
+
"./security/auth/noop-token-issuer-factory.js": () => Promise.resolve().then(function () { return noopTokenIssuerFactory; }),
|
|
215
|
+
"./security/auth/noop-token-verifier-factory.js": () => Promise.resolve().then(function () { return noopTokenVerifierFactory; }),
|
|
216
|
+
"./security/auth/oauth2-authorizer-factory.js": () => Promise.resolve().then(function () { return oauth2AuthorizerFactory; }),
|
|
217
|
+
"./security/auth/oauth2-client-credentials-token-provider-factory.js": () => Promise.resolve().then(function () { return oauth2ClientCredentialsTokenProviderFactory; }),
|
|
218
|
+
"./security/auth/oauth2-pkce-token-provider-factory.js": () => Promise.resolve().then(function () { return oauth2PkceTokenProviderFactory; }),
|
|
219
|
+
"./security/auth/query-param-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return queryParamAuthInjectionStrategyFactory; }),
|
|
220
|
+
"./security/auth/shared-secret-authorizer-factory.js": () => Promise.resolve().then(function () { return sharedSecretAuthorizerFactory; }),
|
|
221
|
+
"./security/auth/shared-secret-token-provider-factory.js": () => Promise.resolve().then(function () { return sharedSecretTokenProviderFactory; }),
|
|
222
|
+
"./security/auth/shared-secret-token-verifier-factory.js": () => Promise.resolve().then(function () { return sharedSecretTokenVerifierFactory; }),
|
|
223
|
+
"./security/auth/static-token-provider-factory.js": () => Promise.resolve().then(function () { return staticTokenProviderFactory; }),
|
|
224
|
+
"./security/auth/websocket-subprotocol-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return websocketSubprotocolAuthInjectionStrategyFactory; }),
|
|
225
|
+
"./security/credential/dev-fixed-key-credential-provider-factory.js": () => Promise.resolve().then(function () { return devFixedKeyCredentialProviderFactory; }),
|
|
226
|
+
"./security/credential/env-credential-provider-factory.js": () => Promise.resolve().then(function () { return envCredentialProviderFactory; }),
|
|
227
|
+
"./security/credential/none-credential-provider-factory.js": () => Promise.resolve().then(function () { return noneCredentialProviderFactory; }),
|
|
228
|
+
"./security/credential/prompt-credential-provider-factory.js": () => Promise.resolve().then(function () { return promptCredentialProviderFactory; }),
|
|
229
|
+
"./security/credential/secret-store-credential-provider-factory.js": () => Promise.resolve().then(function () { return secretStoreCredentialProviderFactory; }),
|
|
230
|
+
"./security/credential/session-key-credential-provider-factory.js": () => Promise.resolve().then(function () { return sessionKeyCredentialProviderFactory; }),
|
|
231
|
+
"./security/credential/static-credential-provider-factory.js": () => Promise.resolve().then(function () { return staticCredentialProviderFactory; }),
|
|
232
|
+
"./security/default-security-manager-factory.js": () => Promise.resolve().then(function () { return defaultSecurityManagerFactory; }),
|
|
233
|
+
"./security/encryption/noop-encryption-manager-factory.js": () => Promise.resolve().then(function () { return noopEncryptionManagerFactory; }),
|
|
234
|
+
"./security/encryption/noop-secure-channel-manager-factory.js": () => Promise.resolve().then(function () { return noopSecureChannelManagerFactory; }),
|
|
235
|
+
"./security/keys/default-key-manager-factory.js": () => Promise.resolve().then(function () { return defaultKeyManagerFactory; }),
|
|
236
|
+
"./security/keys/in-memory-key-store-factory.js": () => Promise.resolve().then(function () { return inMemoryKeyStoreFactory; }),
|
|
237
|
+
"./security/keys/noop-key-validator-factory.js": () => Promise.resolve().then(function () { return noopKeyValidatorFactory; }),
|
|
238
|
+
"./security/node-security-profile-factory.js": () => Promise.resolve().then(function () { return nodeSecurityProfileFactory; }),
|
|
239
|
+
"./security/policy/default-security-policy-factory.js": () => Promise.resolve().then(function () { return defaultSecurityPolicyFactory; }),
|
|
240
|
+
"./security/policy/no-security-policy-factory.js": () => Promise.resolve().then(function () { return noSecurityPolicyFactory; }),
|
|
241
|
+
"./security/signing/eddsa-envelope-signer-factory.js": () => Promise.resolve().then(function () { return eddsaEnvelopeSignerFactory; }),
|
|
242
|
+
"./security/signing/eddsa-envelope-verifier-factory.js": () => Promise.resolve().then(function () { return eddsaEnvelopeVerifierFactory; }),
|
|
243
|
+
"./security/trust-store/noop-trust-store-provider-factory.js": () => Promise.resolve().then(function () { return noopTrustStoreProviderFactory; }),
|
|
244
|
+
"./sentinel/capability-aware-routing-policy-factory.js": () => Promise.resolve().then(function () { return capabilityAwareRoutingPolicyFactory; }),
|
|
245
|
+
"./sentinel/composite-routing-policy-factory.js": () => Promise.resolve().then(function () { return compositeRoutingPolicyFactory; }),
|
|
246
|
+
"./sentinel/hybrid-path-routing-policy-factory.js": () => Promise.resolve().then(function () { return hybridPathRoutingPolicyFactory; }),
|
|
247
|
+
"./sentinel/load-balancing/composite-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return compositeLoadBalancingStrategyFactory; }),
|
|
248
|
+
"./sentinel/load-balancing/hrw-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return hrwLoadBalancingStrategyFactory; }),
|
|
249
|
+
"./sentinel/load-balancing/load-balancing-profile-factory.js": () => Promise.resolve().then(function () { return loadBalancingProfileFactory; }),
|
|
250
|
+
"./sentinel/load-balancing/random-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return randomLoadBalancingStrategyFactory; }),
|
|
251
|
+
"./sentinel/load-balancing/round-robin-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return roundRobinLoadBalancingStrategyFactory; }),
|
|
252
|
+
"./sentinel/load-balancing/sticky-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return stickyLoadBalancingStrategyFactory; }),
|
|
253
|
+
"./sentinel/routing-profile-factory.js": () => Promise.resolve().then(function () { return routingProfileFactory; }),
|
|
254
|
+
"./sentinel/sentinel-factory.js": () => Promise.resolve().then(function () { return sentinelFactory; }),
|
|
255
|
+
"./sentinel/store/route-store-factory.js": () => Promise.resolve().then(function () { return routeStoreFactory; }),
|
|
256
|
+
"./stickiness/simple-load-balancer-stickiness-manager-factory.js": () => Promise.resolve().then(function () { return simpleLoadBalancerStickinessManagerFactory; }),
|
|
257
|
+
"./telemetry/noop-trace-emitter-factory.js": () => Promise.resolve().then(function () { return noopTraceEmitterFactory; }),
|
|
258
|
+
"./telemetry/open-telemetry-trace-emitter-factory.js": () => Promise.resolve().then(function () { return openTelemetryTraceEmitterFactory; }),
|
|
259
|
+
"./telemetry/trace-emitter-profile-factory.js": () => Promise.resolve().then(function () { return traceEmitterProfileFactory; }),
|
|
260
|
+
"./welcome/default-welcome-service-factory.js": () => Promise.resolve().then(function () { return defaultWelcomeServiceFactory; }),
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
const FACTORY_MODULE_PREFIX$1 = '@naylence/runtime/naylence/fame/';
|
|
264
|
+
const BROWSER_DIST_SEGMENT = '/dist/browser/';
|
|
265
|
+
const NODE_ONLY_FACTORY_MODULES = new Set([
|
|
266
|
+
'./connector/http-listener-factory.js',
|
|
267
|
+
'./connector/websocket-listener-factory.js',
|
|
268
|
+
'./telemetry/open-telemetry-trace-emitter-factory.js',
|
|
269
|
+
'./security/credential/prompt-credential-provider-factory.js',
|
|
270
|
+
]);
|
|
271
|
+
const BROWSER_ONLY_FACTORY_MODULES = new Set([
|
|
272
|
+
'./security/auth/oauth2-pkce-token-provider-factory.js',
|
|
273
|
+
]);
|
|
274
|
+
const isNodeEnvironment = typeof process !== 'undefined' && Boolean(process?.versions?.node);
|
|
275
|
+
function detectModuleUrl() {
|
|
276
|
+
// Prefer Node-friendly __filename when available.
|
|
277
|
+
if (typeof __filename === 'string') {
|
|
278
|
+
try {
|
|
279
|
+
const normalized = __filename.startsWith('file://')
|
|
280
|
+
? __filename
|
|
281
|
+
: `file://${__filename}`;
|
|
282
|
+
return normalized;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// fall through to stack parsing
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Fallback to parsing the current stack trace to discover the executing module URL.
|
|
289
|
+
try {
|
|
290
|
+
throw new Error();
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
const stack = typeof error === 'object' && error && 'stack' in error
|
|
294
|
+
? String(error.stack ?? '')
|
|
295
|
+
: '';
|
|
296
|
+
const lines = stack.split('\n');
|
|
297
|
+
for (const line of lines) {
|
|
298
|
+
const match = line.match(/(https?:\/\/[^\s)]+|file:\/\/[^\s)]+|\/[^\s)]+\.(?:js|ts))/u);
|
|
299
|
+
if (!match) {
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
const candidate = match[1];
|
|
303
|
+
if (candidate.startsWith('http://') || candidate.startsWith('https://')) {
|
|
304
|
+
return candidate;
|
|
305
|
+
}
|
|
306
|
+
if (candidate.startsWith('file://')) {
|
|
307
|
+
return candidate;
|
|
308
|
+
}
|
|
309
|
+
return `file://${candidate}`;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
}
|
|
314
|
+
function computeBrowserFactoryBase(rawUrl) {
|
|
315
|
+
if (!rawUrl) {
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
const sanitized = rawUrl.split('?')[0]?.split('#')[0] ?? rawUrl;
|
|
319
|
+
const esmMarker = '/dist/esm/naylence/fame/';
|
|
320
|
+
const browserMarker = '/dist/browser/';
|
|
321
|
+
const distMarker = '/dist/';
|
|
322
|
+
if (sanitized.includes(esmMarker)) {
|
|
323
|
+
return sanitized.slice(0, sanitized.indexOf(esmMarker) + esmMarker.length);
|
|
324
|
+
}
|
|
325
|
+
if (rawUrl.includes(BROWSER_DIST_SEGMENT)) {
|
|
326
|
+
return new URL('../esm/naylence/fame/', rawUrl).href;
|
|
327
|
+
}
|
|
328
|
+
if (rawUrl.startsWith('http://') || rawUrl.startsWith('https://')) {
|
|
329
|
+
try {
|
|
330
|
+
const parsed = new URL(rawUrl);
|
|
331
|
+
const viteDepsSegment = '/node_modules/.vite/deps/';
|
|
332
|
+
if (parsed.pathname.includes(viteDepsSegment)) {
|
|
333
|
+
const baseOrigin = `${parsed.protocol}//${parsed.host}`;
|
|
334
|
+
return `${baseOrigin}/node_modules/@naylence/runtime/dist/esm/naylence/fame/`;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
// ignore and fall through to null
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
if (sanitized.includes(browserMarker)) {
|
|
342
|
+
const base = sanitized.slice(0, sanitized.indexOf(browserMarker) + browserMarker.length);
|
|
343
|
+
return `${base.replace(/browser\/?$/u, '')}esm/naylence/fame/`;
|
|
344
|
+
}
|
|
345
|
+
if (sanitized.includes(distMarker)) {
|
|
346
|
+
const index = sanitized.indexOf(distMarker);
|
|
347
|
+
const base = sanitized.slice(0, index + distMarker.length);
|
|
348
|
+
return `${base}esm/naylence/fame/`;
|
|
349
|
+
}
|
|
350
|
+
// Fallback for development: if this is a source file path, compute dist/esm path
|
|
351
|
+
const srcMarker = '/src/naylence/fame/';
|
|
352
|
+
if (sanitized.includes(srcMarker)) {
|
|
353
|
+
const index = sanitized.indexOf(srcMarker);
|
|
354
|
+
const projectRoot = sanitized.slice(0, index);
|
|
355
|
+
return `${projectRoot}/dist/esm/naylence/fame/`;
|
|
356
|
+
}
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
const moduleUrl = detectModuleUrl();
|
|
360
|
+
const browserFactoryBase = computeBrowserFactoryBase(moduleUrl);
|
|
361
|
+
function resolveFactoryModuleSpecifier$1(specifier) {
|
|
362
|
+
if (specifier.startsWith('../')) {
|
|
363
|
+
const relativePath = specifier.slice('../'.length);
|
|
364
|
+
return `${FACTORY_MODULE_PREFIX$1}${relativePath}`;
|
|
365
|
+
}
|
|
366
|
+
if (specifier.startsWith('./')) {
|
|
367
|
+
const relativePath = specifier.slice('./'.length);
|
|
368
|
+
return `${FACTORY_MODULE_PREFIX$1}${relativePath}`;
|
|
369
|
+
}
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
function resolveModuleCandidates(spec) {
|
|
373
|
+
const packageSpecifier = resolveFactoryModuleSpecifier$1(spec);
|
|
374
|
+
const candidates = [];
|
|
375
|
+
const preferSource = typeof moduleUrl === 'string' && moduleUrl.includes('/src/');
|
|
376
|
+
const addCandidate = (candidate) => {
|
|
377
|
+
if (!candidate) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
if (!candidates.includes(candidate)) {
|
|
381
|
+
candidates.push(candidate);
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
if (preferSource && spec.startsWith('./')) {
|
|
385
|
+
const baseSource = `../${spec.slice(2)}`;
|
|
386
|
+
addCandidate(baseSource);
|
|
387
|
+
if (baseSource.endsWith('.js')) {
|
|
388
|
+
addCandidate(baseSource.replace(/\.js$/u, '.ts'));
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
if (browserFactoryBase && spec.startsWith('./')) {
|
|
392
|
+
const browserCandidate = new URL(spec.slice('./'.length), browserFactoryBase).href;
|
|
393
|
+
addCandidate(browserCandidate);
|
|
394
|
+
if (browserCandidate.endsWith('.js')) {
|
|
395
|
+
addCandidate(browserCandidate.replace(/\.js$/u, '.ts'));
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
if (packageSpecifier) {
|
|
399
|
+
addCandidate(packageSpecifier);
|
|
400
|
+
if (packageSpecifier.endsWith('.js')) {
|
|
401
|
+
addCandidate(packageSpecifier.replace(/\.js$/u, '.ts'));
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
const baseFallback = spec.startsWith('./') ? `../${spec.slice(2)}` : spec;
|
|
405
|
+
addCandidate(baseFallback);
|
|
406
|
+
if (baseFallback.endsWith('.js')) {
|
|
407
|
+
addCandidate(baseFallback.replace(/\.js$/u, '.ts'));
|
|
408
|
+
}
|
|
409
|
+
return candidates;
|
|
410
|
+
}
|
|
411
|
+
async function performRegistration(registry) {
|
|
412
|
+
await Promise.all(MODULES.map(async (spec) => {
|
|
413
|
+
if (!isNodeEnvironment && NODE_ONLY_FACTORY_MODULES.has(spec)) {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (isNodeEnvironment && BROWSER_ONLY_FACTORY_MODULES.has(spec)) {
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
try {
|
|
420
|
+
let mod;
|
|
421
|
+
let lastError;
|
|
422
|
+
const staticLoader = MODULE_LOADERS?.[spec];
|
|
423
|
+
if (staticLoader) {
|
|
424
|
+
try {
|
|
425
|
+
mod = await staticLoader();
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
lastError = error;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
if (!mod) {
|
|
432
|
+
const candidates = resolveModuleCandidates(spec);
|
|
433
|
+
for (const [index, candidate] of candidates.entries()) {
|
|
434
|
+
try {
|
|
435
|
+
mod = await import(/* @vite-ignore */ candidate);
|
|
436
|
+
lastError = undefined;
|
|
437
|
+
break;
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
lastError = error;
|
|
441
|
+
const isLastCandidate = index === candidates.length - 1;
|
|
442
|
+
if (isLastCandidate) {
|
|
443
|
+
throw error;
|
|
444
|
+
}
|
|
445
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
446
|
+
const moduleNotFound = message.includes('Cannot find module') ||
|
|
447
|
+
message.includes('ERR_MODULE_NOT_FOUND') ||
|
|
448
|
+
message.includes('Unknown file extension') ||
|
|
449
|
+
message.includes('Failed to fetch dynamically imported module') ||
|
|
450
|
+
message.includes('Importing a module script failed');
|
|
451
|
+
if (!moduleNotFound) {
|
|
452
|
+
throw error;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
if (!mod) {
|
|
458
|
+
throw (lastError ?? new Error(`Unable to import factory module: ${spec}`));
|
|
459
|
+
}
|
|
460
|
+
const meta = mod.FACTORY_META;
|
|
461
|
+
const Ctor = mod.default;
|
|
462
|
+
if (!meta?.base || !meta?.key || typeof Ctor !== 'function') {
|
|
463
|
+
console.warn('[factory-manifest] skipped', spec, '— missing FACTORY_META or default export ctor');
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
registry.registerFactory(meta.base, meta.key, Ctor);
|
|
467
|
+
}
|
|
468
|
+
catch (error) {
|
|
469
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
470
|
+
console.warn('[factory-manifest] skipped', spec, '-', reason);
|
|
471
|
+
}
|
|
472
|
+
}));
|
|
473
|
+
}
|
|
474
|
+
async function registerDefaultFactories(registry = Registry) {
|
|
475
|
+
await performRegistration(registry);
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Register all default Naylence runtime factories into the supplied registry.
|
|
479
|
+
*
|
|
480
|
+
* @param registry Registry implementation to receive the default runtime factories.
|
|
481
|
+
*/
|
|
482
|
+
async function registerRuntimeFactories(registry = Registry) {
|
|
483
|
+
if (registry === Registry) {
|
|
484
|
+
await ensureDefaultRegistration();
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
await performRegistration(registry);
|
|
488
|
+
}
|
|
489
|
+
let defaultRegistrationPromise = null;
|
|
490
|
+
let defaultRegistrationError = null;
|
|
491
|
+
async function ensureDefaultRegistration() {
|
|
492
|
+
if (defaultRegistrationError) {
|
|
493
|
+
throw defaultRegistrationError;
|
|
494
|
+
}
|
|
495
|
+
if (!defaultRegistrationPromise) {
|
|
496
|
+
defaultRegistrationError = null;
|
|
497
|
+
defaultRegistrationPromise = performRegistration(Registry).catch((error) => {
|
|
498
|
+
defaultRegistrationError = error;
|
|
499
|
+
defaultRegistrationPromise = null;
|
|
500
|
+
throw error;
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
await defaultRegistrationPromise;
|
|
504
|
+
}
|
|
505
|
+
async function ensureRuntimeFactoriesRegistered(registry = Registry) {
|
|
506
|
+
if (registry !== Registry) {
|
|
507
|
+
await performRegistration(registry);
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
await ensureDefaultRegistration();
|
|
511
|
+
}
|
|
512
|
+
|
|
100
513
|
// This file is auto-generated during build - do not edit manually
|
|
101
|
-
// Generated from package.json version: 0.3.
|
|
514
|
+
// Generated from package.json version: 0.3.15
|
|
102
515
|
/**
|
|
103
516
|
* The package version, injected at build time.
|
|
104
517
|
* @internal
|
|
105
518
|
*/
|
|
106
|
-
const VERSION = '0.3.
|
|
519
|
+
const VERSION = '0.3.15';
|
|
520
|
+
|
|
521
|
+
let initialized = false;
|
|
522
|
+
const runtimePlugin = {
|
|
523
|
+
name: 'naylence:runtime',
|
|
524
|
+
version: VERSION,
|
|
525
|
+
async register() {
|
|
526
|
+
// console.log('[naylence:runtime] register() called, initialized=', initialized);
|
|
527
|
+
if (initialized) {
|
|
528
|
+
// console.log('[naylence:runtime] already initialized, skipping');
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
initialized = true;
|
|
532
|
+
// console.log('[naylence:runtime] registering runtime factories...');
|
|
533
|
+
// Register factories from manifest
|
|
534
|
+
await registerRuntimeFactories();
|
|
535
|
+
// Import modules with side-effect registrations (not in manifest)
|
|
536
|
+
await Promise.resolve().then(function () { return websocketTransportProvisioner; });
|
|
537
|
+
// console.log('[naylence:runtime] runtime factories registered');
|
|
538
|
+
},
|
|
539
|
+
};
|
|
540
|
+
const RUNTIME_PLUGIN_SPECIFIER = runtimePlugin.name;
|
|
541
|
+
|
|
542
|
+
var plugin = /*#__PURE__*/Object.freeze({
|
|
543
|
+
__proto__: null,
|
|
544
|
+
RUNTIME_PLUGIN_SPECIFIER: RUNTIME_PLUGIN_SPECIFIER,
|
|
545
|
+
default: runtimePlugin
|
|
546
|
+
});
|
|
107
547
|
|
|
108
548
|
/**
|
|
109
549
|
* Fame protocol specific error classes with WebSocket close codes and proper inheritance.
|
|
@@ -627,7 +1067,7 @@ function getPinoLevel(level) {
|
|
|
627
1067
|
case LogLevel.CRITICAL:
|
|
628
1068
|
return 'fatal';
|
|
629
1069
|
default:
|
|
630
|
-
return '
|
|
1070
|
+
return 'warn';
|
|
631
1071
|
}
|
|
632
1072
|
}
|
|
633
1073
|
// Initialize Pino if available (Node.js only)
|
|
@@ -706,7 +1146,7 @@ function getInitialLogLevel() {
|
|
|
706
1146
|
}
|
|
707
1147
|
}
|
|
708
1148
|
// Default to INFO - balanced verbosity for most use cases
|
|
709
|
-
return LogLevel.
|
|
1149
|
+
return LogLevel.WARNING;
|
|
710
1150
|
}
|
|
711
1151
|
const defaultConfig = {
|
|
712
1152
|
level: getInitialLogLevel(),
|
|
@@ -14194,419 +14634,6 @@ var extendedFameConfig = /*#__PURE__*/Object.freeze({
|
|
|
14194
14634
|
normalizeExtendedFameConfig: normalizeExtendedFameConfig
|
|
14195
14635
|
});
|
|
14196
14636
|
|
|
14197
|
-
/**
|
|
14198
|
-
* AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
|
|
14199
|
-
* Generated by scripts/generate-factory-manifest.mjs
|
|
14200
|
-
*
|
|
14201
|
-
* Provides the list of runtime factory modules for registration.
|
|
14202
|
-
*/
|
|
14203
|
-
const MODULES = [
|
|
14204
|
-
"./connector/broadcast-channel-connector-factory.js",
|
|
14205
|
-
"./connector/broadcast-channel-listener-factory.js",
|
|
14206
|
-
"./connector/http-listener-factory.js",
|
|
14207
|
-
"./connector/http-stateless-connector-factory.js",
|
|
14208
|
-
"./connector/inpage-connector-factory.js",
|
|
14209
|
-
"./connector/inpage-listener-factory.js",
|
|
14210
|
-
"./connector/websocket-connector-factory.js",
|
|
14211
|
-
"./connector/websocket-listener-factory.js",
|
|
14212
|
-
"./delivery/at-least-once-delivery-policy-factory.js",
|
|
14213
|
-
"./delivery/at-most-once-delivery-policy-factory.js",
|
|
14214
|
-
"./delivery/delivery-profile-factory.js",
|
|
14215
|
-
"./fabric/in-process-fame-fabric-factory.js",
|
|
14216
|
-
"./node/admission/admission-profile-factory.js",
|
|
14217
|
-
"./node/admission/direct-admission-client-factory.js",
|
|
14218
|
-
"./node/admission/noop-admission-client-factory.js",
|
|
14219
|
-
"./node/admission/welcome-service-client-factory.js",
|
|
14220
|
-
"./node/default-node-identity-policy-factory.js",
|
|
14221
|
-
"./node/node-factory.js",
|
|
14222
|
-
"./node/node-identity-policy-profile-factory.js",
|
|
14223
|
-
"./node/token-subject-node-identity-policy-factory.js",
|
|
14224
|
-
"./placement/static-node-placement-strategy-factory.js",
|
|
14225
|
-
"./security/auth/bearer-token-header-auth-injection-strategy-factory.js",
|
|
14226
|
-
"./security/auth/default-authorizer-factory.js",
|
|
14227
|
-
"./security/auth/jwks-jwt-token-verifier-factory.js",
|
|
14228
|
-
"./security/auth/jwt-token-issuer-factory.js",
|
|
14229
|
-
"./security/auth/jwt-token-verifier-factory.js",
|
|
14230
|
-
"./security/auth/no-auth-injection-strategy-factory.js",
|
|
14231
|
-
"./security/auth/none-token-provider-factory.js",
|
|
14232
|
-
"./security/auth/noop-authorizer-factory.js",
|
|
14233
|
-
"./security/auth/noop-token-issuer-factory.js",
|
|
14234
|
-
"./security/auth/noop-token-verifier-factory.js",
|
|
14235
|
-
"./security/auth/oauth2-authorizer-factory.js",
|
|
14236
|
-
"./security/auth/oauth2-client-credentials-token-provider-factory.js",
|
|
14237
|
-
"./security/auth/oauth2-pkce-token-provider-factory.js",
|
|
14238
|
-
"./security/auth/query-param-auth-injection-strategy-factory.js",
|
|
14239
|
-
"./security/auth/shared-secret-authorizer-factory.js",
|
|
14240
|
-
"./security/auth/shared-secret-token-provider-factory.js",
|
|
14241
|
-
"./security/auth/shared-secret-token-verifier-factory.js",
|
|
14242
|
-
"./security/auth/static-token-provider-factory.js",
|
|
14243
|
-
"./security/auth/websocket-subprotocol-auth-injection-strategy-factory.js",
|
|
14244
|
-
"./security/credential/dev-fixed-key-credential-provider-factory.js",
|
|
14245
|
-
"./security/credential/env-credential-provider-factory.js",
|
|
14246
|
-
"./security/credential/none-credential-provider-factory.js",
|
|
14247
|
-
"./security/credential/prompt-credential-provider-factory.js",
|
|
14248
|
-
"./security/credential/secret-store-credential-provider-factory.js",
|
|
14249
|
-
"./security/credential/session-key-credential-provider-factory.js",
|
|
14250
|
-
"./security/credential/static-credential-provider-factory.js",
|
|
14251
|
-
"./security/default-security-manager-factory.js",
|
|
14252
|
-
"./security/encryption/noop-encryption-manager-factory.js",
|
|
14253
|
-
"./security/encryption/noop-secure-channel-manager-factory.js",
|
|
14254
|
-
"./security/keys/default-key-manager-factory.js",
|
|
14255
|
-
"./security/keys/in-memory-key-store-factory.js",
|
|
14256
|
-
"./security/keys/noop-key-validator-factory.js",
|
|
14257
|
-
"./security/node-security-profile-factory.js",
|
|
14258
|
-
"./security/policy/default-security-policy-factory.js",
|
|
14259
|
-
"./security/policy/no-security-policy-factory.js",
|
|
14260
|
-
"./security/signing/eddsa-envelope-signer-factory.js",
|
|
14261
|
-
"./security/signing/eddsa-envelope-verifier-factory.js",
|
|
14262
|
-
"./security/trust-store/noop-trust-store-provider-factory.js",
|
|
14263
|
-
"./sentinel/capability-aware-routing-policy-factory.js",
|
|
14264
|
-
"./sentinel/composite-routing-policy-factory.js",
|
|
14265
|
-
"./sentinel/hybrid-path-routing-policy-factory.js",
|
|
14266
|
-
"./sentinel/load-balancing/composite-load-balancing-strategy-factory.js",
|
|
14267
|
-
"./sentinel/load-balancing/hrw-load-balancing-strategy-factory.js",
|
|
14268
|
-
"./sentinel/load-balancing/load-balancing-profile-factory.js",
|
|
14269
|
-
"./sentinel/load-balancing/random-load-balancing-strategy-factory.js",
|
|
14270
|
-
"./sentinel/load-balancing/round-robin-load-balancing-strategy-factory.js",
|
|
14271
|
-
"./sentinel/load-balancing/sticky-load-balancing-strategy-factory.js",
|
|
14272
|
-
"./sentinel/routing-profile-factory.js",
|
|
14273
|
-
"./sentinel/sentinel-factory.js",
|
|
14274
|
-
"./sentinel/store/route-store-factory.js",
|
|
14275
|
-
"./stickiness/simple-load-balancer-stickiness-manager-factory.js",
|
|
14276
|
-
"./telemetry/noop-trace-emitter-factory.js",
|
|
14277
|
-
"./telemetry/open-telemetry-trace-emitter-factory.js",
|
|
14278
|
-
"./telemetry/trace-emitter-profile-factory.js",
|
|
14279
|
-
"./welcome/default-welcome-service-factory.js"
|
|
14280
|
-
];
|
|
14281
|
-
const MODULE_LOADERS = {
|
|
14282
|
-
"./connector/broadcast-channel-connector-factory.js": () => Promise.resolve().then(function () { return broadcastChannelConnectorFactory; }),
|
|
14283
|
-
"./connector/broadcast-channel-listener-factory.js": () => Promise.resolve().then(function () { return broadcastChannelListenerFactory; }),
|
|
14284
|
-
"./connector/http-listener-factory.js": () => Promise.resolve().then(function () { return httpListenerFactory; }),
|
|
14285
|
-
"./connector/http-stateless-connector-factory.js": () => Promise.resolve().then(function () { return httpStatelessConnectorFactory; }),
|
|
14286
|
-
"./connector/inpage-connector-factory.js": () => Promise.resolve().then(function () { return inpageConnectorFactory; }),
|
|
14287
|
-
"./connector/inpage-listener-factory.js": () => Promise.resolve().then(function () { return inpageListenerFactory; }),
|
|
14288
|
-
"./connector/websocket-connector-factory.js": () => Promise.resolve().then(function () { return websocketConnectorFactory; }),
|
|
14289
|
-
"./connector/websocket-listener-factory.js": () => Promise.resolve().then(function () { return websocketListenerFactory; }),
|
|
14290
|
-
"./delivery/at-least-once-delivery-policy-factory.js": () => Promise.resolve().then(function () { return atLeastOnceDeliveryPolicyFactory; }),
|
|
14291
|
-
"./delivery/at-most-once-delivery-policy-factory.js": () => Promise.resolve().then(function () { return atMostOnceDeliveryPolicyFactory; }),
|
|
14292
|
-
"./delivery/delivery-profile-factory.js": () => Promise.resolve().then(function () { return deliveryProfileFactory; }),
|
|
14293
|
-
"./fabric/in-process-fame-fabric-factory.js": () => Promise.resolve().then(function () { return inProcessFameFabricFactory; }),
|
|
14294
|
-
"./node/admission/admission-profile-factory.js": () => Promise.resolve().then(function () { return admissionProfileFactory; }),
|
|
14295
|
-
"./node/admission/direct-admission-client-factory.js": () => Promise.resolve().then(function () { return directAdmissionClientFactory; }),
|
|
14296
|
-
"./node/admission/noop-admission-client-factory.js": () => Promise.resolve().then(function () { return noopAdmissionClientFactory; }),
|
|
14297
|
-
"./node/admission/welcome-service-client-factory.js": () => Promise.resolve().then(function () { return welcomeServiceClientFactory; }),
|
|
14298
|
-
"./node/default-node-identity-policy-factory.js": () => Promise.resolve().then(function () { return defaultNodeIdentityPolicyFactory; }),
|
|
14299
|
-
"./node/node-factory.js": () => Promise.resolve().then(function () { return nodeFactory; }),
|
|
14300
|
-
"./node/node-identity-policy-profile-factory.js": () => Promise.resolve().then(function () { return nodeIdentityPolicyProfileFactory; }),
|
|
14301
|
-
"./node/token-subject-node-identity-policy-factory.js": () => Promise.resolve().then(function () { return tokenSubjectNodeIdentityPolicyFactory; }),
|
|
14302
|
-
"./placement/static-node-placement-strategy-factory.js": () => Promise.resolve().then(function () { return staticNodePlacementStrategyFactory; }),
|
|
14303
|
-
"./security/auth/bearer-token-header-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return bearerTokenHeaderAuthInjectionStrategyFactory; }),
|
|
14304
|
-
"./security/auth/default-authorizer-factory.js": () => Promise.resolve().then(function () { return defaultAuthorizerFactory; }),
|
|
14305
|
-
"./security/auth/jwks-jwt-token-verifier-factory.js": () => Promise.resolve().then(function () { return jwksJwtTokenVerifierFactory; }),
|
|
14306
|
-
"./security/auth/jwt-token-issuer-factory.js": () => Promise.resolve().then(function () { return jwtTokenIssuerFactory; }),
|
|
14307
|
-
"./security/auth/jwt-token-verifier-factory.js": () => Promise.resolve().then(function () { return jwtTokenVerifierFactory; }),
|
|
14308
|
-
"./security/auth/no-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return noAuthInjectionStrategyFactory; }),
|
|
14309
|
-
"./security/auth/none-token-provider-factory.js": () => Promise.resolve().then(function () { return noneTokenProviderFactory; }),
|
|
14310
|
-
"./security/auth/noop-authorizer-factory.js": () => Promise.resolve().then(function () { return noopAuthorizerFactory; }),
|
|
14311
|
-
"./security/auth/noop-token-issuer-factory.js": () => Promise.resolve().then(function () { return noopTokenIssuerFactory; }),
|
|
14312
|
-
"./security/auth/noop-token-verifier-factory.js": () => Promise.resolve().then(function () { return noopTokenVerifierFactory; }),
|
|
14313
|
-
"./security/auth/oauth2-authorizer-factory.js": () => Promise.resolve().then(function () { return oauth2AuthorizerFactory; }),
|
|
14314
|
-
"./security/auth/oauth2-client-credentials-token-provider-factory.js": () => Promise.resolve().then(function () { return oauth2ClientCredentialsTokenProviderFactory; }),
|
|
14315
|
-
"./security/auth/oauth2-pkce-token-provider-factory.js": () => Promise.resolve().then(function () { return oauth2PkceTokenProviderFactory; }),
|
|
14316
|
-
"./security/auth/query-param-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return queryParamAuthInjectionStrategyFactory; }),
|
|
14317
|
-
"./security/auth/shared-secret-authorizer-factory.js": () => Promise.resolve().then(function () { return sharedSecretAuthorizerFactory; }),
|
|
14318
|
-
"./security/auth/shared-secret-token-provider-factory.js": () => Promise.resolve().then(function () { return sharedSecretTokenProviderFactory; }),
|
|
14319
|
-
"./security/auth/shared-secret-token-verifier-factory.js": () => Promise.resolve().then(function () { return sharedSecretTokenVerifierFactory; }),
|
|
14320
|
-
"./security/auth/static-token-provider-factory.js": () => Promise.resolve().then(function () { return staticTokenProviderFactory; }),
|
|
14321
|
-
"./security/auth/websocket-subprotocol-auth-injection-strategy-factory.js": () => Promise.resolve().then(function () { return websocketSubprotocolAuthInjectionStrategyFactory; }),
|
|
14322
|
-
"./security/credential/dev-fixed-key-credential-provider-factory.js": () => Promise.resolve().then(function () { return devFixedKeyCredentialProviderFactory; }),
|
|
14323
|
-
"./security/credential/env-credential-provider-factory.js": () => Promise.resolve().then(function () { return envCredentialProviderFactory; }),
|
|
14324
|
-
"./security/credential/none-credential-provider-factory.js": () => Promise.resolve().then(function () { return noneCredentialProviderFactory; }),
|
|
14325
|
-
"./security/credential/prompt-credential-provider-factory.js": () => Promise.resolve().then(function () { return promptCredentialProviderFactory; }),
|
|
14326
|
-
"./security/credential/secret-store-credential-provider-factory.js": () => Promise.resolve().then(function () { return secretStoreCredentialProviderFactory; }),
|
|
14327
|
-
"./security/credential/session-key-credential-provider-factory.js": () => Promise.resolve().then(function () { return sessionKeyCredentialProviderFactory; }),
|
|
14328
|
-
"./security/credential/static-credential-provider-factory.js": () => Promise.resolve().then(function () { return staticCredentialProviderFactory; }),
|
|
14329
|
-
"./security/default-security-manager-factory.js": () => Promise.resolve().then(function () { return defaultSecurityManagerFactory; }),
|
|
14330
|
-
"./security/encryption/noop-encryption-manager-factory.js": () => Promise.resolve().then(function () { return noopEncryptionManagerFactory; }),
|
|
14331
|
-
"./security/encryption/noop-secure-channel-manager-factory.js": () => Promise.resolve().then(function () { return noopSecureChannelManagerFactory; }),
|
|
14332
|
-
"./security/keys/default-key-manager-factory.js": () => Promise.resolve().then(function () { return defaultKeyManagerFactory; }),
|
|
14333
|
-
"./security/keys/in-memory-key-store-factory.js": () => Promise.resolve().then(function () { return inMemoryKeyStoreFactory; }),
|
|
14334
|
-
"./security/keys/noop-key-validator-factory.js": () => Promise.resolve().then(function () { return noopKeyValidatorFactory; }),
|
|
14335
|
-
"./security/node-security-profile-factory.js": () => Promise.resolve().then(function () { return nodeSecurityProfileFactory; }),
|
|
14336
|
-
"./security/policy/default-security-policy-factory.js": () => Promise.resolve().then(function () { return defaultSecurityPolicyFactory; }),
|
|
14337
|
-
"./security/policy/no-security-policy-factory.js": () => Promise.resolve().then(function () { return noSecurityPolicyFactory; }),
|
|
14338
|
-
"./security/signing/eddsa-envelope-signer-factory.js": () => Promise.resolve().then(function () { return eddsaEnvelopeSignerFactory; }),
|
|
14339
|
-
"./security/signing/eddsa-envelope-verifier-factory.js": () => Promise.resolve().then(function () { return eddsaEnvelopeVerifierFactory; }),
|
|
14340
|
-
"./security/trust-store/noop-trust-store-provider-factory.js": () => Promise.resolve().then(function () { return noopTrustStoreProviderFactory; }),
|
|
14341
|
-
"./sentinel/capability-aware-routing-policy-factory.js": () => Promise.resolve().then(function () { return capabilityAwareRoutingPolicyFactory; }),
|
|
14342
|
-
"./sentinel/composite-routing-policy-factory.js": () => Promise.resolve().then(function () { return compositeRoutingPolicyFactory; }),
|
|
14343
|
-
"./sentinel/hybrid-path-routing-policy-factory.js": () => Promise.resolve().then(function () { return hybridPathRoutingPolicyFactory; }),
|
|
14344
|
-
"./sentinel/load-balancing/composite-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return compositeLoadBalancingStrategyFactory; }),
|
|
14345
|
-
"./sentinel/load-balancing/hrw-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return hrwLoadBalancingStrategyFactory; }),
|
|
14346
|
-
"./sentinel/load-balancing/load-balancing-profile-factory.js": () => Promise.resolve().then(function () { return loadBalancingProfileFactory; }),
|
|
14347
|
-
"./sentinel/load-balancing/random-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return randomLoadBalancingStrategyFactory; }),
|
|
14348
|
-
"./sentinel/load-balancing/round-robin-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return roundRobinLoadBalancingStrategyFactory; }),
|
|
14349
|
-
"./sentinel/load-balancing/sticky-load-balancing-strategy-factory.js": () => Promise.resolve().then(function () { return stickyLoadBalancingStrategyFactory; }),
|
|
14350
|
-
"./sentinel/routing-profile-factory.js": () => Promise.resolve().then(function () { return routingProfileFactory; }),
|
|
14351
|
-
"./sentinel/sentinel-factory.js": () => Promise.resolve().then(function () { return sentinelFactory; }),
|
|
14352
|
-
"./sentinel/store/route-store-factory.js": () => Promise.resolve().then(function () { return routeStoreFactory; }),
|
|
14353
|
-
"./stickiness/simple-load-balancer-stickiness-manager-factory.js": () => Promise.resolve().then(function () { return simpleLoadBalancerStickinessManagerFactory; }),
|
|
14354
|
-
"./telemetry/noop-trace-emitter-factory.js": () => Promise.resolve().then(function () { return noopTraceEmitterFactory; }),
|
|
14355
|
-
"./telemetry/open-telemetry-trace-emitter-factory.js": () => Promise.resolve().then(function () { return openTelemetryTraceEmitterFactory; }),
|
|
14356
|
-
"./telemetry/trace-emitter-profile-factory.js": () => Promise.resolve().then(function () { return traceEmitterProfileFactory; }),
|
|
14357
|
-
"./welcome/default-welcome-service-factory.js": () => Promise.resolve().then(function () { return defaultWelcomeServiceFactory; }),
|
|
14358
|
-
};
|
|
14359
|
-
|
|
14360
|
-
const FACTORY_MODULE_PREFIX$1 = '@naylence/runtime/naylence/fame/';
|
|
14361
|
-
const BROWSER_DIST_SEGMENT = '/dist/browser/';
|
|
14362
|
-
const NODE_ONLY_FACTORY_MODULES = new Set([
|
|
14363
|
-
'./connector/http-listener-factory.js',
|
|
14364
|
-
'./connector/websocket-listener-factory.js',
|
|
14365
|
-
'./telemetry/open-telemetry-trace-emitter-factory.js',
|
|
14366
|
-
'./security/credential/prompt-credential-provider-factory.js',
|
|
14367
|
-
]);
|
|
14368
|
-
const BROWSER_ONLY_FACTORY_MODULES = new Set([
|
|
14369
|
-
'./security/auth/oauth2-pkce-token-provider-factory.js',
|
|
14370
|
-
]);
|
|
14371
|
-
const isNodeEnvironment = typeof process !== 'undefined' && Boolean(process?.versions?.node);
|
|
14372
|
-
function detectModuleUrl() {
|
|
14373
|
-
// Prefer Node-friendly __filename when available.
|
|
14374
|
-
if (typeof __filename === 'string') {
|
|
14375
|
-
try {
|
|
14376
|
-
const normalized = __filename.startsWith('file://')
|
|
14377
|
-
? __filename
|
|
14378
|
-
: `file://${__filename}`;
|
|
14379
|
-
return normalized;
|
|
14380
|
-
}
|
|
14381
|
-
catch {
|
|
14382
|
-
// fall through to stack parsing
|
|
14383
|
-
}
|
|
14384
|
-
}
|
|
14385
|
-
// Fallback to parsing the current stack trace to discover the executing module URL.
|
|
14386
|
-
try {
|
|
14387
|
-
throw new Error();
|
|
14388
|
-
}
|
|
14389
|
-
catch (error) {
|
|
14390
|
-
const stack = typeof error === 'object' && error && 'stack' in error
|
|
14391
|
-
? String(error.stack ?? '')
|
|
14392
|
-
: '';
|
|
14393
|
-
const lines = stack.split('\n');
|
|
14394
|
-
for (const line of lines) {
|
|
14395
|
-
const match = line.match(/(https?:\/\/[^\s)]+|file:\/\/[^\s)]+|\/[^\s)]+\.(?:js|ts))/u);
|
|
14396
|
-
if (!match) {
|
|
14397
|
-
continue;
|
|
14398
|
-
}
|
|
14399
|
-
const candidate = match[1];
|
|
14400
|
-
if (candidate.startsWith('http://') || candidate.startsWith('https://')) {
|
|
14401
|
-
return candidate;
|
|
14402
|
-
}
|
|
14403
|
-
if (candidate.startsWith('file://')) {
|
|
14404
|
-
return candidate;
|
|
14405
|
-
}
|
|
14406
|
-
return `file://${candidate}`;
|
|
14407
|
-
}
|
|
14408
|
-
}
|
|
14409
|
-
return null;
|
|
14410
|
-
}
|
|
14411
|
-
function computeBrowserFactoryBase(rawUrl) {
|
|
14412
|
-
if (!rawUrl) {
|
|
14413
|
-
return null;
|
|
14414
|
-
}
|
|
14415
|
-
const sanitized = rawUrl.split('?')[0]?.split('#')[0] ?? rawUrl;
|
|
14416
|
-
const esmMarker = '/dist/esm/naylence/fame/';
|
|
14417
|
-
const browserMarker = '/dist/browser/';
|
|
14418
|
-
const distMarker = '/dist/';
|
|
14419
|
-
if (sanitized.includes(esmMarker)) {
|
|
14420
|
-
return sanitized.slice(0, sanitized.indexOf(esmMarker) + esmMarker.length);
|
|
14421
|
-
}
|
|
14422
|
-
if (rawUrl.includes(BROWSER_DIST_SEGMENT)) {
|
|
14423
|
-
return new URL('../esm/naylence/fame/', rawUrl).href;
|
|
14424
|
-
}
|
|
14425
|
-
if (rawUrl.startsWith('http://') || rawUrl.startsWith('https://')) {
|
|
14426
|
-
try {
|
|
14427
|
-
const parsed = new URL(rawUrl);
|
|
14428
|
-
const viteDepsSegment = '/node_modules/.vite/deps/';
|
|
14429
|
-
if (parsed.pathname.includes(viteDepsSegment)) {
|
|
14430
|
-
const baseOrigin = `${parsed.protocol}//${parsed.host}`;
|
|
14431
|
-
return `${baseOrigin}/node_modules/@naylence/runtime/dist/esm/naylence/fame/`;
|
|
14432
|
-
}
|
|
14433
|
-
}
|
|
14434
|
-
catch {
|
|
14435
|
-
// ignore and fall through to null
|
|
14436
|
-
}
|
|
14437
|
-
}
|
|
14438
|
-
if (sanitized.includes(browserMarker)) {
|
|
14439
|
-
const base = sanitized.slice(0, sanitized.indexOf(browserMarker) + browserMarker.length);
|
|
14440
|
-
return `${base.replace(/browser\/?$/u, '')}esm/naylence/fame/`;
|
|
14441
|
-
}
|
|
14442
|
-
if (sanitized.includes(distMarker)) {
|
|
14443
|
-
const index = sanitized.indexOf(distMarker);
|
|
14444
|
-
const base = sanitized.slice(0, index + distMarker.length);
|
|
14445
|
-
return `${base}esm/naylence/fame/`;
|
|
14446
|
-
}
|
|
14447
|
-
// Fallback for development: if this is a source file path, compute dist/esm path
|
|
14448
|
-
const srcMarker = '/src/naylence/fame/';
|
|
14449
|
-
if (sanitized.includes(srcMarker)) {
|
|
14450
|
-
const index = sanitized.indexOf(srcMarker);
|
|
14451
|
-
const projectRoot = sanitized.slice(0, index);
|
|
14452
|
-
return `${projectRoot}/dist/esm/naylence/fame/`;
|
|
14453
|
-
}
|
|
14454
|
-
return null;
|
|
14455
|
-
}
|
|
14456
|
-
const moduleUrl = detectModuleUrl();
|
|
14457
|
-
const browserFactoryBase = computeBrowserFactoryBase(moduleUrl);
|
|
14458
|
-
function resolveFactoryModuleSpecifier$1(specifier) {
|
|
14459
|
-
if (specifier.startsWith('../')) {
|
|
14460
|
-
const relativePath = specifier.slice('../'.length);
|
|
14461
|
-
return `${FACTORY_MODULE_PREFIX$1}${relativePath}`;
|
|
14462
|
-
}
|
|
14463
|
-
if (specifier.startsWith('./')) {
|
|
14464
|
-
const relativePath = specifier.slice('./'.length);
|
|
14465
|
-
return `${FACTORY_MODULE_PREFIX$1}${relativePath}`;
|
|
14466
|
-
}
|
|
14467
|
-
return null;
|
|
14468
|
-
}
|
|
14469
|
-
function resolveModuleCandidates(spec) {
|
|
14470
|
-
const packageSpecifier = resolveFactoryModuleSpecifier$1(spec);
|
|
14471
|
-
const candidates = [];
|
|
14472
|
-
const preferSource = typeof moduleUrl === 'string' && moduleUrl.includes('/src/');
|
|
14473
|
-
const addCandidate = (candidate) => {
|
|
14474
|
-
if (!candidate) {
|
|
14475
|
-
return;
|
|
14476
|
-
}
|
|
14477
|
-
if (!candidates.includes(candidate)) {
|
|
14478
|
-
candidates.push(candidate);
|
|
14479
|
-
}
|
|
14480
|
-
};
|
|
14481
|
-
if (preferSource && spec.startsWith('./')) {
|
|
14482
|
-
const baseSource = `../${spec.slice(2)}`;
|
|
14483
|
-
addCandidate(baseSource);
|
|
14484
|
-
if (baseSource.endsWith('.js')) {
|
|
14485
|
-
addCandidate(baseSource.replace(/\.js$/u, '.ts'));
|
|
14486
|
-
}
|
|
14487
|
-
}
|
|
14488
|
-
if (browserFactoryBase && spec.startsWith('./')) {
|
|
14489
|
-
const browserCandidate = new URL(spec.slice('./'.length), browserFactoryBase).href;
|
|
14490
|
-
addCandidate(browserCandidate);
|
|
14491
|
-
if (browserCandidate.endsWith('.js')) {
|
|
14492
|
-
addCandidate(browserCandidate.replace(/\.js$/u, '.ts'));
|
|
14493
|
-
}
|
|
14494
|
-
}
|
|
14495
|
-
if (packageSpecifier) {
|
|
14496
|
-
addCandidate(packageSpecifier);
|
|
14497
|
-
if (packageSpecifier.endsWith('.js')) {
|
|
14498
|
-
addCandidate(packageSpecifier.replace(/\.js$/u, '.ts'));
|
|
14499
|
-
}
|
|
14500
|
-
}
|
|
14501
|
-
const baseFallback = spec.startsWith('./') ? `../${spec.slice(2)}` : spec;
|
|
14502
|
-
addCandidate(baseFallback);
|
|
14503
|
-
if (baseFallback.endsWith('.js')) {
|
|
14504
|
-
addCandidate(baseFallback.replace(/\.js$/u, '.ts'));
|
|
14505
|
-
}
|
|
14506
|
-
return candidates;
|
|
14507
|
-
}
|
|
14508
|
-
async function performRegistration(registry) {
|
|
14509
|
-
await Promise.all(MODULES.map(async (spec) => {
|
|
14510
|
-
if (!isNodeEnvironment && NODE_ONLY_FACTORY_MODULES.has(spec)) {
|
|
14511
|
-
return;
|
|
14512
|
-
}
|
|
14513
|
-
if (isNodeEnvironment && BROWSER_ONLY_FACTORY_MODULES.has(spec)) {
|
|
14514
|
-
return;
|
|
14515
|
-
}
|
|
14516
|
-
try {
|
|
14517
|
-
let mod;
|
|
14518
|
-
let lastError;
|
|
14519
|
-
const staticLoader = MODULE_LOADERS?.[spec];
|
|
14520
|
-
if (staticLoader) {
|
|
14521
|
-
try {
|
|
14522
|
-
mod = await staticLoader();
|
|
14523
|
-
}
|
|
14524
|
-
catch (error) {
|
|
14525
|
-
lastError = error;
|
|
14526
|
-
}
|
|
14527
|
-
}
|
|
14528
|
-
if (!mod) {
|
|
14529
|
-
const candidates = resolveModuleCandidates(spec);
|
|
14530
|
-
for (const [index, candidate] of candidates.entries()) {
|
|
14531
|
-
try {
|
|
14532
|
-
mod = await import(/* @vite-ignore */ candidate);
|
|
14533
|
-
lastError = undefined;
|
|
14534
|
-
break;
|
|
14535
|
-
}
|
|
14536
|
-
catch (error) {
|
|
14537
|
-
lastError = error;
|
|
14538
|
-
const isLastCandidate = index === candidates.length - 1;
|
|
14539
|
-
if (isLastCandidate) {
|
|
14540
|
-
throw error;
|
|
14541
|
-
}
|
|
14542
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
14543
|
-
const moduleNotFound = message.includes('Cannot find module') ||
|
|
14544
|
-
message.includes('ERR_MODULE_NOT_FOUND') ||
|
|
14545
|
-
message.includes('Unknown file extension') ||
|
|
14546
|
-
message.includes('Failed to fetch dynamically imported module') ||
|
|
14547
|
-
message.includes('Importing a module script failed');
|
|
14548
|
-
if (!moduleNotFound) {
|
|
14549
|
-
throw error;
|
|
14550
|
-
}
|
|
14551
|
-
}
|
|
14552
|
-
}
|
|
14553
|
-
}
|
|
14554
|
-
if (!mod) {
|
|
14555
|
-
throw (lastError ?? new Error(`Unable to import factory module: ${spec}`));
|
|
14556
|
-
}
|
|
14557
|
-
const meta = mod.FACTORY_META;
|
|
14558
|
-
const Ctor = mod.default;
|
|
14559
|
-
if (!meta?.base || !meta?.key || typeof Ctor !== 'function') {
|
|
14560
|
-
console.warn('[factory-manifest] skipped', spec, '— missing FACTORY_META or default export ctor');
|
|
14561
|
-
return;
|
|
14562
|
-
}
|
|
14563
|
-
registry.registerFactory(meta.base, meta.key, Ctor);
|
|
14564
|
-
}
|
|
14565
|
-
catch (error) {
|
|
14566
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
14567
|
-
console.warn('[factory-manifest] skipped', spec, '-', reason);
|
|
14568
|
-
}
|
|
14569
|
-
}));
|
|
14570
|
-
}
|
|
14571
|
-
async function registerDefaultFactories(registry = Registry) {
|
|
14572
|
-
await performRegistration(registry);
|
|
14573
|
-
}
|
|
14574
|
-
/**
|
|
14575
|
-
* Register all default Naylence runtime factories into the supplied registry.
|
|
14576
|
-
*
|
|
14577
|
-
* @param registry Registry implementation to receive the default runtime factories.
|
|
14578
|
-
*/
|
|
14579
|
-
async function registerRuntimeFactories(registry = Registry) {
|
|
14580
|
-
if (registry === Registry) {
|
|
14581
|
-
await ensureDefaultRegistration();
|
|
14582
|
-
return;
|
|
14583
|
-
}
|
|
14584
|
-
await performRegistration(registry);
|
|
14585
|
-
}
|
|
14586
|
-
let defaultRegistrationPromise = null;
|
|
14587
|
-
let defaultRegistrationError = null;
|
|
14588
|
-
async function ensureDefaultRegistration() {
|
|
14589
|
-
if (defaultRegistrationError) {
|
|
14590
|
-
throw defaultRegistrationError;
|
|
14591
|
-
}
|
|
14592
|
-
if (!defaultRegistrationPromise) {
|
|
14593
|
-
defaultRegistrationError = null;
|
|
14594
|
-
defaultRegistrationPromise = performRegistration(Registry).catch((error) => {
|
|
14595
|
-
defaultRegistrationError = error;
|
|
14596
|
-
defaultRegistrationPromise = null;
|
|
14597
|
-
throw error;
|
|
14598
|
-
});
|
|
14599
|
-
}
|
|
14600
|
-
await defaultRegistrationPromise;
|
|
14601
|
-
}
|
|
14602
|
-
async function ensureRuntimeFactoriesRegistered(registry = Registry) {
|
|
14603
|
-
if (registry !== Registry) {
|
|
14604
|
-
await performRegistration(registry);
|
|
14605
|
-
return;
|
|
14606
|
-
}
|
|
14607
|
-
await ensureDefaultRegistration();
|
|
14608
|
-
}
|
|
14609
|
-
|
|
14610
14637
|
const NODE_LIKE_FACTORY_BASE_TYPE = 'NodeLikeFactory';
|
|
14611
14638
|
class NodeLikeFactory extends AbstractResourceFactory {
|
|
14612
14639
|
static async createNode(config, options = {}) {
|
|
@@ -31231,6 +31258,16 @@ var broadcastChannelListenerFactory = /*#__PURE__*/Object.freeze({
|
|
|
31231
31258
|
});
|
|
31232
31259
|
|
|
31233
31260
|
installProcessEnvShim();
|
|
31261
|
+
// Always register the plugin directly in the browser.
|
|
31262
|
+
// This bypasses the need for dynamic imports of bare specifiers, which often fail in bundlers.
|
|
31263
|
+
(async () => {
|
|
31264
|
+
try {
|
|
31265
|
+
await runtimePlugin.register();
|
|
31266
|
+
}
|
|
31267
|
+
catch (err) {
|
|
31268
|
+
console.error('[naylence-runtime] Failed to auto-register plugin:', err);
|
|
31269
|
+
}
|
|
31270
|
+
})();
|
|
31234
31271
|
|
|
31235
31272
|
let defaultHttpServerModulePromise$1 = null;
|
|
31236
31273
|
function getDefaultHttpServerModule$1() {
|
|
@@ -37987,31 +38024,104 @@ var traceEmitterProfileFactory = /*#__PURE__*/Object.freeze({
|
|
|
37987
38024
|
default: TraceEmitterProfileFactory
|
|
37988
38025
|
});
|
|
37989
38026
|
|
|
37990
|
-
|
|
37991
|
-
|
|
37992
|
-
|
|
37993
|
-
|
|
37994
|
-
|
|
37995
|
-
|
|
37996
|
-
|
|
37997
|
-
|
|
37998
|
-
|
|
38027
|
+
class WebSocketTransportProvisioner {
|
|
38028
|
+
constructor(options) {
|
|
38029
|
+
this.url = options.url;
|
|
38030
|
+
this.ttlSec = options.ttlSec;
|
|
38031
|
+
}
|
|
38032
|
+
async provision(_decision, hello, _fullMetadata, attachToken) {
|
|
38033
|
+
const supportedTransports = hello.supportedTransports;
|
|
38034
|
+
if (Array.isArray(supportedTransports) && supportedTransports.length > 0) {
|
|
38035
|
+
const hasWebSocket = supportedTransports.includes(WebSocketTransportProvisioner.TRANSPORT_TYPE);
|
|
38036
|
+
if (!hasWebSocket) {
|
|
38037
|
+
throw new Error(`Unsupported transports: ${supportedTransports.join(', ')}`);
|
|
38038
|
+
}
|
|
37999
38039
|
}
|
|
38000
|
-
|
|
38001
|
-
|
|
38002
|
-
|
|
38003
|
-
|
|
38004
|
-
|
|
38005
|
-
|
|
38006
|
-
|
|
38007
|
-
|
|
38008
|
-
|
|
38009
|
-
|
|
38040
|
+
let authConfig;
|
|
38041
|
+
if (attachToken) {
|
|
38042
|
+
const tokenProviderConfig = {
|
|
38043
|
+
type: 'StaticTokenProvider',
|
|
38044
|
+
token: attachToken,
|
|
38045
|
+
};
|
|
38046
|
+
authConfig = {
|
|
38047
|
+
type: 'WebSocketSubprotocolAuth',
|
|
38048
|
+
tokenProvider: tokenProviderConfig,
|
|
38049
|
+
};
|
|
38050
|
+
}
|
|
38051
|
+
const grant = normalizeWebSocketConnectionGrant({
|
|
38052
|
+
type: WEBSOCKET_CONNECTION_GRANT_TYPE,
|
|
38053
|
+
purpose: GRANT_PURPOSE_NODE_ATTACH,
|
|
38054
|
+
url: this.url,
|
|
38055
|
+
auth: authConfig,
|
|
38056
|
+
});
|
|
38057
|
+
const result = {
|
|
38058
|
+
connectionGrant: grant,
|
|
38059
|
+
cleanupHandle: null,
|
|
38060
|
+
};
|
|
38061
|
+
if (this.ttlSec !== undefined) {
|
|
38062
|
+
result.metadata = {
|
|
38063
|
+
...(result.metadata ?? {}),
|
|
38064
|
+
ttlSec: this.ttlSec,
|
|
38065
|
+
};
|
|
38066
|
+
}
|
|
38067
|
+
return result;
|
|
38068
|
+
}
|
|
38069
|
+
async deprovision(_cleanupHandle) {
|
|
38070
|
+
// No-op for stateless WebSocket transport provisioners
|
|
38071
|
+
}
|
|
38072
|
+
}
|
|
38073
|
+
WebSocketTransportProvisioner.TRANSPORT_TYPE = 'websocket';
|
|
38074
|
+
class WebSocketTransportProvisionerFactory extends TransportProvisionerFactory {
|
|
38075
|
+
constructor() {
|
|
38076
|
+
super(...arguments);
|
|
38077
|
+
this.type = 'WebSocketTransportProvisioner';
|
|
38078
|
+
this.isDefault = true;
|
|
38079
|
+
}
|
|
38080
|
+
async create(config) {
|
|
38081
|
+
const options = normalizeConfig(config);
|
|
38082
|
+
return new WebSocketTransportProvisioner(options);
|
|
38083
|
+
}
|
|
38084
|
+
}
|
|
38085
|
+
function normalizeConfig(config) {
|
|
38086
|
+
if (!config) {
|
|
38087
|
+
throw new Error('WebSocketTransportProvisioner requires configuration');
|
|
38088
|
+
}
|
|
38089
|
+
const candidate = config;
|
|
38090
|
+
const typeValue = typeof candidate.type === 'string' ? candidate.type : undefined;
|
|
38091
|
+
if (typeValue !== 'WebSocketTransportProvisioner') {
|
|
38092
|
+
throw new Error(`WebSocketTransportProvisionerFactory expects type "WebSocketTransportProvisioner", got "${typeValue ?? 'undefined'}"`);
|
|
38093
|
+
}
|
|
38094
|
+
const urlValue = candidate.url;
|
|
38095
|
+
if (typeof urlValue !== 'string' || urlValue.trim().length === 0) {
|
|
38096
|
+
throw new Error('WebSocketTransportProvisioner configuration must include a non-empty "url" string');
|
|
38097
|
+
}
|
|
38098
|
+
const ttlCandidate = (() => {
|
|
38099
|
+
const raw = candidate.ttlSec ?? candidate.ttl_sec ?? candidate.ttlSEC;
|
|
38100
|
+
if (typeof raw === 'number') {
|
|
38101
|
+
return raw;
|
|
38102
|
+
}
|
|
38103
|
+
if (typeof raw === 'string') {
|
|
38104
|
+
const parsed = Number(raw.trim());
|
|
38105
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
38106
|
+
}
|
|
38107
|
+
return undefined;
|
|
38108
|
+
})();
|
|
38109
|
+
const options = {
|
|
38110
|
+
url: urlValue.trim(),
|
|
38111
|
+
};
|
|
38112
|
+
if (typeof ttlCandidate === 'number' && Number.isFinite(ttlCandidate)) {
|
|
38113
|
+
options.ttlSec = ttlCandidate;
|
|
38114
|
+
}
|
|
38115
|
+
return options;
|
|
38116
|
+
}
|
|
38117
|
+
registerFactory(TRANSPORT_PROVISIONER_FACTORY_BASE_TYPE, 'WebSocketTransportProvisioner', WebSocketTransportProvisionerFactory, {
|
|
38118
|
+
isDefault: true,
|
|
38119
|
+
});
|
|
38010
38120
|
|
|
38011
|
-
var
|
|
38121
|
+
var websocketTransportProvisioner = /*#__PURE__*/Object.freeze({
|
|
38012
38122
|
__proto__: null,
|
|
38013
|
-
|
|
38014
|
-
|
|
38123
|
+
WebSocketTransportProvisioner: WebSocketTransportProvisioner,
|
|
38124
|
+
WebSocketTransportProvisionerFactory: WebSocketTransportProvisionerFactory
|
|
38015
38125
|
});
|
|
38016
38126
|
|
|
38017
38127
|
const logger$8 = getLogger('naylence.fame.connector.default_http_server');
|
|
@@ -41408,104 +41518,4 @@ var otelSetup = /*#__PURE__*/Object.freeze({
|
|
|
41408
41518
|
setupOtel: setupOtel
|
|
41409
41519
|
});
|
|
41410
41520
|
|
|
41411
|
-
class WebSocketTransportProvisioner {
|
|
41412
|
-
constructor(options) {
|
|
41413
|
-
this.url = options.url;
|
|
41414
|
-
this.ttlSec = options.ttlSec;
|
|
41415
|
-
}
|
|
41416
|
-
async provision(_decision, hello, _fullMetadata, attachToken) {
|
|
41417
|
-
const supportedTransports = hello.supportedTransports;
|
|
41418
|
-
if (Array.isArray(supportedTransports) && supportedTransports.length > 0) {
|
|
41419
|
-
const hasWebSocket = supportedTransports.includes(WebSocketTransportProvisioner.TRANSPORT_TYPE);
|
|
41420
|
-
if (!hasWebSocket) {
|
|
41421
|
-
throw new Error(`Unsupported transports: ${supportedTransports.join(', ')}`);
|
|
41422
|
-
}
|
|
41423
|
-
}
|
|
41424
|
-
let authConfig;
|
|
41425
|
-
if (attachToken) {
|
|
41426
|
-
const tokenProviderConfig = {
|
|
41427
|
-
type: 'StaticTokenProvider',
|
|
41428
|
-
token: attachToken,
|
|
41429
|
-
};
|
|
41430
|
-
authConfig = {
|
|
41431
|
-
type: 'WebSocketSubprotocolAuth',
|
|
41432
|
-
tokenProvider: tokenProviderConfig,
|
|
41433
|
-
};
|
|
41434
|
-
}
|
|
41435
|
-
const grant = normalizeWebSocketConnectionGrant({
|
|
41436
|
-
type: WEBSOCKET_CONNECTION_GRANT_TYPE,
|
|
41437
|
-
purpose: GRANT_PURPOSE_NODE_ATTACH,
|
|
41438
|
-
url: this.url,
|
|
41439
|
-
auth: authConfig,
|
|
41440
|
-
});
|
|
41441
|
-
const result = {
|
|
41442
|
-
connectionGrant: grant,
|
|
41443
|
-
cleanupHandle: null,
|
|
41444
|
-
};
|
|
41445
|
-
if (this.ttlSec !== undefined) {
|
|
41446
|
-
result.metadata = {
|
|
41447
|
-
...(result.metadata ?? {}),
|
|
41448
|
-
ttlSec: this.ttlSec,
|
|
41449
|
-
};
|
|
41450
|
-
}
|
|
41451
|
-
return result;
|
|
41452
|
-
}
|
|
41453
|
-
async deprovision(_cleanupHandle) {
|
|
41454
|
-
// No-op for stateless WebSocket transport provisioners
|
|
41455
|
-
}
|
|
41456
|
-
}
|
|
41457
|
-
WebSocketTransportProvisioner.TRANSPORT_TYPE = 'websocket';
|
|
41458
|
-
class WebSocketTransportProvisionerFactory extends TransportProvisionerFactory {
|
|
41459
|
-
constructor() {
|
|
41460
|
-
super(...arguments);
|
|
41461
|
-
this.type = 'WebSocketTransportProvisioner';
|
|
41462
|
-
this.isDefault = true;
|
|
41463
|
-
}
|
|
41464
|
-
async create(config) {
|
|
41465
|
-
const options = normalizeConfig(config);
|
|
41466
|
-
return new WebSocketTransportProvisioner(options);
|
|
41467
|
-
}
|
|
41468
|
-
}
|
|
41469
|
-
function normalizeConfig(config) {
|
|
41470
|
-
if (!config) {
|
|
41471
|
-
throw new Error('WebSocketTransportProvisioner requires configuration');
|
|
41472
|
-
}
|
|
41473
|
-
const candidate = config;
|
|
41474
|
-
const typeValue = typeof candidate.type === 'string' ? candidate.type : undefined;
|
|
41475
|
-
if (typeValue !== 'WebSocketTransportProvisioner') {
|
|
41476
|
-
throw new Error(`WebSocketTransportProvisionerFactory expects type "WebSocketTransportProvisioner", got "${typeValue ?? 'undefined'}"`);
|
|
41477
|
-
}
|
|
41478
|
-
const urlValue = candidate.url;
|
|
41479
|
-
if (typeof urlValue !== 'string' || urlValue.trim().length === 0) {
|
|
41480
|
-
throw new Error('WebSocketTransportProvisioner configuration must include a non-empty "url" string');
|
|
41481
|
-
}
|
|
41482
|
-
const ttlCandidate = (() => {
|
|
41483
|
-
const raw = candidate.ttlSec ?? candidate.ttl_sec ?? candidate.ttlSEC;
|
|
41484
|
-
if (typeof raw === 'number') {
|
|
41485
|
-
return raw;
|
|
41486
|
-
}
|
|
41487
|
-
if (typeof raw === 'string') {
|
|
41488
|
-
const parsed = Number(raw.trim());
|
|
41489
|
-
return Number.isFinite(parsed) ? parsed : undefined;
|
|
41490
|
-
}
|
|
41491
|
-
return undefined;
|
|
41492
|
-
})();
|
|
41493
|
-
const options = {
|
|
41494
|
-
url: urlValue.trim(),
|
|
41495
|
-
};
|
|
41496
|
-
if (typeof ttlCandidate === 'number' && Number.isFinite(ttlCandidate)) {
|
|
41497
|
-
options.ttlSec = ttlCandidate;
|
|
41498
|
-
}
|
|
41499
|
-
return options;
|
|
41500
|
-
}
|
|
41501
|
-
registerFactory(TRANSPORT_PROVISIONER_FACTORY_BASE_TYPE, 'WebSocketTransportProvisioner', WebSocketTransportProvisionerFactory, {
|
|
41502
|
-
isDefault: true,
|
|
41503
|
-
});
|
|
41504
|
-
|
|
41505
|
-
var websocketTransportProvisioner = /*#__PURE__*/Object.freeze({
|
|
41506
|
-
__proto__: null,
|
|
41507
|
-
WebSocketTransportProvisioner: WebSocketTransportProvisioner,
|
|
41508
|
-
WebSocketTransportProvisionerFactory: WebSocketTransportProvisionerFactory
|
|
41509
|
-
});
|
|
41510
|
-
|
|
41511
41521
|
export { ADMISSION_CLIENT_FACTORY_BASE_TYPE, ATTACHMENT_KEY_VALIDATOR_FACTORY_BASE_TYPE, AUTHORIZER_FACTORY_BASE_TYPE, AUTH_INJECTION_STRATEGY_FACTORY_BASE_TYPE, AnsiColor, AsyncLock, AttachmentKeyValidator, AuthInjectionStrategyFactory, AuthorizerFactory, BROADCAST_CHANNEL_CONNECTION_GRANT_TYPE, FACTORY_META$Z as BROADCAST_CHANNEL_CONNECTOR_FACTORY_META, BROADCAST_CHANNEL_CONNECTOR_TYPE, FACTORY_META$X as BROADCAST_CHANNEL_LISTENER_FACTORY_META, BackPressureFull, BaseAsyncConnector, BaseNodeEventListener, BindingManager, BindingStoreEntryRecord, BroadcastChannelConnector, BroadcastChannelConnectorFactory, BroadcastChannelListener, BroadcastChannelListenerFactory, BrowserAutoKeyCredentialProvider, BrowserWrappedKeyCredentialProvider, CERTIFICATE_MANAGER_FACTORY_BASE_TYPE, CREDENTIAL_PROVIDER_FACTORY_BASE_TYPE, CRYPTO_LEVEL_SECURITY_ORDER, CertificateManagerFactory, ConnectorConfigDefaults, ConnectorFactory, ConsoleMetricsEmitter, CryptoLevel, FACTORY_META$$ as DEFAULT_WELCOME_FACTORY_META, DefaultCryptoProvider, DefaultKeyManager, DefaultNodeIdentityPolicy, DefaultNodeIdentityPolicyFactory, DefaultSecurityManager, DefaultSecurityPolicy, DefaultWelcomeService, DefaultWelcomeServiceFactory, DevFixedKeyCredentialProvider, ENCRYPTION_MANAGER_FACTORY_BASE_TYPE, ENVELOPE_SIGNER_FACTORY_BASE_TYPE, ENVELOPE_VERIFIER_FACTORY_BASE_TYPE, ENV_VAR_DEFAULT_ENCRYPTION_LEVEL, ENV_VAR_HMAC_SECRET, ENV_VAR_JWKS_URL, ENV_VAR_JWT_ALGORITHM, ENV_VAR_JWT_AUDIENCE$1 as ENV_VAR_JWT_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER, ENV_VAR_JWT_TRUSTED_ISSUER, ENV_VAR_SHOW_ENVELOPES$1 as ENV_VAR_SHOW_ENVELOPES, EdDSAEnvelopeSigner, EncryptedKeyValueStore, EncryptedStorageProviderBase, EncryptedValue, EncryptionConfiguration, EncryptionManagerFactory, EncryptionResult, EncryptionStatus, EnvCredentialProvider, EnvelopeContext, EnvelopeListenerManager, EnvelopeSecurityHandler, EnvelopeSignerFactory, EnvelopeVerifierFactory, FACTORY_META$10 as FACTORY_META, FIXED_PREFIX_LEN, FameAuthorizedDeliveryContextSchema, FameConnectError, FameEnvironmentContext, FameError, FameMessageTooLarge, FameNode, FameNodeAuthorizationContextSchema, FameProtocolError, FameTransportClose, FlowController, GRANT_PURPOSE_NODE_ATTACH, HTTP_CONNECTION_GRANT_TYPE, HTTP_STATELESS_CONNECTOR_TYPE, INPAGE_CONNECTION_GRANT_TYPE, FACTORY_META$_ as INPAGE_CONNECTOR_FACTORY_META, INPAGE_CONNECTOR_TYPE, FACTORY_META$Y as INPAGE_LISTENER_FACTORY_META, InMemoryBinding, InMemoryFanoutBroker, InMemoryKeyValueStore, InMemoryReadWriteChannel, InMemoryStorageProvider, InPageConnector, InPageConnectorFactory, InPageListener, InPageListenerFactory, IndexedDBKeyValueStore, IndexedDBStorageProvider, InvalidPassphraseError, JWKValidationError, KEY_MANAGER_FACTORY_BASE_TYPE, KEY_STORE_FACTORY_BASE_TYPE, KeyInfo, KeyManagementHandler, KeyManagerFactory, KeyStore, KeyStoreFactory, KeyValidationError, LOAD_BALANCER_STICKINESS_MANAGER_FACTORY_BASE_TYPE, LoadBalancerStickinessManagerFactory, LogLevel, LogLevelNames, MemoryMetricsEmitter, NODE_IDENTITY_POLICY_FACTORY_BASE_TYPE, NODE_LIKE_FACTORY_BASE_TYPE, NODE_PLACEMENT_STRATEGY_FACTORY_BASE_TYPE, NoOpMetricsEmitter, NoSecurityPolicy, NodeFactory, NodeIdentityPolicyFactory, NodeIdentityPolicyProfileFactory, NodePlacementStrategyFactory, NoneCredentialProvider, NoopEncryptionManager, NoopKeyValidator, NoopTrustStoreProvider, NotAuthorized, PROFILE_NAME_GATED, PROFILE_NAME_GATED_CALLBACK, PROFILE_NAME_OPEN$1 as PROFILE_NAME_OPEN, PROFILE_NAME_OVERLAY, PROFILE_NAME_OVERLAY_CALLBACK, PROFILE_NAME_STRICT_OVERLAY, PromptCredentialProvider, REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE, REQUIRED_FIELDS_BY_KTY, ReplicaStickinessManagerFactory, RootSessionManager, RouteManager, RpcMixin, RpcProxy, SEALED_ENVELOPE_NONCE_LENGTH, SEALED_ENVELOPE_OVERHEAD, SEALED_ENVELOPE_PRIVATE_KEY_LENGTH, SEALED_ENVELOPE_PUBLIC_KEY_LENGTH, SEALED_ENVELOPE_TAG_LENGTH, SECURE_CHANNEL_MANAGER_FACTORY_BASE_TYPE, SECURITY_MANAGER_FACTORY_BASE_TYPE, SECURITY_POLICY_FACTORY_BASE_TYPE, STORAGE_PROVIDER_FACTORY_BASE_TYPE, SecretSource, SecretStoreCredentialProvider, SecureChannelFrameHandler, SecureChannelManagerFactory, SecurityAction, SecurityRequirements, Sentinel, SentinelFactory, SessionKeyCredentialProvider, SignaturePolicy, SigningConfig as SigningConfigClass, SigningConfiguration, SimpleLoadBalancerStickinessManager, SimpleLoadBalancerStickinessManagerFactory, StaticCredentialProvider, StorageAESEncryptionManager, TOKEN_ISSUER_FACTORY_BASE_TYPE, TOKEN_PROVIDER_FACTORY_BASE_TYPE, TOKEN_VERIFIER_FACTORY_BASE_TYPE, TRANSPORT_PROVISIONER_FACTORY_BASE_TYPE, TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, TaskSpawner, TokenIssuerFactory, TokenProviderFactory, TokenSubjectNodeIdentityPolicy, TokenSubjectNodeIdentityPolicyFactory, TokenVerifierFactory, TransportProvisionerFactory, TrustStoreProviderFactory, TtlValidationError, UpstreamSessionManager, VALID_CURVES_BY_KTY, VALID_KEY_USES, VERSION, WEBSOCKET_CONNECTION_GRANT_TYPE, WELCOME_SERVICE_FACTORY_BASE_TYPE, WebSocketCloseCode, WebSocketConnector, WebSocketState, WelcomeServiceFactory, _NoopFlowController, __runtimePluginLoader, addEnvelopeFields, addLogLevel, addTimestamp, assertConnectionGrant, assertGrant, basicConfig, broadcastChannelGrantToConnectorConfig, camelToSnakeCase, canonicalJson, capitalizeFirstLetter, color, compareCryptoLevels, compiledPathPattern, consoleTransport, convertWildcardLogicalToDnsConstraint, createConnectorConfig, createEd25519Keypair, createHostLogicalUri, createLogicalUri, createNodeDeliveryContext, createResource, createRpcProxy, createRsaKeypair, createTransportCloseError, createX25519Keypair, credentialToString, currentTraceId$1 as currentTraceId, debounce, decodeBase64Url, decodeFameDataPayload, deepMerge, defaultJsonEncoder, delay, dropEmpty, enableLogging, encodeUtf8, ensureRuntimeFactoriesRegistered, extractId, extractPoolAddressBase, extractPoolBase, filterKeysByUse, formatTimestamp, formatTimestampForConsole$1 as formatTimestampForConsole, frameDigest, getCurrentEnvelope, getFabricForNode, getFameRoot, getKeyProvider, getKeyStore, getLogger, hasCryptoSupport, hostnameToLogical, hostnamesToLogicals, httpGrantToConnectorConfig, immutableHeaders, inPageGrantToConnectorConfig, isAuthInjectionStrategy, isBroadcastChannelConnectionGrant, isConnectionGrant, isConnectorConfig, isEnvelopeLoggingEnabled, isFameError, isFameErrorType, isGrant, isHttpConnectionGrant, isIdentityExposingTokenProvider, isInPageConnectionGrant, isNodeLike, isPlainObject$3 as isPlainObject, isPoolAddress, isPoolLogical, isRegisterable, isTokenExpired, isTokenProvider, isTokenValid, isWebSocketConnectionGrant, jsonDumps, logicalPatternsToDnsConstraints, logicalToHostname, logicalsToHostnames, matchesPoolAddress, matchesPoolLogical, maybeAwait, nodeWelcomeRouter, nodeWelcomeRouterPlugin, normalizeBroadcastChannelConnectionGrant, normalizeEncryptionConfig, normalizeEnvelopeSnapshot, normalizeHttpConnectionGrant, normalizeInPageConnectionGrant, normalizeInboundCryptoRules, normalizeInboundSigningRules, normalizeOutboundCryptoRules, normalizeOutboundSigningRules, normalizePath, normalizeResponseCryptoRules, normalizeResponseSigningRules, normalizeSecretSource, normalizeSecurityRequirements, normalizeSigningConfig, normalizeWebSocketConnectionGrant, objectToBytes, operation, parseSealedEnvelope, pinoTransport, prettyModel$1 as prettyModel, registerDefaultFactories, registerDefaultKeyStoreFactory, registerNodePlacementStrategyFactory, registerRuntimeFactories, requireCryptoSupport, retryWithBackoff, safeColor, safeImport, sealedDecrypt, sealedEncrypt, secureDigest, setKeyStore, showEnvelopes$1 as showEnvelopes, sleep, snakeToCamelCase, stringifyNonPrimitives, supportsColor, throttle, urlsafeBase64Decode, urlsafeBase64Encode, validateCacheTtlSec, validateEncryptionKey, validateHostLogical, validateHostLogicals, validateJwkComplete, validateJwkStructure, validateJwkUseField, validateJwtTokenTtlSec, validateKeyCorrelationTtlSec, validateLogical, validateLogicalSegment, validateOAuth2TtlSec, validateSigningKey, validateTtlSec, waitForAll, waitForAllSettled, waitForAny, websocketGrantToConnectorConfig, withEnvelopeContext, withEnvelopeContextAsync, withLegacySnakeCaseKeys, withLock, withTimeout };
|