{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export type AttributeValue = string | number | boolean | readonly string[] | readonly number[] | readonly boolean[];\n\nexport interface SpanAttributes {\n\t[name: string]: AttributeValue | undefined;\n}\n\nexport interface SpanOptions {\n\tname: string;\n\tattributes?: SpanAttributes;\n}\n\nexport type SpanStatus = { status: \"ok\" } | { status: \"error\"; error?: { name: string; message: string } };\n\nexport interface TelemetryContext {\n\tstartSpan<T>(options: SpanOptions, callback: (span: TelemetrySpan) => T | Promise<T>): Promise<T>;\n}\n\nexport interface TelemetrySpan extends TelemetryContext {\n\taddEvent(name: string, attributes?: SpanAttributes): void;\n\tsetAttributes(attributes: SpanAttributes): void;\n\tsetStatus(status: SpanStatus): void;\n}\n\nexport { NOOP_TELEMETRY_CONTEXT } from \"./noop.ts\";\n\nexport type TelemetryAttributeType = \"string\" | \"number\" | \"boolean\" | \"string[]\" | \"number[]\" | \"boolean[]\";\n\nexport interface TelemetryAttributeMetadata {\n\tdescription: string;\n\tsensitive?: boolean;\n\tcardinality?: \"low\" | \"high\";\n}\n\nexport type TelemetryAttributeDefinition = TelemetryAttributeMetadata &\n\t(\n\t\t| { type: \"string\"; values?: readonly string[]; examples?: readonly string[] }\n\t\t| { type: \"number\"; values?: readonly number[]; examples?: readonly number[] }\n\t\t| { type: \"boolean\"; values?: readonly boolean[]; examples?: readonly boolean[] }\n\t\t| { type: \"string[]\"; elementValues?: readonly string[]; examples?: readonly (readonly string[])[] }\n\t\t| { type: \"number[]\"; elementValues?: readonly number[]; examples?: readonly (readonly number[])[] }\n\t\t| { type: \"boolean[]\"; elementValues?: readonly boolean[]; examples?: readonly (readonly boolean[])[] }\n\t);\n\nexport type TelemetryStartAttributeDefinition = TelemetryAttributeDefinition & { required: boolean };\nexport type TelemetryEventAttributeDefinition = TelemetryAttributeDefinition & { required: boolean };\n\nexport interface TelemetryEventDefinition {\n\tdescription: string;\n\tattributes: Record<string, TelemetryEventAttributeDefinition>;\n}\n\nexport type TelemetryParentDefinition =\n\t| { kind: \"any\" }\n\t| { kind: \"root_or_external\" }\n\t| { kind: \"spans\"; spans: readonly string[] };\n\nexport interface TelemetrySpanDefinition {\n\tdescription: string;\n\tparents: TelemetryParentDefinition;\n\tstartAttributes: Record<string, TelemetryStartAttributeDefinition>;\n\tendAttributes: Record<string, TelemetryAttributeDefinition>;\n\tevents?: Record<string, TelemetryEventDefinition>;\n\tstatus: { default: \"ok\"; errorWhen: string };\n}\n\nexport interface TelemetrySchemaDefinition {\n\tversion: number;\n\tspans: Record<string, TelemetrySpanDefinition>;\n}\n\n/** Typed identity helper for serializable telemetry schema data. */\nexport function defineTelemetrySchema<const T extends TelemetrySchemaDefinition>(schema: T): T {\n\treturn schema;\n}\n\ntype AttributeDefinitionValue<Definition extends TelemetryAttributeDefinition> = Definition extends {\n\ttype: \"string\";\n\tvalues: readonly (infer Value extends string)[];\n}\n\t? Value\n\t: Definition extends { type: \"string\" }\n\t\t? string\n\t\t: Definition extends { type: \"number\"; values: readonly (infer Value extends number)[] }\n\t\t\t? Value\n\t\t\t: Definition extends { type: \"number\" }\n\t\t\t\t? number\n\t\t\t\t: Definition extends { type: \"boolean\"; values: readonly (infer Value extends boolean)[] }\n\t\t\t\t\t? Value\n\t\t\t\t\t: Definition extends { type: \"boolean\" }\n\t\t\t\t\t\t? boolean\n\t\t\t\t\t\t: Definition extends {\n\t\t\t\t\t\t\t\t\ttype: \"string[]\";\n\t\t\t\t\t\t\t\t\telementValues: readonly (infer Value extends string)[];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t? readonly Value[]\n\t\t\t\t\t\t\t: Definition extends { type: \"string[]\" }\n\t\t\t\t\t\t\t\t? readonly string[]\n\t\t\t\t\t\t\t\t: Definition extends {\n\t\t\t\t\t\t\t\t\t\t\ttype: \"number[]\";\n\t\t\t\t\t\t\t\t\t\t\telementValues: readonly (infer Value extends number)[];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t? readonly Value[]\n\t\t\t\t\t\t\t\t\t: Definition extends { type: \"number[]\" }\n\t\t\t\t\t\t\t\t\t\t? readonly number[]\n\t\t\t\t\t\t\t\t\t\t: Definition extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"boolean[]\";\n\t\t\t\t\t\t\t\t\t\t\t\t\telementValues: readonly (infer Value extends boolean)[];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t? readonly Value[]\n\t\t\t\t\t\t\t\t\t\t\t: readonly boolean[];\n\ntype RequiredAttributeNames<\n\tDefinitions extends Record<string, TelemetryStartAttributeDefinition | TelemetryEventAttributeDefinition>,\n> = {\n\t[Name in keyof Definitions]-?: Definitions[Name][\"required\"] extends true ? Name : never;\n}[keyof Definitions];\n\ntype OptionalAttributeNames<\n\tDefinitions extends Record<string, TelemetryStartAttributeDefinition | TelemetryEventAttributeDefinition>,\n> = Exclude<keyof Definitions, RequiredAttributeNames<Definitions>>;\n\nexport type InferRequiredAndOptionalAttributes<\n\tDefinitions extends Record<string, TelemetryStartAttributeDefinition | TelemetryEventAttributeDefinition>,\n> = keyof Definitions extends never\n\t? Record<string, never>\n\t: {\n\t\t\t[Name in RequiredAttributeNames<Definitions>]: AttributeDefinitionValue<Definitions[Name]>;\n\t\t} & {\n\t\t\t[Name in OptionalAttributeNames<Definitions>]?: AttributeDefinitionValue<Definitions[Name]>;\n\t\t};\n\nexport type InferStartAttributes<Definitions extends Record<string, TelemetryStartAttributeDefinition>> =\n\tInferRequiredAndOptionalAttributes<Definitions>;\n\nexport type InferOptionalAttributes<Definitions extends Record<string, TelemetryAttributeDefinition>> =\n\tkeyof Definitions extends never\n\t\t? Record<string, never>\n\t\t: { [Name in keyof Definitions]?: AttributeDefinitionValue<Definitions[Name]> };\n\nexport type ExactTelemetryAttributes<Expected, Actual extends Expected> = Actual &\n\tRecord<Exclude<keyof Actual, keyof Expected>, never>;\n\nexport type InferEventAttributes<Definitions extends Record<string, TelemetryEventAttributeDefinition>> =\n\tInferRequiredAndOptionalAttributes<Definitions>;\n\nexport type TelemetrySchemaSpanName<Schema extends TelemetrySchemaDefinition> = keyof Schema[\"spans\"] & string;\n\ntype SchemaSpan<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = Schema[\"spans\"][Name];\n\nexport type TelemetrySchemaSpanStartAttributes<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = SchemaSpan<Schema, Name>[\"startAttributes\"] extends infer Definitions extends Record<\n\tstring,\n\tTelemetryStartAttributeDefinition\n>\n\t? InferStartAttributes<Definitions>\n\t: never;\n\nexport type TelemetrySchemaSpanEndAttributes<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = SchemaSpan<Schema, Name>[\"endAttributes\"] extends infer Definitions extends Record<\n\tstring,\n\tTelemetryAttributeDefinition\n>\n\t? InferOptionalAttributes<Definitions>\n\t: never;\n\ntype SchemaSpanEvents<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = SchemaSpan<Schema, Name> extends { events: infer Events extends Record<string, TelemetryEventDefinition> }\n\t? Events\n\t: Record<never, never>;\n\nexport type TelemetrySchemaSpanEventName<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = keyof SchemaSpanEvents<Schema, Name> & string;\n\ntype SchemaSpanEvent<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n\tEventName extends TelemetrySchemaSpanEventName<Schema, Name>,\n> = SchemaSpanEvents<Schema, Name> extends infer Events\n\t? EventName extends keyof Events\n\t\t? Events[EventName]\n\t\t: never\n\t: never;\n\nexport type TelemetrySchemaSpanEventAttributes<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n\tEventName extends TelemetrySchemaSpanEventName<Schema, Name>,\n> = SchemaSpanEvent<Schema, Name, EventName> extends {\n\tattributes: infer Definitions extends Record<string, TelemetryEventAttributeDefinition>;\n}\n\t? InferEventAttributes<Definitions>\n\t: never;\n\ntype SchemaSpanEventAttributeDefinitions<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n\tEventName extends TelemetrySchemaSpanEventName<Schema, Name>,\n> = SchemaSpanEvent<Schema, Name, EventName> extends {\n\tattributes: infer Definitions extends Record<string, TelemetryEventAttributeDefinition>;\n}\n\t? Definitions\n\t: Record<never, never>;\n\ntype EventArguments<\n\tDefinitions extends Record<string, TelemetryEventAttributeDefinition>,\n\tAttributes extends InferEventAttributes<Definitions>,\n> = [RequiredAttributeNames<Definitions>] extends [never]\n\t? [attributes?: ExactTelemetryAttributes<InferEventAttributes<Definitions>, Attributes>]\n\t: [attributes: ExactTelemetryAttributes<InferEventAttributes<Definitions>, Attributes>];\n\nexport type SchemaTelemetrySpan<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends TelemetrySchemaSpanName<Schema>,\n> = Omit<TelemetrySpan, \"addEvent\" | \"setAttributes\"> & {\n\taddEvent<\n\t\tEventName extends TelemetrySchemaSpanEventName<Schema, Name>,\n\t\tconst Attributes extends InferEventAttributes<\n\t\t\tSchemaSpanEventAttributeDefinitions<Schema, Name, EventName>\n\t\t> = InferEventAttributes<SchemaSpanEventAttributeDefinitions<Schema, Name, EventName>>,\n\t>(\n\t\tname: EventName,\n\t\t...args: EventArguments<SchemaSpanEventAttributeDefinitions<Schema, Name, EventName>, Attributes>\n\t): void;\n\tsetAttributes<const Attributes extends TelemetrySchemaSpanEndAttributes<Schema, Name>>(\n\t\tattributes: ExactTelemetryAttributes<TelemetrySchemaSpanEndAttributes<Schema, Name>, Attributes>,\n\t): void;\n};\n\nexport type TelemetrySchemaSpanUnion<Schema extends TelemetrySchemaDefinition> = {\n\t[Name in TelemetrySchemaSpanName<Schema>]: {\n\t\tname: Name;\n\t\tstartAttributes: TelemetrySchemaSpanStartAttributes<Schema, Name>;\n\t\tendAttributes: TelemetrySchemaSpanEndAttributes<Schema, Name>;\n\t\tevents: {\n\t\t\t[EventName in TelemetrySchemaSpanEventName<Schema, Name>]: TelemetrySchemaSpanEventAttributes<\n\t\t\t\tSchema,\n\t\t\t\tName,\n\t\t\t\tEventName\n\t\t\t>;\n\t\t};\n\t};\n}[TelemetrySchemaSpanName<Schema>];\n\ntype TelemetrySchemaTuple = readonly [TelemetrySchemaDefinition, ...TelemetrySchemaDefinition[]];\n\ntype SpanNameInSchema<Schema extends TelemetrySchemaDefinition> = Schema extends TelemetrySchemaDefinition\n\t? TelemetrySchemaSpanName<Schema>\n\t: never;\n\ntype SpanNameInSchemas<Schemas extends TelemetrySchemaTuple> = SpanNameInSchema<Schemas[number]>;\n\ntype SpanStartAttributesInSchema<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends string,\n> = Schema extends TelemetrySchemaDefinition\n\t? Name extends TelemetrySchemaSpanName<Schema>\n\t\t? TelemetrySchemaSpanStartAttributes<Schema, Name>\n\t\t: never\n\t: never;\n\ntype SpanInSchema<\n\tSchema extends TelemetrySchemaDefinition,\n\tName extends string,\n> = Schema extends TelemetrySchemaDefinition\n\t? Name extends TelemetrySchemaSpanName<Schema>\n\t\t? SchemaTelemetrySpan<Schema, Name>\n\t\t: never\n\t: never;\n\ntype DuplicateTelemetrySpanNames<\n\tSchemas extends readonly TelemetrySchemaDefinition[],\n\tSeen extends string = never,\n> = Schemas extends readonly [\n\tinfer Schema extends TelemetrySchemaDefinition,\n\t...infer Rest extends readonly TelemetrySchemaDefinition[],\n]\n\t?\n\t\t\t| Extract<TelemetrySchemaSpanName<Schema>, Seen>\n\t\t\t| DuplicateTelemetrySpanNames<Rest, Seen | TelemetrySchemaSpanName<Schema>>\n\t: never;\n\ntype UniqueTelemetrySchemas<Schemas extends TelemetrySchemaTuple> = [DuplicateTelemetrySpanNames<Schemas>] extends [\n\tnever,\n]\n\t? unknown\n\t: { readonly \"duplicate telemetry span names\": DuplicateTelemetrySpanNames<Schemas> };\n\ntype UnionToIntersection<Union> = (Union extends unknown ? (value: Union) => void : never) extends (\n\tvalue: infer Intersection,\n) => void\n\t? Intersection\n\t: never;\n\ntype TypedSpanStarterForName<Schemas extends TelemetrySchemaTuple, Name extends SpanNameInSchemas<Schemas>> = <\n\tconst Attributes extends SpanStartAttributesInSchema<Schemas[number], Name>,\n\tResult,\n>(\n\tname: Name,\n\tattributes: ExactTelemetryAttributes<SpanStartAttributesInSchema<Schemas[number], Name>, Attributes>,\n\tcallback: (\n\t\tspan: SpanInSchema<Schemas[number], Name>,\n\t\tstartChildSpan: TypedSpanStarter<Schemas>,\n\t) => Result | Promise<Result>,\n) => Promise<Result>;\n\n/** A per-span overload set bound to one explicit parent context and one or more schemas. */\nexport type TypedSpanStarter<Schemas extends TelemetrySchemaTuple> = UnionToIntersection<\n\t{\n\t\t[Name in SpanNameInSchemas<Schemas>]: TypedSpanStarterForName<Schemas, Name>;\n\t}[SpanNameInSchemas<Schemas>]\n>;\n\nfunction bindTypedSpanStarter<Schemas extends TelemetrySchemaTuple>(\n\ttelemetryContext: TelemetryContext,\n): TypedSpanStarter<Schemas> {\n\tconst startSpan = (\n\t\tname: SpanNameInSchemas<Schemas>,\n\t\tattributes: SpanAttributes,\n\t\tcallback: (\n\t\t\tspan: SpanInSchema<Schemas[number], SpanNameInSchemas<Schemas>>,\n\t\t\tstartChildSpan: TypedSpanStarter<Schemas>,\n\t\t) => unknown,\n\t): Promise<unknown> =>\n\t\ttelemetryContext.startSpan({ name, attributes }, (span) =>\n\t\t\tcallback(\n\t\t\t\tspan as SpanInSchema<Schemas[number], SpanNameInSchemas<Schemas>>,\n\t\t\t\tbindTypedSpanStarter<Schemas>(span),\n\t\t\t),\n\t\t);\n\n\treturn startSpan as TypedSpanStarter<Schemas>;\n}\n\n/**\n * Bind an explicit parent context to the combined span vocabulary of one or more schemas.\n * Schema values are used only for type inference; no runtime schema validation is performed.\n */\nexport function createTypedSpanStarter<const Schemas extends TelemetrySchemaTuple>(\n\ttelemetryContext: TelemetryContext,\n\t_schemas: Schemas & UniqueTelemetrySchemas<Schemas>,\n): TypedSpanStarter<Schemas> {\n\treturn bindTypedSpanStarter<Schemas>(telemetryContext);\n}\n\nexport type { RecordedTelemetryEvent, RecordedTelemetrySpan } from \"./memory.ts\";\nexport { InMemoryTelemetryContext } from \"./memory.ts\";\n"]}