@vielzeug/spell 26.11.4 → 26.11.6

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,2 +1,2 @@
1
- import{prependIssuePath as e}from"../errors.js";import{defineOwnProperty as t,isUnsafeObjectKey as n}from"../safe-object.js";import{ErrorCode as r}from"../types.js";import{Schema as i}from"../core.js";var a=class extends i{keySchema;valueSchema;get _kind(){return`record`}constructor(e,t){super(),this.keySchema=e,this.valueSchema=t}_guardRecordInput(e,t){return typeof e!=`object`||!e||Array.isArray(e)?{issues:[{code:r.invalid_type,message:t.messages.object.type(),path:[]}],ok:!1}:{ok:!0,value:e}}_parseRecordEntries(r,i){let a=[],o={};for(let s of Object.keys(r)){let c=this.keySchema._parseFullSync(s,i);if(c.issues.length>0){a.push(...e(c.issues,s));continue}let l=c.data;if(n(l))continue;let u=this.valueSchema._parseFullSync(r[s],i);u.issues.length===0?t(o,l,u.data):a.push(...e(u.issues,s))}return{issues:a,output:o}}_parse(e,t){let n=this._guardRecordInput(e,t);if(!n.ok)return{data:e,issues:n.issues,typeOk:!1};let{issues:r,output:i}=this._parseRecordEntries(n.value,t);return{data:i,issues:r,typeOk:!0}}async _parseAsync(r,i){let a=this._guardRecordInput(r,i);if(!a.ok)return{data:r,issues:a.issues,typeOk:!1};let o=a.value,s=Object.keys(o),c=await Promise.all(s.map(e=>Promise.all([this.keySchema._parseFullAsync(e,i),this.valueSchema._parseFullAsync(o[e],i)]))),l=[],u={};for(let r=0;r<s.length;r++){let i=s[r],[a,o]=c[r];if(a.issues.length>0){l.push(...e(a.issues,i));continue}let d=a.data;n(d)||(o.issues.length===0?t(u,d,o.data):l.push(...e(o.issues,i)))}return{data:u,issues:l,typeOk:!0}}_toDescriptorImpl(){return{...this._describeBase(),key:this.keySchema.definition(),kind:`record`,value:this.valueSchema.definition()}}};export{a as RecordSchema};
1
+ import{prependIssuePath as e}from"../errors.js";import{Schema as t}from"../core.js";import{ErrorCode as n}from"../types.js";import{defineOwnProperty as r,isUnsafeObjectKey as i}from"../safe-object.js";var a=class extends t{keySchema;valueSchema;get _kind(){return`record`}constructor(e,t){super(),this.keySchema=e,this.valueSchema=t}_guardRecordInput(e,t){return typeof e!=`object`||!e||Array.isArray(e)?{issues:[{code:n.invalid_type,message:t.messages.object.type(),path:[]}],ok:!1}:{ok:!0,value:e}}_parseRecordEntries(t,n){let a=[],o={};for(let s of Object.keys(t)){let c=this.keySchema._parseFullSync(s,n);if(c.issues.length>0){a.push(...e(c.issues,s));continue}let l=c.data;if(i(l))continue;let u=this.valueSchema._parseFullSync(t[s],n);u.issues.length===0?r(o,l,u.data):a.push(...e(u.issues,s))}return{issues:a,output:o}}_parse(e,t){let n=this._guardRecordInput(e,t);if(!n.ok)return{data:e,issues:n.issues,typeOk:!1};let{issues:r,output:i}=this._parseRecordEntries(n.value,t);return{data:i,issues:r,typeOk:!0}}async _parseAsync(t,n){let a=this._guardRecordInput(t,n);if(!a.ok)return{data:t,issues:a.issues,typeOk:!1};let o=a.value,s=Object.keys(o),c=await Promise.all(s.map(e=>Promise.all([this.keySchema._parseFullAsync(e,n),this.valueSchema._parseFullAsync(o[e],n)]))),l=[],u={};for(let t=0;t<s.length;t++){let n=s[t],[a,o]=c[t];if(a.issues.length>0){l.push(...e(a.issues,n));continue}let d=a.data;i(d)||(o.issues.length===0?r(u,d,o.data):l.push(...e(o.issues,n)))}return{data:u,issues:l,typeOk:!0}}_toDescriptorImpl(){return{...this._describeBase(),key:this.keySchema.definition(),kind:`record`,value:this.valueSchema.definition()}}};export{a as RecordSchema};
2
2
  //# sourceMappingURL=record.js.map
