@securitydept/client 0.2.0 → 0.3.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/create-i5VyYgN6.mjs +989 -0
- package/dist/create-i5VyYgN6.mjs.map +1 -0
- package/dist/handle-DwMgqe7R.mjs +638 -0
- package/dist/handle-DwMgqe7R.mjs.map +1 -0
- package/dist/index-Bo1BtjZH.d.mts +132 -0
- package/dist/index-CFAJ969E.d.mts +674 -0
- package/dist/index-CbeZ3AfB.d.mts +1680 -0
- package/dist/index.d.mts +3 -353
- package/dist/index.mjs +1196 -401
- package/dist/index.mjs.map +1 -1
- package/dist/router-at5bTdJQ.mjs +245 -0
- package/dist/router-at5bTdJQ.mjs.map +1 -0
- package/dist/rx/index.d.mts +68 -0
- package/dist/rx/index.mjs +2 -0
- package/dist/rx-DM6Ouv-m.mjs +1119 -0
- package/dist/rx-DM6Ouv-m.mjs.map +1 -0
- package/dist/server/index.d.mts +20 -0
- package/dist/server/index.mjs +29 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/test/index.d.mts +101 -0
- package/dist/test/index.mjs +270 -0
- package/dist/test/index.mjs.map +1 -0
- package/dist/uri-string-BPNbIMgv.mjs +300 -0
- package/dist/uri-string-BPNbIMgv.mjs.map +1 -0
- package/dist/web/index.d.mts +82 -337
- package/dist/web/index.mjs +334 -337
- package/dist/web/index.mjs.map +1 -1
- package/dist/webext/index.d.mts +73 -0
- package/dist/webext/index.mjs +231 -0
- package/dist/webext/index.mjs.map +1 -0
- package/package.json +28 -21
- package/dist/auth-coordination/index.d.mts +0 -198
- package/dist/auth-coordination/index.mjs +0 -107
- package/dist/auth-coordination/index.mjs.map +0 -1
- package/dist/events/index.d.mts +0 -2
- package/dist/events/index.mjs +0 -2
- package/dist/events-BUlfsRfl.mjs +0 -127
- package/dist/events-BUlfsRfl.mjs.map +0 -1
- package/dist/fetch-transport-Bd5RyWj2.d.mts +0 -339
- package/dist/fetch-transport-DtnSRWAH.mjs +0 -631
- package/dist/fetch-transport-DtnSRWAH.mjs.map +0 -1
- package/dist/index-C_wgl6dW.d.mts +0 -102
- package/dist/index-DbYSFHDe.d.mts +0 -39
- package/dist/persistence/index.d.mts +0 -3
- package/dist/persistence/index.mjs +0 -2
- package/dist/persistence/web/index.d.mts +0 -16
- package/dist/persistence/web/index.mjs +0 -51
- package/dist/persistence/web/index.mjs.map +0 -1
- package/dist/persistence-CSB8770k.mjs +0 -108
- package/dist/persistence-CSB8770k.mjs.map +0 -1
- package/dist/planner-host-CPyGNyQV.d.mts +0 -190
- package/dist/planner-host-CV38bMSn.mjs +0 -195
- package/dist/planner-host-CV38bMSn.mjs.map +0 -1
- package/dist/types-C59fcM5W.d.mts +0 -52
- package/dist/types-DQc088ZP.d.mts +0 -32
- package/dist/web-router/index.d.mts +0 -259
- package/dist/web-router/index.mjs +0 -395
- package/dist/web-router/index.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-i5VyYgN6.mjs","names":["RuntimeInjectionToken","RuntimeOptional","RuntimeInjector","RuntimeInjectionToken","defineType","defineType","defineType","defineType","defineType","defineType","uuidv7","defineType","defineType","defineType","defineType","defineType","defineType","defineType"],"sources":["../src/injection/types.ts","../src/injection/injector.ts","../src/events/types.ts","../src/page/index.ts","../src/validation/validator.ts","../src/popup/index.ts","../src/protocol/compat-fragment.ts","../src/router/router.ts","../src/scheduling/types.ts","../src/span/types.ts","../src/span/span.ts","../src/std/events/from-abort.ts","../src/std/cancellation/abort-signal.ts","../src/std/time.ts","../src/transport/types.ts","../src/std/transport/base-transport.ts","../src/storage/types.ts","../src/storage/memory-store.ts","../src/tracing/subscriber/types.ts","../src/tracing/create.ts","../src/tracing/types.ts","../src/environment/types.ts","../src/environment/create.ts"],"sourcesContent":["import {\n\tInjectionToken as RuntimeInjectionToken,\n\tOptional as RuntimeOptional,\n} from \"injection-js\";\n\nexport class SecuritydeptInjectionToken<T> extends RuntimeInjectionToken<T> {}\n\nexport type SecuritydeptAbstractType<T> = abstract new (...args: never[]) => T;\n\nexport type SecuritydeptDependencyToken<T> =\n\t| SecuritydeptInjectionToken<T>\n\t| SecuritydeptAbstractType<T>;\n\nexport type SecuritydeptTypeProvider<T> = SecuritydeptAbstractType<T>;\n\nexport const SecurityDeptOptional = RuntimeOptional;\n\nexport type SecuritydeptOptionalDependency<T> =\n\t| readonly [\n\t\t\tInstanceType<typeof SecurityDeptOptional>,\n\t\t\tSecuritydeptDependencyToken<T>,\n\t ]\n\t| readonly [\n\t\t\tSecuritydeptDependencyToken<T>,\n\t\t\tInstanceType<typeof SecurityDeptOptional>,\n\t ];\n\nexport type SecuritydeptDependencyDescriptor<T> =\n\t| SecuritydeptDependencyToken<T>\n\t| SecuritydeptOptionalDependency<T>;\n\nexport interface SecuritydeptValueProvider<T> {\n\tprovide: SecuritydeptDependencyToken<T>;\n\tuseValue: T;\n}\n\nexport interface SecuritydeptClassProvider<T> {\n\tprovide: SecuritydeptDependencyToken<T>;\n\tuseClass: SecuritydeptAbstractType<T>;\n\tdeps?: readonly SecuritydeptDependencyDescriptor<unknown>[];\n}\n\nexport interface SecuritydeptFactoryProvider<T> {\n\tprovide: SecuritydeptDependencyToken<T>;\n\tuseFactory: (...deps: never[]) => T;\n\tdeps?: readonly SecuritydeptDependencyDescriptor<unknown>[];\n}\n\nexport type WithTraitDeps<TDeps extends object> = TDeps;\n\nexport interface SecuritydeptExistingProvider<T> {\n\tprovide: SecuritydeptDependencyToken<T>;\n\tuseExisting: SecuritydeptDependencyToken<T>;\n}\n\nexport type SecuritydeptProvider<T = unknown> =\n\t| SecuritydeptTypeProvider<T>\n\t| SecuritydeptValueProvider<T>\n\t| SecuritydeptClassProvider<T>\n\t| SecuritydeptFactoryProvider<T>\n\t| SecuritydeptExistingProvider<T>;\n\nexport function getSecuritydeptProviderToken(\n\tprovider: SecuritydeptProvider,\n): SecuritydeptDependencyToken<unknown> {\n\tif (typeof provider === \"function\") {\n\t\treturn provider;\n\t}\n\treturn provider.provide;\n}\n\nexport function createProviderIfTokenMissing<\n\tTProvider extends SecuritydeptProvider,\n>(\n\tprovidedTokens: ReadonlySet<SecuritydeptDependencyToken<unknown>>,\n\ttoken: SecuritydeptDependencyToken<unknown>,\n\tcreateProvider: () => TProvider,\n): TProvider | null {\n\treturn providedTokens.has(token) ? null : createProvider();\n}\n\nexport function notMissingProvider(\n\tprovider: SecuritydeptProvider | null,\n): provider is SecuritydeptProvider {\n\treturn provider !== null;\n}\n\nexport interface SecuritydeptInjectorTrait {\n\tget<T>(token: SecuritydeptDependencyToken<T>): T;\n\tget<T>(token: SecuritydeptDependencyToken<T>, notFoundValue: T): T;\n}\n","import {\n\tReflectiveInjector,\n\tInjectionToken as RuntimeInjectionToken,\n\tInjector as RuntimeInjector,\n\ttype Provider as RuntimeProvider,\n} from \"injection-js\";\nimport {\n\ttype SecuritydeptAbstractType,\n\ttype SecuritydeptDependencyToken,\n\ttype SecuritydeptFactoryProvider,\n\tSecuritydeptInjectionToken,\n\ttype SecuritydeptInjectorTrait,\n\ttype SecuritydeptProvider,\n} from \"./types\";\n\ninterface NormalizedProviders {\n\tproviders: RuntimeProvider[];\n}\n\ntype RuntimeProviderToken<T> =\n\t| RuntimeInjectionToken<T>\n\t| SecuritydeptAbstractType<T>;\n\nexport class SecuritydeptInjector implements SecuritydeptInjectorTrait {\n\tstatic resolveAndCreate(\n\t\tproviders: readonly SecuritydeptProvider[],\n\t): SecuritydeptInjector {\n\t\tconst normalized = normalizeProviders([\n\t\t\t...providers,\n\t\t\tcreateInjectorSelfProvider(),\n\t\t]);\n\t\treturn getSecuritydeptInjectorFromRuntime(\n\t\t\tReflectiveInjector.resolveAndCreate(normalized.providers),\n\t\t);\n\t}\n\n\tstatic fromParentInjector(\n\t\tparent: SecuritydeptInjectorTrait,\n\t\tproviders: readonly SecuritydeptProvider[],\n\t): SecuritydeptInjector {\n\t\tconst normalized = normalizeProviders([\n\t\t\t{\n\t\t\t\tprovide: PARENT_INJECTOR_TOKEN,\n\t\t\t\tuseValue: parent,\n\t\t\t},\n\t\t\t...providers,\n\t\t\tcreateInjectorSelfProvider(),\n\t\t]);\n\t\treturn getSecuritydeptInjectorFromRuntime(\n\t\t\tReflectiveInjector.resolveAndCreate(\n\t\t\t\tnormalized.providers,\n\t\t\t\ttoRuntimeInjector(parent),\n\t\t\t),\n\t\t);\n\t}\n\n\tstatic fromRuntimeInjector(\n\t\truntimeInjector: RuntimeInjector,\n\t): SecuritydeptInjector {\n\t\treturn new SecuritydeptInjector(runtimeInjector);\n\t}\n\n\tprivate constructor(private readonly runtimeInjector: RuntimeInjector) {}\n\n\tget<T>(token: SecuritydeptDependencyToken<T>): T;\n\tget<T>(token: SecuritydeptDependencyToken<T>, notFoundValue: T): T;\n\tget<T>(token: SecuritydeptDependencyToken<T>, notFoundValue?: T): T {\n\t\ttry {\n\t\t\t// biome-ignore lint/complexity/noArguments: Overloads are more ergonomic for the common non-optional case.\n\t\t\tif (arguments.length === 1) {\n\t\t\t\treturn this.runtimeInjector.get(token as RuntimeProviderToken<T>);\n\t\t\t}\n\t\t\treturn this.runtimeInjector.get(\n\t\t\t\ttoken as RuntimeProviderToken<T>,\n\t\t\t\tnotFoundValue,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tthrow createInjectorResolutionError(token, error);\n\t\t}\n\t}\n}\n\nexport const INJECTOR_TOKEN =\n\tnew SecuritydeptInjectionToken<SecuritydeptInjector>(\"INJECTOR_TOKEN\");\n\nexport const PARENT_INJECTOR_TOKEN =\n\tnew SecuritydeptInjectionToken<SecuritydeptInjectorTrait>(\n\t\t\"PARENT_INJECTOR_TOKEN\",\n\t);\n\nfunction normalizeProviders(\n\tproviders: readonly SecuritydeptProvider[],\n): NormalizedProviders {\n\tconst runtimeProviders = providers.map((provider) => {\n\t\tif (typeof provider === \"function\") {\n\t\t\treturn provider as RuntimeProvider;\n\t\t}\n\n\t\tif (\"useValue\" in provider) {\n\t\t\treturn {\n\t\t\t\tprovide: provider.provide,\n\t\t\t\tuseValue: provider.useValue,\n\t\t\t} satisfies RuntimeProvider;\n\t\t}\n\n\t\tif (\"useClass\" in provider) {\n\t\t\treturn {\n\t\t\t\tprovide: provider.provide,\n\t\t\t\tuseFactory: (...deps: unknown[]) =>\n\t\t\t\t\tnew (provider.useClass as new (...args: unknown[]) => unknown)(\n\t\t\t\t\t\t...deps,\n\t\t\t\t\t),\n\t\t\t\tdeps: provider.deps ? [...provider.deps] : undefined,\n\t\t\t} satisfies RuntimeProvider;\n\t\t}\n\n\t\tif (\"useExisting\" in provider) {\n\t\t\treturn {\n\t\t\t\tprovide: provider.provide,\n\t\t\t\tuseExisting: provider.useExisting,\n\t\t\t} satisfies RuntimeProvider;\n\t\t}\n\n\t\treturn {\n\t\t\tprovide: provider.provide,\n\t\t\tuseFactory: provider.useFactory,\n\t\t\tdeps: provider.deps ? [...provider.deps] : undefined,\n\t\t} satisfies RuntimeProvider;\n\t});\n\n\treturn {\n\t\tproviders: runtimeProviders,\n\t};\n}\n\nfunction createInjectorSelfProvider(): SecuritydeptFactoryProvider<SecuritydeptInjector> {\n\treturn {\n\t\tprovide: INJECTOR_TOKEN,\n\t\tuseFactory: (runtimeInjector: RuntimeInjector) =>\n\t\t\tSecuritydeptInjector.fromRuntimeInjector(runtimeInjector),\n\t\tdeps: [RuntimeInjector],\n\t};\n}\n\nfunction getSecuritydeptInjectorFromRuntime(\n\truntimeInjector: RuntimeInjector,\n): SecuritydeptInjector {\n\treturn runtimeInjector.get(\n\t\tINJECTOR_TOKEN as RuntimeProviderToken<SecuritydeptInjector>,\n\t);\n}\n\nclass SecuritydeptRuntimeParentAdapter extends RuntimeInjector {\n\tconstructor(private readonly parent: SecuritydeptInjectorTrait) {\n\t\tsuper();\n\t}\n\n\toverride get<T>(token: RuntimeProviderToken<T>): T;\n\toverride get<T>(token: RuntimeProviderToken<T>, notFoundValue: T): T;\n\toverride get<T>(token: RuntimeProviderToken<T>, notFoundValue?: T): T {\n\t\t// biome-ignore lint/complexity/noArguments: Overloads are more ergonomic for the common non-optional case.\n\t\tif (arguments.length === 1) {\n\t\t\treturn this.parent.get(token);\n\t\t}\n\t\treturn this.parent.get(token, notFoundValue as T);\n\t}\n}\n\nexport function toRuntimeInjector(\n\tparent: SecuritydeptInjectorTrait,\n): RuntimeInjector {\n\treturn new SecuritydeptRuntimeParentAdapter(parent);\n}\n\nfunction createInjectorResolutionError(\n\ttoken: SecuritydeptDependencyToken<unknown>,\n\terror: unknown,\n): Error {\n\tconst tokenLabel = describeDependencyToken(token);\n\tconst originalMessage =\n\t\terror instanceof Error ? error.message : String(error);\n\tconst message = /No provider/i.test(originalMessage)\n\t\t? `[SecuritydeptInjector] No provider found for ${tokenLabel}.`\n\t\t: `[SecuritydeptInjector] Failed to resolve ${tokenLabel}: ${originalMessage}`;\n\n\treturn new Error(message, {\n\t\tcause: error instanceof Error ? error : undefined,\n\t});\n}\n\nfunction describeDependencyToken(\n\ttoken: SecuritydeptDependencyToken<unknown>,\n): string {\n\tif (token instanceof RuntimeInjectionToken) {\n\t\treturn token.toString().replace(/^InjectionToken\\s+/, \"Token \");\n\t}\n\n\tif (typeof token === \"function\" && token.name) {\n\t\treturn token.name;\n\t}\n\n\treturn String(token);\n}\n","import { type as defineType } from \"arktype\";\n// --- Event system trait types ---\nimport {\n\ttype InteropObservableTrait,\n\tisInteropObservableTrait,\n\ttype SubscriptionTrait,\n} from \"../compat\";\n\n/** Subscription handle with explicit unsubscribe. */\nexport type EventSubscriptionTrait = SubscriptionTrait;\n\n/** Observer for event streams — mirrors the Observable observer pattern. */\nexport interface EventObserverTrait<T> {\n\tnext(value: T): void;\n\terror(error: unknown): void;\n\tcomplete(): void;\n}\n\n/** Read-only event stream — lazy push-based sequence. */\nexport interface EventStreamTrait<T> extends InteropObservableTrait<T> {\n\tsubscribe(observer: Partial<EventObserverTrait<T>>): EventSubscriptionTrait;\n}\n\nexport const EventStreamTraitSchema = defineType({\n\tsubscribe: \"Function\",\n});\n\n/** Hot event producer. */\nexport interface EventSubjectTrait<T> extends EventStreamTrait<T> {\n\tnext(value: T): void;\n\terror(error: unknown): void;\n\tcomplete(): void;\n}\n\nexport interface StateStreamTrait<T> extends EventSubjectTrait<T> {\n\tgetValue(): T;\n}\n\n// --- Event envelope ---\n\nexport const EventSourceKind = {\n\tUser: \"user\",\n\tTimer: \"timer\",\n\tHttp: \"http\",\n\tStorage: \"storage\",\n\tFramework: \"framework\",\n\tSystem: \"system\",\n} as const;\n\nexport type EventSourceKind =\n\t(typeof EventSourceKind)[keyof typeof EventSourceKind];\n\nexport type EventSource =\n\t| { kind: typeof EventSourceKind.User; actor?: string }\n\t| { kind: typeof EventSourceKind.Timer; timer: string }\n\t| { kind: typeof EventSourceKind.Http; requestId: string; endpoint?: string }\n\t| { kind: typeof EventSourceKind.Storage; operation: string }\n\t| { kind: typeof EventSourceKind.Framework; name: string }\n\t| { kind: typeof EventSourceKind.System; subsystem: string };\n\nexport interface RuntimeEventEnvelope<TType extends string, TPayload> {\n\tid: string;\n\ttype: TType;\n\tat: number;\n\tsource: EventSource;\n\tpayload: TPayload;\n}\n\nexport type EventOperatorFunction<T, R> = (\n\tstream: EventStreamTrait<T>,\n) => EventStreamTrait<R>;\n\nexport function isEventStreamTrait(\n\tvalue: unknown,\n): value is EventStreamTrait<unknown> {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\ttypeof (value as EventStreamTrait<unknown>).subscribe === \"function\" &&\n\t\tisInteropObservableTrait(value)\n\t);\n}\n","import { type as defineType } from \"arktype\";\nimport { type EventStreamTrait, EventStreamTraitSchema } from \"../events/types\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\n\nexport interface PageLifecycleTrait<TResumeEvent = unknown> {\n\tresume: EventStreamTrait<TResumeEvent>;\n}\n\nexport const PageLifecycleTraitSchema = defineType({\n\tresume: EventStreamTraitSchema,\n});\n\nexport const PAGE_LIFECYCLE_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<PageLifecycleTrait | null>(\n\t\t\"PAGE_LIFECYCLE_TRAIT_TOKEN\",\n\t);\n","// @securitydept/client — Foundation validation baseline\n//\n// Provides a vendor-neutral validation entry aligned with @standard-schema/spec.\n// Any StandardSchemaV1-compatible schema (zod, valibot, arktype, etc.) can be\n// used as the validation contract.\n//\n// Design principles:\n// - The foundation owns the validate-and-interpret contract\n// - Individual SDK packages supply schemas that implement StandardSchemaV1\n// - Consumers never need to know which validation library produced the schema\n\nimport { type StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { ClientError, ClientErrorKind, UserRecovery } from \"../errors\";\n\n// ---------------------------------------------------------------------------\n// Result types\n// ---------------------------------------------------------------------------\n\n/**\n * Successful validation result.\n *\n * Contains the parsed, typed output value from the schema.\n */\nexport interface ValidationSuccess<T> {\n\treadonly success: true;\n\treadonly value: T;\n}\n\n/**\n * Failed validation result.\n *\n * Contains the list of issues reported by the schema.\n */\nexport interface ValidationFailure {\n\treadonly success: false;\n\treadonly issues: ReadonlyArray<StandardSchemaV1.Issue>;\n}\n\n/**\n * Discriminated union of validation outcomes.\n *\n * Consumers can narrow on `success` to access either the typed value\n * or the issue list.\n */\nexport type ValidationResult<T> = ValidationSuccess<T> | ValidationFailure;\n\nexport type TraitInputValidator = StandardSchemaV1<unknown, unknown>;\n\nexport type TraitInputBundledSchema = StandardSchemaV1<unknown, unknown>;\n\nexport interface WithTraitInputValidator<TValidator = TraitInputValidator> {\n\tvalidators?: TValidator;\n}\n\nexport interface ValidateTraitInputOptions {\n\tvalue: unknown;\n\tbundledSchema: TraitInputBundledSchema;\n\tvalidator?: TraitInputValidator;\n\toptional?: boolean;\n\tonInvalid(failure: ValidationFailure): never;\n}\n\nexport function formatValidationFailure(\n\tfailure: ValidationFailure | undefined,\n): string | null {\n\tif (!failure) {\n\t\treturn null;\n\t}\n\tconst summary = failure.issues\n\t\t.map((issue) =>\n\t\t\tissue.path && issue.path.length > 0\n\t\t\t\t? `${issue.path.join(\".\")}: ${issue.message}`\n\t\t\t\t: issue.message,\n\t\t)\n\t\t.join(\"; \");\n\treturn summary.length > 0 ? summary : null;\n}\n\nexport function throwValidationClientError(options: {\n\tcode: string;\n\tsource: string;\n\tmessagePrefix: string;\n\tfailure?: ValidationFailure;\n}): never {\n\tconst issueSummary = formatValidationFailure(options.failure);\n\tthrow new ClientError({\n\t\tkind: ClientErrorKind.Configuration,\n\t\tcode: options.code,\n\t\tmessage: issueSummary\n\t\t\t? `${options.messagePrefix}: ${issueSummary}.`\n\t\t\t: `${options.messagePrefix}.`,\n\t\trecovery: UserRecovery.RestartFlow,\n\t\tsource: options.source,\n\t\tcause: options.failure?.issues,\n\t});\n}\n\n// ---------------------------------------------------------------------------\n// Core validation function\n// ---------------------------------------------------------------------------\n\n/**\n * Validate an unknown input against a `@standard-schema`-compatible schema.\n *\n * This is the foundation-level entry point for SDK validation. It accepts\n * any schema implementing `StandardSchemaV1` and returns a discriminated\n * `ValidationResult`.\n *\n * @example\n * ```ts\n * import { validateWithSchema } from \"@securitydept/client\";\n * import { z } from \"zod\";\n *\n * const UserSchema = z.object({ name: z.string() });\n * const result = await validateWithSchema(UserSchema, { name: \"Alice\" });\n * if (result.success) {\n * console.log(result.value.name);\n * } else {\n * console.error(result.issues);\n * }\n * ```\n */\nexport async function validateWithSchema<I, O>(\n\tschema: StandardSchemaV1<I, O>,\n\tinput: unknown,\n): Promise<ValidationResult<O>> {\n\tconst result = await schema[\"~standard\"].validate(input);\n\tif (\"value\" in result) {\n\t\treturn { success: true, value: result.value };\n\t}\n\treturn { success: false, issues: result.issues };\n}\n\n/**\n * Validate an unknown input synchronously against a `@standard-schema`-compatible schema.\n *\n * Only use this when you know the schema's validate function returns synchronously.\n * Throws if the schema returns a Promise.\n */\nexport function validateWithSchemaSync<I, O>(\n\tschema: StandardSchemaV1<I, O>,\n\tinput: unknown,\n): ValidationResult<O> {\n\tconst result = schema[\"~standard\"].validate(input);\n\n\tif (result instanceof Promise) {\n\t\tthrow new Error(\n\t\t\t\"validateWithSchemaSync: schema returned a Promise. Use validateWithSchema instead.\",\n\t\t);\n\t}\n\n\tif (\"value\" in result) {\n\t\treturn { success: true, value: result.value };\n\t}\n\treturn { success: false, issues: result.issues };\n}\n\nexport function validateTraitInput(options: ValidateTraitInputOptions): void {\n\tif (\n\t\toptions.optional === true &&\n\t\t(options.value === undefined || options.value === null)\n\t) {\n\t\treturn;\n\t}\n\tconst validator = options.validator ?? options.bundledSchema;\n\tconst result = validateWithSchemaSync(validator, options.value);\n\tif (result.success) {\n\t\treturn;\n\t}\n\toptions.onInvalid(result);\n}\n","import { type as defineType } from \"arktype\";\nimport { type ClientError } from \"../errors\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\nimport {\n\ttype PopupClientWindowHandleTrait,\n\ttype PopupServerWindowHandleTrait,\n} from \"./handle\";\n\nexport {\n\tPopupErrorCode,\n\treadPopupErrorPresentationDescriptor,\n} from \"./errors\";\nexport {\n\tPopupClientWindowHandle,\n\ttype PopupClientWindowHandleTrait,\n\ttype PopupMessageChannelTrait,\n\tPopupServerWindowHandle,\n\ttype PopupServerWindowHandleTrait,\n\ttype PopupWindowHandleTrait,\n} from \"./handle\";\nexport {\n\ttype CreatePopupClientSessionOptions,\n\ttype CreatePopupServerSessionOptions,\n} from \"./session\";\n\nexport const PopupAttachFailureReason = {\n\tMissingOpener: \"missing_opener\",\n\tMissingOrigin: \"missing_origin\",\n} as const;\n\nexport type PopupAttachFailureReason =\n\t(typeof PopupAttachFailureReason)[keyof typeof PopupAttachFailureReason];\n\nexport interface PopupAttachSuccess {\n\tkind: \"success\";\n\thandle: PopupServerWindowHandleTrait;\n}\n\nexport interface PopupAttachFailure {\n\tkind: \"failure\";\n\treason: PopupAttachFailureReason;\n\terror: ClientError;\n}\n\nexport type PopupAttachResult = PopupAttachSuccess | PopupAttachFailure;\n\nexport interface PopupOpenOptions {\n\ttarget?: string;\n\twidth?: number;\n\theight?: number;\n\texpectedOrigin?: string;\n}\n\nexport interface PopupTrait {\n\topen(url: string, options?: PopupOpenOptions): PopupClientWindowHandleTrait;\n\tattach(): PopupAttachResult;\n}\n\nexport const PopupTraitSchema = defineType({\n\topen: \"Function\",\n\tattach: \"Function\",\n});\n\nexport const POPUP_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<PopupTrait | null>(\"POPUP_TRAIT_TOKEN\");\n","import { type UriFragmentPart } from \"../struct/uri-string\";\n\nexport const SECURITYDEPT_COMPAT_FRAGMENT_VERSION = \"v1\";\n\nexport type CompatFragmentParameters = Record<string, string>;\n\nexport interface CompatFragment {\n\tpayload: string;\n\tparameters: CompatFragmentParameters;\n}\n\nexport interface AppendOrReplaceCompatFragmentOptions {\n\tpayload: string | URLSearchParams | CompatFragmentParameters;\n}\n\nexport interface TakeCompatFragmentResult<T> {\n\tcompatFragment: CompatFragment | null;\n\tfragment: string;\n\turl: UpdatedUriFragment<T>;\n}\n\nexport interface TakeCompatFragmentOptions<T> {\n\tcondition?: (compatFragment: CompatFragment) => boolean;\n\tupdate: UpdateUriFragmentHash<T>;\n}\n\nexport interface AppendOrReplaceCompatFragmentResult<T> {\n\tfragment: string;\n\turl: UpdatedUriFragment<T>;\n}\n\nexport type UpdatedUriFragment<T> = T extends string ? string : T;\n\nexport type UpdateUriFragmentHash<T> = (\n\tinput: T,\n\thash: string,\n) => UpdatedUriFragment<T>;\n\nexport function appendOrReplaceCompatFragment<\n\tT extends string | UriFragmentPart,\n>(\n\tinput: T,\n\toptions: AppendOrReplaceCompatFragmentOptions,\n\tupdate: UpdateUriFragmentHash<T>,\n): AppendOrReplaceCompatFragmentResult<T> {\n\tconst blocks = splitFragmentBlocks(readUriFragmentHash(input));\n\tif (isCompatFragmentBlock(blocks.at(-1) ?? \"\")) {\n\t\tblocks.pop();\n\t}\n\tblocks.push(buildCompatFragmentBlock(options));\n\tconst fragment = joinFragmentBlocks(blocks);\n\treturn {\n\t\tfragment,\n\t\turl: update(input, fragment),\n\t};\n}\n\nexport function parseCompatFragment(\n\tinput: string | UriFragmentPart,\n): CompatFragment | null {\n\tconst fragment = readUriFragmentHash(input);\n\tconst block = splitFragmentBlocks(fragment).at(-1);\n\tif (!block || !isCompatFragmentBlock(block)) {\n\t\treturn null;\n\t}\n\n\tconst blockParameters = new URLSearchParams(block);\n\tblockParameters.delete(\"securitydept\");\n\tconst parameters: CompatFragmentParameters = {};\n\tblockParameters.forEach((value, key) => {\n\t\tparameters[key] = value;\n\t});\n\treturn {\n\t\tpayload: blockParameters.toString(),\n\t\tparameters,\n\t};\n}\n\nexport function takeCompatFragment<T extends string | UriFragmentPart>(\n\tinput: T,\n\toptions: TakeCompatFragmentOptions<T>,\n): TakeCompatFragmentResult<T> {\n\tconst currentFragment = readUriFragmentHash(input);\n\tconst blocks = splitFragmentBlocks(currentFragment);\n\tconst block = blocks.at(-1);\n\tif (!block || !isCompatFragmentBlock(block)) {\n\t\treturn {\n\t\t\tcompatFragment: null,\n\t\t\tfragment: currentFragment,\n\t\t\turl: input as UpdatedUriFragment<T>,\n\t\t};\n\t}\n\n\tconst compatFragment = parseCompatFragment(block);\n\tif (\n\t\t!compatFragment ||\n\t\t(options.condition && !options.condition(compatFragment))\n\t) {\n\t\treturn {\n\t\t\tcompatFragment: null,\n\t\t\tfragment: currentFragment,\n\t\t\turl: input as UpdatedUriFragment<T>,\n\t\t};\n\t}\n\tblocks.pop();\n\tconst fragment = joinFragmentBlocks(blocks);\n\treturn {\n\t\tcompatFragment,\n\t\tfragment,\n\t\turl: options.update(input, fragment),\n\t};\n}\n\nexport function isCompatFragmentBlock(block: string): boolean {\n\treturn (\n\t\tnew URLSearchParams(block.startsWith(\"#\") ? block.slice(1) : block).get(\n\t\t\t\"securitydept\",\n\t\t) === SECURITYDEPT_COMPAT_FRAGMENT_VERSION\n\t);\n}\n\nfunction readUriFragmentHash(input: string | UriFragmentPart): string {\n\tif (typeof input === \"string\") {\n\t\treturn input.startsWith(\"#\") ? input : `#${input}`;\n\t}\n\treturn input.hash;\n}\n\nfunction joinFragmentBlocks(blocks: string[]): string {\n\treturn blocks.length > 0 ? `#${blocks.join(\"#\")}` : \"\";\n}\n\nfunction splitFragmentBlocks(fragment: string): string[] {\n\t// Lone `#` is an empty hash-route block; distinct from no hash (`\"\"`).\n\tif (fragment === \"#\") {\n\t\treturn [\"\"];\n\t}\n\tconst normalized = fragment.startsWith(\"#\") ? fragment.slice(1) : fragment;\n\treturn normalized ? normalized.split(\"#\") : [];\n}\n\nfunction buildCompatFragmentBlock(\n\toptions: AppendOrReplaceCompatFragmentOptions,\n): string {\n\tconst block = new URLSearchParams();\n\tblock.set(\"securitydept\", SECURITYDEPT_COMPAT_FRAGMENT_VERSION);\n\tconst payload =\n\t\ttypeof options.payload === \"string\"\n\t\t\t? new URLSearchParams(\n\t\t\t\t\toptions.payload.startsWith(\"#\")\n\t\t\t\t\t\t? options.payload.slice(1)\n\t\t\t\t\t\t: options.payload,\n\t\t\t\t)\n\t\t\t: new URLSearchParams(options.payload);\n\tfor (const [key, value] of payload) {\n\t\tif (key !== \"securitydept\") {\n\t\t\tblock.append(key, value);\n\t\t}\n\t}\n\treturn block.toString();\n}\n","import { type as defineType } from \"arktype\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\nimport {\n\ttype CompatFragment,\n\ttakeCompatFragment,\n} from \"../protocol/compat-fragment\";\nimport { type UriReferenceString } from \"../struct/uri-string\";\n\nexport const RouterNavigationIntent = {\n\tAuthRedirect: \"auth_redirect\",\n\tPostAuthRedirect: \"post_auth_redirect\",\n\tCallbackCleanup: \"callback_cleanup\",\n\tExternalOpen: \"external_open\",\n} as const;\n\nexport type RouterNavigationIntent =\n\t(typeof RouterNavigationIntent)[keyof typeof RouterNavigationIntent];\n\nexport const RouterNavigationMode = {\n\tPush: \"push\",\n\tReplace: \"replace\",\n\tExternal: \"external\",\n} as const;\n\nexport type RouterNavigationMode =\n\t(typeof RouterNavigationMode)[keyof typeof RouterNavigationMode];\n\nexport interface RouterNavigationRequest {\n\turl: UriReferenceString;\n\tintent: RouterNavigationIntent;\n\tmode: RouterNavigationMode;\n\tstate?: unknown;\n}\n\nexport interface RouterTrait {\n\tcurrentUrl(): UriReferenceString | null;\n\tnavigate(request: RouterNavigationRequest): void | Promise<void>;\n}\n\nexport interface TakeCompatFragmentFromRouterOptions {\n\tcondition?: (compatFragment: CompatFragment) => boolean;\n}\n\nexport async function takeCompatFragmentFromRouter(\n\trouter: RouterTrait,\n\toptions: TakeCompatFragmentFromRouterOptions = {},\n): Promise<CompatFragment | null> {\n\tconst currentUrl = router.currentUrl();\n\n\tif (!currentUrl) {\n\t\treturn null;\n\t}\n\n\tconst { compatFragment, url: cleanedUrl } = takeCompatFragment(currentUrl, {\n\t\tcondition: options.condition,\n\t\tupdate: (ref, hash) => ref.setHash(hash),\n\t});\n\n\tif (!compatFragment) {\n\t\treturn null;\n\t}\n\n\tawait router.navigate({\n\t\turl: cleanedUrl,\n\t\tintent: RouterNavigationIntent.CallbackCleanup,\n\t\tmode: RouterNavigationMode.Replace,\n\t});\n\treturn compatFragment;\n}\n\nexport const RouterTraitSchema = defineType({\n\tcurrentUrl: \"Function\",\n\tnavigate: \"Function\",\n});\n\nexport const ROUTER_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<RouterTrait | null>(\"ROUTER_TRAIT_TOKEN\");\n","import { type as defineType } from \"arktype\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\n\n// --- Time capability abstraction ---\n\nexport interface TimestampProviderTrait {\n\t/** Return current epoch milliseconds. */\n\tnow(): number;\n}\n\n/** Injectable time capability for host timers and deterministic tests. */\nexport interface TimeTrait extends TimestampProviderTrait {\n\t/** Return current epoch milliseconds. */\n\tsetTimeout(handler: () => void, delayMs: number): unknown;\n\tclearTimeout(handle: unknown): void;\n}\n\nexport const TimeTraitSchema = defineType({\n\tnow: \"Function\",\n\tsetTimeout: \"Function\",\n\tclearTimeout: \"Function\",\n});\n\nexport const TIME_TRAIT_TOKEN = new SecuritydeptInjectionToken<TimeTrait>(\n\t\"TIME_TRAIT_TOKEN\",\n);\n\nexport const IDLE_CALLBACK_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<IdleCallbackTrait | null>(\n\t\t\"IDLE_CALLBACK_TRAIT_TOKEN\",\n\t);\n\n/** Injectable idle-callback capability for hosts that explicitly support it. */\nexport interface IdleCallbackTrait {\n\trequestIdleCallback(callback: () => void): unknown;\n\tcancelIdleCallback(handle: unknown): void;\n}\n\nexport const IdleCallbackTraitSchema = defineType({\n\trequestIdleCallback: \"Function\",\n\tcancelIdleCallback: \"Function\",\n});\n","import { type as defineType } from \"arktype\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\n\nexport interface SpanCreateOptions {\n\tidFactory?: () => string;\n\tattributes?: SpanAttributes;\n\tmutable?: false;\n}\n\nexport type SpanAttributeValue =\n\t| string\n\t| number\n\t| boolean\n\t| null\n\t| readonly SpanAttributeValue[]\n\t| { readonly [name: string]: SpanAttributeValue };\n\nexport type SpanAttributes = Readonly<Record<string, SpanAttributeValue>>;\n\nexport interface SpanAttributeReadOptions {\n\tproviderId: string;\n\twithShared?: boolean;\n}\n\nexport interface SpanPathOptions {\n\tskipSelf?: boolean;\n}\n\nexport interface SpanNodeAttributes {\n\treadonly spanId: string;\n\treadonly parentSpanId?: string;\n\treadonly attributes: SpanAttributes;\n}\n\nexport const SpanCreateOptionsSchema = defineType({\n\tidFactory: \"Function\",\n\tattributes: \"object\",\n});\n\nexport interface MutableSpanCreateOptions\n\textends Omit<SpanCreateOptions, \"mutable\"> {\n\tmutable: true;\n}\n\nexport interface SpanTrait {\n\treadonly id: string;\n\treadonly parent?: SpanTrait;\n\tgetAttributes(options?: SpanAttributeReadOptions): SpanAttributes;\n\tgetRootToNodePath(options?: SpanPathOptions): readonly SpanTrait[];\n\tgetRootToNodeAttributes(\n\t\toptions?: SpanPathOptions & { providerId?: string },\n\t): readonly SpanNodeAttributes[];\n\tfork(options: MutableSpanCreateOptions): MutableSpanTrait;\n\tfork(options?: SpanCreateOptions): SpanTrait;\n\tfork(\n\t\toptions?: SpanCreateOptions | MutableSpanCreateOptions,\n\t): SpanTrait | MutableSpanTrait;\n}\n\nexport interface MutableSpanTrait extends SpanTrait {\n\tsetAttributes(\n\t\tattributes: SpanAttributes,\n\t\toptions?: { providerId?: string },\n\t): void;\n}\n\nexport const SpanTraitSchema = defineType({\n\tid: \"string\",\n\tfork: \"Function\",\n\tgetAttributes: \"Function\",\n\tgetRootToNodePath: \"Function\",\n\tgetRootToNodeAttributes: \"Function\",\n});\n\nexport const SPAN_TRAIT_TOKEN = new SecuritydeptInjectionToken<SpanTrait>(\n\t\"SPAN_TRAIT_TOKEN\",\n);\n","import { v7 as uuidv7 } from \"uuid\";\nimport {\n\ttype TraitInputValidator,\n\tthrowValidationClientError,\n\tvalidateTraitInput,\n\ttype WithTraitInputValidator,\n} from \"../validation\";\nimport {\n\ttype MutableSpanCreateOptions,\n\ttype MutableSpanTrait,\n\ttype SpanAttributeReadOptions,\n\ttype SpanAttributes,\n\ttype SpanCreateOptions,\n\tSpanCreateOptionsSchema,\n\ttype SpanNodeAttributes,\n\ttype SpanPathOptions,\n\ttype SpanTrait,\n} from \"./types\";\n\nfunction createDefaultSpanId(): string {\n\treturn `span_${uuidv7()}`;\n}\n\nclass DefaultSpan implements MutableSpanTrait {\n\treadonly id: string;\n\treadonly parent: SpanTrait | undefined;\n\tprotected _sharedAttributes: SpanAttributes;\n\tprotected readonly _providerAttributes = new Map<string, SpanAttributes>();\n\tprotected readonly _idFactory: () => string;\n\n\tprotected constructor(\n\t\tparent: SpanTrait | undefined,\n\t\tidFactory: () => string,\n\t\tattributes: SpanAttributes,\n\t) {\n\t\tthis._idFactory = idFactory;\n\t\tthis.id = idFactory();\n\t\tthis.parent = parent;\n\t\tthis._sharedAttributes = attributes;\n\t}\n\n\tstatic root(options: SpanCreateOptions = {}): SpanTrait {\n\t\treturn new DefaultSpan(\n\t\t\tundefined,\n\t\t\toptions.idFactory ?? createDefaultSpanId,\n\t\t\t{ ...(options.attributes ?? {}) },\n\t\t);\n\t}\n\n\tfork(options: MutableSpanCreateOptions): MutableSpanTrait;\n\tfork(options?: SpanCreateOptions): SpanTrait;\n\tfork(\n\t\toptions: SpanCreateOptions | MutableSpanCreateOptions = {},\n\t): SpanTrait | MutableSpanTrait {\n\t\treturn new DefaultSpan(this, options.idFactory ?? this._idFactory, {\n\t\t\t...options.attributes,\n\t\t});\n\t}\n\n\tgetAttributes(options?: SpanAttributeReadOptions): SpanAttributes {\n\t\tif (!options) {\n\t\t\treturn this._sharedAttributes;\n\t\t}\n\n\t\tconst providerAttributes =\n\t\t\tthis._providerAttributes.get(options.providerId) ?? {};\n\t\tif (options.withShared === false) {\n\t\t\treturn providerAttributes;\n\t\t}\n\t\treturn {\n\t\t\t...this._sharedAttributes,\n\t\t\t...providerAttributes,\n\t\t};\n\t}\n\n\tgetRootToNodePath(options: SpanPathOptions = {}): readonly SpanTrait[] {\n\t\tconst path: SpanTrait[] = [];\n\t\tlet current: SpanTrait | undefined = options.skipSelf ? this.parent : this;\n\t\twhile (current) {\n\t\t\tpath.push(current);\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn path.reverse();\n\t}\n\n\tgetRootToNodeAttributes(\n\t\toptions: SpanPathOptions & { providerId?: string } = {},\n\t): readonly SpanNodeAttributes[] {\n\t\tconst path = this.getRootToNodePath({ skipSelf: options.skipSelf });\n\t\tconst frames: SpanNodeAttributes[] = [];\n\t\tfor (const span of path) {\n\t\t\tconst attributes =\n\t\t\t\toptions.providerId !== undefined\n\t\t\t\t\t? span.getAttributes({ providerId: options.providerId })\n\t\t\t\t\t: span.getAttributes();\n\t\t\tif (Object.keys(attributes).length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tframes.push({\n\t\t\t\tspanId: span.id,\n\t\t\t\t...(span.parent ? { parentSpanId: span.parent.id } : {}),\n\t\t\t\tattributes,\n\t\t\t});\n\t\t}\n\t\treturn frames;\n\t}\n\n\tsetAttributes(\n\t\tattributes: SpanAttributes,\n\t\toptions: { providerId?: string } = {},\n\t): void {\n\t\tif (options.providerId === undefined) {\n\t\t\tthis._sharedAttributes = {\n\t\t\t\t...this._sharedAttributes,\n\t\t\t\t...attributes,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tthis._providerAttributes.set(options.providerId, {\n\t\t\t...this._providerAttributes.get(options.providerId),\n\t\t\t...attributes,\n\t\t});\n\t}\n}\n\nexport function createRootSpan(\n\toptions: SpanCreateOptions &\n\t\tWithTraitInputValidator<TraitInputValidator> = {},\n): SpanTrait {\n\tconst { validators, ...resolvedOptions } = options;\n\tconst resolvedCreateOptions = {\n\t\tidFactory: resolvedOptions.idFactory ?? createDefaultSpanId,\n\t\tattributes: resolvedOptions.attributes ?? {},\n\t};\n\tvalidateTraitInput({\n\t\tvalue: resolvedCreateOptions,\n\t\tbundledSchema: SpanCreateOptionsSchema,\n\t\tvalidator: validators,\n\t\tonInvalid: (failure) =>\n\t\t\tthrowValidationClientError({\n\t\t\t\tcode: \"span.invalid_options\",\n\t\t\t\tsource: \"span\",\n\t\t\t\tmessagePrefix: \"createRootSpan could not validate spanCreateOptions\",\n\t\t\t\tfailure,\n\t\t\t}),\n\t});\n\treturn DefaultSpan.root(resolvedCreateOptions);\n}\n","import { EMPTY, fromEventPattern, map, merge, of } from \"rxjs\";\nimport { type EventStreamTrait } from \"../../events/types\";\nimport { RxEventStream } from \"../../rx\";\n\nexport type AbortSignalStdSource = Pick<AbortSignal, \"aborted\" | \"reason\"> & {\n\taddEventListener?: (type: \"abort\", listener: EventListener) => void;\n\tremoveEventListener?: (type: \"abort\", listener: EventListener) => void;\n};\n\n/**\n * Adapt an `AbortSignal`-like source into an event stream of abort reasons.\n */\nexport function abortSignalToEventStream(\n\tsignal: AbortSignalStdSource,\n): EventStreamTrait<unknown> {\n\treturn RxEventStream.fromObservableInput(\n\t\tmerge(\n\t\t\tsignal.aborted ? of(signal.reason) : EMPTY,\n\t\t\tfromEventPattern<Event>(\n\t\t\t\t(handler) => {\n\t\t\t\t\tsignal.addEventListener?.(\"abort\", handler);\n\t\t\t\t},\n\t\t\t\t(handler) => {\n\t\t\t\t\tsignal.removeEventListener?.(\"abort\", handler);\n\t\t\t\t},\n\t\t\t).pipe(map(() => signal.reason)),\n\t\t),\n\t);\n}\n","import { from, map } from \"rxjs\";\nimport { type CancellationTokenTrait } from \"../../cancellation\";\nimport { type CancellationTokenErrorData } from \"../../cancellation/types\";\nimport {\n\ttype DisposableTrait,\n\tSYMBOL_DISPOSE,\n\tSYMBOL_OBSERVABLE,\n} from \"../../compat\";\nimport { ClientError } from \"../../errors/client-error\";\nimport { ClientErrorKind, ClientErrorSource } from \"../../errors/types\";\nimport { abortSignalToEventStream } from \"../events\";\n\n/**\n * Bridge a web `AbortSignal` back into the foundation cancellation contract.\n *\n * This is the canonical consumer-side path for browser hosts that receive an\n * `AbortSignal` from framework/runtime APIs (for example React Query queryFns)\n * but need to call SDK surfaces that accept `CancellationTokenTrait`.\n */\nexport function abortSignalToCancellationToken(\n\tsignal: AbortSignal,\n): CancellationTokenTrait;\nexport function abortSignalToCancellationToken(signal?: undefined): undefined;\nexport function abortSignalToCancellationToken(\n\tsignal?: AbortSignal,\n): CancellationTokenTrait | undefined;\nexport function abortSignalToCancellationToken(\n\tsignal?: AbortSignal,\n): CancellationTokenTrait | undefined {\n\tif (!signal) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tget isCancellationRequested() {\n\t\t\treturn signal.aborted;\n\t\t},\n\t\tget reason() {\n\t\t\treturn signal.reason;\n\t\t},\n\t\tget cancellationError() {\n\t\t\treturn signal.aborted\n\t\t\t\t? new ClientError({\n\t\t\t\t\t\tkind: ClientErrorKind.Cancelled,\n\t\t\t\t\t\tmessage: \"Request was cancelled via AbortSignal\",\n\t\t\t\t\t\tcode: \"client.cancelled\",\n\t\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\t\tcause: signal.reason,\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t},\n\t\tonCancellationRequested(\n\t\t\tlistener: (data: CancellationTokenErrorData) => void,\n\t\t) {\n\t\t\tconst subscription = abortSignalToEventStream(signal).subscribe({\n\t\t\t\tnext: (reason) =>\n\t\t\t\t\tlistener({\n\t\t\t\t\t\treason,\n\t\t\t\t\t\tcancellationError: new ClientError({\n\t\t\t\t\t\t\tkind: ClientErrorKind.Cancelled,\n\t\t\t\t\t\t\tmessage: \"Request was cancelled via AbortSignal\",\n\t\t\t\t\t\t\tcode: \"client.cancelled\",\n\t\t\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\t\t\tcause: reason,\n\t\t\t\t\t\t}),\n\t\t\t\t\t}),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t},\n\t\t\t\t[SYMBOL_DISPOSE]: () => {\n\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\t[SYMBOL_OBSERVABLE]() {\n\t\t\treturn from(abortSignalToEventStream(signal)).pipe(\n\t\t\t\tmap((reason) => ({\n\t\t\t\t\treason,\n\t\t\t\t\tcancellationError: new ClientError({\n\t\t\t\t\t\tkind: ClientErrorKind.Cancelled,\n\t\t\t\t\t\tmessage: \"Request was cancelled via AbortSignal\",\n\t\t\t\t\t\tcode: \"client.cancelled\",\n\t\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\t\tcause: reason,\n\t\t\t\t\t}),\n\t\t\t\t})),\n\t\t\t);\n\t\t},\n\t\tthrowIfCancellationRequested() {\n\t\t\tif (signal.aborted) {\n\t\t\t\tthrow new ClientError({\n\t\t\t\t\tkind: ClientErrorKind.Cancelled,\n\t\t\t\t\tmessage: \"Request was cancelled via AbortSignal\",\n\t\t\t\t\tcode: \"client.cancelled\",\n\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\tcause: signal.reason,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport interface AbortSignalBridge extends DisposableTrait {\n\tsignal?: AbortSignal;\n}\n\n/**\n * Bridge foundation cancellation to `AbortSignal` without exposing\n * `AbortSignal` in core contracts.\n */\nexport function cancellationTokenToAbortSignal(\n\ttoken: CancellationTokenTrait,\n): AbortSignalBridge;\nexport function cancellationTokenToAbortSignal(token?: undefined): undefined;\nexport function cancellationTokenToAbortSignal(\n\ttoken?: CancellationTokenTrait,\n): AbortSignalBridge | undefined;\nexport function cancellationTokenToAbortSignal(\n\ttoken?: CancellationTokenTrait,\n): AbortSignalBridge | undefined {\n\tif (!token) {\n\t\treturn undefined;\n\t}\n\n\tconst controller = new AbortController();\n\n\tif (token.isCancellationRequested) {\n\t\tcontroller.abort(token.reason);\n\t}\n\n\tlet subscription: DisposableTrait | null = token.onCancellationRequested(\n\t\t({ reason }) => {\n\t\t\tcontroller.abort(reason);\n\t\t},\n\t);\n\n\tconst dispose = () => {\n\t\tif (subscription) {\n\t\t\tsubscription.dispose();\n\t\t\tsubscription = null;\n\t\t}\n\t};\n\n\treturn {\n\t\tsignal: controller.signal,\n\t\tdispose,\n\t\t[SYMBOL_DISPOSE]: dispose,\n\t};\n}\n\nexport function normalizeAbortError(\n\ttoken: CancellationTokenTrait | undefined,\n\terror: unknown,\n): unknown {\n\tif (!isAbortError(error) && !token?.isCancellationRequested) {\n\t\treturn error;\n\t}\n\n\tif (token?.cancellationError) {\n\t\treturn token.cancellationError;\n\t}\n\n\treturn new ClientError({\n\t\tkind: ClientErrorKind.Cancelled,\n\t\tmessage: \"HTTP request was cancelled\",\n\t\tcode: \"client.cancelled\",\n\t\tsource: ClientErrorSource.Transport,\n\t\tcause: token?.reason ?? error,\n\t});\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"name\" in error &&\n\t\terror.name === \"AbortError\"\n\t);\n}\n","import { type as defineType } from \"arktype\";\nimport { type TimeTrait } from \"../scheduling/types\";\nimport {\n\ttype TraitInputValidator,\n\tthrowValidationClientError,\n\tvalidateTraitInput,\n\ttype WithTraitInputValidator,\n} from \"../validation\";\n\nexport interface TimeTraitStdHost {\n\tDate: Pick<DateConstructor, \"now\">;\n\tsetTimeout(handler: () => void, delayMs: number): unknown;\n\tclearTimeout(handle: unknown): void;\n}\n\nexport const TimeTraitStdHostSchema = defineType({\n\tDate: defineType({\n\t\tnow: \"Function\",\n\t}),\n\tsetTimeout: \"Function\",\n\tclearTimeout: \"Function\",\n});\n\nexport interface TimeForStdCreateOptions {\n\thost?: TimeTraitStdHost;\n}\n\nconst TimeForStdCreateOptionsSchema = defineType({\n\thost: TimeTraitStdHostSchema,\n});\n\nexport function createTimeForStd(\n\toptions: TimeForStdCreateOptions &\n\t\tWithTraitInputValidator<TraitInputValidator> = {},\n): TimeTrait {\n\tconst { validators, ...createOptions } = options;\n\tconst resolvedCreateOptions = {\n\t\thost: createOptions.host ?? globalThis,\n\t};\n\tvalidateTraitInput({\n\t\tvalue: resolvedCreateOptions,\n\t\tbundledSchema: TimeForStdCreateOptionsSchema,\n\t\tvalidator: validators,\n\t\tonInvalid: (failure) =>\n\t\t\tthrowValidationClientError({\n\t\t\t\tcode: \"time.invalid_std_options\",\n\t\t\t\tsource: \"time\",\n\t\t\t\tmessagePrefix:\n\t\t\t\t\t\"createTimeForStd could not validate timeForStdCreateOptions\",\n\t\t\t\tfailure,\n\t\t\t}),\n\t});\n\tconst host = resolvedCreateOptions.host;\n\n\treturn {\n\t\tnow: () => host.Date.now(),\n\t\tsetTimeout: (handler, delayMs) => host.setTimeout(handler, delayMs),\n\t\tclearTimeout: (handle) => host.clearTimeout(handle as number | undefined),\n\t};\n}\n","import { type as defineType } from \"arktype\";\nimport { type CancellationTokenTrait } from \"../cancellation/types\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\n\nexport const TransportErrorCode = {\n\tRequestFailed: \"transport.request_failed\",\n\tResponseDecodeFailed: \"transport.response_decode_failed\",\n\tInvalidStdFetchOptions: \"transport.invalid_std_fetch_options\",\n\tInvalidAngularOptions: \"transport.invalid_angular_options\",\n} as const;\n\nexport type TransportErrorCode =\n\t(typeof TransportErrorCode)[keyof typeof TransportErrorCode];\n\n// --- Transport abstraction ---\n\n/** Neutral HTTP request representation. */\nexport interface HttpRequest {\n\turl: string;\n\tmethod: string;\n\theaders: Record<string, string>;\n\tbody?: unknown;\n\tcancellationToken?: CancellationTokenTrait;\n}\n\n/** Neutral HTTP response representation. */\nexport interface HttpResponse {\n\tstatus: number;\n\theaders: Record<string, string>;\n\tbody?: unknown;\n}\n\nexport type HttpResponseJsonBody = Record<string, unknown>;\n\n/** Neutral request executor trait. */\nexport interface BaseTransportTrait {\n\texecute(request: HttpRequest): Promise<HttpResponse>;\n}\n\nexport const BaseTransportTraitSchema = defineType({\n\texecute: \"Function\",\n});\n\nexport const TRANSPORT_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<BaseTransportTrait>(\"TRANSPORT_TRAIT_TOKEN\");\n","import { type as defineType } from \"arktype\";\nimport { ClientError, ClientErrorKind, ClientErrorSource } from \"../../errors\";\nimport {\n\ttype BaseTransportTrait,\n\ttype HttpRequest,\n\ttype HttpResponse,\n\tTransportErrorCode,\n} from \"../../transport/types\";\nimport {\n\ttype TraitInputValidator,\n\tthrowValidationClientError,\n\tvalidateTraitInput,\n\ttype WithTraitInputValidator,\n} from \"../../validation\";\nimport {\n\tcancellationTokenToAbortSignal,\n\tnormalizeAbortError,\n} from \"../cancellation/abort-signal\";\n\nexport const FetchTransportRedirectKind = {\n\tFollow: \"follow\",\n\tManual: \"manual\",\n} as const;\n\nexport type FetchTransportRedirectKind =\n\t(typeof FetchTransportRedirectKind)[keyof typeof FetchTransportRedirectKind];\n\nexport interface BaseTransportForStdFetchCreateOptions {\n\tredirect?: FetchTransportRedirectKind;\n\tfetch?: typeof fetch;\n\tbaseUrl?: string | URL;\n}\n\nexport const BaseTransportForStdFetchCreateOptionsSchema = defineType({\n\tredirect: '\"follow\" | \"manual\"',\n\tfetch: \"Function\",\n\tbaseUrl: \"unknown\",\n});\n\n/**\n * Default `BaseTransportTrait` backed by the global `fetch` API.\n *\n * The caller is responsible for ensuring `fetch` is available in the runtime.\n * No polyfill is injected.\n */\nexport function createBaseTransportForStdFetch(\n\toptions: BaseTransportForStdFetchCreateOptions &\n\t\tWithTraitInputValidator<TraitInputValidator> = {},\n): BaseTransportTrait {\n\tconst { validators, ...createOptions } = options;\n\tconst resolvedCreateOptions = {\n\t\tredirect: createOptions.redirect ?? FetchTransportRedirectKind.Manual,\n\t\tfetch: createOptions.fetch ?? fetch,\n\t\tbaseUrl: createOptions.baseUrl,\n\t};\n\tvalidateTraitInput({\n\t\tvalue: resolvedCreateOptions,\n\t\tbundledSchema: BaseTransportForStdFetchCreateOptionsSchema,\n\t\tvalidator: validators,\n\t\tonInvalid: (failure) =>\n\t\t\tthrowValidationClientError({\n\t\t\t\tcode: TransportErrorCode.InvalidStdFetchOptions,\n\t\t\t\tsource: \"transport\",\n\t\t\t\tmessagePrefix:\n\t\t\t\t\t\"createBaseTransportForStdFetch could not validate transportForStdFetchCreateOptions\",\n\t\t\t\tfailure,\n\t\t\t}),\n\t});\n\tconst redirect = resolvedCreateOptions.redirect;\n\tconst fetchImpl = resolvedCreateOptions.fetch;\n\tconst baseUrl = resolvedCreateOptions.baseUrl;\n\n\treturn {\n\t\tasync execute(request: HttpRequest): Promise<HttpResponse> {\n\t\t\tconst requestUrl = baseUrl\n\t\t\t\t? new URL(request.url, baseUrl).toString()\n\t\t\t\t: request.url;\n\t\t\tconst abortBridge = cancellationTokenToAbortSignal(\n\t\t\t\trequest.cancellationToken,\n\t\t\t);\n\t\t\tconst init: RequestInit = {\n\t\t\t\tmethod: request.method,\n\t\t\t\theaders: request.headers,\n\t\t\t\tredirect,\n\t\t\t\tsignal: abortBridge?.signal,\n\t\t\t};\n\n\t\t\tif (\n\t\t\t\trequest.body !== undefined &&\n\t\t\t\trequest.method !== \"GET\" &&\n\t\t\t\trequest.method !== \"HEAD\"\n\t\t\t) {\n\t\t\t\tinit.body =\n\t\t\t\t\ttypeof request.body === \"string\"\n\t\t\t\t\t\t? request.body\n\t\t\t\t\t\t: JSON.stringify(request.body);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet res: Response;\n\t\t\t\ttry {\n\t\t\t\t\tres = await fetchImpl(requestUrl, init);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst normalized = normalizeAbortError(\n\t\t\t\t\t\trequest.cancellationToken,\n\t\t\t\t\t\terror,\n\t\t\t\t\t);\n\t\t\t\t\tif (normalized instanceof ClientError) {\n\t\t\t\t\t\tthrow normalized;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new ClientError({\n\t\t\t\t\t\tkind: ClientErrorKind.Transport,\n\t\t\t\t\t\tmessage: \"The HTTP request could not reach the remote service\",\n\t\t\t\t\t\tcode: TransportErrorCode.RequestFailed,\n\t\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\t\tretryable: true,\n\t\t\t\t\t\tcause: error,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst responseHeaders: Record<string, string> = {};\n\t\t\t\tres.headers.forEach((value, key) => {\n\t\t\t\t\tresponseHeaders[key] = value;\n\t\t\t\t});\n\n\t\t\t\tlet body: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tconst contentType = res.headers.get(\"content-type\");\n\t\t\t\t\tif (contentType?.includes(\"application/json\")) {\n\t\t\t\t\t\tbody = await res.json();\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tres.status !== 302 &&\n\t\t\t\t\t\tres.status !== 303 &&\n\t\t\t\t\t\tres.status !== 301\n\t\t\t\t\t) {\n\t\t\t\t\t\tbody = await res.text();\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new ClientError({\n\t\t\t\t\t\tkind: ClientErrorKind.Protocol,\n\t\t\t\t\t\tmessage: \"The HTTP response body could not be decoded\",\n\t\t\t\t\t\tcode: TransportErrorCode.ResponseDecodeFailed,\n\t\t\t\t\t\tsource: ClientErrorSource.Transport,\n\t\t\t\t\t\tcause: error,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\theaders: responseHeaders,\n\t\t\t\t\tbody,\n\t\t\t\t};\n\t\t\t} finally {\n\t\t\t\tabortBridge?.dispose();\n\t\t\t}\n\t\t},\n\t};\n}\n","import { type as defineType } from \"arktype\";\nimport { type EventStreamTrait } from \"../events\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\n\n// --- Storage abstractions ---\n\nexport const StorageChangeEventOrigin = {\n\tLocal: \"local\",\n\tExternal: \"external\",\n} as const;\n\nexport type StorageChangeEventOrigin =\n\t(typeof StorageChangeEventOrigin)[keyof typeof StorageChangeEventOrigin];\n\nexport interface StorageChangeEvent {\n\treadonly origin: StorageChangeEventOrigin;\n\treadonly key: string | null;\n\treadonly oldValue: string | null;\n\treadonly newValue: string | null;\n}\n\n/** Low-level key-value storage trait. */\nexport interface StorageTrait {\n\treadonly storageEvent?: EventStreamTrait<StorageChangeEvent>;\n\tget(key: string): string | null | Promise<string | null>;\n\tset(key: string, value: string): void | Promise<void>;\n\t/**\n\t * Atomically read and remove a record within the store's consistency domain.\n\t */\n\ttake?(key: string): string | null | Promise<string | null>;\n\tremove(key: string): void | Promise<void>;\n}\n\n/** Storage whose operations complete synchronously in the current realm. */\nexport interface SyncStorageTrait extends StorageTrait {\n\tget(key: string): string | null;\n\tset(key: string, value: string): void;\n\ttake?(key: string): string | null;\n\tremove(key: string): void;\n}\n\nexport const StorageTraitSchema = defineType({\n\t\"storageEvent?\": {\n\t\tsubscribe: \"Function\",\n\t},\n\tget: \"Function\",\n\tset: \"Function\",\n\ttake: \"Function?\",\n\tremove: \"Function\",\n});\n\nexport const REALM_STORAGE_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<SyncStorageTrait>(\"REALM_STORAGE_TRAIT_TOKEN\");\n\nexport const PERSISTENT_STORAGE_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<StorageTrait | null>(\n\t\t\"PERSISTENT_STORAGE_TRAIT_TOKEN\",\n\t);\n\nexport const SESSION_STORAGE_TRAIT_TOKEN =\n\tnew SecuritydeptInjectionToken<StorageTrait | null>(\n\t\t\"SESSION_STORAGE_TRAIT_TOKEN\",\n\t);\n\n/** Serialization codec for typed values. */\nexport interface Codec<T> {\n\tencode(value: T): string;\n\tdecode(raw: string): T;\n}\n\n/** Semantic store for long-lived auth state. */\nexport interface PersistentAuthStore<T> {\n\tload(): Promise<T | null>;\n\tsave(value: T): Promise<void>;\n\tclear(): Promise<void>;\n}\n\n/** Semantic store for recoverable state (survives page reload). */\nexport interface RecoverableStateStore<T> {\n\tload(): Promise<T | null>;\n\tsave(value: T): Promise<void>;\n\tclear(): Promise<void>;\n}\n\n/** Semantic store for ephemeral flow state (one-time-use). */\nexport interface EphemeralFlowStore<T> {\n\tload(): Promise<T | null>;\n\tsave(value: T): Promise<void>;\n\tconsume(): Promise<T | null>;\n\tclear(): Promise<void>;\n}\n\n/** Semantic store for keyed ephemeral flow state (one-time-use per key). */\nexport interface KeyedEphemeralFlowStore<T> {\n\tload(key: string): Promise<T | null>;\n\tsave(key: string, value: T): Promise<void>;\n\ttake(key: string): Promise<T | null>;\n\tclear(key: string): Promise<void>;\n}\n\n/** Versioned storage envelope — first-version migration support. */\nexport interface StoredEnvelope<T> {\n\tversion: number;\n\tstoredAt: number;\n\texpiresAt?: number;\n\tvalue: T;\n}\n","import { RxEventSubject } from \"../rx/event\";\nimport {\n\ttype StorageChangeEvent,\n\tStorageChangeEventOrigin,\n\ttype SyncStorageTrait,\n} from \"./types\";\n\n/** In-memory `SyncStorageTrait` — useful for realm state, tests, and SSR. */\nexport function createInMemoryRecordStore(): SyncStorageTrait {\n\tconst store = new Map<string, string>();\n\tconst storageEvent = new RxEventSubject<StorageChangeEvent>();\n\n\treturn {\n\t\tstorageEvent,\n\t\tget(key: string): string | null {\n\t\t\treturn store.get(key) ?? null;\n\t\t},\n\t\tset(key: string, value: string): void {\n\t\t\tconst oldValue = store.get(key) ?? null;\n\t\t\tstore.set(key, value);\n\t\t\tstorageEvent.next({\n\t\t\t\torigin: StorageChangeEventOrigin.Local,\n\t\t\t\tkey,\n\t\t\t\toldValue,\n\t\t\t\tnewValue: value,\n\t\t\t});\n\t\t},\n\t\ttake(key: string): string | null {\n\t\t\tconst value = store.get(key) ?? null;\n\t\t\tif (value !== null) {\n\t\t\t\tstore.delete(key);\n\t\t\t\tstorageEvent.next({\n\t\t\t\t\torigin: StorageChangeEventOrigin.Local,\n\t\t\t\t\tkey,\n\t\t\t\t\toldValue: value,\n\t\t\t\t\tnewValue: null,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\t\tremove(key: string): void {\n\t\t\tconst oldValue = store.get(key) ?? null;\n\t\t\tif (oldValue !== null) {\n\t\t\t\tstore.delete(key);\n\t\t\t\tstorageEvent.next({\n\t\t\t\t\torigin: StorageChangeEventOrigin.Local,\n\t\t\t\t\tkey,\n\t\t\t\t\toldValue,\n\t\t\t\t\tnewValue: null,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n}\n","import { type as defineType } from \"arktype\";\nimport { type TracingEvent } from \"../types\";\n\nexport interface TracingSubscriberTrait {\n\trecord(event: TracingEvent): void;\n}\n\nexport const TracingSubscriberTraitSchema = defineType({\n\trecord: \"Function\",\n});\n","import { type as defineType } from \"arktype\";\nimport { SYMBOL_DISPOSE } from \"../compat\";\nimport { RxEventSubject } from \"../rx/event\";\nimport {\n\ttype TraitInputValidator,\n\tthrowValidationClientError,\n\tvalidateTraitInput,\n\ttype WithTraitInputValidator,\n} from \"../validation\";\nimport {\n\ttype TracingSubscriberTrait,\n\tTracingSubscriberTraitSchema,\n} from \"./subscriber/types\";\nimport { type TracingEvent, type TracingTrait } from \"./types\";\n\nexport interface TracingCreateOptions {\n\tsubscribers?: readonly TracingSubscriberTrait[];\n}\n\nexport const TracingCreateOptionsSchema = defineType({\n\tsubscribers: TracingSubscriberTraitSchema.array(),\n});\n\nexport function createTracing(\n\toptions?: TracingCreateOptions & WithTraitInputValidator<TraitInputValidator>,\n): TracingTrait {\n\tconst { validators, ...resolvedOptions } = options ?? {};\n\tconst resolvedCreateOptions = {\n\t\tsubscribers: resolvedOptions.subscribers ?? [],\n\t};\n\tvalidateTraitInput({\n\t\tvalue: resolvedCreateOptions,\n\t\tbundledSchema: TracingCreateOptionsSchema,\n\t\tvalidator: validators,\n\t\tonInvalid: (failure) =>\n\t\t\tthrowValidationClientError({\n\t\t\t\tcode: \"tracing.invalid_options\",\n\t\t\t\tsource: \"tracing\",\n\t\t\t\tmessagePrefix: \"createTracing could not validate tracingCreateOptions\",\n\t\t\t\tfailure,\n\t\t\t}),\n\t});\n\tconst subject = new RxEventSubject<TracingEvent>();\n\tlet subscribers = resolvedCreateOptions.subscribers;\n\n\treturn {\n\t\trecord(event) {\n\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\tsubscriber.record(event);\n\t\t\t}\n\t\t\tsubject.next(event);\n\t\t},\n\t\tevents: subject,\n\t\tdispose() {\n\t\t\tsubscribers = [];\n\t\t},\n\t\t[SYMBOL_DISPOSE]() {\n\t\t\tthis.dispose();\n\t\t},\n\t};\n}\n","import { type as defineType } from \"arktype\";\nimport { type DisposableTrait } from \"../compat\";\nimport { type EventStreamTrait, EventStreamTraitSchema } from \"../events/types\";\nimport { SecuritydeptInjectionToken } from \"../injection\";\nimport {\n\ttype MutableSpanTrait,\n\ttype SpanAttributes,\n\ttype SpanTrait,\n} from \"../span/types\";\n\n// --- Tracing and observability ---\n\nexport const TracingLevel = {\n\tDebug: \"debug\",\n\tInfo: \"info\",\n\tWarn: \"warn\",\n\tError: \"error\",\n} as const;\n\nexport type TracingLevel = (typeof TracingLevel)[keyof typeof TracingLevel];\n\nexport const OperationTraceEventType = {\n\tStarted: \"operation.started\",\n\tEvent: \"operation.event\",\n\tError: \"operation.error\",\n\tEnded: \"operation.ended\",\n} as const;\n\nexport type OperationTraceEventType =\n\t(typeof OperationTraceEventType)[keyof typeof OperationTraceEventType];\n\nexport const TRACING_SPAN_ATTRIBUTE_PROVIDER_ID =\n\t\"@securitydept/client/tracing\";\n\nexport interface OperationSpanTrait {\n\treadonly span: MutableSpanTrait;\n\tsetTraceAttributes(attributes: SpanAttributes): void;\n\taddEvent(type: string, attributes?: SpanAttributes): void;\n\trecordError(error: unknown, attributes?: SpanAttributes): void;\n}\n\nexport interface TracingEvent {\n\tname: string;\n\tat: number;\n\tspan: SpanTrait;\n\tlevel: TracingLevel;\n\ttarget: string;\n\tfields?: SpanAttributes;\n}\n\nexport interface TracingTrait extends DisposableTrait {\n\trecord(event: TracingEvent): void;\n\treadonly events: EventStreamTrait<TracingEvent>;\n}\n\nexport const TracingTraitSchema = defineType({\n\trecord: \"Function\",\n\tdispose: \"Function\",\n\tevents: EventStreamTraitSchema,\n});\n\nexport const TRACING_TRAIT_TOKEN = new SecuritydeptInjectionToken<TracingTrait>(\n\t\"TRACING_TRAIT_TOKEN\",\n);\n","import {\n\tSecuritydeptInjectionToken,\n\ttype SecuritydeptInjector,\n} from \"../injection\";\nimport { type PageLifecycleTrait } from \"../page\";\nimport { type PopupTrait } from \"../popup\";\nimport { type RouterTrait } from \"../router\";\nimport { type IdleCallbackTrait, type TimeTrait } from \"../scheduling/types\";\nimport { type SpanTrait } from \"../span/types\";\nimport { type StorageTrait, type SyncStorageTrait } from \"../storage/types\";\nimport { type TracingTrait } from \"../tracing/types\";\nimport { type BaseTransportTrait } from \"../transport/types\";\nimport { type TraitInputValidator } from \"../validation\";\n\n/**\n * Foundation dependency environment injected into client-side auth runtimes\n * via explicit wiring at the composition root.\n *\n * `transport`, `time`, `realmStorage`, `span`, and `tracing` are the required baseline\n * capabilities. Optional page/router/popup/storage traits stay explicit.\n * Raw host-material inputs such as `window`, `location`, or browser storage\n * handles are intentionally outside this contract and should be resolved by\n * host-specific creators before a `FoundationEnvironment` is assembled.\n */\nexport interface FoundationEnvironment {\n\tinjector: SecuritydeptInjector;\n\ttransport: BaseTransportTrait;\n\ttime: TimeTrait;\n\trealmStorage: SyncStorageTrait;\n\tidleCallback?: IdleCallbackTrait;\n\tpersistentStorage?: StorageTrait;\n\tsessionStorage?: StorageTrait;\n\tspan: SpanTrait;\n\ttracing: TracingTrait;\n\trouter?: RouterTrait;\n\tpageLifecycle?: PageLifecycleTrait;\n\tpopup?: PopupTrait;\n}\n\nexport interface ServiceWorkerEnvironment extends FoundationEnvironment {}\n\nexport const ENVIRONMENT_TOKEN =\n\tnew SecuritydeptInjectionToken<FoundationEnvironment>(\"ENVIRONMENT_TOKEN\");\n\nexport interface EnvironmentValidators {\n\ttransport?: TraitInputValidator;\n\ttransportForStdFetchCreateOptions?: TraitInputValidator;\n\ttime?: TraitInputValidator;\n\ttimeForStdCreateOptions?: TraitInputValidator;\n\trealmStorage?: TraitInputValidator;\n\tidleCallback?: TraitInputValidator;\n\tpersistentStorage?: TraitInputValidator;\n\tsessionStorage?: TraitInputValidator;\n\tspan?: TraitInputValidator;\n\tspanCreateOptions?: TraitInputValidator;\n\ttracing?: TraitInputValidator;\n\ttracingCreateOptions?: TraitInputValidator;\n\trouter?: TraitInputValidator;\n\tpageLifecycle?: TraitInputValidator;\n\tpopup?: TraitInputValidator;\n}\n","import {\n\tcreateProviderIfTokenMissing,\n\tgetSecuritydeptProviderToken,\n\tINJECTOR_TOKEN,\n\tnotMissingProvider,\n\ttype SecuritydeptDependencyDescriptor,\n\ttype SecuritydeptFactoryProvider,\n\tSecuritydeptInjector,\n\ttype SecuritydeptProvider,\n\ttype SecuritydeptValueProvider,\n} from \"../injection\";\nimport {\n\tPAGE_LIFECYCLE_TRAIT_TOKEN,\n\ttype PageLifecycleTrait,\n\tPageLifecycleTraitSchema,\n} from \"../page\";\nimport { POPUP_TRAIT_TOKEN, type PopupTrait, PopupTraitSchema } from \"../popup\";\nimport {\n\tROUTER_TRAIT_TOKEN,\n\ttype RouterTrait,\n\tRouterTraitSchema,\n} from \"../router\";\nimport {\n\tIDLE_CALLBACK_TRAIT_TOKEN,\n\ttype IdleCallbackTrait,\n\tIdleCallbackTraitSchema,\n\tTIME_TRAIT_TOKEN,\n\ttype TimeTrait,\n\tTimeTraitSchema,\n} from \"../scheduling/types\";\nimport { createRootSpan } from \"../span\";\nimport {\n\tSPAN_TRAIT_TOKEN,\n\ttype SpanCreateOptions,\n\ttype SpanTrait,\n\tSpanTraitSchema,\n} from \"../span/types\";\nimport { createBaseTransportForStdFetch, createTimeForStd } from \"../std/index\";\nimport { type TimeForStdCreateOptions } from \"../std/time\";\nimport { type BaseTransportForStdFetchCreateOptions } from \"../std/transport\";\nimport { createInMemoryRecordStore } from \"../storage/memory-store\";\nimport {\n\tPERSISTENT_STORAGE_TRAIT_TOKEN,\n\tREALM_STORAGE_TRAIT_TOKEN,\n\tSESSION_STORAGE_TRAIT_TOKEN,\n\ttype StorageTrait,\n\tStorageTraitSchema,\n\ttype SyncStorageTrait,\n} from \"../storage/types\";\nimport { createTracing } from \"../tracing\";\nimport { type TracingCreateOptions } from \"../tracing/create\";\nimport {\n\tTRACING_TRAIT_TOKEN,\n\ttype TracingTrait,\n\tTracingTraitSchema,\n} from \"../tracing/types\";\nimport {\n\ttype BaseTransportTrait,\n\tBaseTransportTraitSchema,\n\tTRANSPORT_TRAIT_TOKEN,\n} from \"../transport/types\";\nimport {\n\ttype TraitInputBundledSchema,\n\tthrowValidationClientError,\n\tvalidateTraitInput,\n} from \"../validation\";\nimport {\n\tENVIRONMENT_TOKEN,\n\ttype EnvironmentValidators,\n\ttype FoundationEnvironment,\n} from \"./types\";\n\nexport interface CreateFoundationEnvironmentOptions {\n\tproviders?: readonly SecuritydeptProvider[];\n\ttransport?: BaseTransportTrait;\n\ttransportForStdFetchCreateOptions?: BaseTransportForStdFetchCreateOptions;\n\ttime?: TimeTrait;\n\ttimeForStdCreateOptions?: TimeForStdCreateOptions;\n\trealmStorage?: SyncStorageTrait;\n\tspan?: SpanTrait;\n\tspanCreateOptions?: SpanCreateOptions;\n\ttracing?: TracingTrait;\n\ttracingCreateOptions?: TracingCreateOptions;\n\tidleCallback?: IdleCallbackTrait | null;\n\tpersistentStorage?: StorageTrait | null;\n\tsessionStorage?: StorageTrait | null;\n\trouter?: RouterTrait | null;\n\tpageLifecycle?: PageLifecycleTrait | null;\n\tpopup?: PopupTrait | null;\n\tvalidators?: EnvironmentValidators;\n}\n\n/**\n * Create a `FoundationEnvironment` from explicit trait units and defaults.\n *\n * This helper owns foundation-wide baseline resolution and trait-graph wiring.\n *\n * It may resolve:\n * - public std adapters such as\n * `transportForStdFetchCreateOptions -> transport` and `timeForStdCreateOptions -> time`\n * - public hostless baseline constructors such as\n * `spanCreateOptions -> span` and `tracingCreateOptions -> tracing`\n *\n * Host-material discovery such as resolving `window`, `location`, `history`,\n * or browser storage handles belongs to explicit host adapters such as\n * `@securitydept/client/web`, which must first resolve those inputs into\n * concrete traits before calling this helper.\n */\nexport function createFoundationEnvironment(\n\toverrides: CreateFoundationEnvironmentOptions,\n): FoundationEnvironment {\n\tconst providers = overrides.providers ?? [];\n\tconst externalProviderTokens = new Set(\n\t\tproviders.map((provider) => getSecuritydeptProviderToken(provider)),\n\t);\n\tif (externalProviderTokens.has(ENVIRONMENT_TOKEN)) {\n\t\tthrowValidationClientError({\n\t\t\tcode: \"environment.foundation_provider_reserved\",\n\t\t\tsource: \"environment\",\n\t\t\tmessagePrefix:\n\t\t\t\t\"createFoundationEnvironment does not allow overriding ENVIRONMENT_TOKEN\",\n\t\t});\n\t}\n\tconst injector = SecuritydeptInjector.resolveAndCreate([\n\t\t...createBuiltInTraitUnits(overrides, externalProviderTokens),\n\t\t...providers,\n\t\tcreateFoundationEnvironmentUnit(),\n\t]);\n\treturn injector.get(ENVIRONMENT_TOKEN);\n}\n\nfunction createBuiltInTraitUnits(\n\toverrides: CreateFoundationEnvironmentOptions,\n\texternalProviderTokens: ReadonlySet<\n\t\tSecuritydeptValueProvider<unknown>[\"provide\"]\n\t>,\n): SecuritydeptProvider[] {\n\tconst builtInTraitUnits: Array<SecuritydeptProvider | null> = [\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tTRANSPORT_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: TRANSPORT_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"transport\",\n\t\t\t\t\tbundledSchema: BaseTransportTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.transport,\n\t\t\t\t\tcreateValue: () =>\n\t\t\t\t\t\toverrides.transport ??\n\t\t\t\t\t\tcreateBaseTransportForStdFetch({\n\t\t\t\t\t\t\t...overrides.transportForStdFetchCreateOptions,\n\t\t\t\t\t\t\tvalidators:\n\t\t\t\t\t\t\t\toverrides.validators?.transportForStdFetchCreateOptions,\n\t\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(externalProviderTokens, TIME_TRAIT_TOKEN, () =>\n\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\ttoken: TIME_TRAIT_TOKEN,\n\t\t\t\ttraitName: \"time\",\n\t\t\t\tbundledSchema: TimeTraitSchema,\n\t\t\t\tvalidator: overrides.validators?.time,\n\t\t\t\tcreateValue: () =>\n\t\t\t\t\toverrides.time ??\n\t\t\t\t\tcreateTimeForStd({\n\t\t\t\t\t\t...overrides.timeForStdCreateOptions,\n\t\t\t\t\t\tvalidators: overrides.validators?.timeForStdCreateOptions,\n\t\t\t\t\t}),\n\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tREALM_STORAGE_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: REALM_STORAGE_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"realmStorage\",\n\t\t\t\t\tbundledSchema: StorageTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.realmStorage,\n\t\t\t\t\tcreateValue: () =>\n\t\t\t\t\t\toverrides.realmStorage ?? createInMemoryRecordStore(),\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(externalProviderTokens, SPAN_TRAIT_TOKEN, () =>\n\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\ttoken: SPAN_TRAIT_TOKEN,\n\t\t\t\ttraitName: \"span\",\n\t\t\t\tbundledSchema: SpanTraitSchema,\n\t\t\t\tvalidator: overrides.validators?.span,\n\t\t\t\tcreateValue: () =>\n\t\t\t\t\toverrides.span ??\n\t\t\t\t\tcreateRootSpan({\n\t\t\t\t\t\t...overrides.spanCreateOptions,\n\t\t\t\t\t\tvalidators: overrides.validators?.spanCreateOptions,\n\t\t\t\t\t}),\n\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tTRACING_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: TRACING_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"tracing\",\n\t\t\t\t\tbundledSchema: TracingTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.tracing,\n\t\t\t\t\tcreateValue: () =>\n\t\t\t\t\t\toverrides.tracing ??\n\t\t\t\t\t\tcreateTracing({\n\t\t\t\t\t\t\t...overrides.tracingCreateOptions,\n\t\t\t\t\t\t\tvalidators: overrides.validators?.tracingCreateOptions,\n\t\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tIDLE_CALLBACK_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: IDLE_CALLBACK_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"idleCallback\",\n\t\t\t\t\tbundledSchema: IdleCallbackTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.idleCallback,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.idleCallback ?? null,\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tPERSISTENT_STORAGE_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: PERSISTENT_STORAGE_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"persistentStorage\",\n\t\t\t\t\tbundledSchema: StorageTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.persistentStorage,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.persistentStorage ?? null,\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tSESSION_STORAGE_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: SESSION_STORAGE_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"sessionStorage\",\n\t\t\t\t\tbundledSchema: StorageTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.sessionStorage,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.sessionStorage ?? null,\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tROUTER_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: ROUTER_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"router\",\n\t\t\t\t\tbundledSchema: RouterTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.router,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.router ?? null,\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tPAGE_LIFECYCLE_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: PAGE_LIFECYCLE_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"pageLifecycle\",\n\t\t\t\t\tbundledSchema: PageLifecycleTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.pageLifecycle,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.pageLifecycle ?? null,\n\t\t\t\t}),\n\t\t),\n\t\tcreateProviderIfTokenMissing(\n\t\t\texternalProviderTokens,\n\t\t\tPOPUP_TRAIT_TOKEN,\n\t\t\t() =>\n\t\t\t\tcreateBuiltInTraitUnit({\n\t\t\t\t\ttoken: POPUP_TRAIT_TOKEN,\n\t\t\t\t\ttraitName: \"popup\",\n\t\t\t\t\tbundledSchema: PopupTraitSchema,\n\t\t\t\t\tvalidator: overrides.validators?.popup,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tcreateValue: () => overrides.popup ?? null,\n\t\t\t\t}),\n\t\t),\n\t];\n\n\treturn builtInTraitUnits.filter(notMissingProvider);\n}\n\nfunction createBuiltInTraitUnit<T>(options: {\n\ttoken: SecuritydeptValueProvider<T>[\"provide\"];\n\ttraitName: string;\n\tbundledSchema: TraitInputBundledSchema;\n\tvalidator: EnvironmentValidators[keyof EnvironmentValidators];\n\tdeps?: readonly SecuritydeptDependencyDescriptor<unknown>[];\n\toptional?: boolean;\n\tcreateValue(...deps: readonly unknown[]): T;\n}): SecuritydeptFactoryProvider<T> {\n\treturn {\n\t\tprovide: options.token,\n\t\tuseFactory: ((...deps: readonly unknown[]) => {\n\t\t\tconst value = options.createValue(...deps);\n\t\t\tvalidateTraitInput({\n\t\t\t\tvalue: value,\n\t\t\t\tbundledSchema: options.bundledSchema,\n\t\t\t\tvalidator: options.validator,\n\t\t\t\toptional: options.optional,\n\t\t\t\tonInvalid: (failure) =>\n\t\t\t\t\tthrowValidationClientError({\n\t\t\t\t\t\tcode: \"environment.trait_validation_failed\",\n\t\t\t\t\t\tsource: \"environment\",\n\t\t\t\t\t\tmessagePrefix: `${\"createFoundationEnvironment\"} could not validate ${options.traitName}`,\n\t\t\t\t\t\tfailure: failure,\n\t\t\t\t\t}),\n\t\t\t});\n\t\t\treturn value;\n\t\t}) as (...deps: never[]) => T,\n\t\tdeps: options.deps,\n\t};\n}\n\nfunction createFoundationEnvironmentUnit(): SecuritydeptFactoryProvider<FoundationEnvironment> {\n\treturn {\n\t\tprovide: ENVIRONMENT_TOKEN,\n\t\tuseFactory: ((\n\t\t\tinjector: SecuritydeptInjector,\n\t\t\ttransport: BaseTransportTrait,\n\t\t\ttime: TimeTrait,\n\t\t\trealmStorage: SyncStorageTrait,\n\t\t\tspan: SpanTrait,\n\t\t\ttracing: TracingTrait,\n\t\t\tidleCallback: IdleCallbackTrait | null,\n\t\t\tpersistentStorage: StorageTrait | null,\n\t\t\tsessionStorage: StorageTrait | null,\n\t\t\trouter: RouterTrait | null,\n\t\t\tpageLifecycle: PageLifecycleTrait | null,\n\t\t\tpopup: PopupTrait | null,\n\t\t) => {\n\t\t\treturn {\n\t\t\t\tinjector,\n\t\t\t\ttransport,\n\t\t\t\ttime,\n\t\t\t\trealmStorage,\n\t\t\t\tidleCallback: idleCallback ?? undefined,\n\t\t\t\tpersistentStorage: persistentStorage ?? undefined,\n\t\t\t\tsessionStorage: sessionStorage ?? undefined,\n\t\t\t\tspan,\n\t\t\t\ttracing,\n\t\t\t\trouter: router ?? undefined,\n\t\t\t\tpageLifecycle: pageLifecycle ?? undefined,\n\t\t\t\tpopup: popup ?? undefined,\n\t\t\t} satisfies FoundationEnvironment;\n\t\t}) as (...deps: never[]) => FoundationEnvironment,\n\t\tdeps: [\n\t\t\tINJECTOR_TOKEN,\n\t\t\tTRANSPORT_TRAIT_TOKEN,\n\t\t\tTIME_TRAIT_TOKEN,\n\t\t\tREALM_STORAGE_TRAIT_TOKEN,\n\t\t\tSPAN_TRAIT_TOKEN,\n\t\t\tTRACING_TRAIT_TOKEN,\n\t\t\tIDLE_CALLBACK_TRAIT_TOKEN,\n\t\t\tPERSISTENT_STORAGE_TRAIT_TOKEN,\n\t\t\tSESSION_STORAGE_TRAIT_TOKEN,\n\t\t\tROUTER_TRAIT_TOKEN,\n\t\t\tPAGE_LIFECYCLE_TRAIT_TOKEN,\n\t\t\tPOPUP_TRAIT_TOKEN,\n\t\t],\n\t};\n}\n"],"mappings":"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"}
|