@cookbook/urlkit 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile-path-COU1uxXm.js","sources":["../src/errors/url-kit-error.ts","../src/url/path-constraints.ts","../src/schema/runtime-schema-symbol.ts","../src/schema/get-runtime-schema-internals.ts","../src/schema/compile-runtime-schema.ts","../src/schema/create-schema-builder.ts","../src/schema/create-schema-value-error.ts","../src/schema/compile-runtime-schema-value.ts","../src/schema/handle-runtime-schema-absence.ts","../src/schema/runtime-schema-value-context.ts","../src/schema/normalize-compiled-runtime-schema-value.ts","../src/schema/normalize-runtime-schema-value.ts","../src/schema/boolean.ts","../src/date/parse-date.ts","../src/date/parse-custom-date.ts","../src/date/parse-date-time.ts","../src/date/parse-unix-ms.ts","../src/date/parse-unix-seconds.ts","../src/date/serialize-date.ts","../src/date/serialize-custom-date.ts","../src/date/serialize-date-time.ts","../src/date/serialize-unix-ms.ts","../src/date/serialize-unix-seconds.ts","../src/schema/date.ts","../src/schema/enum-of.ts","../src/schema/int.ts","../src/schema/number.ts","../src/schema/string.ts","../src/hash/compile-static-hash-descriptor.ts","../src/search/is-runtime-search-field.ts","../src/search/normalize-search-field-default.ts","../src/search/normalize-search-field-type.ts","../src/search/compile-search-schema.ts","../src/url/assert-path-match-failure.ts","../src/url/path-param-kind.ts","../src/url/coerce-path-param.ts","../src/url/normalize-path-build-params.ts","../src/url/parse-path-pattern.ts","../src/url/register-urlkit-path-constraints.ts","../src/url/compile-path.ts"],"sourcesContent":["import type { UrlKitErrorCode, UrlKitErrorOptions } from './contracts.js';\n\nconst defaultMessages = {\n 'invalid-url': 'Invalid URL.',\n 'path-mismatch': 'Pathname does not match the URL pattern.',\n 'missing-param': 'Required path parameter is missing.',\n 'invalid-param': 'Path parameter is invalid.',\n 'missing-search': 'Required search parameter is missing.',\n 'invalid-search': 'Search parameter is invalid.',\n 'invalid-hash': 'Hash fragment is invalid.',\n 'invalid-descriptor': 'URL descriptor is invalid.',\n} satisfies Record<UrlKitErrorCode, string>;\n\nfunction resolveMessage(\n code: UrlKitErrorCode,\n messageOrOptions?: string | UrlKitErrorOptions,\n): string {\n if (typeof messageOrOptions === 'string') {\n return messageOrOptions;\n }\n\n return defaultMessages[code];\n}\n\nfunction resolveOptions(\n messageOrOptions?: string | UrlKitErrorOptions,\n options?: UrlKitErrorOptions,\n): UrlKitErrorOptions | undefined {\n if (typeof messageOrOptions === 'string') {\n return options;\n }\n\n return messageOrOptions;\n}\n\nfunction hasCause(\n options: UrlKitErrorOptions | undefined,\n): options is UrlKitErrorOptions & { readonly cause: unknown } {\n return Boolean(options && 'cause' in options);\n}\n\nexport class UrlKitError extends Error {\n readonly code: UrlKitErrorCode;\n readonly path?: readonly string[];\n override readonly cause?: unknown;\n\n constructor(code: UrlKitErrorCode, options?: UrlKitErrorOptions);\n constructor(code: UrlKitErrorCode, message?: string, options?: UrlKitErrorOptions);\n constructor(\n code: UrlKitErrorCode,\n messageOrOptions?: string | UrlKitErrorOptions,\n options?: UrlKitErrorOptions,\n ) {\n const resolvedOptions = resolveOptions(messageOrOptions, options);\n\n super(\n resolveMessage(code, messageOrOptions),\n hasCause(resolvedOptions) ? { cause: resolvedOptions.cause } : undefined,\n );\n\n this.name = 'UrlKitError';\n this.code = code;\n\n if (resolvedOptions?.path) {\n this.path = [...resolvedOptions.path];\n }\n\n if (hasCause(resolvedOptions)) {\n this.cause = resolvedOptions.cause;\n }\n }\n}\n","import { getConstraint, hasConstraint, registerConstraint } from '@cookbook/pathkit/constraints';\nimport type { ConstraintValidation } from '@cookbook/pathkit';\nimport type { PathConstraintMap, RegisterPathConstraintOptions } from '../contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nexport function registerPathConstraint(\n name: string,\n constraint: ConstraintValidation,\n options: RegisterPathConstraintOptions = {},\n): void {\n assertPathConstraintName(name);\n assertPathConstraint(name, constraint);\n\n const existing = getConstraint(name);\n\n if (existing && existing !== constraint && !options.overwrite) {\n throw new UrlKitError(\n 'invalid-descriptor',\n `Path constraint \"${name}\" is already registered.`,\n {\n path: ['pathConstraints', name],\n },\n );\n }\n\n if (existing === constraint && !options.overwrite) {\n return;\n }\n\n registerConstraint(name, constraint);\n}\n\nexport function registerPathConstraints(\n constraints: PathConstraintMap,\n options: RegisterPathConstraintOptions = {},\n): void {\n assertPathConstraintMap(constraints);\n\n for (const [name, constraint] of Object.entries(constraints)) {\n registerPathConstraint(name, constraint, options);\n }\n}\n\nexport function hasPathConstraint(name: string): boolean {\n return hasConstraint(name);\n}\n\nfunction assertPathConstraintName(name: unknown): asserts name is string {\n if (typeof name === 'string' && name.trim()) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Path constraint name must be a non-empty string.', {\n path: ['pathConstraints'],\n });\n}\n\nfunction assertPathConstraintMap(input: unknown): asserts input is PathConstraintMap {\n if (isRecord(input)) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Path constraints must be an object.', {\n path: ['pathConstraints'],\n });\n}\n\nfunction assertPathConstraint(\n name: string,\n constraint: unknown,\n): asserts constraint is ConstraintValidation {\n if (\n typeof constraint === 'function' &&\n typeof (constraint as Partial<ConstraintValidation>).verify === 'function' &&\n typeof (constraint as Partial<ConstraintValidation>).toRegExp === 'function'\n ) {\n return;\n }\n\n throw new UrlKitError(\n 'invalid-descriptor',\n `Path constraint \"${name}\" must be created with createConstraint().`,\n {\n path: ['pathConstraints', name],\n },\n );\n}\n\nfunction isRecord(input: unknown): input is Record<string, unknown> {\n return typeof input === 'object' && input !== null && !Array.isArray(input);\n}\n","import type {\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaBuilder,\n RuntimeSchemaInternals,\n RuntimeSchemaOptions,\n} from './contracts.js';\n\nexport const runtimeSchemaSymbol: unique symbol = Symbol('urlkit.runtime-schema');\n\nexport interface RuntimeSchemaBuilderWithInternals<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n> extends RuntimeSchemaBuilder<Value, Kind, Options, Descriptor> {\n readonly [runtimeSchemaSymbol]: RuntimeSchemaInternals<Value, Kind, Options, Descriptor>;\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaBuilder,\n RuntimeSchemaOptions,\n} from './contracts.js';\nimport {\n runtimeSchemaSymbol,\n type RuntimeSchemaBuilderWithInternals,\n} from './runtime-schema-symbol.js';\n\nexport function getRuntimeSchemaInternals<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(schema: RuntimeSchemaBuilder<Value, Kind, Options, Descriptor>) {\n const candidate = schema as Partial<\n RuntimeSchemaBuilderWithInternals<Value, Kind, Options, Descriptor>\n >;\n const internals = candidate[runtimeSchemaSymbol];\n\n if (!internals) {\n throw new UrlKitError('invalid-descriptor', 'Expected a runtime schema builder.');\n }\n\n return internals;\n}\n","import type {\n CompileRuntimeSchemaOptions,\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaBuilder,\n RuntimeSchemaOptions,\n} from './contracts.js';\nimport { getRuntimeSchemaInternals } from './get-runtime-schema-internals.js';\n\nexport function compileRuntimeSchema<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(\n schema: RuntimeSchemaBuilder<Value, Kind, Options, Descriptor>,\n options: CompileRuntimeSchemaOptions = {},\n): Descriptor {\n const internals = getRuntimeSchemaInternals(schema);\n const descriptor = internals.toDescriptor();\n\n if (internals.validateDescriptor) {\n internals.validateDescriptor({\n kind: descriptor.kind,\n path: [...(options.path ?? [])],\n });\n }\n\n if (descriptor.presence === 'defaulted' && internals.validateDefault) {\n internals.validateDefault(descriptor.defaultValue as Value, {\n kind: descriptor.kind,\n path: [...(options.path ?? [])],\n });\n }\n\n return descriptor;\n}\n","import type {\n DefaultedRuntimeSchemaDescriptor,\n EmptyRuntimeSchemaOptions,\n NormalizedRuntimeSchemaDescriptor,\n OptionalRuntimeSchemaDescriptor,\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidator,\n RuntimeDescriptorValidator,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaDefinition,\n RuntimeSchemaOptions,\n} from './contracts.js';\nimport {\n runtimeSchemaSymbol,\n type RuntimeSchemaBuilderWithInternals,\n} from './runtime-schema-symbol.js';\n\ninterface RuntimeSchemaState<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n> {\n readonly kind: Kind;\n readonly presence: Descriptor['presence'];\n readonly options: Options;\n readonly defaultValue?: unknown;\n readonly codec?: RuntimeSchemaCodec<Value>;\n readonly validateDefault?: RuntimeDefaultValidator<Value>;\n readonly validateDescriptor?: RuntimeDescriptorValidator;\n}\n\nexport function createRuntimeSchemaBuilder<\n Value,\n const Kind extends string,\n Options extends RuntimeSchemaOptions = EmptyRuntimeSchemaOptions,\n>(\n definition: RuntimeSchemaDefinition<Kind, Options, Value>,\n): RuntimeSchemaBuilder<Value, Kind, Options, RequiredRuntimeSchemaDescriptor<Kind, Options>> {\n return createBuilder<Value, Kind, Options, RequiredRuntimeSchemaDescriptor<Kind, Options>>({\n kind: definition.kind,\n presence: 'required',\n options: copyOptions(definition.options),\n ...(definition.codec ? { codec: definition.codec } : {}),\n ...(definition.validateDefault ? { validateDefault: definition.validateDefault } : {}),\n ...(definition.validateDescriptor ? { validateDescriptor: definition.validateDescriptor } : {}),\n });\n}\n\nfunction createBuilder<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(\n state: RuntimeSchemaState<Value, Kind, Options, Descriptor>,\n): RuntimeSchemaBuilderWithInternals<Value, Kind, Options, Descriptor> {\n const internals = Object.freeze({\n kind: state.kind,\n presence: state.presence,\n options: state.options,\n ...(state.defaultValue !== undefined ? { defaultValue: state.defaultValue } : {}),\n ...(state.codec ? { codec: state.codec } : {}),\n ...(state.validateDefault ? { validateDefault: state.validateDefault } : {}),\n ...(state.validateDescriptor ? { validateDescriptor: state.validateDescriptor } : {}),\n toDescriptor: () => createDescriptor(state),\n });\n\n const builder = {\n [runtimeSchemaSymbol]: internals,\n\n optional: () => {\n const nextState = {\n kind: state.kind,\n presence: 'optional',\n options: state.options,\n ...(state.codec ? { codec: state.codec as RuntimeSchemaCodec<Value | undefined> } : {}),\n ...(state.validateDefault\n ? { validateDefault: state.validateDefault as RuntimeDefaultValidator<Value | undefined> }\n : {}),\n ...(state.validateDescriptor ? { validateDescriptor: state.validateDescriptor } : {}),\n } satisfies RuntimeSchemaState<\n Value | undefined,\n Kind,\n Options,\n OptionalRuntimeSchemaDescriptor<Kind, Options>\n >;\n\n return createBuilder<\n Value | undefined,\n Kind,\n Options,\n OptionalRuntimeSchemaDescriptor<Kind, Options>\n >(nextState);\n },\n\n required: () => {\n const nextState = {\n kind: state.kind,\n presence: 'required',\n options: state.options,\n ...(state.codec ? { codec: state.codec as RuntimeSchemaCodec<NonNullable<Value>> } : {}),\n ...(state.validateDefault\n ? {\n validateDefault: state.validateDefault,\n }\n : {}),\n ...(state.validateDescriptor ? { validateDescriptor: state.validateDescriptor } : {}),\n } satisfies RuntimeSchemaState<\n NonNullable<Value>,\n Kind,\n Options,\n RequiredRuntimeSchemaDescriptor<Kind, Options>\n >;\n\n return createBuilder<\n NonNullable<Value>,\n Kind,\n Options,\n RequiredRuntimeSchemaDescriptor<Kind, Options>\n >(nextState);\n },\n\n default: (value: NonNullable<Value>) => {\n const nextState = {\n kind: state.kind,\n presence: 'defaulted',\n options: state.options,\n defaultValue: value,\n ...(state.codec ? { codec: state.codec as RuntimeSchemaCodec<NonNullable<Value>> } : {}),\n ...(state.validateDefault\n ? {\n validateDefault: state.validateDefault,\n }\n : {}),\n ...(state.validateDescriptor ? { validateDescriptor: state.validateDescriptor } : {}),\n } satisfies RuntimeSchemaState<\n NonNullable<Value>,\n Kind,\n Options,\n DefaultedRuntimeSchemaDescriptor<Kind, Options, NonNullable<Value>>\n >;\n\n return createBuilder<\n NonNullable<Value>,\n Kind,\n Options,\n DefaultedRuntimeSchemaDescriptor<Kind, Options, NonNullable<Value>>\n >(nextState);\n },\n } satisfies RuntimeSchemaBuilderWithInternals<Value, Kind, Options, Descriptor>;\n\n return Object.freeze(builder);\n}\n\nfunction createDescriptor<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(state: RuntimeSchemaState<Value, Kind, Options, Descriptor>): Descriptor {\n const base = {\n kind: state.kind,\n presence: state.presence,\n options: copyOptions(state.options),\n };\n\n if (state.presence === 'defaulted') {\n return Object.freeze({\n ...base,\n presence: 'defaulted',\n defaultValue: state.defaultValue,\n }) as Descriptor;\n }\n\n return Object.freeze(base) as Descriptor;\n}\n\nfunction copyOptions<Options extends RuntimeSchemaOptions>(options: Options | undefined): Options {\n return Object.freeze({ ...(options ?? {}) }) as Options;\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nexport function createSchemaValueError(\n code: UrlKitErrorCode,\n message: string,\n path: readonly string[],\n cause?: unknown,\n): UrlKitError {\n return new UrlKitError(code, message, {\n path,\n ...(cause !== undefined ? { cause } : {}),\n });\n}\n","import type {\n CompileRuntimeSchemaOptions,\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaOptions,\n} from './contracts.js';\nimport { compileRuntimeSchema } from './compile-runtime-schema.js';\nimport { getRuntimeSchemaInternals } from './get-runtime-schema-internals.js';\n\nexport interface CompiledRuntimeSchema<Value = unknown> {\n readonly descriptor: NormalizedRuntimeSchemaDescriptor;\n readonly codec?: RuntimeSchemaCodec<Value>;\n}\n\nexport function compileRuntimeSchemaValue<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(\n schema: RuntimeSchemaBuilder<Value, Kind, Options, Descriptor>,\n options: CompileRuntimeSchemaOptions = {},\n): CompiledRuntimeSchema<Value> {\n const descriptor = compileRuntimeSchema(schema, options);\n const internals = getRuntimeSchemaInternals(schema);\n\n return Object.freeze({\n descriptor: descriptor,\n ...(internals.codec ? { codec: internals.codec } : {}),\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaOptions,\n RuntimeSchemaValueOptions,\n} from './contracts.js';\n\nexport interface RuntimeSchemaAbsenceResult<Value> {\n readonly handled: boolean;\n readonly value?: Value | undefined;\n}\n\nexport function handleRuntimeSchemaAbsence<\n Value,\n Options extends RuntimeSchemaOptions = RuntimeSchemaOptions,\n>(\n descriptor: NormalizedRuntimeSchemaDescriptor<string, Options, Value>,\n input: unknown,\n options: RuntimeSchemaValueOptions = {},\n): RuntimeSchemaAbsenceResult<Value> {\n if (input !== undefined && input !== null) {\n return { handled: false };\n }\n\n if (descriptor.presence === 'optional') {\n return { handled: true, value: undefined };\n }\n\n if (descriptor.presence === 'defaulted') {\n return { handled: true, value: descriptor.defaultValue };\n }\n\n const path = [...(options.path ?? [])];\n\n if (input === null) {\n throw new UrlKitError(options.errorCode ?? 'invalid-search', 'Required value cannot be null.', {\n path,\n });\n }\n\n throw new UrlKitError(options.missingCode ?? 'missing-search', 'Required value is missing.', {\n path,\n });\n}\n","import type { RuntimeSchemaValueContext, RuntimeSchemaValueOptions } from './contracts.js';\n\nexport function createRuntimeSchemaValueContext(\n kind: string,\n options: RuntimeSchemaValueOptions = {},\n): RuntimeSchemaValueContext {\n return {\n kind,\n path: [...(options.path ?? [])],\n errorCode: options.errorCode ?? 'invalid-search',\n };\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type { RuntimeSchemaValueOptions } from './contracts.js';\nimport type { CompiledRuntimeSchema } from './compile-runtime-schema-value.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\nimport { handleRuntimeSchemaAbsence } from './handle-runtime-schema-absence.js';\nimport { createRuntimeSchemaValueContext } from './runtime-schema-value-context.js';\n\nexport function normalizeCompiledRuntimeSchemaValue<Value = unknown>(\n compiled: CompiledRuntimeSchema<Value>,\n input: unknown,\n options: RuntimeSchemaValueOptions = {},\n): Value {\n const absence = handleRuntimeSchemaAbsence(compiled.descriptor, input, options);\n\n if (absence.handled) {\n return absence.value as Value;\n }\n\n if (!compiled.codec) {\n throw new UrlKitError(\n 'invalid-descriptor',\n `Runtime schema \"${compiled.descriptor.kind}\" does not define a normalizer.`,\n options.path ? { path: options.path } : undefined,\n );\n }\n\n try {\n return compiled.codec.normalize(\n input,\n createRuntimeSchemaValueContext(compiled.descriptor.kind, options),\n );\n } catch (error) {\n if (error instanceof UrlKitError) {\n throw error;\n }\n\n throw createSchemaValueError(\n options.errorCode ?? 'invalid-search',\n 'Schema value is invalid.',\n options.path ?? [],\n error,\n );\n }\n}\n","import type {\n NormalizedRuntimeSchemaDescriptor,\n RuntimeSchemaBuilder,\n RuntimeSchemaOptions,\n RuntimeSchemaValueOptions,\n} from './contracts.js';\nimport { compileRuntimeSchemaValue } from './compile-runtime-schema-value.js';\nimport { normalizeCompiledRuntimeSchemaValue } from './normalize-compiled-runtime-schema-value.js';\n\nexport function normalizeRuntimeSchemaValue<\n Value,\n Kind extends string,\n Options extends RuntimeSchemaOptions,\n Descriptor extends NormalizedRuntimeSchemaDescriptor<Kind, Options>,\n>(\n schema: RuntimeSchemaBuilder<Value, Kind, Options, Descriptor>,\n input: unknown,\n options: RuntimeSchemaValueOptions = {},\n): Value {\n return normalizeCompiledRuntimeSchemaValue(\n compileRuntimeSchemaValue(schema, options),\n input,\n options,\n );\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport interface BooleanSchema extends RuntimeSchemaBuilder<\n boolean,\n 'boolean',\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor<'boolean', EmptyRuntimeSchemaOptions>\n> {}\n\nconst booleanCodec: RuntimeSchemaCodec<boolean> = {\n parse(input, context) {\n if (input === 'true') {\n return true;\n }\n\n if (input === 'false') {\n return false;\n }\n\n throw createSchemaValueError(context.errorCode, 'Expected \"true\" or \"false\".', context.path);\n },\n\n normalize(input, context) {\n return validateBoolean(input, context);\n },\n\n serialize(input, context) {\n return validateBoolean(input, context) ? 'true' : 'false';\n },\n};\n\nexport function boolean(): BooleanSchema {\n return createRuntimeSchemaBuilder<boolean, 'boolean'>({\n kind: 'boolean',\n codec: booleanCodec,\n validateDefault(value, context) {\n validateBooleanDefault(value, context);\n },\n });\n}\n\nfunction validateBoolean(input: unknown, context: RuntimeSchemaValueContext): boolean {\n if (typeof input === 'boolean') {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, 'Expected a boolean value.', context.path);\n}\n\nfunction validateBooleanDefault(value: boolean, context: RuntimeDefaultValidationContext): void {\n if (typeof value === 'boolean') {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Boolean schema default must be a boolean.', {\n path: context.path,\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst datePattern = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\nexport interface ParseDateOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function parseDate(input: string, options: ParseDateOptions = {}): Date {\n const match = datePattern.exec(input);\n\n if (!match) {\n throw createInvalidDateError('Date value must use YYYY-MM-DD format.', options);\n }\n\n const [, yearText, monthText, dayText] = match;\n const year = Number(yearText);\n const month = Number(monthText);\n const day = Number(dayText);\n\n if (month < 1 || month > 12 || day < 1 || day > 31) {\n throw createInvalidDateError('Date value must be a valid calendar date.', options);\n }\n\n const value = new Date(Date.UTC(0, month - 1, day));\n value.setUTCFullYear(year);\n\n if (\n value.getUTCFullYear() !== year ||\n value.getUTCMonth() !== month - 1 ||\n value.getUTCDate() !== day ||\n value.getUTCHours() !== 0 ||\n value.getUTCMinutes() !== 0 ||\n value.getUTCSeconds() !== 0 ||\n value.getUTCMilliseconds() !== 0\n ) {\n throw createInvalidDateError('Date value must be a valid calendar date.', options);\n }\n\n return value;\n}\n\nfunction createInvalidDateError(message: string, options: ParseDateOptions): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\nimport type { DateFormatCodec } from './contracts.js';\n\nexport interface ParseCustomDateOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function parseCustomDate(\n input: string,\n format: DateFormatCodec,\n options: ParseCustomDateOptions = {},\n): Date {\n let value: Date;\n\n try {\n value = format.parse(input);\n } catch (cause) {\n throw createInvalidCustomDateError('Custom date format parser failed.', options, cause);\n }\n\n if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {\n throw createInvalidCustomDateError(\n 'Custom date format parser must return a valid Date.',\n options,\n );\n }\n\n return value;\n}\n\nfunction createInvalidCustomDateError(\n message: string,\n options: ParseCustomDateOptions,\n cause?: unknown,\n): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n ...(cause !== undefined ? { cause } : {}),\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst dateTimePattern = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{3})Z$/;\n\nexport interface ParseDateTimeOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function parseDateTime(input: string, options: ParseDateTimeOptions = {}): Date {\n const match = dateTimePattern.exec(input);\n\n if (!match) {\n throw createInvalidDateTimeError(\n 'Date-time value must use UTC YYYY-MM-DDTHH:mm:ss.sssZ format.',\n options,\n );\n }\n\n const [, yearText, monthText, dayText, hourText, minuteText, secondText, millisecondText] = match;\n const year = Number(yearText);\n const month = Number(monthText);\n const day = Number(dayText);\n const hour = Number(hourText);\n const minute = Number(minuteText);\n const second = Number(secondText);\n const millisecond = Number(millisecondText);\n\n if (month < 1 || month > 12 || day < 1 || day > 31 || hour > 23 || minute > 59 || second > 59) {\n throw createInvalidDateTimeError(\n 'Date-time value must be a valid UTC calendar instant.',\n options,\n );\n }\n\n const value = new Date(Date.UTC(0, month - 1, day, hour, minute, second, millisecond));\n value.setUTCFullYear(year);\n\n if (\n value.getUTCFullYear() !== year ||\n value.getUTCMonth() !== month - 1 ||\n value.getUTCDate() !== day ||\n value.getUTCHours() !== hour ||\n value.getUTCMinutes() !== minute ||\n value.getUTCSeconds() !== second ||\n value.getUTCMilliseconds() !== millisecond\n ) {\n throw createInvalidDateTimeError(\n 'Date-time value must be a valid UTC calendar instant.',\n options,\n );\n }\n\n return value;\n}\n\nfunction createInvalidDateTimeError(message: string, options: ParseDateTimeOptions): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst unixIntegerPattern = /^-?\\d+$/;\n\nexport interface ParseUnixMsOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function parseUnixMs(input: string, options: ParseUnixMsOptions = {}): Date {\n const milliseconds = parseUnixInteger(\n input,\n 'Unix milliseconds value must be a finite integer.',\n options,\n );\n const value = new Date(milliseconds);\n\n if (!Number.isFinite(value.getTime())) {\n throw createInvalidUnixMsError(\n 'Unix milliseconds value must be a valid Date instant.',\n options,\n );\n }\n\n return value;\n}\n\nfunction parseUnixInteger(input: string, message: string, options: ParseUnixMsOptions): number {\n if (!unixIntegerPattern.test(input)) {\n throw createInvalidUnixMsError(message, options);\n }\n\n const value = Number(input);\n\n if (!Number.isFinite(value) || !Number.isInteger(value)) {\n throw createInvalidUnixMsError(message, options);\n }\n\n return value;\n}\n\nfunction createInvalidUnixMsError(message: string, options: ParseUnixMsOptions): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst unixIntegerPattern = /^-?\\d+$/;\n\nexport interface ParseUnixSecondsOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function parseUnixSeconds(input: string, options: ParseUnixSecondsOptions = {}): Date {\n const seconds = parseUnixInteger(input, 'Unix seconds value must be a finite integer.', options);\n const milliseconds = seconds * 1000;\n const value = new Date(milliseconds);\n\n if (!Number.isFinite(milliseconds) || !Number.isFinite(value.getTime())) {\n throw createInvalidUnixSecondsError(\n 'Unix seconds value must be a valid Date instant.',\n options,\n );\n }\n\n return value;\n}\n\nfunction parseUnixInteger(\n input: string,\n message: string,\n options: ParseUnixSecondsOptions,\n): number {\n if (!unixIntegerPattern.test(input)) {\n throw createInvalidUnixSecondsError(message, options);\n }\n\n const value = Number(input);\n\n if (!Number.isFinite(value) || !Number.isInteger(value)) {\n throw createInvalidUnixSecondsError(message, options);\n }\n\n return value;\n}\n\nfunction createInvalidUnixSecondsError(\n message: string,\n options: ParseUnixSecondsOptions,\n): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nexport interface SerializeDateOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function serializeDate(input: Date, options: SerializeDateOptions = {}): string {\n if (!(input instanceof Date) || !Number.isFinite(input.getTime())) {\n throw new UrlKitError(options.code ?? 'invalid-search', 'Date value must be a valid Date.', {\n path: [...(options.path ?? [])],\n });\n }\n\n const year = String(input.getUTCFullYear()).padStart(4, '0');\n const month = String(input.getUTCMonth() + 1).padStart(2, '0');\n const day = String(input.getUTCDate()).padStart(2, '0');\n\n return `${year}-${month}-${day}`;\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\nimport type { DateFormatCodec } from './contracts.js';\n\nexport interface SerializeCustomDateOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function serializeCustomDate(\n input: Date,\n format: DateFormatCodec,\n options: SerializeCustomDateOptions = {},\n): string {\n if (!(input instanceof Date) || !Number.isFinite(input.getTime())) {\n throw createInvalidCustomDateError('Custom date format value must be a valid Date.', options);\n }\n\n let value: string;\n\n try {\n value = format.serialize(input);\n } catch (cause) {\n throw createInvalidCustomDateError('Custom date format serializer failed.', options, cause);\n }\n\n if (typeof value !== 'string' || value === '') {\n throw createInvalidCustomDateError(\n 'Custom date format serializer must return a non-empty string.',\n options,\n );\n }\n\n return value;\n}\n\nfunction createInvalidCustomDateError(\n message: string,\n options: SerializeCustomDateOptions,\n cause?: unknown,\n): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n ...(cause !== undefined ? { cause } : {}),\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst serializedDateTimePattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/;\n\nexport interface SerializeDateTimeOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function serializeDateTime(input: Date, options: SerializeDateTimeOptions = {}): string {\n if (!(input instanceof Date) || !Number.isFinite(input.getTime())) {\n throw createInvalidDateTimeError('Date-time value must be a valid Date.', options);\n }\n\n const value = input.toISOString();\n\n if (!serializedDateTimePattern.test(value)) {\n throw createInvalidDateTimeError(\n 'Date-time value must serialize to YYYY-MM-DDTHH:mm:ss.sssZ.',\n options,\n );\n }\n\n return value;\n}\n\nfunction createInvalidDateTimeError(\n message: string,\n options: SerializeDateTimeOptions,\n): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nexport interface SerializeUnixMsOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function serializeUnixMs(input: Date, options: SerializeUnixMsOptions = {}): string {\n if (!(input instanceof Date) || !Number.isFinite(input.getTime())) {\n throw createInvalidUnixMsError('Unix milliseconds value must be a valid Date.', options);\n }\n\n const milliseconds = input.getTime();\n\n if (!Number.isFinite(milliseconds) || !Number.isInteger(milliseconds)) {\n throw createInvalidUnixMsError(\n 'Unix milliseconds value must serialize to finite integer milliseconds.',\n options,\n );\n }\n\n return String(milliseconds);\n}\n\nfunction createInvalidUnixMsError(message: string, options: SerializeUnixMsOptions): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import type { UrlKitErrorCode } from '../errors/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nexport interface SerializeUnixSecondsOptions {\n readonly code?: UrlKitErrorCode;\n readonly path?: readonly string[];\n}\n\nexport function serializeUnixSeconds(\n input: Date,\n options: SerializeUnixSecondsOptions = {},\n): string {\n if (!(input instanceof Date) || !Number.isFinite(input.getTime())) {\n throw createInvalidUnixSecondsError('Unix seconds value must be a valid Date.', options);\n }\n\n const milliseconds = input.getTime();\n\n if (!Number.isInteger(milliseconds) || milliseconds % 1000 !== 0) {\n throw createInvalidUnixSecondsError(\n 'Unix seconds value must serialize to finite integer seconds.',\n options,\n );\n }\n\n const seconds = milliseconds / 1000;\n\n if (!Number.isFinite(seconds) || !Number.isInteger(seconds)) {\n throw createInvalidUnixSecondsError(\n 'Unix seconds value must serialize to finite integer seconds.',\n options,\n );\n }\n\n return String(seconds);\n}\n\nfunction createInvalidUnixSecondsError(\n message: string,\n options: SerializeUnixSecondsOptions,\n): UrlKitError {\n return new UrlKitError(options.code ?? 'invalid-search', message, {\n path: [...(options.path ?? [])],\n });\n}\n","import { parseDate } from '../date/parse-date.js';\nimport { parseCustomDate } from '../date/parse-custom-date.js';\nimport { parseDateTime } from '../date/parse-date-time.js';\nimport { parseUnixMs } from '../date/parse-unix-ms.js';\nimport { parseUnixSeconds } from '../date/parse-unix-seconds.js';\nimport { serializeDate } from '../date/serialize-date.js';\nimport { serializeCustomDate } from '../date/serialize-custom-date.js';\nimport { serializeDateTime } from '../date/serialize-date-time.js';\nimport { serializeUnixMs } from '../date/serialize-unix-ms.js';\nimport { serializeUnixSeconds } from '../date/serialize-unix-seconds.js';\nimport type { DateFormatCodec } from '../date/contracts.js';\nimport { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaOptions,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport type BuiltInRuntimeDateFormat = 'date' | 'date-time' | 'unix-seconds' | 'unix-ms';\nexport type RuntimeDateFormat = BuiltInRuntimeDateFormat | DateFormatCodec;\n\nexport interface DateSchemaOptions<\n Format extends RuntimeDateFormat = RuntimeDateFormat,\n> extends RuntimeSchemaOptions {\n readonly format: Format;\n}\n\nexport interface DateSchema<Format extends RuntimeDateFormat = 'date'> extends RuntimeSchemaBuilder<\n Date,\n 'date',\n DateSchemaOptions<Format>,\n RequiredRuntimeSchemaDescriptor<'date', DateSchemaOptions<Format>>\n> {}\n\nexport interface DateOptions<Format extends RuntimeDateFormat = 'date'> {\n readonly format?: Format;\n}\n\nconst dateOnlyCodec: RuntimeSchemaCodec<Date> = {\n parse(input, context) {\n return parseDate(input, { code: context.errorCode, path: context.path });\n },\n\n normalize(input, context) {\n return validateDate(input, context);\n },\n\n serialize(input, context) {\n return serializeDate(input, { code: context.errorCode, path: context.path });\n },\n};\n\nconst dateTimeCodec: RuntimeSchemaCodec<Date> = {\n parse(input, context) {\n return parseDateTime(input, { code: context.errorCode, path: context.path });\n },\n\n normalize(input, context) {\n return validateDate(input, context);\n },\n\n serialize(input, context) {\n return serializeDateTime(input, { code: context.errorCode, path: context.path });\n },\n};\n\nconst unixSecondsCodec: RuntimeSchemaCodec<Date> = {\n parse(input, context) {\n return parseUnixSeconds(input, { code: context.errorCode, path: context.path });\n },\n\n normalize(input, context) {\n return validateDate(input, context);\n },\n\n serialize(input, context) {\n return serializeUnixSeconds(input, { code: context.errorCode, path: context.path });\n },\n};\n\nconst unixMsCodec: RuntimeSchemaCodec<Date> = {\n parse(input, context) {\n return parseUnixMs(input, { code: context.errorCode, path: context.path });\n },\n\n normalize(input, context) {\n return validateDate(input, context);\n },\n\n serialize(input, context) {\n return serializeUnixMs(input, { code: context.errorCode, path: context.path });\n },\n};\n\nexport function date(): DateSchema;\nexport function date<const Format extends RuntimeDateFormat>(\n options: DateOptions<Format>,\n): DateSchema<Format>;\nexport function date(options: DateOptions<RuntimeDateFormat> = {}): DateSchema<RuntimeDateFormat> {\n const format = resolveDateFormat(options);\n\n return createRuntimeSchemaBuilder<Date, 'date', DateSchemaOptions>({\n kind: 'date',\n options: { format },\n codec: getDateCodec(format),\n validateDefault(value, context) {\n validateDateDefault(value, context);\n },\n });\n}\n\nfunction getDateCodec(format: RuntimeDateFormat): RuntimeSchemaCodec<Date> {\n if (isDateFormatCodec(format)) {\n return createCustomDateCodec(format);\n }\n\n if (format === 'date-time') {\n return dateTimeCodec;\n }\n\n if (format === 'unix-seconds') {\n return unixSecondsCodec;\n }\n\n if (format === 'unix-ms') {\n return unixMsCodec;\n }\n\n return dateOnlyCodec;\n}\n\nfunction createCustomDateCodec(format: DateFormatCodec): RuntimeSchemaCodec<Date> {\n return {\n parse(input, context) {\n return parseCustomDate(input, format, { code: context.errorCode, path: context.path });\n },\n\n normalize(input, context) {\n return validateDate(input, context);\n },\n\n serialize(input, context) {\n return serializeCustomDate(input, format, { code: context.errorCode, path: context.path });\n },\n };\n}\n\nfunction resolveDateFormat(options: DateOptions<RuntimeDateFormat>): RuntimeDateFormat {\n if (!isDateOptions(options)) {\n throw new UrlKitError('invalid-descriptor', 'Date options must be an object.');\n }\n\n const format = options.format ?? 'date';\n\n if (isBuiltInDateFormat(format) || isDateFormatCodec(format)) {\n return format;\n }\n\n throw new UrlKitError(\n 'invalid-descriptor',\n 'Date format must be a supported built-in format or an explicit codec.',\n );\n}\n\nfunction isDateOptions(input: unknown): input is DateOptions<RuntimeDateFormat> {\n return typeof input === 'object' && input !== null && !Array.isArray(input);\n}\n\nfunction isBuiltInDateFormat(input: unknown): input is BuiltInRuntimeDateFormat {\n return (\n input === 'date' || input === 'date-time' || input === 'unix-seconds' || input === 'unix-ms'\n );\n}\n\nfunction isDateFormatCodec(input: unknown): input is DateFormatCodec {\n return (\n typeof input === 'object' &&\n input !== null &&\n typeof (input as Partial<DateFormatCodec>).parse === 'function' &&\n typeof (input as Partial<DateFormatCodec>).serialize === 'function'\n );\n}\n\nfunction validateDate(input: unknown, context: RuntimeSchemaValueContext): Date {\n if (input instanceof Date && Number.isFinite(input.getTime())) {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, 'Expected a valid Date value.', context.path);\n}\n\nfunction validateDateDefault(value: Date, context: RuntimeDefaultValidationContext): void {\n if (value instanceof Date && Number.isFinite(value.getTime())) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Date schema default must be a valid Date.', {\n path: context.path,\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaOptions,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport interface EnumSchemaOptions<Values extends readonly string[]> extends RuntimeSchemaOptions {\n readonly values: Values;\n}\n\nexport interface EnumSchema<Values extends readonly string[]> extends RuntimeSchemaBuilder<\n Values[number],\n 'enum',\n EnumSchemaOptions<Values>,\n RequiredRuntimeSchemaDescriptor<'enum', EnumSchemaOptions<Values>>\n> {}\n\nexport function enumOf<const Values extends readonly string[]>(values: Values): EnumSchema<Values> {\n const normalizedValues = normalizeEnumValues(values);\n const allowedValues = new Set<string>(normalizedValues);\n const expectedMessage = createExpectedEnumMessage(normalizedValues);\n\n const enumCodec: RuntimeSchemaCodec<Values[number]> = {\n parse(input, context) {\n return validateEnumValue(input, allowedValues, expectedMessage, context);\n },\n\n normalize(input, context) {\n return validateEnumValue(input, allowedValues, expectedMessage, context);\n },\n\n serialize(input, context) {\n return validateEnumValue(input, allowedValues, expectedMessage, context);\n },\n };\n\n return createRuntimeSchemaBuilder<Values[number], 'enum', EnumSchemaOptions<Values>>({\n kind: 'enum',\n options: {\n values: normalizedValues as unknown as Values,\n },\n codec: enumCodec,\n validateDefault(value, context) {\n validateEnumDefault(value, allowedValues, expectedMessage, context);\n },\n });\n}\n\nfunction normalizeEnumValues<Values extends readonly string[]>(values: Values): readonly string[] {\n if (!Array.isArray(values)) {\n throw new UrlKitError('invalid-descriptor', 'Enum schema values must be an array.');\n }\n\n if (!values.length) {\n throw new UrlKitError('invalid-descriptor', 'Enum schema values must not be empty.');\n }\n\n for (const value of values) {\n if (typeof value !== 'string') {\n throw new UrlKitError('invalid-descriptor', 'Enum schema values must be strings.');\n }\n }\n\n return Object.freeze([...values]);\n}\n\nfunction validateEnumValue(\n input: unknown,\n allowedValues: ReadonlySet<string>,\n message: string,\n context: RuntimeSchemaValueContext,\n): string {\n if (typeof input === 'string' && allowedValues.has(input)) {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, message, context.path);\n}\n\nfunction validateEnumDefault(\n value: string,\n allowedValues: ReadonlySet<string>,\n message: string,\n context: RuntimeDefaultValidationContext,\n): void {\n if (typeof value === 'string' && allowedValues.has(value)) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', `Enum schema default is invalid. ${message}`, {\n path: context.path,\n });\n}\n\nfunction createExpectedEnumMessage(values: readonly string[]): string {\n return `Expected one of: ${values.join(', ')}.`;\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport interface IntSchema extends RuntimeSchemaBuilder<\n number,\n 'int',\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor<'int', EmptyRuntimeSchemaOptions>\n> {}\n\nconst intCodec: RuntimeSchemaCodec<number> = {\n parse(input, context) {\n return parseFiniteInteger(input, context, 'Expected a finite integer value.');\n },\n\n normalize(input, context) {\n return validateFiniteInteger(input, context, 'Expected a finite integer value.');\n },\n\n serialize(input, context) {\n return String(validateFiniteInteger(input, context, 'Expected a finite integer value.'));\n },\n};\n\nexport function int(): IntSchema {\n return createRuntimeSchemaBuilder<number, 'int'>({\n kind: 'int',\n codec: intCodec,\n validateDefault(value, context) {\n validateIntDefault(value, context);\n },\n });\n}\n\nfunction parseFiniteInteger(\n input: string,\n context: RuntimeSchemaValueContext,\n message: string,\n): number {\n if (!input.trim()) {\n throw createSchemaValueError(context.errorCode, message, context.path);\n }\n\n return validateFiniteInteger(Number(input), context, message);\n}\n\nfunction validateFiniteInteger(\n input: unknown,\n context: RuntimeSchemaValueContext,\n message: string,\n): number {\n if (typeof input === 'number' && Number.isInteger(input)) {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, message, context.path);\n}\n\nfunction validateIntDefault(value: number, context: RuntimeDefaultValidationContext): void {\n if (typeof value === 'number' && Number.isInteger(value)) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Integer schema default must be a finite integer.', {\n path: context.path,\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport interface NumberSchema extends RuntimeSchemaBuilder<\n number,\n 'number',\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor<'number', EmptyRuntimeSchemaOptions>\n> {}\n\nconst numberCodec: RuntimeSchemaCodec<number> = {\n parse(input, context) {\n return parseFiniteNumber(input, context, 'Expected a finite number value.');\n },\n\n normalize(input, context) {\n return validateFiniteNumber(input, context, 'Expected a finite number value.');\n },\n\n serialize(input, context) {\n return String(validateFiniteNumber(input, context, 'Expected a finite number value.'));\n },\n};\n\nexport function number(): NumberSchema {\n return createRuntimeSchemaBuilder<number, 'number'>({\n kind: 'number',\n codec: numberCodec,\n validateDefault(value, context) {\n validateNumberDefault(value, context);\n },\n });\n}\n\nfunction parseFiniteNumber(\n input: string,\n context: RuntimeSchemaValueContext,\n message: string,\n): number {\n if (!input.trim()) {\n throw createSchemaValueError(context.errorCode, message, context.path);\n }\n\n return validateFiniteNumber(Number(input), context, message);\n}\n\nfunction validateFiniteNumber(\n input: unknown,\n context: RuntimeSchemaValueContext,\n message: string,\n): number {\n if (typeof input === 'number' && Number.isFinite(input)) {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, message, context.path);\n}\n\nfunction validateNumberDefault(value: number, context: RuntimeDefaultValidationContext): void {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Number schema default must be a finite number.', {\n path: context.path,\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor,\n RuntimeDefaultValidationContext,\n RuntimeSchemaBuilder,\n RuntimeSchemaCodec,\n RuntimeSchemaValueContext,\n} from './contracts.js';\nimport { createRuntimeSchemaBuilder } from './create-schema-builder.js';\nimport { createSchemaValueError } from './create-schema-value-error.js';\n\nexport interface StringSchema extends RuntimeSchemaBuilder<\n string,\n 'string',\n EmptyRuntimeSchemaOptions,\n RequiredRuntimeSchemaDescriptor<'string', EmptyRuntimeSchemaOptions>\n> {}\n\nconst stringCodec: RuntimeSchemaCodec<string> = {\n parse(input, context) {\n return validateString(input, context, 'Expected a string value.');\n },\n\n normalize(input, context) {\n return validateString(input, context, 'Expected a string value.');\n },\n\n serialize(input, context) {\n return validateString(input, context, 'Expected a string value.');\n },\n};\n\nexport function string(): StringSchema {\n return createRuntimeSchemaBuilder<string, 'string'>({\n kind: 'string',\n codec: stringCodec,\n validateDefault(value, context) {\n validateStringDefault(value, context);\n },\n });\n}\n\nfunction validateString(\n input: unknown,\n context: RuntimeSchemaValueContext,\n message: string,\n): string {\n if (typeof input === 'string') {\n return input;\n }\n\n throw createSchemaValueError(context.errorCode, message, context.path);\n}\n\nfunction validateStringDefault(value: string, context: RuntimeDefaultValidationContext): void {\n if (typeof value === 'string') {\n return;\n }\n\n throw new UrlKitError('invalid-descriptor', 'String schema default must be a string.', {\n path: context.path,\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type {\n StaticEnumHashDescriptor,\n StaticHashDescriptor,\n StaticStringHashDescriptor,\n} from '../static/contracts.js';\nimport type { NormalizedHashDescriptor } from './contracts.js';\n\nexport function compileStaticHashDescriptor(\n descriptor: StaticHashDescriptor,\n): NormalizedHashDescriptor<string | undefined> {\n if (Array.isArray(descriptor)) {\n return Object.freeze({\n kind: 'enum',\n presence: 'optional',\n values: normalizeEnumValues(descriptor),\n });\n }\n\n if (isStaticStringHashDescriptor(descriptor)) {\n return compileStaticStringHashDescriptor(descriptor);\n }\n\n if (isStaticEnumHashDescriptor(descriptor)) {\n return compileStaticEnumHashDescriptor(descriptor);\n }\n\n throw new UrlKitError(\n 'invalid-descriptor',\n 'Hash descriptor must be a string, enum, or enum shorthand descriptor.',\n {\n path: ['hash'],\n },\n );\n}\n\nfunction compileStaticStringHashDescriptor(\n descriptor: StaticStringHashDescriptor,\n): NormalizedHashDescriptor<string | undefined> {\n assertOptionalFlag(descriptor.optional);\n\n if (\n 'default' in descriptor &&\n descriptor.default !== undefined &&\n typeof descriptor.default !== 'string'\n ) {\n throw new UrlKitError('invalid-descriptor', 'String hash default must be a string.', {\n path: ['hash'],\n });\n }\n\n if (descriptor.default !== undefined) {\n return Object.freeze({\n kind: 'string',\n presence: 'defaulted',\n defaultValue: descriptor.default,\n });\n }\n\n return Object.freeze({ kind: 'string', presence: descriptor.optional ? 'optional' : 'required' });\n}\n\nfunction compileStaticEnumHashDescriptor(\n descriptor: StaticEnumHashDescriptor,\n): NormalizedHashDescriptor<string | undefined> {\n assertOptionalFlag(descriptor.optional);\n\n const values = normalizeEnumValues(descriptor.values);\n\n if (descriptor.default !== undefined && !values.includes(descriptor.default)) {\n throw new UrlKitError(\n 'invalid-descriptor',\n 'Enum hash default must be one of the declared values.',\n { path: ['hash'] },\n );\n }\n\n if (descriptor.default !== undefined) {\n return Object.freeze({\n kind: 'enum',\n presence: 'defaulted',\n values,\n defaultValue: descriptor.default,\n });\n }\n\n return Object.freeze({\n kind: 'enum',\n presence: descriptor.optional ? 'optional' : 'required',\n values,\n });\n}\n\nfunction normalizeEnumValues(values: readonly string[]): readonly string[] {\n if (!Array.isArray(values) || !values.length) {\n throw new UrlKitError('invalid-descriptor', 'Enum hash values must be a non-empty array.', {\n path: ['hash'],\n });\n }\n\n for (const value of values) {\n if (typeof value !== 'string') {\n throw new UrlKitError('invalid-descriptor', 'Enum hash values must be strings.', {\n path: ['hash'],\n });\n }\n }\n\n return Object.freeze(values.map((value) => value));\n}\n\nfunction assertOptionalFlag(optional: unknown): void {\n if (optional !== undefined && typeof optional !== 'boolean') {\n throw new UrlKitError('invalid-descriptor', 'Hash optional flag must be a boolean.', {\n path: ['hash'],\n });\n }\n}\n\nfunction isStaticStringHashDescriptor(input: unknown): input is StaticStringHashDescriptor {\n return isRecord(input) && input.type === 'string';\n}\n\nfunction isStaticEnumHashDescriptor(input: unknown): input is StaticEnumHashDescriptor {\n return isRecord(input) && input.type === 'enum';\n}\n\nfunction isRecord(input: unknown): input is Record<string, unknown> {\n return typeof input === 'object' && input !== null && !Array.isArray(input);\n}\n","import type { RuntimeSearchField } from './contracts.js';\n\nexport function isRuntimeSearchField(input: unknown): input is RuntimeSearchField {\n return typeof input === 'object' && input !== null && 'value' in input;\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport { normalizeRuntimeSchemaValue } from '../schema/normalize-runtime-schema-value.js';\nimport type { AnyRuntimeSchemaBuilder, SearchFieldType } from './contracts.js';\n\nexport function normalizeSearchFieldDefault(\n fieldType: SearchFieldType,\n schema: AnyRuntimeSchemaBuilder,\n value: unknown,\n path: readonly string[],\n): unknown {\n if (fieldType === 'many') {\n if (!Array.isArray(value)) {\n throw new UrlKitError('invalid-descriptor', 'Many search field default must be an array.', {\n path,\n });\n }\n\n return Object.freeze(\n value.map((item) =>\n normalizeRuntimeSchemaValue(schema, item, {\n path,\n errorCode: 'invalid-descriptor',\n missingCode: 'invalid-descriptor',\n }),\n ),\n );\n }\n\n return normalizeRuntimeSchemaValue(schema, value, {\n path,\n errorCode: 'invalid-descriptor',\n missingCode: 'invalid-descriptor',\n });\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type { SearchFieldType } from './contracts.js';\n\nexport function normalizeSearchFieldType(input: unknown): SearchFieldType {\n if (input === undefined || input === 'one') {\n return 'one';\n }\n\n if (input === 'many') {\n return 'many';\n }\n\n throw new UrlKitError('invalid-descriptor', 'Search field type must be \"one\" or \"many\".');\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport { compileRuntimeSchemaValue } from '../schema/compile-runtime-schema-value.js';\nimport { getRuntimeSchemaInternals } from '../schema/get-runtime-schema-internals.js';\nimport type {\n AnyRuntimeSchemaBuilder,\n CompiledSearchField,\n CompiledSearchSchema,\n RuntimeSearchField,\n RuntimeSearchSchema,\n} from './contracts.js';\nimport { isRuntimeSearchField } from './is-runtime-search-field.js';\nimport { normalizeSearchFieldDefault } from './normalize-search-field-default.js';\nimport { normalizeSearchFieldType } from './normalize-search-field-type.js';\n\nexport function compileSearchSchema(schema: RuntimeSearchSchema): CompiledSearchSchema {\n if (!isSearchSchema(schema)) {\n throw new UrlKitError('invalid-descriptor', 'Search schema must be an object.');\n }\n\n const fields = Object.freeze(\n Object.entries(schema).map(([key, field]) => compileSearchField(key, field)),\n );\n const keys = new Set(fields.map((field) => field.key));\n\n return Object.freeze({ fields, keys });\n}\n\nfunction compileSearchField(key: string, field: RuntimeSearchSchema[string]): CompiledSearchField {\n if (isRuntimeSearchField(field)) {\n return compileSearchFieldObject(key, field);\n }\n\n return compileSearchRuntimeSchemaField(key, field);\n}\n\nfunction compileSearchRuntimeSchemaField(\n key: string,\n schema: AnyRuntimeSchemaBuilder,\n): CompiledSearchField {\n const compiledSchema = compileRuntimeSchemaValue(schema, { path: [key] });\n const descriptor = compiledSchema.descriptor;\n\n return Object.freeze({\n key,\n type: 'one',\n schema,\n compiledSchema,\n presence: descriptor.presence,\n ...(descriptor.presence === 'defaulted' ? { defaultValue: descriptor.defaultValue } : {}),\n });\n}\n\nfunction compileSearchFieldObject(key: string, field: RuntimeSearchField): CompiledSearchField {\n const path = [key];\n const fieldType = normalizeSearchFieldType(field.type);\n\n getRuntimeSchemaInternals(field.value);\n const compiledSchema = compileRuntimeSchemaValue(field.value, { path });\n const descriptor = compiledSchema.descriptor;\n const hasDefault = Object.prototype.hasOwnProperty.call(field, 'default');\n const presence = hasDefault\n ? 'defaulted'\n : field.optional\n ? 'optional'\n : fieldType === 'many'\n ? 'required'\n : descriptor.presence;\n const defaultValue = hasDefault\n ? normalizeSearchFieldDefault(fieldType, field.value, field.default, path)\n : descriptor.presence === 'defaulted' && fieldType === 'one'\n ? descriptor.defaultValue\n : undefined;\n\n return Object.freeze({\n key,\n type: fieldType,\n schema: field.value,\n compiledSchema,\n presence,\n ...(presence === 'defaulted' ? { defaultValue } : {}),\n });\n}\n\nfunction isSearchSchema(input: unknown): input is RuntimeSearchSchema {\n return typeof input === 'object' && input !== null && !Array.isArray(input);\n}\n","import { getConstraint } from '@cookbook/pathkit/constraints';\nimport { UrlKitError } from '../errors/url-kit-error.js';\nimport type { ParsedPathSegment } from './path-segment.js';\n\nexport function assertPathMatchFailure(\n pattern: string,\n pathname: string,\n segments: readonly ParsedPathSegment[],\n): never {\n const pathnameSegments = splitPath(pathname);\n\n if (pathnameSegments.length !== segments.length) {\n throwPathMismatch(pattern, pathname);\n }\n\n for (let index = 0; index < segments.length; index += 1) {\n const segment = segments[index];\n const pathnameSegment = pathnameSegments[index];\n\n if (!segment || pathnameSegment === undefined) {\n console.log('ERROR', segment);\n throwPathMismatch(pattern, pathname);\n }\n\n if (segment.kind === 'literal') {\n if (segment.value !== pathnameSegment) {\n throwPathMismatch(pattern, pathname);\n }\n\n continue;\n }\n\n if (!isValidPathParamSegment(segment, pathnameSegment)) {\n throw new UrlKitError('invalid-param', `Path parameter \"${segment.name}\" is invalid.`, {\n path: ['params', segment.name],\n });\n }\n }\n\n throwPathMismatch(pattern, pathname);\n}\n\nfunction splitPath(pathname: string): readonly string[] {\n if (!pathname) {\n return Object.freeze([]);\n }\n\n const normalized = pathname.startsWith('/') ? pathname.slice(1) : pathname;\n\n if (!normalized) {\n return Object.freeze([]);\n }\n\n return Object.freeze(normalized.split('/'));\n}\n\nfunction isValidPathParamSegment(\n segment: Extract<ParsedPathSegment, { readonly kind: 'param' }>,\n value: string,\n): boolean {\n if (!value || !segment.constraint) {\n return false;\n }\n\n const constraint = getConstraint(segment.constraint);\n\n if (!constraint) {\n return false;\n }\n\n try {\n constraint(segment.name, value, segment.constraintParams ?? '');\n console.log(constraint, segment, value);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction throwPathMismatch(pattern: string, pathname: string): never {\n throw new UrlKitError(\n 'path-mismatch',\n `Pathname \"${pathname}\" does not match pattern \"${pattern}\".`,\n {\n path: ['pathname'],\n },\n );\n}\n","import type { ParsedPathParamSegment } from './path-segment.js';\n\nexport type PathParamKind = 'string' | 'int' | 'number' | 'regex';\n\nexport function getPathParamKind(segment: ParsedPathParamSegment): PathParamKind {\n switch (segment.constraint) {\n case 'int':\n return 'int';\n case 'decimal':\n case 'range':\n return 'number';\n case 'regex':\n return 'regex';\n default:\n return 'string';\n }\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport { getPathParamKind } from './path-param-kind.js';\nimport type { ParsedPathParamSegment } from './path-segment.js';\n\nexport function coercePathParam(\n segment: ParsedPathParamSegment,\n value: string,\n paramsMode: 'raw' | 'parsed',\n): string | number {\n if (paramsMode === 'raw') {\n return value;\n }\n\n const kind = getPathParamKind(segment);\n\n if (kind === 'int') {\n const parsed = Number(value);\n\n if (!Number.isInteger(parsed)) {\n throw new UrlKitError(\n 'invalid-param',\n `Path parameter \"${segment.name}\" must be an integer.`,\n {\n path: ['params', segment.name],\n },\n );\n }\n\n return parsed;\n }\n\n if (kind === 'number') {\n const parsed = Number(value);\n\n if (!Number.isFinite(parsed)) {\n throw new UrlKitError(\n 'invalid-param',\n `Path parameter \"${segment.name}\" must be a finite number.`,\n {\n path: ['params', segment.name],\n },\n );\n }\n\n return parsed;\n }\n\n return value;\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\n\nexport function normalizePathBuildParams(\n params: unknown,\n): Record<string, string | number | boolean> {\n if (params === undefined) {\n return {};\n }\n\n if (!isRecord(params)) {\n throw new UrlKitError('invalid-param', 'Path params must be an object.', { path: ['params'] });\n }\n\n const normalized: Record<string, string | number | boolean> = {};\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) {\n throw new UrlKitError('missing-param', `Path parameter \"${key}\" is required.`, {\n path: ['params', key],\n });\n }\n\n if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {\n throw new UrlKitError(\n 'invalid-param',\n `Path parameter \"${key}\" must be a string, number, or boolean.`,\n {\n path: ['params', key],\n },\n );\n }\n\n normalized[key] = value;\n }\n\n return normalized;\n}\n\nfunction isRecord(input: unknown): input is Record<string, unknown> {\n return typeof input === 'object' && input !== null && !Array.isArray(input);\n}\n","import { UrlKitError } from '../errors/url-kit-error.js';\nimport type { ParsedPathSegment } from './path-segment.js';\n\nexport function parsePathPattern(pattern: string): readonly ParsedPathSegment[] {\n if (pattern === '') {\n return Object.freeze([]);\n }\n\n const normalized = pattern.startsWith('/') ? pattern.slice(1) : pattern;\n\n if (normalized === '') {\n return Object.freeze([]);\n }\n\n return Object.freeze(\n normalized.split('/').map((segment, index) => parsePathSegment(segment, index)),\n );\n}\n\nfunction parsePathSegment(segment: string, index: number): ParsedPathSegment {\n if (!segment.startsWith('{') || !segment.endsWith('}')) {\n return Object.freeze({ kind: 'literal', value: segment });\n }\n\n const token = segment.slice(1, -1);\n const parsed = parseParamToken(token);\n\n if (!parsed.name) {\n throw new UrlKitError('invalid-descriptor', 'Path parameter name is required.', {\n path: ['path', String(index)],\n });\n }\n\n return Object.freeze({ kind: 'param', ...parsed });\n}\n\nfunction parseParamToken(token: string): {\n readonly name: string;\n readonly constraint?: string;\n readonly constraintParams?: string;\n} {\n const colonIndex = token.indexOf(':');\n\n if (colonIndex === -1) {\n return { name: token };\n }\n\n const name = token.slice(0, colonIndex);\n const constraintToken = token.slice(colonIndex + 1);\n const paramsStart = constraintToken.indexOf('(');\n\n if (paramsStart === -1 || !constraintToken.endsWith(')')) {\n return { name, constraint: constraintToken };\n }\n\n return {\n name,\n constraint: constraintToken.slice(0, paramsStart),\n constraintParams: constraintToken.slice(paramsStart + 1, -1),\n };\n}\n","import { createConstraint, hasConstraint, registerConstraint } from '@cookbook/pathkit/constraints';\nimport { UrlKitError } from '../errors/url-kit-error.js';\n\nconst numberConstraint = createConstraint({\n parse(paramName, value, params) {\n numberConstraint.verify(paramName, params);\n\n const serialized = String(value);\n\n if (!isFinitePathNumber(serialized)) {\n throw new UrlKitError(\n 'invalid-param',\n `Path parameter \"${paramName}\" must be a finite number.`,\n {\n path: ['params', paramName],\n },\n );\n }\n },\n verify(paramName, params) {\n if (params.trim()) {\n throw new UrlKitError(\n 'invalid-descriptor',\n `Constraint 'number' declared for '${paramName}' parameter does not accept arguments.`,\n { path: ['path', paramName] },\n );\n }\n },\n toRegExp() {\n return '-?(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)';\n },\n});\n\nexport function registerUrlKitPathConstraints(): void {\n if (!hasConstraint('number')) {\n registerConstraint('number', numberConstraint);\n }\n}\n\nfunction isFinitePathNumber(value: string): boolean {\n if (!/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/.test(value)) {\n return false;\n }\n\n return Number.isFinite(Number(value));\n}\n","import compile from '@cookbook/pathkit/compile';\nimport match from '@cookbook/pathkit/match';\nimport type { MatchedParam } from '@cookbook/pathkit';\nimport { UrlKitError } from '../errors/url-kit-error.js';\nimport { assertPathMatchFailure } from './assert-path-match-failure.js';\nimport { coercePathParam } from './coerce-path-param.js';\nimport { normalizePathBuildParams } from './normalize-path-build-params.js';\nimport { parsePathPattern } from './parse-path-pattern.js';\nimport { registerPathConstraints } from './path-constraints.js';\nimport { registerUrlKitPathConstraints } from './register-urlkit-path-constraints.js';\nimport type { CompiledPath, CompilePathOptions } from './contracts.js';\n\nexport function compilePath<Pattern extends string>(\n pattern: Pattern,\n options: CompilePathOptions = {},\n): CompiledPath<Pattern> {\n registerUrlKitPathConstraints();\n\n if (options.pathConstraints) {\n registerPathConstraints(options.pathConstraints);\n }\n\n const paramsMode = options.params ?? 'parsed';\n const { segments, matcher, builder } = compilePathPattern(pattern);\n\n return Object.freeze({\n pattern,\n parsePathname(pathname: string) {\n const result = matcher(pathname);\n\n if (!result.match || !result.params) {\n assertPathMatchFailure(pattern, pathname, segments);\n }\n\n return Object.freeze(coercePathParams(result.params, segments, paramsMode)) as never;\n },\n buildPath(params?: unknown) {\n try {\n return builder(normalizePathBuildParams(params));\n } catch (error) {\n throw mapBuildPathError(error);\n }\n },\n });\n}\n\nfunction coercePathParams(\n matchedParams: MatchedParam,\n segments: ReturnType<typeof parsePathPattern>,\n paramsMode: 'raw' | 'parsed',\n): Record<string, string | number> {\n const params: Record<string, string | number> = {};\n\n for (const segment of segments) {\n if (segment.kind !== 'param') {\n continue;\n }\n\n const value = matchedParams[segment.name];\n\n if (typeof value !== 'string') {\n continue;\n }\n\n params[segment.name] = coercePathParam(segment, value, paramsMode);\n }\n\n return params;\n}\n\nfunction mapBuildPathError(error: unknown): UrlKitError {\n if (error instanceof UrlKitError) {\n return error;\n }\n\n const message = error instanceof Error ? error.message : 'Failed to build pathname.';\n const missingParamMatch = /Missing required parameter: ([^\\s]+)/.exec(message);\n\n if (missingParamMatch?.[1]) {\n return new UrlKitError(\n 'missing-param',\n `Path parameter \"${missingParamMatch[1]}\" is required.`,\n {\n path: ['params', missingParamMatch[1]],\n cause: error,\n },\n );\n }\n\n return new UrlKitError('invalid-param', message, {\n path: ['params'],\n cause: error,\n });\n}\n\nfunction compilePathPattern<Pattern extends string>(\n pattern: Pattern,\n): {\n readonly segments: ReturnType<typeof parsePathPattern>;\n readonly matcher: ReturnType<typeof match>;\n readonly builder: ReturnType<typeof compile>;\n} {\n try {\n return Object.freeze({\n segments: parsePathPattern(pattern),\n matcher: match(pattern),\n builder: compile(pattern),\n });\n } catch (error) {\n if (error instanceof UrlKitError) {\n throw error;\n }\n\n throw new UrlKitError('invalid-descriptor', 'Path pattern is invalid.', {\n path: ['path'],\n cause: error,\n });\n }\n}\n"],"names":["isRecord","createInvalidCustomDateError","createInvalidDateTimeError","unixIntegerPattern","parseUnixInteger","createInvalidUnixMsError","createInvalidUnixSecondsError","normalizeEnumValues"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function registerUrlKitPathConstraints(): void;