@@ -1,2 +1,2 @@
1
- const e=require("../errors.cjs"),t=require("../safe-object.cjs"),n=require("../types.cjs"),r=require("../core.cjs"),i=require("./literal.cjs");var a=class extends r.Schema{_map;_discriminator;get _kind(){return`variant`}constructor(t,n){let r=new Map;for(let[a,o]of Object.entries(n)){let n=new i.LiteralSchema(a),s=o.shape[t];if(s&&(!(s instanceof i.LiteralSchema)||s.value!==a))throw new e.SpellError(`s.discriminatedUnion(): branch "${a}" defines a conflicting discriminator schema for "${t}".`);let c={[t]:n};r.set(a,s?o:o.extend(c))}super(),this._discriminator=t,this._map=r}get discriminator(){return this._discriminator}get variantMap(){return new Map(this._map)}_resolveVariant(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{issues:[{code:n.ErrorCode.invalid_type,message:t.messages.variant.type(),path:[]}]};let r=e,i=r[this._discriminator],a=this._map.get(i);if(!a){let e=[...this._map.keys()];return{issues:[{code:n.ErrorCode.invalid_variant,message:t.messages.variant.invalidDiscriminator({discriminator:this._discriminator,expected:e}),params:{discriminator:this._discriminator,expected:e},path:[]}]}}return{matched:a,obj:r}}_parse(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=n.matched._parseFullSync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}async _parseAsync(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=await n.matched._parseFullAsync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}_toDescriptorImpl(){let e={};for(let[n,r]of this._map.entries())t.defineOwnProperty(e,n,r.definition());return{...this._describeBase(),branches:e,discriminator:this._discriminator,kind:`variant`}}};exports.VariantSchema=a;
1
+ const e=require("../core.cjs"),t=require("../errors.cjs"),n=require("../types.cjs"),r=require("../safe-object.cjs"),i=require("./literal.cjs");var a=class extends e.Schema{_map;_discriminator;get _kind(){return`variant`}constructor(e,n){let r=new Map;for(let[a,o]of Object.entries(n)){let n=new i.LiteralSchema(a),s=o.shape[e];if(s&&(!(s instanceof i.LiteralSchema)||s.value!==a))throw new t.SpellError(`s.discriminatedUnion(): branch "${a}" defines a conflicting discriminator schema for "${e}".`);let c={[e]:n};r.set(a,s?o:o.extend(c))}super(),this._discriminator=e,this._map=r}get discriminator(){return this._discriminator}get variantMap(){return new Map(this._map)}_resolveVariant(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{issues:[{code:n.ErrorCode.invalid_type,message:t.messages.variant.type(),path:[]}]};let r=e,i=r[this._discriminator],a=this._map.get(i);if(!a){let e=[...this._map.keys()];return{issues:[{code:n.ErrorCode.invalid_variant,message:t.messages.variant.invalidDiscriminator({discriminator:this._discriminator,expected:e}),params:{discriminator:this._discriminator,expected:e},path:[]}]}}return{matched:a,obj:r}}_parse(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=n.matched._parseFullSync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}async _parseAsync(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=await n.matched._parseFullAsync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}_toDescriptorImpl(){let e={};for(let[t,n]of this._map.entries())r.defineOwnProperty(e,t,n.definition());return{...this._describeBase(),branches:e,discriminator:this._discriminator,kind:`variant`}}};exports.VariantSchema=a;
2
2
  //# sourceMappingURL=variant.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"variant.cjs","names":["Schema","LiteralSchema","SpellError","ErrorCode","require_errors","require_safe_object","require_types","require_core","require_literal","VariantSchema","map","tag","schema","variantMap","discriminatorSchema","existingDiscriminator","discriminator","discriminatorShape","value","ctx","obj","discValue","matched","expected","resolved","result","branches","key"],"sources":["../../src/schemas/variant.ts"],"sourcesContent":["import type { AnySchema, Issue, ParseContext, ParseValue, SchemaDescriptor } from '../core';\n\nimport { ErrorCode, Schema } from '../core';\nimport { SpellError } from '../errors';\nimport { defineOwnProperty } from '../safe-object';\nimport { LiteralSchema } from './literal';\nimport type { InferObject, InferObjectInput, ObjectSchema, ObjectShape } from './object';\n\ntype VariantMap = Record<string, ObjectSchema<any>>;\ntype Simplify<T> = { [P in keyof T]: T[P] };\ntype InferVariantMap<K extends string, M extends VariantMap> = {\n [Tag in keyof M & string]: M[Tag] extends { shape: infer S extends ObjectShape }\n ? InferObject<S> & { [P in K]: Tag }\n : never;\n}[keyof M & string];\ntype InferVariantInputMap<K extends string, M extends VariantMap> = {\n [Tag in keyof M & string]: M[Tag] extends { shape: infer S extends ObjectShape }\n ? Simplify<InferObjectInput<S> & { [P in K]: Tag }>\n : never;\n}[keyof M & string];\n\nexport class VariantSchema<K extends string, M extends VariantMap> extends Schema<\n InferVariantMap<K, M>,\n InferVariantInputMap<K, M>\n> {\n private readonly _map: Map<string, VariantMap[string]>;\n private readonly _discriminator: K;\n\n protected override get _kind(): string {\n return 'variant';\n }\n\n constructor(discriminator: K, variantMap: M) {\n const map = new Map<string, VariantMap[string]>();\n\n for (const [tag, schema] of Object.entries(variantMap)) {\n const discriminatorSchema = new LiteralSchema(tag);\n const existingDiscriminator = schema.shape[discriminator];\n\n if (\n existingDiscriminator &&\n (!(existingDiscriminator instanceof LiteralSchema) || existingDiscriminator.value !== tag)\n ) {\n throw new SpellError(\n `s.discriminatedUnion(): branch \"${tag}\" defines a conflicting discriminator schema for \"${discriminator}\".`,\n );\n }\n\n const discriminatorShape = {\n [discriminator]: discriminatorSchema,\n } as unknown as Record<K, AnySchema>;\n\n map.set(tag, existingDiscriminator ? schema : schema.extend(discriminatorShape));\n }\n\n super();\n this._discriminator = discriminator;\n this._map = map;\n }\n\n /** The discriminator field key used to select the matching variant. */\n get discriminator(): K {\n return this._discriminator;\n }\n\n /** Map from discriminator tag value to the extended ObjectSchema for that variant. */\n get variantMap(): ReadonlyMap<string, VariantMap[string]> {\n return new Map(this._map);\n }\n\n private _resolveVariant(\n value: unknown,\n ctx: ParseContext,\n ): { matched: VariantMap[string]; obj: Record<string, unknown> } | { issues: Issue[] } {\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n return {\n issues: [{ code: ErrorCode.invalid_type, message: ctx.messages.variant.type(), path: [] }],\n };\n }\n\n const obj = value as Record<string, unknown>;\n const discValue = obj[this._discriminator] as string;\n const matched = this._map.get(discValue);\n\n if (!matched) {\n const expected = [...this._map.keys()];\n\n return {\n issues: [\n {\n code: ErrorCode.invalid_variant,\n message: ctx.messages.variant.invalidDiscriminator({\n discriminator: this._discriminator,\n expected,\n }),\n params: { discriminator: this._discriminator, expected },\n path: [],\n },\n ],\n };\n }\n\n return { matched, obj };\n }\n\n protected override _parse(value: unknown, ctx: ParseContext): ParseValue {\n const resolved = this._resolveVariant(value, ctx);\n\n if ('issues' in resolved) return { data: value, issues: resolved.issues, typeOk: false };\n\n const result = resolved.matched._parseFullSync(value, ctx);\n\n return result.issues.length === 0\n ? { data: result.data, issues: [], typeOk: true }\n : { data: value, issues: result.issues, typeOk: true };\n }\n\n protected override async _parseAsync(value: unknown, ctx: ParseContext): Promise<ParseValue> {\n const resolved = this._resolveVariant(value, ctx);\n\n if ('issues' in resolved) return { data: value, issues: resolved.issues, typeOk: false };\n\n const result = await resolved.matched._parseFullAsync(value, ctx);\n\n return result.issues.length === 0\n ? { data: result.data, issues: [], typeOk: true }\n : { data: value, issues: result.issues, typeOk: true };\n }\n\n protected override _toDescriptorImpl(): SchemaDescriptor {\n const branches: Record<string, SchemaDescriptor> = {};\n\n for (const [key, schema] of this._map.entries()) {\n defineOwnProperty(branches, key, schema.definition());\n }\n\n return { ...this._describeBase(), branches, discriminator: this._discriminator, kind: 'variant' };\n }\n}\n"],"mappings":"A,+IAqBA,IAAaS,EAAb,cAA2ET,EAAAA,MAGzE,CACA,KACA,eAEA,IAAuB,OAAgB,CACrC,MAAO,SACT,CAEA,YAAY,EAAkB,EAAe,CAC3C,IAAMU,EAAM,IAAI,IAEhB,IAAK,GAAM,CAACC,EAAKC,KAAW,OAAO,QAAQC,CAAU,EAAG,CACtD,IAAMC,EAAsB,IAAIb,EAAAA,cAAcU,CAAG,EAC3CI,EAAwBH,EAAO,MAAMI,GAE3C,GACED,IACC,EAAEA,aAAiCd,EAAAA,gBAAkBc,EAAsB,QAAUJ,GAEtF,MAAM,IAAIT,EAAAA,WACR,mCAAmCS,EAAI,oDAAoDK,EAAc,GAC3G,EAGF,IAAMC,EAAqB,EACxBD,GAAgBF,CACnB,EAEAJ,EAAI,IAAIC,EAAKI,EAAwBH,EAASA,EAAO,OAAOK,CAAkB,CAAC,CACjF,CAEA,MAAM,EACN,KAAK,eAAiBD,EACtB,KAAK,KAAON,CACd,CAGA,IAAI,eAAmB,CACrB,OAAO,KAAK,cACd,CAGA,IAAI,YAAsD,CACxD,OAAO,IAAI,IAAI,KAAK,IAAI,CAC1B,CAEA,gBACE,EACA,EACqF,CACrF,GAAqB,OAAOQ,GAAU,WAAlCA,GAA8C,MAAM,QAAQA,CAAK,EACnE,MAAO,CACL,OAAQ,CAAC,CAAE,KAAMf,EAAAA,UAAU,aAAc,QAASgB,EAAI,SAAS,QAAQ,KAAK,EAAG,KAAM,CAAC,CAAE,CAAC,CAC3F,EAGF,IAAMC,EAAMF,EACNG,EAAYD,EAAI,KAAK,gBACrBE,EAAU,KAAK,KAAK,IAAID,CAAS,EAEvC,GAAI,CAACC,EAAS,CACZ,IAAMC,EAAW,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,EAErC,MAAO,CACL,OAAQ,CACN,CACE,KAAMpB,EAAAA,UAAU,gBAChB,QAASgB,EAAI,SAAS,QAAQ,qBAAqB,CACjD,cAAe,KAAK,eACpB,UACF,CAAC,EACD,OAAQ,CAAE,cAAe,KAAK,eAAgB,UAAS,EACvD,KAAM,CAAC,CACT,CACF,CACF,CACF,CAEA,MAAO,CAAE,UAAS,KAAI,CACxB,CAEA,OAA0B,EAAgB,EAA+B,CACvE,IAAMK,EAAW,KAAK,gBAAgBN,EAAOC,CAAG,EAEhD,GAAI,WAAYK,EAAU,MAAO,CAAE,KAAMN,EAAO,OAAQM,EAAS,OAAQ,OAAQ,EAAM,EAEvF,IAAMC,EAASD,EAAS,QAAQ,eAAeN,EAAOC,CAAG,EAEzD,OAAOM,EAAO,OAAO,SAAW,EAC5B,CAAE,KAAMA,EAAO,KAAM,OAAQ,CAAC,EAAG,OAAQ,EAAK,EAC9C,CAAE,KAAMP,EAAO,OAAQO,EAAO,OAAQ,OAAQ,EAAK,CACzD,CAEA,MAAyB,YAAY,EAAgB,EAAwC,CAC3F,IAAMD,EAAW,KAAK,gBAAgBN,EAAOC,CAAG,EAEhD,GAAI,WAAYK,EAAU,MAAO,CAAE,KAAMN,EAAO,OAAQM,EAAS,OAAQ,OAAQ,EAAM,EAEvF,IAAMC,EAAS,MAAMD,EAAS,QAAQ,gBAAgBN,EAAOC,CAAG,EAEhE,OAAOM,EAAO,OAAO,SAAW,EAC5B,CAAE,KAAMA,EAAO,KAAM,OAAQ,CAAC,EAAG,OAAQ,EAAK,EAC9C,CAAE,KAAMP,EAAO,OAAQO,EAAO,OAAQ,OAAQ,EAAK,CACzD,CAEA,mBAAyD,CACvD,IAAMC,EAA6C,CAAC,EAEpD,IAAK,GAAM,CAACC,EAAKf,KAAW,KAAK,KAAK,QAAQ,EAC5CP,EAAA,kBAAkBqB,EAAUC,EAAKf,EAAO,WAAW,CAAC,EAGtD,MAAO,CAAE,GAAG,KAAK,cAAc,EAAG,WAAU,cAAe,KAAK,eAAgB,KAAM,SAAU,CAClG,CACF,E"}
