zeed 1.0.21 → 1.1.1

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.
Files changed (145) hide show
  1. package/README.md +217 -234
  2. package/dist/{chunk-2Z75UI2C.js → chunk-3LSWLKUP.js} +2 -2
  3. package/dist/{chunk-Z3CCAUP7.js → chunk-4X7UJTXJ.js} +2 -2
  4. package/dist/chunk-5RJ6XORD.cjs +2 -0
  5. package/dist/chunk-5RJ6XORD.cjs.map +1 -0
  6. package/dist/{chunk-AVGEBKCV.js → chunk-5WAO44ET.js} +2 -2
  7. package/dist/{chunk-EXAC332B.cjs → chunk-DAD3M2IM.cjs} +2 -2
  8. package/dist/{chunk-EXAC332B.cjs.map → chunk-DAD3M2IM.cjs.map} +1 -1
  9. package/dist/{chunk-OWX5SXG3.js → chunk-FGAKPO3O.js} +2 -2
  10. package/dist/{chunk-4VAH6DEB.js → chunk-IBGLNGGT.js} +2 -2
  11. package/dist/{chunk-4K3FOY2Z.js → chunk-IQWBYSWG.js} +2 -2
  12. package/dist/chunk-JWON4PLZ.cjs +2 -0
  13. package/dist/{chunk-67WN7TPU.cjs.map → chunk-JWON4PLZ.cjs.map} +1 -1
  14. package/dist/{chunk-PCT5BR7B.cjs → chunk-K4IRAHZV.cjs} +2 -2
  15. package/dist/{chunk-PCT5BR7B.cjs.map → chunk-K4IRAHZV.cjs.map} +1 -1
  16. package/dist/{chunk-IMURZASN.js → chunk-KIKHNNKK.js} +2 -2
  17. package/dist/{chunk-KJKNVADW.cjs → chunk-L5OF6DSH.cjs} +2 -2
  18. package/dist/{chunk-KJKNVADW.cjs.map → chunk-L5OF6DSH.cjs.map} +1 -1
  19. package/dist/chunk-LAGM3ULD.js +1 -0
  20. package/dist/chunk-LLDVPAUS.js +2 -0
  21. package/dist/chunk-LLDVPAUS.js.map +1 -0
  22. package/dist/chunk-MIEXPALS.cjs +1 -0
  23. package/dist/chunk-MIEXPALS.cjs.map +1 -0
  24. package/dist/chunk-MQNZQKBT.js +1 -0
  25. package/dist/chunk-MQNZQKBT.js.map +1 -0
  26. package/dist/chunk-NPQ77LO4.cjs +1 -0
  27. package/dist/chunk-NPQ77LO4.cjs.map +1 -0
  28. package/dist/{chunk-IQQCKTKP.cjs → chunk-NVLJOTGF.cjs} +2 -2
  29. package/dist/{chunk-IQQCKTKP.cjs.map → chunk-NVLJOTGF.cjs.map} +1 -1
  30. package/dist/{chunk-GRMMMGD6.cjs → chunk-RMTW3TW2.cjs} +2 -2
  31. package/dist/{chunk-GRMMMGD6.cjs.map → chunk-RMTW3TW2.cjs.map} +1 -1
  32. package/dist/chunk-SHOLGUSO.cjs +2 -0
  33. package/dist/{chunk-2DDHD4HB.cjs.map → chunk-SHOLGUSO.cjs.map} +1 -1
  34. package/dist/{chunk-W4VPTJY3.js → chunk-UAU7GDLR.js} +2 -2
  35. package/dist/{chunk-YNFT35YQ.js → chunk-UFYY2K4G.js} +2 -2
  36. package/dist/{chunk-4GFUK2NK.cjs → chunk-VR7T3I5N.cjs} +2 -2
  37. package/dist/{chunk-4GFUK2NK.cjs.map → chunk-VR7T3I5N.cjs.map} +1 -1
  38. package/dist/chunk-ZEQQVU3K.cjs +2 -0
  39. package/dist/{chunk-6CVV5WAD.cjs.map → chunk-ZEQQVU3K.cjs.map} +1 -1
  40. package/dist/common/bin/index.cjs +1 -1
  41. package/dist/common/bin/index.js +1 -1
  42. package/dist/common/bin/lib0/buffer.cjs +1 -1
  43. package/dist/common/bin/lib0/buffer.js +1 -1
  44. package/dist/common/bin/lib0/decoding.cjs +1 -1
  45. package/dist/common/bin/lib0/decoding.js +1 -1
  46. package/dist/common/bin/lib0/encoding.cjs +1 -1
  47. package/dist/common/bin/lib0/encoding.js +1 -1
  48. package/dist/common/data/datauri.cjs +1 -1
  49. package/dist/common/data/datauri.js +1 -1
  50. package/dist/common/data/index.cjs +1 -1
  51. package/dist/common/data/index.js +1 -1
  52. package/dist/common/index.cjs +1 -1
  53. package/dist/common/index.cjs.map +1 -1
  54. package/dist/common/index.d.cts +1 -0
  55. package/dist/common/index.d.ts +1 -0
  56. package/dist/common/index.js +1 -1
  57. package/dist/common/schema/export-json-schema.cjs +1 -1
  58. package/dist/common/schema/export-json-schema.js +1 -1
  59. package/dist/common/schema/export-swift.cjs +1 -1
  60. package/dist/common/schema/export-swift.js +1 -1
  61. package/dist/common/schema/index.cjs +1 -1
  62. package/dist/common/schema/index.cjs.map +1 -1
  63. package/dist/common/schema/index.d.cts +1 -0
  64. package/dist/common/schema/index.d.ts +1 -0
  65. package/dist/common/schema/index.js +1 -1
  66. package/dist/common/schema/parse-args.cjs +1 -1
  67. package/dist/common/schema/parse-args.js +1 -1
  68. package/dist/common/schema/parse-env.cjs +1 -1
  69. package/dist/common/schema/parse-env.js +1 -1
  70. package/dist/common/schema/parse-object.cjs +1 -1
  71. package/dist/common/schema/parse-object.js +1 -1
  72. package/dist/common/schema/schema-standard.cjs +2 -0
  73. package/dist/common/schema/schema-standard.cjs.map +1 -0
  74. package/dist/common/schema/schema-standard.d.cts +57 -0
  75. package/dist/common/schema/schema-standard.d.ts +57 -0
  76. package/dist/common/schema/schema-standard.js +2 -0
  77. package/dist/common/schema/schema-standard.js.map +1 -0
  78. package/dist/common/schema/schema.cjs +1 -1
  79. package/dist/common/schema/schema.d.cts +10 -0
  80. package/dist/common/schema/schema.d.ts +10 -0
  81. package/dist/common/schema/schema.js +1 -1
  82. package/dist/common/schema/serialize.cjs +1 -1
  83. package/dist/common/schema/serialize.js +1 -1
  84. package/dist/common/schema/z-collection.cjs +1 -1
  85. package/dist/common/schema/z-collection.js +1 -1
  86. package/dist/common/schema/z.cjs +1 -1
  87. package/dist/common/schema/z.js +1 -1
  88. package/dist/common/test.cjs +1 -1
  89. package/dist/common/test.js +1 -1
  90. package/dist/index.all.cjs +1 -1
  91. package/dist/index.all.cjs.map +1 -1
  92. package/dist/index.all.d.cts +1 -0
  93. package/dist/index.all.d.ts +1 -0
  94. package/dist/index.all.js +1 -1
  95. package/dist/index.browser.cjs +1 -1
  96. package/dist/index.browser.cjs.map +1 -1
  97. package/dist/index.browser.d.cts +1 -0
  98. package/dist/index.browser.d.ts +1 -0
  99. package/dist/index.browser.js +1 -1
  100. package/dist/index.node.cjs +1 -1
  101. package/dist/index.node.cjs.map +1 -1
  102. package/dist/index.node.d.cts +1 -0
  103. package/dist/index.node.d.ts +1 -0
  104. package/dist/index.node.js +1 -1
  105. package/dist/node/index.cjs +1 -1
  106. package/dist/node/index.cjs.map +1 -1
  107. package/dist/node/index.js +1 -1
  108. package/dist/node/log/index.cjs +1 -1
  109. package/dist/node/log/index.cjs.map +1 -1
  110. package/dist/node/log/index.js +1 -1
  111. package/dist/node/log/log-context-node.cjs +1 -1
  112. package/dist/node/log/log-context-node.cjs.map +1 -1
  113. package/dist/node/log/log-context-node.js +1 -1
  114. package/dist/node/log/log-file-rotation.cjs +1 -1
  115. package/dist/node/log/log-file-rotation.cjs.map +1 -1
  116. package/dist/node/log/log-file-rotation.js +1 -1
  117. package/dist/node/log/log-file.cjs +1 -1
  118. package/dist/node/log/log-file.cjs.map +1 -1
  119. package/dist/node/log/log-file.js +1 -1
  120. package/package.json +2 -2
  121. package/src/common/schema/README.md +96 -1
  122. package/src/common/schema/index.ts +1 -0
  123. package/src/common/schema/schema-standard.spec.ts +327 -0
  124. package/src/common/schema/schema-standard.ts +76 -0
  125. package/src/common/schema/schema.ts +225 -0
  126. package/dist/chunk-2DDHD4HB.cjs +0 -2
  127. package/dist/chunk-5VUEFXFJ.js +0 -1
  128. package/dist/chunk-67WN7TPU.cjs +0 -2
  129. package/dist/chunk-6CVV5WAD.cjs +0 -2
  130. package/dist/chunk-IPZOSTTO.cjs +0 -1
  131. package/dist/chunk-IPZOSTTO.cjs.map +0 -1
  132. package/dist/chunk-UC5TCP5S.cjs +0 -2
  133. package/dist/chunk-UC5TCP5S.cjs.map +0 -1
  134. package/dist/chunk-VFRJ7C3X.js +0 -2
  135. package/dist/chunk-VFRJ7C3X.js.map +0 -1
  136. /package/dist/{chunk-2Z75UI2C.js.map → chunk-3LSWLKUP.js.map} +0 -0
  137. /package/dist/{chunk-Z3CCAUP7.js.map → chunk-4X7UJTXJ.js.map} +0 -0
  138. /package/dist/{chunk-AVGEBKCV.js.map → chunk-5WAO44ET.js.map} +0 -0
  139. /package/dist/{chunk-OWX5SXG3.js.map → chunk-FGAKPO3O.js.map} +0 -0
  140. /package/dist/{chunk-4VAH6DEB.js.map → chunk-IBGLNGGT.js.map} +0 -0
  141. /package/dist/{chunk-4K3FOY2Z.js.map → chunk-IQWBYSWG.js.map} +0 -0
  142. /package/dist/{chunk-IMURZASN.js.map → chunk-KIKHNNKK.js.map} +0 -0
  143. /package/dist/{chunk-5VUEFXFJ.js.map → chunk-LAGM3ULD.js.map} +0 -0
  144. /package/dist/{chunk-W4VPTJY3.js.map → chunk-UAU7GDLR.js.map} +0 -0
  145. /package/dist/{chunk-YNFT35YQ.js.map → chunk-UFYY2K4G.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-UC5TCP5S.cjs","../src/common/schema/schema.ts"],"names":["Type","_Type","__name","name","options","newProps","cloned","propertiesToCopy","prop","source","target","properties","value","meta","msg","obj","newObj","object","keys","pickedObj","key","omittedObj","transform","transformedObj","originalObj","typeInstance","shouldTransform","type","originalType","optional","newType","string","isString","number","isNumber","int","isInteger","boolean","isBoolean","none","v","any","float","double","real","tobj","isObject","record","valueType","union","option","literal","stringLiterals","values","tuple","items","item","i","array","itemType","isArray","func","args","ret","isFunction","rpc","info"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-UC5TCP5S.cjs","sourcesContent":[null,"// With many, many inspiration from https://github.com/badrap/valita MIT License as of 2024-09-10\n\nimport { isArray, isBoolean, isFunction, isInteger, isNumber, isObject, isString } from '../data/is'\n\n/**\n * Metadata interface for type descriptions and additional properties\n */\nexport interface TypeMeta {\n desc?: string\n}\n\n/**\n * Core Type class for schema validation and type inference\n */\nexport class Type<T = unknown> {\n readonly type: string\n\n _default?: any\n _optional?: boolean\n _meta?: TypeMeta\n _check?: (obj: any) => boolean\n _object?: any\n _type?: any\n _union?: any\n _enumValues?: any\n _args?: any\n _ret?: any\n _info?: any\n\n // [key: `_${string}`]: any // Allow only optional dynamic properties starting with an underscore\n\n constructor(name: string, options: Partial<Type<T>> = {}) {\n this.type = name\n Object.assign(this, options)\n }\n\n /**\n * Creates a copy of the type with new properties merged\n */\n private _cloneWithProps<U = T>(newProps: Partial<Type<any>> = {}): Type<U> {\n const cloned = new Type<U>(this.type)\n // Copy all existing properties\n const propertiesToCopy = ['_default', '_optional', '_meta', '_check', '_object', '_type', '_union', '_enumValues', '_args', '_ret', '_info']\n for (const prop of propertiesToCopy) {\n if ((this as any)[prop] !== undefined) {\n (cloned as any)[prop] = (this as any)[prop]\n }\n }\n // Apply new properties\n Object.assign(cloned, newProps)\n return cloned\n }\n\n /**\n * Helper to copy type properties when creating new type instances\n */\n private static _copyTypeProperties(source: Type<any>, target: Type<any>): void {\n const properties = ['_check', '_default', '_meta', '_object', '_type', '_enumValues']\n for (const prop of properties) {\n if ((source as any)[prop] !== undefined) {\n (target as any)[prop] = (source as any)[prop]\n }\n }\n }\n\n /**\n * Marks the type as optional, meaning it can be undefined\n * This is useful for properties that are not required.\n */\n optional(): Type<T | undefined> {\n return this._cloneWithProps<T | undefined>({ _optional: true })\n }\n\n /**\n * Sets a default value for the type, which will be used if the value is not provided\n * The default value can be a function that receives the schema as argument, or a static value.\n */\n default(value: T | ((schema?: this) => T)): Type<T> {\n return this._cloneWithProps<T>({ _default: value })\n }\n\n /**\n * Props / Metadata for the type, like description or other properties\n */\n meta(meta: TypeMeta): Type<T> {\n return this._cloneWithProps<T>({ _meta: meta })\n }\n\n /**\n * Sets the `desc` property for the type, which is a human-readable description\n */\n describe(msg: string): Type<T> {\n const meta = this._meta || {}\n meta.desc = msg\n return this._cloneWithProps<T>({ _meta: meta })\n }\n\n /**\n * Extends the type with an object, merging the properties\n */\n extend<O>(obj: O): Type<T & TypeObject<O>> {\n if (!this._object) {\n throw new Error('extend() can only be used on object schemas')\n }\n const newObj = { ...this._object, ...obj }\n return object(newObj) as any\n }\n\n /**\n * Picks certain keys from an object schema\n */\n pick<K extends keyof T>(keys: Record<K, true>): Type<Pick<T, K>> {\n if (!this._object) {\n throw new Error('pick() can only be used on object schemas')\n }\n const pickedObj: any = {}\n for (const key of Object.keys(keys)) {\n if (key in this._object) {\n pickedObj[key] = (this._object as any)[key]\n }\n }\n return object(pickedObj) as any\n }\n\n /**\n * Omits certain keys from an object schema\n */\n omit<K extends keyof T>(keys: Record<K, true>): Type<Omit<T, K>> {\n if (!this._object) {\n throw new Error('omit() can only be used on object schemas')\n }\n const omittedObj: any = { ...this._object }\n for (const key of Object.keys(keys)) {\n delete omittedObj[key]\n }\n return object(omittedObj) as any\n }\n\n /**\n * Helper method to modify object properties with a transformation function\n */\n private _transformObjectProperties(\n transform: (key: string, type: Type<any>, shouldTransform: boolean) => Type<any>,\n keys?: Record<string, true>,\n ): any {\n if (!this._object) {\n throw new Error('This operation can only be used on object schemas')\n }\n\n const transformedObj: any = {}\n const originalObj = this._object as any\n\n for (const [key, typeInstance] of Object.entries(originalObj)) {\n const shouldTransform = !keys || key in keys\n transformedObj[key] = transform(key, typeInstance as Type<any>, shouldTransform)\n }\n\n return object(transformedObj)\n }\n\n /**\n * Makes some or all properties of an object schema optional\n */\n partial(): Type<Partial<T>>\n partial<K extends keyof T>(keys: Record<K, true>): Type<Partial<Pick<T, K>> & Omit<T, K>>\n partial<K extends keyof T>(keys?: Record<K, true>): Type<Partial<T> | (Partial<Pick<T, K>> & Omit<T, K>)> {\n if (!this._object) {\n throw new Error('partial() can only be used on object schemas')\n }\n return this._transformObjectProperties((key, type, shouldTransform) => {\n if (!shouldTransform)\n return type\n return Type._cloneTypeWithOptional(type, true)\n }, keys)\n }\n\n /**\n * Makes some or all properties of an object schema required\n */\n required(): Type<Required<T>>\n required<K extends keyof T>(keys: Record<K, true>): Type<Required<Pick<T, K>> & Omit<T, K>>\n required<K extends keyof T>(keys?: Record<K, true>): Type<Required<T> | (Required<Pick<T, K>> & Omit<T, K>)> {\n if (!this._object) {\n throw new Error('required() can only be used on object schemas')\n }\n return this._transformObjectProperties((key, type, shouldTransform) => {\n if (!shouldTransform)\n return type\n return Type._cloneTypeWithOptional(type, false)\n }, keys)\n }\n\n /**\n * Helper method to clone a type with optional flag\n */\n private static _cloneTypeWithOptional(originalType: Type<any>, optional: boolean): Type<any> {\n const newType = new Type(originalType.type)\n Type._copyTypeProperties(originalType, newType)\n newType._optional = optional\n return newType\n }\n}\n\n/**\n * Type inference utility for extracting the TypeScript type from a schema Type\n */\nexport type Infer<T> = T extends Type<infer TT> ? TT : never\n\n// =============================================================================\n// Primitive Types\n// =============================================================================\n\n/**\n * Creates a string type validator\n */\nexport function string(): Type<string> {\n return new Type('string', {\n _check: isString,\n })\n}\n\n/**\n * Creates a number type validator\n */\nexport function number(): Type<number> {\n return new Type('number', {\n _check: isNumber,\n })\n}\n\n/**\n * Creates an integer type validator\n */\nexport function int(): Type<number> {\n return new Type('int', {\n _check: isInteger,\n })\n}\n\n/**\n * Creates a boolean type validator\n */\nexport function boolean(): Type<boolean> {\n return new Type('boolean', {\n _check: isBoolean,\n })\n}\n\n/**\n * Creates a none type validator (undefined | null)\n * Like undefined | null in TS and nil in Swift\n */\nexport function none(): Type<undefined> {\n return new Type('none', {\n _check: (v: any) => v == null,\n _optional: true,\n })\n}\n\n/**\n * Creates an any type validator that accepts any non-null value\n */\nexport function any<T = any>(): Type<T> {\n return new Type('any', {\n _check: (v: any) => v != null,\n })\n}\n\n// Aliases for number types\nexport const float = number\nexport const double = number\nexport const real = number\n\n// =============================================================================\n// Object Types\n// =============================================================================\n\n/**\n * Utility type to make object properties optional if their value type includes undefined.\n * @category Schema\n */\nexport type TypeObjectFixOptional<T> = {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K] & {}\n} & {\n [K in keyof T as undefined extends T[K] ? never : K]: T[K] & {}\n}\n\n/**\n * Utility type for pretty-printing object types\n */\ntype TypeObjectPretty<V> = Extract<{ [K in keyof V]: V[K] }, unknown>\n\n/**\n * Main object type utility\n */\ntype TypeObject<T> = TypeObjectPretty<TypeObjectFixOptional<{\n [K in keyof T]: Infer<T[K]>\n}>>\n\n/**\n * Creates an object type validator with specified properties\n */\nexport function object<T>(tobj: T): Type<TypeObject<T>> {\n return new Type('object', {\n _check: isObject,\n _object: tobj,\n })\n}\n\n/**\n * Creates a record type validator (object with string keys and uniform value type)\n */\nexport function record<T extends Type>(valueType: T): Type<Record<string, Infer<T>>> {\n return new Type('record', {\n _check: isObject,\n _type: valueType,\n })\n}\n\n// =============================================================================\n// Union Types\n// =============================================================================\n\n/**\n * Utility type for union of types.\n * @category Schema\n */\nexport type TypeUnion<T extends Type<any>[]> = {\n [K in keyof T]: T[K] extends Type<infer U> ? U : never\n}[number]\n\n/**\n * Creates a union type validator (like `string | number | boolean`)\n */\nexport function union<T extends Type<any>[]>(options: T): Type<TypeUnion<T>> {\n return new Type('union', {\n _check: (v: any) => options.some(option => option._check?.(v) ?? false),\n _union: options,\n })\n}\n\n// =============================================================================\n// Literal Types\n// =============================================================================\n\n/**\n * Utility type for literal types.\n * @category Schema\n */\nexport type TypeLiterals = string | number | bigint | boolean\n\n/**\n * Creates a literal value validator\n */\nexport function literal<T extends TypeLiterals>(value: T): Type<T> {\n return new Type('literal', {\n _check: (v: any) => v === value,\n _default: value,\n })\n}\n\n/**\n * Creates a string literal union validator (like `\"a\" | \"b\" | \"c\"`)\n */\nexport function stringLiterals<const T extends readonly string[]>(values: T): Type<T[number]> {\n return new Type('string', {\n _check: (v: any) => typeof v === 'string' && (values as readonly string[]).includes(v),\n _enumValues: values,\n })\n}\n\n// =============================================================================\n// Collection Types\n// =============================================================================\n\n/**\n * Utility type for tuple types.\n * @category Schema\n */\nexport type TypeTuple<T extends readonly Type[]> = {\n -readonly [K in keyof T]: T[K] extends Type<infer U> ? U : never\n}\n\n/**\n * Output type for TypeArray.\n * @category Schema\n */\nexport type TypeArrayOutput<Head extends Type[], Rest extends Type | undefined> = [\n ...TypeTuple<Head>,\n ...(Rest extends Type ? Infer<Rest>[] : []),\n]\n\n/**\n * Utility type for array types.\n * @category Schema\n */\nexport type TypeArray<Head extends Type[] = Type[], Rest extends Type | undefined = Type | undefined> = Type<TypeArrayOutput<Head, Rest>>\n\n/**\n * Creates a tuple type validator with fixed length and types e.g. [string, number, boolean]\n */\nexport function tuple<const T extends readonly Type[]>(items: T): Type<TypeTuple<T>> {\n return new Type('tuple', {\n _check: (v: any) => Array.isArray(v) && v.length === items.length && items.every((item, i) => (item as Type)._check?.(v[i]) ?? false),\n _type: items,\n })\n}\n\n/**\n * Creates an array type validator for a specific item type\n */\nexport function array<T>(itemType: Type<T>): Type<T[]> {\n return new Type('array', {\n _check: isArray,\n _type: itemType,\n })\n}\n\n// =============================================================================\n// Function Types\n// =============================================================================\n\n/**\n * Creates a regular function type validator\n */\nexport function func<\n TypeFuncArgs extends [Type<unknown>, ...Type<any>[]] | [],\n TypeFuncRet = Type,\n T = (...args: TypeTuple<TypeFuncArgs>) => Infer<TypeFuncRet>,\n>(args: TypeFuncArgs, ret: TypeFuncRet): Type<T> {\n return new Type('function', {\n _check: isFunction,\n _args: args,\n _ret: ret,\n })\n}\n\n/**\n * Creates an RPC function type validator that takes one argument and returns a promise\n */\nexport function rpc<\n TypeRpcInfo extends Type<unknown> | undefined = undefined,\n TypeRpcRet extends Type<unknown> = Type<void>,\n T = TypeRpcInfo extends undefined\n ? () => Infer<TypeRpcRet>\n : (info: Infer<TypeRpcInfo>) => Infer<TypeRpcRet> | Promise<Infer<TypeRpcRet>>,\n>(info?: TypeRpcInfo, ret?: TypeRpcRet): Type<T> {\n return new Type('rpc', {\n _check: isFunction,\n _info: info,\n _ret: ret ?? none(),\n })\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{a as s,b as c,e as u,h as d,i as f,j as l,l as _}from"./chunk-6VFFIKPT.js";import{a as o}from"./chunk-5NKC2EQJ.js";var y=class n{static{o(this,"Type")}type;_default;_optional;_meta;_check;_object;_type;_union;_enumValues;_args;_ret;_info;constructor(e,t={}){this.type=e,Object.assign(this,t)}_cloneWithProps(e={}){let t=new n(this.type),r=["_default","_optional","_meta","_check","_object","_type","_union","_enumValues","_args","_ret","_info"];for(let p of r)this[p]!==void 0&&(t[p]=this[p]);return Object.assign(t,e),t}static _copyTypeProperties(e,t){let r=["_check","_default","_meta","_object","_type","_enumValues"];for(let p of r)e[p]!==void 0&&(t[p]=e[p])}optional(){return this._cloneWithProps({_optional:!0})}default(e){return this._cloneWithProps({_default:e})}meta(e){return this._cloneWithProps({_meta:e})}describe(e){let t=this._meta||{};return t.desc=e,this._cloneWithProps({_meta:t})}extend(e){if(!this._object)throw new Error("extend() can only be used on object schemas");let t={...this._object,...e};return i(t)}pick(e){if(!this._object)throw new Error("pick() can only be used on object schemas");let t={};for(let r of Object.keys(e))r in this._object&&(t[r]=this._object[r]);return i(t)}omit(e){if(!this._object)throw new Error("omit() can only be used on object schemas");let t={...this._object};for(let r of Object.keys(e))delete t[r];return i(t)}_transformObjectProperties(e,t){if(!this._object)throw new Error("This operation can only be used on object schemas");let r={},p=this._object;for(let[T,b]of Object.entries(p)){let h=!t||T in t;r[T]=e(T,b,h)}return i(r)}partial(e){if(!this._object)throw new Error("partial() can only be used on object schemas");return this._transformObjectProperties((t,r,p)=>p?n._cloneTypeWithOptional(r,!0):r,e)}required(e){if(!this._object)throw new Error("required() can only be used on object schemas");return this._transformObjectProperties((t,r,p)=>p?n._cloneTypeWithOptional(r,!1):r,e)}static _cloneTypeWithOptional(e,t){let r=new n(e.type);return n._copyTypeProperties(e,r),r._optional=t,r}};function j(){return new y("string",{_check:d})}o(j,"string");function a(){return new y("number",{_check:f})}o(a,"number");function m(){return new y("int",{_check:l})}o(m,"int");function K(){return new y("boolean",{_check:_})}o(K,"boolean");function x(){return new y("none",{_check:o(n=>n==null,"_check"),_optional:!0})}o(x,"none");function w(){return new y("any",{_check:o(n=>n!=null,"_check")})}o(w,"any");var O=a,R=a,g=a;function i(n){return new y("object",{_check:s,_object:n})}o(i,"object");function P(n){return new y("record",{_check:s,_type:n})}o(P,"record");function I(n){return new y("union",{_check:o(e=>n.some(t=>t._check?.(e)??!1),"_check"),_union:n})}o(I,"union");function A(n){return new y("literal",{_check:o(e=>e===n,"_check"),_default:n})}o(A,"literal");function F(n){return new y("string",{_check:o(e=>typeof e=="string"&&n.includes(e),"_check"),_enumValues:n})}o(F,"stringLiterals");function U(n){return new y("tuple",{_check:o(e=>Array.isArray(e)&&e.length===n.length&&n.every((t,r)=>t._check?.(e[r])??!1),"_check"),_type:n})}o(U,"tuple");function q(n){return new y("array",{_check:u,_type:n})}o(q,"array");function W(n,e){return new y("function",{_check:c,_args:n,_ret:e})}o(W,"func");function v(n,e){return new y("rpc",{_check:c,_info:n,_ret:e??x()})}o(v,"rpc");export{y as a,j as b,a as c,m as d,K as e,x as f,w as g,O as h,R as i,g as j,i as k,P as l,I as m,A as n,F as o,U as p,q,W as r,v as s};
2
- //# sourceMappingURL=chunk-VFRJ7C3X.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/schema/schema.ts"],"sourcesContent":["// With many, many inspiration from https://github.com/badrap/valita MIT License as of 2024-09-10\n\nimport { isArray, isBoolean, isFunction, isInteger, isNumber, isObject, isString } from '../data/is'\n\n/**\n * Metadata interface for type descriptions and additional properties\n */\nexport interface TypeMeta {\n desc?: string\n}\n\n/**\n * Core Type class for schema validation and type inference\n */\nexport class Type<T = unknown> {\n readonly type: string\n\n _default?: any\n _optional?: boolean\n _meta?: TypeMeta\n _check?: (obj: any) => boolean\n _object?: any\n _type?: any\n _union?: any\n _enumValues?: any\n _args?: any\n _ret?: any\n _info?: any\n\n // [key: `_${string}`]: any // Allow only optional dynamic properties starting with an underscore\n\n constructor(name: string, options: Partial<Type<T>> = {}) {\n this.type = name\n Object.assign(this, options)\n }\n\n /**\n * Creates a copy of the type with new properties merged\n */\n private _cloneWithProps<U = T>(newProps: Partial<Type<any>> = {}): Type<U> {\n const cloned = new Type<U>(this.type)\n // Copy all existing properties\n const propertiesToCopy = ['_default', '_optional', '_meta', '_check', '_object', '_type', '_union', '_enumValues', '_args', '_ret', '_info']\n for (const prop of propertiesToCopy) {\n if ((this as any)[prop] !== undefined) {\n (cloned as any)[prop] = (this as any)[prop]\n }\n }\n // Apply new properties\n Object.assign(cloned, newProps)\n return cloned\n }\n\n /**\n * Helper to copy type properties when creating new type instances\n */\n private static _copyTypeProperties(source: Type<any>, target: Type<any>): void {\n const properties = ['_check', '_default', '_meta', '_object', '_type', '_enumValues']\n for (const prop of properties) {\n if ((source as any)[prop] !== undefined) {\n (target as any)[prop] = (source as any)[prop]\n }\n }\n }\n\n /**\n * Marks the type as optional, meaning it can be undefined\n * This is useful for properties that are not required.\n */\n optional(): Type<T | undefined> {\n return this._cloneWithProps<T | undefined>({ _optional: true })\n }\n\n /**\n * Sets a default value for the type, which will be used if the value is not provided\n * The default value can be a function that receives the schema as argument, or a static value.\n */\n default(value: T | ((schema?: this) => T)): Type<T> {\n return this._cloneWithProps<T>({ _default: value })\n }\n\n /**\n * Props / Metadata for the type, like description or other properties\n */\n meta(meta: TypeMeta): Type<T> {\n return this._cloneWithProps<T>({ _meta: meta })\n }\n\n /**\n * Sets the `desc` property for the type, which is a human-readable description\n */\n describe(msg: string): Type<T> {\n const meta = this._meta || {}\n meta.desc = msg\n return this._cloneWithProps<T>({ _meta: meta })\n }\n\n /**\n * Extends the type with an object, merging the properties\n */\n extend<O>(obj: O): Type<T & TypeObject<O>> {\n if (!this._object) {\n throw new Error('extend() can only be used on object schemas')\n }\n const newObj = { ...this._object, ...obj }\n return object(newObj) as any\n }\n\n /**\n * Picks certain keys from an object schema\n */\n pick<K extends keyof T>(keys: Record<K, true>): Type<Pick<T, K>> {\n if (!this._object) {\n throw new Error('pick() can only be used on object schemas')\n }\n const pickedObj: any = {}\n for (const key of Object.keys(keys)) {\n if (key in this._object) {\n pickedObj[key] = (this._object as any)[key]\n }\n }\n return object(pickedObj) as any\n }\n\n /**\n * Omits certain keys from an object schema\n */\n omit<K extends keyof T>(keys: Record<K, true>): Type<Omit<T, K>> {\n if (!this._object) {\n throw new Error('omit() can only be used on object schemas')\n }\n const omittedObj: any = { ...this._object }\n for (const key of Object.keys(keys)) {\n delete omittedObj[key]\n }\n return object(omittedObj) as any\n }\n\n /**\n * Helper method to modify object properties with a transformation function\n */\n private _transformObjectProperties(\n transform: (key: string, type: Type<any>, shouldTransform: boolean) => Type<any>,\n keys?: Record<string, true>,\n ): any {\n if (!this._object) {\n throw new Error('This operation can only be used on object schemas')\n }\n\n const transformedObj: any = {}\n const originalObj = this._object as any\n\n for (const [key, typeInstance] of Object.entries(originalObj)) {\n const shouldTransform = !keys || key in keys\n transformedObj[key] = transform(key, typeInstance as Type<any>, shouldTransform)\n }\n\n return object(transformedObj)\n }\n\n /**\n * Makes some or all properties of an object schema optional\n */\n partial(): Type<Partial<T>>\n partial<K extends keyof T>(keys: Record<K, true>): Type<Partial<Pick<T, K>> & Omit<T, K>>\n partial<K extends keyof T>(keys?: Record<K, true>): Type<Partial<T> | (Partial<Pick<T, K>> & Omit<T, K>)> {\n if (!this._object) {\n throw new Error('partial() can only be used on object schemas')\n }\n return this._transformObjectProperties((key, type, shouldTransform) => {\n if (!shouldTransform)\n return type\n return Type._cloneTypeWithOptional(type, true)\n }, keys)\n }\n\n /**\n * Makes some or all properties of an object schema required\n */\n required(): Type<Required<T>>\n required<K extends keyof T>(keys: Record<K, true>): Type<Required<Pick<T, K>> & Omit<T, K>>\n required<K extends keyof T>(keys?: Record<K, true>): Type<Required<T> | (Required<Pick<T, K>> & Omit<T, K>)> {\n if (!this._object) {\n throw new Error('required() can only be used on object schemas')\n }\n return this._transformObjectProperties((key, type, shouldTransform) => {\n if (!shouldTransform)\n return type\n return Type._cloneTypeWithOptional(type, false)\n }, keys)\n }\n\n /**\n * Helper method to clone a type with optional flag\n */\n private static _cloneTypeWithOptional(originalType: Type<any>, optional: boolean): Type<any> {\n const newType = new Type(originalType.type)\n Type._copyTypeProperties(originalType, newType)\n newType._optional = optional\n return newType\n }\n}\n\n/**\n * Type inference utility for extracting the TypeScript type from a schema Type\n */\nexport type Infer<T> = T extends Type<infer TT> ? TT : never\n\n// =============================================================================\n// Primitive Types\n// =============================================================================\n\n/**\n * Creates a string type validator\n */\nexport function string(): Type<string> {\n return new Type('string', {\n _check: isString,\n })\n}\n\n/**\n * Creates a number type validator\n */\nexport function number(): Type<number> {\n return new Type('number', {\n _check: isNumber,\n })\n}\n\n/**\n * Creates an integer type validator\n */\nexport function int(): Type<number> {\n return new Type('int', {\n _check: isInteger,\n })\n}\n\n/**\n * Creates a boolean type validator\n */\nexport function boolean(): Type<boolean> {\n return new Type('boolean', {\n _check: isBoolean,\n })\n}\n\n/**\n * Creates a none type validator (undefined | null)\n * Like undefined | null in TS and nil in Swift\n */\nexport function none(): Type<undefined> {\n return new Type('none', {\n _check: (v: any) => v == null,\n _optional: true,\n })\n}\n\n/**\n * Creates an any type validator that accepts any non-null value\n */\nexport function any<T = any>(): Type<T> {\n return new Type('any', {\n _check: (v: any) => v != null,\n })\n}\n\n// Aliases for number types\nexport const float = number\nexport const double = number\nexport const real = number\n\n// =============================================================================\n// Object Types\n// =============================================================================\n\n/**\n * Utility type to make object properties optional if their value type includes undefined.\n * @category Schema\n */\nexport type TypeObjectFixOptional<T> = {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K] & {}\n} & {\n [K in keyof T as undefined extends T[K] ? never : K]: T[K] & {}\n}\n\n/**\n * Utility type for pretty-printing object types\n */\ntype TypeObjectPretty<V> = Extract<{ [K in keyof V]: V[K] }, unknown>\n\n/**\n * Main object type utility\n */\ntype TypeObject<T> = TypeObjectPretty<TypeObjectFixOptional<{\n [K in keyof T]: Infer<T[K]>\n}>>\n\n/**\n * Creates an object type validator with specified properties\n */\nexport function object<T>(tobj: T): Type<TypeObject<T>> {\n return new Type('object', {\n _check: isObject,\n _object: tobj,\n })\n}\n\n/**\n * Creates a record type validator (object with string keys and uniform value type)\n */\nexport function record<T extends Type>(valueType: T): Type<Record<string, Infer<T>>> {\n return new Type('record', {\n _check: isObject,\n _type: valueType,\n })\n}\n\n// =============================================================================\n// Union Types\n// =============================================================================\n\n/**\n * Utility type for union of types.\n * @category Schema\n */\nexport type TypeUnion<T extends Type<any>[]> = {\n [K in keyof T]: T[K] extends Type<infer U> ? U : never\n}[number]\n\n/**\n * Creates a union type validator (like `string | number | boolean`)\n */\nexport function union<T extends Type<any>[]>(options: T): Type<TypeUnion<T>> {\n return new Type('union', {\n _check: (v: any) => options.some(option => option._check?.(v) ?? false),\n _union: options,\n })\n}\n\n// =============================================================================\n// Literal Types\n// =============================================================================\n\n/**\n * Utility type for literal types.\n * @category Schema\n */\nexport type TypeLiterals = string | number | bigint | boolean\n\n/**\n * Creates a literal value validator\n */\nexport function literal<T extends TypeLiterals>(value: T): Type<T> {\n return new Type('literal', {\n _check: (v: any) => v === value,\n _default: value,\n })\n}\n\n/**\n * Creates a string literal union validator (like `\"a\" | \"b\" | \"c\"`)\n */\nexport function stringLiterals<const T extends readonly string[]>(values: T): Type<T[number]> {\n return new Type('string', {\n _check: (v: any) => typeof v === 'string' && (values as readonly string[]).includes(v),\n _enumValues: values,\n })\n}\n\n// =============================================================================\n// Collection Types\n// =============================================================================\n\n/**\n * Utility type for tuple types.\n * @category Schema\n */\nexport type TypeTuple<T extends readonly Type[]> = {\n -readonly [K in keyof T]: T[K] extends Type<infer U> ? U : never\n}\n\n/**\n * Output type for TypeArray.\n * @category Schema\n */\nexport type TypeArrayOutput<Head extends Type[], Rest extends Type | undefined> = [\n ...TypeTuple<Head>,\n ...(Rest extends Type ? Infer<Rest>[] : []),\n]\n\n/**\n * Utility type for array types.\n * @category Schema\n */\nexport type TypeArray<Head extends Type[] = Type[], Rest extends Type | undefined = Type | undefined> = Type<TypeArrayOutput<Head, Rest>>\n\n/**\n * Creates a tuple type validator with fixed length and types e.g. [string, number, boolean]\n */\nexport function tuple<const T extends readonly Type[]>(items: T): Type<TypeTuple<T>> {\n return new Type('tuple', {\n _check: (v: any) => Array.isArray(v) && v.length === items.length && items.every((item, i) => (item as Type)._check?.(v[i]) ?? false),\n _type: items,\n })\n}\n\n/**\n * Creates an array type validator for a specific item type\n */\nexport function array<T>(itemType: Type<T>): Type<T[]> {\n return new Type('array', {\n _check: isArray,\n _type: itemType,\n })\n}\n\n// =============================================================================\n// Function Types\n// =============================================================================\n\n/**\n * Creates a regular function type validator\n */\nexport function func<\n TypeFuncArgs extends [Type<unknown>, ...Type<any>[]] | [],\n TypeFuncRet = Type,\n T = (...args: TypeTuple<TypeFuncArgs>) => Infer<TypeFuncRet>,\n>(args: TypeFuncArgs, ret: TypeFuncRet): Type<T> {\n return new Type('function', {\n _check: isFunction,\n _args: args,\n _ret: ret,\n })\n}\n\n/**\n * Creates an RPC function type validator that takes one argument and returns a promise\n */\nexport function rpc<\n TypeRpcInfo extends Type<unknown> | undefined = undefined,\n TypeRpcRet extends Type<unknown> = Type<void>,\n T = TypeRpcInfo extends undefined\n ? () => Infer<TypeRpcRet>\n : (info: Infer<TypeRpcInfo>) => Infer<TypeRpcRet> | Promise<Infer<TypeRpcRet>>,\n>(info?: TypeRpcInfo, ret?: TypeRpcRet): Type<T> {\n return new Type('rpc', {\n _check: isFunction,\n _info: info,\n _ret: ret ?? none(),\n })\n}\n"],"mappings":"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","names":["Type","_Type","__name","name","options","newProps","cloned","propertiesToCopy","prop","source","target","properties","value","meta","msg","obj","newObj","object","keys","pickedObj","key","omittedObj","transform","transformedObj","originalObj","typeInstance","shouldTransform","type","originalType","optional","newType","string","isString","number","isNumber","int","isInteger","boolean","isBoolean","none","v","any","float","double","real","tobj","isObject","record","valueType","union","option","literal","stringLiterals","values","tuple","items","item","i","array","itemType","isArray","func","args","ret","isFunction","rpc","info"]}