1
+ {"version":3,"file":"variant.cjs","names":["Schema","LiteralSchema","SpellError","ErrorCode","require_core","require_errors","require_types","require_safe_object","require_literal","VariantSchema","map","tag","schema","variantMap","discriminatorSchema","existingDiscriminator","discriminator","discriminatorShape","value","ctx","obj","discValue","matched","expected","resolved","result","branches","key"],"sources":["../../src/schemas/variant.ts"],"sourcesContent":["import type { AnySchema, Issue, ParseContext, ParseValue, SchemaDescriptor } from '../core';\n\nimport { ErrorCode, Schema } from '../core';\nimport { SpellError } from '../errors';\nimport { defineOwnProperty } from '../safe-object';\nimport { LiteralSchema } from './literal';\nimport type { InferObject, InferObjectInput, ObjectSchema, ObjectShape } from './object';\n\ntype VariantMap = Record<string, ObjectSchema<any>>;\ntype Simplify<T> = { [P in keyof T]: T[P] };\ntype InferVariantMap<K extends string, M extends VariantMap> = {\n [Tag in keyof M & string]: M[Tag] extends { shape: infer S extends ObjectShape }\n ? InferObject<S> & { [P in K]: Tag }\n : never;\n}[keyof M & string];\ntype InferVariantInputMap<K extends string, M extends VariantMap> = {\n [Tag in keyof M & string]: M[Tag] extends { shape: infer S extends ObjectShape }\n ? Simplify<InferObjectInput<S> & { [P in K]: Tag }>\n : never;\n}[keyof M & string];\n\nexport class VariantSchema<K extends string, M extends VariantMap> extends Schema<\n InferVariantMap<K, M>,\n InferVariantInputMap<K, M>\n> {\n private readonly _map: Map<string, VariantMap[string]>;\n private readonly _discriminator: K;\n\n protected override get _kind(): string {\n return 'variant';\n }\n\n constructor(discriminator: K, variantMap: M) {\n const map = new Map<string, VariantMap[string]>();\n\n for (const [tag, schema] of Object.entries(variantMap)) {\n const discriminatorSchema = new LiteralSchema(tag);\n const existingDiscriminator = schema.shape[discriminator];\n\n if (\n existingDiscriminator &&\n (!(existingDiscriminator instanceof LiteralSchema) || existingDiscriminator.value !== tag)\n ) {\n throw new SpellError(\n `s.discriminatedUnion(): branch \"${tag}\" defines a conflicting discriminator schema for \"${discriminator}\".`,\n );\n }\n\n const discriminatorShape = {\n [discriminator]: discriminatorSchema,\n } as unknown as Record<K, AnySchema>;\n\n map.set(tag, existingDiscriminator ? schema : schema.extend(discriminatorShape));\n }\n\n super();\n this._discriminator = discriminator;\n this._map = map;\n }\n\n /** The discriminator field key used to select the matching variant. */\n get discriminator(): K {\n return this._discriminator;\n }\n\n /** Map from discriminator tag value to the extended ObjectSchema for that variant. */\n get variantMap(): ReadonlyMap<string, VariantMap[string]> {\n return new Map(this._map);\n }\n\n private _resolveVariant(\n value: unknown,\n ctx: ParseContext,\n ): { matched: VariantMap[string]; obj: Record<string, unknown> } | { issues: Issue[] } {\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n return {\n issues: [{ code: ErrorCode.invalid_type, message: ctx.messages.variant.type(), path: [] }],\n };\n }\n\n const obj = value as Record<string, unknown>;\n const discValue = obj[this._discriminator] as string;\n const matched = this._map.get(discValue);\n\n if (!matched) {\n const expected = [...this._map.keys()];\n\n return {\n issues: [\n {\n code: ErrorCode.invalid_variant,\n message: ctx.messages.variant.invalidDiscriminator({\n discriminator: this._discriminator,\n expected,\n }),\n params: { discriminator: this._discriminator, expected },\n path: [],\n },\n ],\n };\n }\n\n return { matched, obj };\n }\n\n protected override _parse(value: unknown, ctx: ParseContext): ParseValue {\n const resolved = this._resolveVariant(value, ctx);\n\n if ('issues' in resolved) return { data: value, issues: resolved.issues, typeOk: false };\n\n const result = resolved.matched._parseFullSync(value, ctx);\n\n return result.issues.length === 0\n ? { data: result.data, issues: [], typeOk: true }\n : { data: value, issues: result.issues, typeOk: true };\n }\n\n protected override async _parseAsync(value: unknown, ctx: ParseContext): Promise<ParseValue> {\n const resolved = this._resolveVariant(value, ctx);\n\n if ('issues' in resolved) return { data: value, issues: resolved.issues, typeOk: false };\n\n const result = await resolved.matched._parseFullAsync(value, ctx);\n\n return result.issues.length === 0\n ? { data: result.data, issues: [], typeOk: true }\n : { data: value, issues: result.issues, typeOk: true };\n }\n\n protected override _toDescriptorImpl(): SchemaDescriptor {\n const branches: Record<string, SchemaDescriptor> = {};\n\n for (const [key, schema] of this._map.entries()) {\n defineOwnProperty(branches, key, schema.definition());\n }\n\n return { ...this._describeBase(), branches, discriminator: this._discriminator, kind: 'variant' };\n }\n}\n"],"mappings":"A,+IAqBA,IAAaS,EAAb,cAA2ET,EAAAA,MAGzE,CACA,KACA,eAEA,IAAuB,OAAgB,CACrC,MAAO,SACT,CAEA,YAAY,EAAkB,EAAe,CAC3C,IAAMU,EAAM,IAAI,IAEhB,IAAK,GAAM,CAACC,EAAKC,KAAW,OAAO,QAAQC,CAAU,EAAG,CACtD,IAAMC,EAAsB,IAAIb,EAAAA,cAAcU,CAAG,EAC3CI,EAAwBH,EAAO,MAAMI,GAE3C,GACED,IACC,EAAEA,aAAiCd,EAAAA,gBAAkBc,EAAsB,QAAUJ,GAEtF,MAAM,IAAIT,EAAAA,WACR,mCAAmCS,EAAI,oDAAoDK,EAAc,GAC3G,EAGF,IAAMC,EAAqB,EACxBD,GAAgBF,CACnB,EAEAJ,EAAI,IAAIC,EAAKI,EAAwBH,EAASA,EAAO,OAAOK,CAAkB,CAAC,CACjF,CAEA,MAAM,EACN,KAAK,eAAiBD,EACtB,KAAK,KAAON,CACd,CAGA,IAAI,eAAmB,CACrB,OAAO,KAAK,cACd,CAGA,IAAI,YAAsD,CACxD,OAAO,IAAI,IAAI,KAAK,IAAI,CAC1B,CAEA,gBACE,EACA,EACqF,CACrF,GAAqB,OAAOQ,GAAU,WAAlCA,GAA8C,MAAM,QAAQA,CAAK,EACnE,MAAO,CACL,OAAQ,CAAC,CAAE,KAAMf,EAAAA,UAAU,aAAc,QAASgB,EAAI,SAAS,QAAQ,KAAK,EAAG,KAAM,CAAC,CAAE,CAAC,CAC3F,EAGF,IAAMC,EAAMF,EACNG,EAAYD,EAAI,KAAK,gBACrBE,EAAU,KAAK,KAAK,IAAID,CAAS,EAEvC,GAAI,CAACC,EAAS,CACZ,IAAMC,EAAW,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,EAErC,MAAO,CACL,OAAQ,CACN,CACE,KAAMpB,EAAAA,UAAU,gBAChB,QAASgB,EAAI,SAAS,QAAQ,qBAAqB,CACjD,cAAe,KAAK,eACpB,UACF,CAAC,EACD,OAAQ,CAAE,cAAe,KAAK,eAAgB,UAAS,EACvD,KAAM,CAAC,CACT,CACF,CACF,CACF,CAEA,MAAO,CAAE,UAAS,KAAI,CACxB,CAEA,OAA0B,EAAgB,EAA+B,CACvE,IAAMK,EAAW,KAAK,gBAAgBN,EAAOC,CAAG,EAEhD,GAAI,WAAYK,EAAU,MAAO,CAAE,KAAMN,EAAO,OAAQM,EAAS,OAAQ,OAAQ,EAAM,EAEvF,IAAMC,EAASD,EAAS,QAAQ,eAAeN,EAAOC,CAAG,EAEzD,OAAOM,EAAO,OAAO,SAAW,EAC5B,CAAE,KAAMA,EAAO,KAAM,OAAQ,CAAC,EAAG,OAAQ,EAAK,EAC9C,CAAE,KAAMP,EAAO,OAAQO,EAAO,OAAQ,OAAQ,EAAK,CACzD,CAEA,MAAyB,YAAY,EAAgB,EAAwC,CAC3F,IAAMD,EAAW,KAAK,gBAAgBN,EAAOC,CAAG,EAEhD,GAAI,WAAYK,EAAU,MAAO,CAAE,KAAMN,EAAO,OAAQM,EAAS,OAAQ,OAAQ,EAAM,EAEvF,IAAMC,EAAS,MAAMD,EAAS,QAAQ,gBAAgBN,EAAOC,CAAG,EAEhE,OAAOM,EAAO,OAAO,SAAW,EAC5B,CAAE,KAAMA,EAAO,KAAM,OAAQ,CAAC,EAAG,OAAQ,EAAK,EAC9C,CAAE,KAAMP,EAAO,OAAQO,EAAO,OAAQ,OAAQ,EAAK,CACzD,CAEA,mBAAyD,CACvD,IAAMC,EAA6C,CAAC,EAEpD,IAAK,GAAM,CAACC,EAAKf,KAAW,KAAK,KAAK,QAAQ,EAC5CL,EAAA,kBAAkBmB,EAAUC,EAAKf,EAAO,WAAW,CAAC,EAGtD,MAAO,CAAE,GAAG,KAAK,cAAc,EAAG,WAAU,cAAe,KAAK,eAAgB,KAAM,SAAU,CAClG,CACF,E"}
@@ -1,2 +1,2 @@
1
- import{SpellError as e}from"../errors.js";import{defineOwnProperty as t}from"../safe-object.js";import{ErrorCode as n}from"../types.js";import{Schema as r}from"../core.js";import{LiteralSchema as i}from"./literal.js";var a=class extends r{_map;_discriminator;get _kind(){return`variant`}constructor(t,n){let r=/* @__PURE__ */ new Map;for(let[a,o]of Object.entries(n)){let n=new i(a),s=o.shape[t];if(s&&(!(s instanceof i)||s.value!==a))throw new e(`s.discriminatedUnion(): branch "${a}" defines a conflicting discriminator schema for "${t}".`);let c={[t]:n};r.set(a,s?o:o.extend(c))}super(),this._discriminator=t,this._map=r}get discriminator(){return this._discriminator}get variantMap(){return new Map(this._map)}_resolveVariant(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{issues:[{code:n.invalid_type,message:t.messages.variant.type(),path:[]}]};let r=e,i=r[this._discriminator],a=this._map.get(i);if(!a){let e=[...this._map.keys()];return{issues:[{code:n.invalid_variant,message:t.messages.variant.invalidDiscriminator({discriminator:this._discriminator,expected:e}),params:{discriminator:this._discriminator,expected:e},path:[]}]}}return{matched:a,obj:r}}_parse(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=n.matched._parseFullSync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}async _parseAsync(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=await n.matched._parseFullAsync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}_toDescriptorImpl(){let e={};for(let[n,r]of this._map.entries())t(e,n,r.definition());return{...this._describeBase(),branches:e,discriminator:this._discriminator,kind:`variant`}}};export{a as VariantSchema};
1
+ import{Schema as e}from"../core.js";import{SpellError as t}from"../errors.js";import{ErrorCode as n}from"../types.js";import{defineOwnProperty as r}from"../safe-object.js";import{LiteralSchema as i}from"./literal.js";var a=class extends e{_map;_discriminator;get _kind(){return`variant`}constructor(e,n){let r=/* @__PURE__ */ new Map;for(let[a,o]of Object.entries(n)){let n=new i(a),s=o.shape[e];if(s&&(!(s instanceof i)||s.value!==a))throw new t(`s.discriminatedUnion(): branch "${a}" defines a conflicting discriminator schema for "${e}".`);let c={[e]:n};r.set(a,s?o:o.extend(c))}super(),this._discriminator=e,this._map=r}get discriminator(){return this._discriminator}get variantMap(){return new Map(this._map)}_resolveVariant(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{issues:[{code:n.invalid_type,message:t.messages.variant.type(),path:[]}]};let r=e,i=r[this._discriminator],a=this._map.get(i);if(!a){let e=[...this._map.keys()];return{issues:[{code:n.invalid_variant,message:t.messages.variant.invalidDiscriminator({discriminator:this._discriminator,expected:e}),params:{discriminator:this._discriminator,expected:e},path:[]}]}}return{matched:a,obj:r}}_parse(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=n.matched._parseFullSync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}async _parseAsync(e,t){let n=this._resolveVariant(e,t);if(`issues`in n)return{data:e,issues:n.issues,typeOk:!1};let r=await n.matched._parseFullAsync(e,t);return r.issues.length===0?{data:r.data,issues:[],typeOk:!0}:{data:e,issues:r.issues,typeOk:!0}}_toDescriptorImpl(){let e={};for(let[t,n]of this._map.entries())r(e,t,n.definition());return{...this._describeBase(),branches:e,discriminator:this._discriminator,kind:`variant`}}};export{a as VariantSchema};
2
2
  //# sourceMappingURL=variant.js.map
package/dist/spell.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { isPlainObject as e } from "@vielzeug/arsenal";
2
- //#region src/errors.ts
2
+ // src/errors.ts
3
3
  function fail(e, t, n) {
4
4
  return [{
5
5
  code: e,
@@ -88,8 +88,7 @@ function objectFromEntries(e) {
88
88
  function cloneRecord(e) {
89
89
  return objectFromEntries(Object.entries(e));
90
90
  }
91
- //#endregion
92
- //#region src/messages.ts
91
+ // src/messages.ts
93
92
  var n = {
94
93
  array: {
95
94
  length: ({ exact: e }) => `Must have exactly ${e} items`,
@@ -213,8 +212,7 @@ function mergeMessages(e, t) {
213
212
  function createParseContext(e = {}) {
214
213
  return { messages: mergeMessages(n, e) };
215
214
  }
216
- //#endregion
217
- //#region src/types.ts
215
+ // src/types.ts
218
216
  var r = {
219
217
  custom: "custom",
220
218
  invalid_base64: "invalid_base64",
@@ -237,8 +235,7 @@ var r = {
237
235
  too_big: "too_big",
238
236
  too_small: "too_small"
239
237
  };
240
- //#endregion
241
- //#region src/core.ts
238
+ // src/core.ts
242
239
  function deepFreeze(e) {
243
240
  if (typeof e != "object" || !e || Object.isFrozen(e)) return e;
244
241
  for (let t of Object.values(e)) deepFreeze(t);
@@ -918,8 +915,7 @@ var Schema = class {
918
915
  return new DateSchema().preprocess((e) => e instanceof Date ? e : typeof e == "string" || typeof e == "number" ? new Date(e) : e);
919
916
  }
920
917
  };
921
- //#endregion
922
- //#region src/schemas/enum.ts
918
+ // src/schemas/enum.ts
923
919
  function buildEnumValidator(e) {
924
920
  let t = new Set(e);
925
921
  return (n, i) => t.has(n) ? null : [{
@@ -964,8 +960,7 @@ var EnumSchema = class extends Schema {
964
960
  };
965
961
  }
966
962
  };
967
- //#endregion
968
- //#region src/schemas/intersect.ts
963
+ // src/schemas/intersect.ts
969
964
  function deepMerge(t, n) {
970
965
  if (e(t) && e(n)) {
971
966
  let e = cloneRecord(t);
@@ -1519,13 +1514,11 @@ var IntersectSchema = class extends Schema {
1519
1514
  return this._rebuildWith(objectFromEntries([...Object.entries(this.shape), ...Object.entries(e.shape)]), e._isRelaxed);
1520
1515
  }
1521
1516
  };
1522
- //#endregion
1523
- //#region src/schemas/raw-or.ts
1517
+ // src/schemas/raw-or.ts
1524
1518
  function normalizeToSchemas(e) {
1525
1519
  return e.map((e) => e instanceof Schema ? e : new LiteralSchema(e));
1526
1520
  }
1527
- //#endregion
1528
- //#region src/schemas/record.ts
1521
+ // src/schemas/record.ts
1529
1522
  var RecordSchema = class extends Schema {
1530
1523
  keySchema;
1531
1524
  valueSchema;
@@ -1699,8 +1692,7 @@ var RecordSchema = class extends Schema {
1699
1692
  };
1700
1693
  }
1701
1694
  };
1702
- //#endregion
1703
- //#region src/formats.ts
1695
+ // src/formats.ts
1704
1696
  function isEmail(e) {
1705
1697
  return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e);
1706
1698
  }
@@ -1780,8 +1772,7 @@ function isSlug(e) {
1780
1772
  function isNumeric(e) {
1781
1773
  return /^[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?$/i.test(e);
1782
1774
  }
1783
- //#endregion
1784
- //#region src/schemas/string.ts
1775
+ // src/schemas/string.ts
1785
1776
  var d = class StringSchema extends Schema {
1786
1777
  get _kind() {
1787
1778
  return "string";
@@ -2213,8 +2204,7 @@ var sUnknown = () => new Schema(), sVariant = (e, t) => new VariantSchema(e, t),
2213
2204
  union: sUnion,
2214
2205
  unknown: sUnknown
2215
2206
  };
2216
- //#endregion
2217
- //#region src/tolerate.ts
2207
+ // src/tolerate.ts
2218
2208
  function tolerate(e, ...t) {
2219
2209
  let n = new Set(t);
2220
2210
  return e.preprocess((e) => {
@@ -2230,7 +2220,6 @@ function tolerate(e, ...t) {
2230
2220
  return r;
2231
2221
  });
2232
2222
  }
2233
- //#endregion
2234
2223
  export { r as ErrorCode, Schema, SpellDefinitionError, SpellError, SpellValidationError, createParseContext, joinIssuePath, p as s, tolerate };
2235
2224
 
2236
2225
  //# sourceMappingURL=spell.js.map