@contember/typesafe 2.0.0-alpha.32 → 2.0.0-alpha.35

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 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/typesafe/src/index.ts"],"sourcesContent":["type Unpacked<T> = T extends readonly (infer U)[] ? U : never\n\nexport type JsonObject = {\n\treadonly [P in string]?: Json\n}\nexport type Scalar =\n\t| string\n\t| number\n\t| boolean\n\t| null\nexport type Json =\n\t| Scalar\n\t| readonly Json[]\n\t| JsonObject\n\nexport interface Type<T extends Json | {readonly [K in string]?: Json} | undefined = Json> {\n\t(input: unknown, path?: PropertyKey[]): T\n\treadonly inner?: any\n}\n\nexport class ParseError extends Error {\n\tconstructor(readonly path: PropertyKey[], readonly reason: string, readonly expected?: string) {\n\t\tsuper(`value at ${path.length ? `path /${path.join('/')}` : 'root'}: ${reason}`)\n\t}\n\n\tstatic format(input: unknown, path: PropertyKey[], expected: string) {\n\t\treturn new ParseError(path, `must be ${expected}, ${input === 'undefined' ? 'undefined' : JSON.stringify(input)} given`, expected)\n\t}\n}\n\nexport const fail = (path: PropertyKey[], reason: string = 'unknown reason'): never => {\n\tthrow new ParseError(path, reason)\n}\n\nexport const string = ((): Type<string> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'string') throw ParseError.format(input, path, 'string')\n\t\treturn input\n\t}\n})()\n\nexport const number = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number') throw ParseError.format(input, path, 'number')\n\t\treturn input\n\t}\n})()\n\nexport const integer = ((): Type<number> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'number' || !Number.isInteger(input)) throw ParseError.format(input, path, 'integer')\n\t\treturn input\n\t}\n})()\n\nexport const boolean = ((): Type<boolean> => {\n\treturn (input: unknown, path: PropertyKey[] = []) => {\n\t\tif (typeof input !== 'boolean') throw ParseError.format(input, path, 'boolean')\n\t\treturn input\n\t}\n})()\n\n\nexport const scalar = ((): Type<Scalar> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Scalar => {\n\t\tif (input === null) {\n\t\t\treturn null\n\t\t}\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number')\n\t\t}\n\t}\n})()\n\nexport const anyJson = ((): Type<Json> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Json => {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\tcase 'boolean':\n\t\t\t\treturn input\n\t\t\tcase 'number':\n\t\t\t\tif (!Number.isFinite(input)) {\n\t\t\t\t\tthrow new ParseError(path, 'must be finite number', 'number')\n\t\t\t\t}\n\t\t\t\treturn input\n\t\t\tcase 'object':\n\t\t\t\tif (input === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(input)) {\n\t\t\t\t\treturn input.map((it, index) => anyJson(it, [...path, index]))\n\t\t\t\t}\n\t\t\t\treturn anyJsonObject(input, path)\n\t\t\tdefault:\n\t\t\t\tthrow ParseError.format(input, path, 'string|boolean|number|object')\n\t\t}\n\t}\n})()\n\nexport const anyJsonObject = ((): Type<JsonObject> => {\n\treturn (input: unknown, path: PropertyKey[] = []): JsonObject => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(input).map(([key, value]) => {\n\t\t\treturn [key, anyJson(value, [...path, key])]\n\t\t}))\n\t}\n})()\n\nexport const literal = <T extends Json>(inner: T): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (input !== inner) throw ParseError.format(input, path, JSON.stringify(inner))\n\t\treturn inner\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const array = <T extends Json>(inner: Type<T>): Type<readonly T[]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): readonly T[] => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\treturn input.map((v, i) => inner(v, [...path, i]))\n\t}\n\n\ttype.inner = type\n\n\treturn type\n}\n\nexport const object = <T extends Record<string, Type<Json>>>(inner: T): Type<{ readonly [P in keyof T]: ReturnType<T[P]> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]: ReturnType<T[P]> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(inner).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\tconst result = v((input as any)[k], newPath)\n\t\t\t\tif (result === undefined && !(k in (input as object))) {\n\t\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t\t}\n\t\t\t\treturn [k, result]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const partial = <T extends Record<string, Type<Json | undefined>>>(inner: T) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in keyof T]?: Exclude<ReturnType<T[P]>, undefined> } => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\treturn Object.fromEntries(Object.entries(inner ?? {}).flatMap(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in (input as object)) || (input as any)[k] === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tconst val = v((input as any)[k], newPath)\n\t\t\tif (val === undefined) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn [[k, val]]\n\t\t})) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const noExtraProps = <T extends JsonObject>(inner: Type<T>) => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tconst result = inner(input, path)\n\t\tif (!(typeof input === 'object' && typeof input !== null && typeof result === 'object' && result !== null)) {\n\t\t\treturn result\n\t\t}\n\t\tconst resultProps = new Set(Object.keys(result))\n\t\tfor (const key in input) {\n\t\t\tif (!resultProps.has(key)) {\n\t\t\t\tthrow fail(path, `extra property ${key} found`)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\n\nexport const record = <K extends Type<string>, T extends Type<Json>>(key: K, value: T): Type<{ readonly [P in ReturnType<K>]: ReturnType<T> }> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { readonly [P in ReturnType<K>]: ReturnType<T> } => {\n\t\tif (input === null || typeof input !== 'object') {\n\t\t\tthrow ParseError.format(input, path, 'object')\n\t\t}\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(input as any).map(([k, v]) => {\n\t\t\t\tconst newPath = [...path, k]\n\t\t\t\treturn [key(k, newPath), value(v, newPath)]\n\t\t\t}),\n\t\t) as any\n\t}\n\n\ttype.inner = { key, value }\n\n\treturn type\n}\n\n\nexport const union = <T extends Type<Json>[]>(...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nconst isSamePath = (a: PropertyKey[], b: PropertyKey[]) => {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const partiallyDiscriminatedUnion = <T extends Type<JsonObject>[]>(field: string, ...inner: T): Type<ReturnType<Unpacked<T>>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): ReturnType<Unpacked<T>> => {\n\t\tconst errors = []\n\t\tfor (const innerInner of inner) {\n\t\t\ttry {\n\t\t\t\treturn innerInner(input, path) as any\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ParseError) {\n\t\t\t\t\tif (isSamePath(e.path, [...path, field])) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\terrors.push(' '.repeat('ParseError: '.length) + e.message)\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new ParseError(path, 'all variants of union has failed:\\n' + errors.join('\\n'))\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const discriminatedUnion = <F extends string, T extends {[key: string]: JsonObject}>(field: F, inner: {[K in keyof T]: Type<T[K]>}): Type<{ [K in keyof T]: { [X in F]: K } & T[K] }[keyof T]> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): { [K in keyof T]: { [X in F]: K } & T[K] }[keyof T] => {\n\t\tif (input === null || typeof input !== 'object') throw ParseError.format(input, path, 'object')\n\t\tconst key = (input as any)[field]\n\t\tif (typeof key !== 'string') throw ParseError.format(key, [...path, field], 'string')\n\n\t\tconst discriminatedType = inner[key]\n\t\tif (discriminatedType === undefined) throw ParseError.format(key, [...path, field], Object.keys(inner).join('|'))\n\n\t\tconst { [field]: _, ...inputWithoutDiscr } = input\n\n\t\treturn { [field]: key, ...discriminatedType(inputWithoutDiscr, path) }\n\n\t}\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype TupleFromTupledType<T extends Type<Json>[]> = T extends [Type<infer X>, ...infer Y]\n\t? (Y extends Type<Json>[] ? readonly [X, ...TupleFromTupledType<Y>] : readonly [])\n\t: readonly []\n\nexport const tuple = <T extends Type<Json>[]>(...inner: T): Type<TupleFromTupledType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): TupleFromTupledType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length !== inner.length) throw ParseError.format(input, path, `array with length ${inner.length}`)\n\t\treturn Object.entries(inner).map(([k, v]) => {\n\t\t\tconst newPath = [...path, k]\n\t\t\tif (!(k in input)) {\n\t\t\t\tthrow ParseError.format(undefined, newPath, 'defined')\n\t\t\t}\n\t\t\treturn v(input[k as unknown as number], newPath)\n\t\t}) as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\ntype DiscriminatedTupleUnionType<T extends Record<string, Type<Json>[]>> =\n\t{ [K in keyof T]: (readonly [K, ...TupleFromTupledType<T[K]>]) }[keyof T & string]\n\nexport const discriminatedTupleUnion = <T extends Record<string, Type<Json>[]>>(inner: T): Type<DiscriminatedTupleUnionType<T>> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): DiscriminatedTupleUnionType<T> => {\n\t\tif (!Array.isArray(input)) throw ParseError.format(input, path, 'array')\n\t\tif (input.length === 0) throw ParseError.format(input, path, `non-empty array`)\n\n\t\tconst tupleType = inner[input[0]]\n\t\tif (tupleType === undefined) throw ParseError.format(input, [...path, 0], `one of ${Object.keys(inner).join(', ')}`)\n\t\tif (input.length !== tupleType.length + 1) throw ParseError.format(input, path, `array with length ${tupleType.length + 1}`)\n\n\t\tfor (let i = 0; i < tupleType.length; i++) {\n\t\t\ttupleType[i](input[i + 1], [...path, i + 1])\n\t\t}\n\n\t\treturn input as any\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const intersection = <T1 extends JsonObject, T2 extends JsonObject>(inner1: Type<T1>, inner2: Type<T2>): Type<T1 & T2> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T1 & T2 => {\n\t\treturn {\n\t\t\t...inner1(input, path),\n\t\t\t...inner2(input, path),\n\t\t}\n\t}\n\n\ttype.inner = [inner1, inner2]\n\n\treturn type\n}\n\nexport const enumeration = <T extends string>(...values: T[]): Type<T> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T => {\n\t\tif (typeof input !== 'string' || !values.includes(input as T)) throw ParseError.format(input, path, values.join('|'))\n\t\treturn input as T\n\t}\n\ttype.inner = values\n\treturn type\n}\n\nexport const null_ = literal(null)\nexport const true_ = literal(true)\nexport const false_ = literal(false)\n\nexport const nullable = <T extends Json>(inner: Type<T>): Type<T | null> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []) => {\n\t\treturn input === null ? input : inner(input, path)\n\t}\n\n\ttype.inner = inner\n\treturn type\n}\n\nexport const preprocess = <Input extends Json>(inner: Type<Input>, transform: (input: unknown) => unknown) => (input: unknown, path: PropertyKey[] = []): Input => {\n\treturn inner(transform(input), path)\n}\n\nexport const transform = <Input extends Json, Result extends Json>(inner: Type<Input>, transform: (value: Input, input: unknown, path: PropertyKey[]) => Result) => (input: unknown, path: PropertyKey[] = []): Result => {\n\treturn transform(inner(input, path), input, path)\n}\n\nexport const coalesce = <T extends Json, F extends Json>(inner: Type<T>, fallback: F): Type<T | F> => {\n\tconst type = (input: unknown, path: PropertyKey[] = []): T | F => {\n\t\treturn inner(input ?? fallback, path)\n\t}\n\n\ttype.inner = inner\n\n\treturn type\n}\n\nexport const valueAt = (input: any, path: PropertyKey[]): unknown | undefined => {\n\tlet value = input\n\tfor (const key of path) {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn undefined\n\t\t}\n\t\tvalue = (value as any)[key]\n\t}\n\treturn value\n}\n\ntype EqualsWrapped<T> = T extends infer R & {}\n\t? {\n\t\t[P in keyof R]: R[P]\n\t}\n\t: never\n\nexport type Equals<A, B> = (<T>() => T extends EqualsWrapped<A> ? 1 : 2) extends <T>() => T extends EqualsWrapped<B> ? 1 : 2\n\t? true\n\t: false\n"],"names":["transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../src/index.ts","../../../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/ts5.6/index.d.ts","../../../../node_modules/@types/accepts/index.d.ts","../../../../node_modules/@types/aria-query/index.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../../node_modules/@types/babel__generator/index.d.ts","../../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../../node_modules/@types/babel__template/index.d.ts","../../../../node_modules/@types/babel__traverse/index.d.ts","../../../../node_modules/@types/babel__core/index.d.ts","../../../../node_modules/@types/bcryptjs/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/content-disposition/index.d.ts","../../../../node_modules/@types/keygrip/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/mime/Mime.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../node_modules/@types/cookies/index.d.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/jsonfile/index.d.ts","../../../../node_modules/@types/jsonfile/utils.d.ts","../../../../node_modules/@types/fs-extra/index.d.ts","../../../../node_modules/@types/unist/index.d.ts","../../../../node_modules/@types/hast/index.d.ts","../../../../node_modules/@types/http-assert/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/is-hotkey/index.d.ts","../../../../node_modules/@types/js-levenshtein/index.d.ts","../../../../node_modules/@types/js-yaml/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/koa-compose/index.d.ts","../../../../node_modules/@types/koa/index.d.ts","../../../../node_modules/@types/koa-bodyparser/index.d.ts","../../../../node_modules/@types/koa-compress/index.d.ts","../../../../node_modules/@types/koa__cors/index.d.ts","../../../../node_modules/@types/mime-types/index.d.ts","../../../../node_modules/@types/mustache/index.d.ts","../../../../node_modules/form-data/index.d.ts","../../../../node_modules/@types/node-fetch/externals.d.ts","../../../../node_modules/@types/node-fetch/index.d.ts","../../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../../node_modules/@types/nodemailer/index.d.ts","../../../../node_modules/@types/npm-package-arg/index.d.ts","../../../../node_modules/@types/pg/node_modules/pg-types/index.d.ts","../../../../node_modules/pg-protocol/dist/messages.d.ts","../../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../../node_modules/pg-protocol/dist/parser.d.ts","../../../../node_modules/pg-protocol/dist/index.d.ts","../../../../node_modules/@types/pg/index.d.ts","../../../../node_modules/kleur/kleur.d.ts","../../../../node_modules/@types/prompts/index.d.ts","../../../../node_modules/@types/react-dom/index.d.ts","../../../../node_modules/@types/semver/classes/semver.d.ts","../../../../node_modules/@types/semver/functions/parse.d.ts","../../../../node_modules/@types/semver/functions/valid.d.ts","../../../../node_modules/@types/semver/functions/clean.d.ts","../../../../node_modules/@types/semver/functions/inc.d.ts","../../../../node_modules/@types/semver/functions/diff.d.ts","../../../../node_modules/@types/semver/functions/major.d.ts","../../../../node_modules/@types/semver/functions/minor.d.ts","../../../../node_modules/@types/semver/functions/patch.d.ts","../../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../../node_modules/@types/semver/functions/compare.d.ts","../../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../../node_modules/@types/semver/functions/sort.d.ts","../../../../node_modules/@types/semver/functions/rsort.d.ts","../../../../node_modules/@types/semver/functions/gt.d.ts","../../../../node_modules/@types/semver/functions/lt.d.ts","../../../../node_modules/@types/semver/functions/eq.d.ts","../../../../node_modules/@types/semver/functions/neq.d.ts","../../../../node_modules/@types/semver/functions/gte.d.ts","../../../../node_modules/@types/semver/functions/lte.d.ts","../../../../node_modules/@types/semver/functions/cmp.d.ts","../../../../node_modules/@types/semver/functions/coerce.d.ts","../../../../node_modules/@types/semver/classes/comparator.d.ts","../../../../node_modules/@types/semver/classes/range.d.ts","../../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../../node_modules/@types/semver/ranges/valid.d.ts","../../../../node_modules/@types/semver/ranges/outside.d.ts","../../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../../node_modules/@types/semver/ranges/subset.d.ts","../../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../../node_modules/@types/semver/index.d.ts","../../../../node_modules/@types/uuid/index.d.ts","../../../../node_modules/@types/ws/index.d.ts"],"fileIdsList":[[82,125,178],[82,125],[82,125,140,175],[82,125,178,179,180,181,182],[82,125,178,180],[82,125,140,175,185],[82,125,140,175,185,188,195],[82,125,137,140,175,189,190],[82,125,186,190,191,194],[82,125,138,175,198,199],[82,125,201],[82,125,138,167,175],[82,125,210],[82,125,173,175,210],[82,124,125,137,140,141,145,151,167,175,176,187,188,196,203,204,209],[82,125,193],[82,125,192],[82,125,140,167,175,216,217],[82,83,125],[82,124,125],[82,125,130,159],[82,125,126,131,137,138,145,156,167],[82,125,126,127,137,145],[82,125,128,168],[82,125,129,130,138,146],[82,125,130,156,164],[82,125,131,133,137,145],[82,124,125,132],[82,125,133,134],[82,125,137],[82,125,135,137],[82,124,125,137],[82,125,137,138,139,156,167],[82,125,137,138,139,152,156,159],[82,122,125,172],[82,125,133,137,140,145,156,167],[82,125,137,138,140,141,145,156,164,167],[82,125,140,142,156,164,167],[82,125,137,143],[82,125,144,167,172],[82,125,133,137,145,156],[82,125,146],[82,125,147],[82,124,125,148],[82,83,84,124,125,126,127,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173],[82,125,150],[82,125,151],[82,125,137,152,153],[82,125,152,154,168,170],[82,125,137,156,157,158,159],[82,125,156,158],[82,125,156,157],[82,125,159],[82,125,160],[82,83,125,156],[82,125,137,162,163],[82,125,162,163],[82,125,130,145,156,164],[82,125,165],[125],[81,82,83,84,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174],[82,125,145,166],[82,125,140,151,167],[82,125,130,168],[82,125,156,169],[82,125,144,170],[82,125,171],[82,125,130,137,139,148,156,167,170,172],[82,125,156,173],[82,125,175,220,222,226,227,228,229,230,231],[82,125,156,175],[82,125,137,175,220,222,223,225,232],[82,125,137,145,156,167,175,219,220,221,223,224,225,232],[82,125,156,175,222,223],[82,125,156,175,222,224],[82,125,175,220,222,223,225,232],[82,125,156,175,224],[82,125,137,145,156,164,175,221,223,225],[82,125,137,175,220,222,223,224,225,232],[82,125,137,156,175,220,221,222,223,224,225,232],[82,125,137,156,175,220,222,223,225,232],[82,125,140,156,175,225],[82,125,137,156,164,175,234,235,238,239],[82,125,156,175,240],[78,82,125],[75,76,77,82,125],[82,125,243,282],[82,125,243,267,282],[82,125,282],[82,125,243],[82,125,243,268,282],[82,125,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[82,125,268,282],[82,125,140,175,193],[82,125,137,140,142,156,164,167,173,175],[82,125,140,156,175],[82,125,175,235,236,237],[82,125,175],[82,125,156,175,235],[82,94,98,125,167],[82,94,125,156,167],[82,89,125],[82,91,94,125,164,167],[82,125,145,164],[82,89,125,175],[82,91,94,125,145,167],[82,86,87,90,93,125,137,156,167],[82,94,101,125],[82,86,92,125],[82,94,115,116,125],[82,90,94,125,159,167,175],[82,115,125,175],[82,88,89,125,175],[82,94,125],[82,88,89,90,91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,125],[82,94,109,125],[82,94,101,102,125],[82,92,94,102,103,125],[82,93,125],[82,86,89,94,125],[82,94,98,102,103,125],[82,98,125],[82,92,94,97,125,167],[82,86,91,94,101,125],[82,125,156],[82,89,94,115,125,172,175],[79,82,125]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"abee51ebffafd50c07d76be5848a34abfe4d791b5745ef1e5648718722fab924","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d540251809289a05349b70ab5f4b7b99f922af66ab3c39ba56a475dcf95d5ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800","impliedFormat":1},{"version":"df1e7a3a604dfc0f434c4583e8103c171cd5c7684f8e841a0a2ac15fabb3bc24","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"51646b3c3c139dc279cd419617cb9c92061232060139bd33cae3ea44c15969fe","signature":"5dba60c20c6ba4771fced29dae4f4f3e5b9506b11b07457019d4dab99bccabad"},{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d1319e6b5d0efd8c5eae07eb864a00102151e8b9afddd2d45db52e9aae002c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"4eedea23b8a843ec0fd51a384fb6b9fe1bc89198f713d0465c2c8392a9d51271","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"c521f961c1606c94dc831992e659f426b6def6e2e6e327ee25d3c642eb393f95","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0de0233242682db9ac13efa0ddbb456a41abe6f291211b40ba3aa766b03e9b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"596572d40c1f13d8b57920d6d1a77c5ec6fe4952dc157f416f04a801cd3e2678","impliedFormat":1},{"version":"ad23fd126ff06e72728dd7bfc84326a8ca8cec2b9d2dac0193d42a777df0e7d8","impliedFormat":1},{"version":"a55fd4d49da86d2cc19de575beb1515184e55f5f3165e1482ff02fd99f900b5c","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"7edec695cdb707c7146ac34c44ca364469c7ea504344b3206c686e79f61b61a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"d1b1295af3667779be43eb6d4fbaa342e656aa2c4b77a4ad3cf42ec55baeea00","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"dd9492e12a57068f08d70cb5eb5ceb39fa5bcf23be01af574270aeee95b982af","impliedFormat":1},{"version":"e432b0e3761ca9ba734bdd41e19a75fec1454ca8e9769bfdf8b31011854cf06a","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"78955c9259da94920609be3e589fc9253268b3fffa822e1e31d28ee2ce0b8a74","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"73aa178e8fb1449ef3666093d8dca25f96302a80ee45f8ff027df8e4792bf9fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"fdedf82878e4c744bc2a1c1e802ae407d63474da51f14a54babe039018e53d8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"08353b04a3501d84fc8d7b49de99f6c1cc26026e6d9d697a18315f3bfe92ed03","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"710ad93f8de29dc15e5892aa735e72348b62f40a6d1220f2849837d332f92885","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f1da5d682cdb628890e4a8578fb9e8ab332e6a1a4b3a13fce08b7b4d45d192a","affectsGlobalScope":true,"impliedFormat":1},{"version":"efeedd8bbc5c0d53e760d8b120a010470722982e6ae14de8d1bcff66ebc2ae71","impliedFormat":1},{"version":"b718a94332858862943630649a310d6f8e9a09f86ae7215d8554e75bbbfd7817","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"483bb10b755f3572526fd76d9481221e8dc30568edcc1a9cc73479d8874bd16d","impliedFormat":1},{"version":"6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","impliedFormat":1},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"7983487d0fbefb9b6ccc94390e8c826328d87e21cd4a62ea5b4c6b8f99f32550","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"9d16476349353974716bd2ad745830d0542c18c9edad4566d77ccd9d61c6cfb2","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"a3d3f704c5339a36da3ca8c62b29072f87e86c783b8452d235992142ec71aa2d","impliedFormat":1},{"version":"82819f9ecc249a6a3e284003540d02ea1b1f56f410c23231797b9e1e4b9622df","impliedFormat":1},{"version":"afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","impliedFormat":1},{"version":"204dbe6c72467fb14bbe8f06510b11fb541b6ce29580c6e10ebd3bdb2eb0c1f9","impliedFormat":1},{"version":"ce013414484233b24f42c0fcfca48a60bb66ab4e13c82953662305e8f1ee4925","impliedFormat":1},{"version":"16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","impliedFormat":1},{"version":"630ff11de47d75175f2d1d43cc447068818cb9377324752e01fe0e5fc3f77757","impliedFormat":1},{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","impliedFormat":1},{"version":"951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","impliedFormat":1},{"version":"f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","impliedFormat":1},{"version":"15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","impliedFormat":1},{"version":"eb96a2321f717bccc3e49e104e299152984b927ea4546b559ae631c06565819c","impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"e98185f4249720ace1921d59c1ff4612fa5c633a183fc9bf28e2e7b8e3c7fd51","impliedFormat":1},{"version":"6168414aa12d33d0fcfac4f9870aa81ce27e136db6faf182001a5f3792e1d720","impliedFormat":1},{"version":"0112a7f3c11fc4792e70f5d0d5c9f80ee6a1c5c548723714433da6a03307e87b","impliedFormat":1},{"version":"a8d630427635fa316e57fa4949132acde9cf23aa067220bffea30612497824cc","impliedFormat":1},{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"5006668996956580886022c05108e32c742823e1b5652aff7914917233731518","impliedFormat":1},{"version":"8cf9b9045a614f883b623c2f1a631ec6a93321747e933330b2eec0ee47164a34","impliedFormat":1},{"version":"cee62e64fc4bdfb3798ab8e21486fadd2027ce4128349989acc63905366f91c5","impliedFormat":1},{"version":"f4b436d9b250c7e7087edef00fc0ecf9a62cbbbfe0f1d1c4f3888f1355c17eeb","impliedFormat":1},{"version":"643976e0b3d579304eafdb817bffc5b33bd8f99636ba9f5ee7a8d33288c1ae94","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"b58c81d4cc365d3986aee6c2a86592edc50f141b796899079196ffb103047390","impliedFormat":1},{"version":"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","impliedFormat":1},{"version":"4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","impliedFormat":1},{"version":"5009c081fd8ca3fcd6f3adcd071a1c79a933a400532b897822aad0943688a1f1","impliedFormat":1},{"version":"6825eb4d1c8beb77e9ed6681c830326a15ebf52b171f83ffbca1b1574c90a3b0","impliedFormat":1},{"version":"1741975791f9be7f803a826457273094096e8bba7a50f8fa960d5ed2328cdbcc","impliedFormat":1},{"version":"6ec0d1c15d14d63d08ccb10d09d839bf8a724f6b4b9ed134a3ab5042c54a7721","impliedFormat":1},{"version":"043a3b03dcb40d6b87d36ad26378c80086905232ee5602f067eaaed21baa42ef","impliedFormat":1},{"version":"ddfc215bfbddf5854d80ab8fb0256bd802f2a8acb6be62f9e630041266d56cd5","impliedFormat":1},{"version":"2c3bcb8a4ea2fcb4208a06672af7540dd65bf08298d742f041ffa6cbe487cf80","impliedFormat":1},{"version":"1cce0460d75645fc40044c729da9a16c2e0dabe11a58b5e4bfd62ac840a1835d","impliedFormat":1},{"version":"c784a9f75a6f27cf8c43cc9a12c66d68d3beb2e7376e1babfae5ae4998ffbc4a","impliedFormat":1},{"version":"feb4c51948d875fdbbaa402dad77ee40cf1752b179574094b613d8ad98921ce1","impliedFormat":1},{"version":"a6d3984b706cefe5f4a83c1d3f0918ff603475a2a3afa9d247e4114f18b1f1ef","impliedFormat":1},{"version":"b457d606cabde6ea3b0bc32c23dc0de1c84bb5cb06d9e101f7076440fc244727","impliedFormat":1},{"version":"9d59919309a2d462b249abdefba8ca36b06e8e480a77b36c0d657f83a63af465","impliedFormat":1},{"version":"9faa2661daa32d2369ec31e583df91fd556f74bcbd036dab54184303dee4f311","impliedFormat":1},{"version":"ba2e5b6da441b8cf9baddc30520c59dc3ab47ad3674f6cb51f64e7e1f662df12","impliedFormat":1},{"version":"da3d9c69fe4d916969f59b6553ac79b49e8dea8d35084733c396a3555d155f56","impliedFormat":1},{"version":"a589f9f052276a3fc00b75e62f73b93ea568fce3e935b86ed7052945f99d9dc2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"9b4f7ff9681448c72abe38ea8eefd7ffe0c3aefe495137f02012a08801373f71","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"e22b8641ee1e19db6d1f5d668dfb1264594ab09ba1677864fb690ac7ad28531c","impliedFormat":1},{"version":"6ab263df6465e2ed8f1d02922bae18bb5b407020767de021449a4c509859b22e","impliedFormat":1},{"version":"6805621d9f970cda51ab1516e051febe5f3ec0e45b371c7ad98ac2700d13d57c","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"f874ea4d0091b0a44362a5f74d26caab2e66dec306c2bf7e8965f5106e784c3b","impliedFormat":1},{"version":"9a2eaab4e54953c6b2ba21f7ac4c2593859da03917011c10a2acd8864e38e7b2","impliedFormat":1}],"root":[80],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"referencedMap":[[180,1],[178,2],[176,3],[177,2],[183,4],[179,1],[181,5],[182,1],[184,2],[186,6],[185,3],[187,2],[196,7],[197,2],[191,8],[195,9],[200,10],[202,11],[203,2],[204,2],[205,2],[206,2],[207,2],[208,2],[198,12],[199,2],[188,2],[211,13],[209,13],[212,14],[210,15],[213,13],[214,2],[192,16],[193,17],[215,2],[217,2],[218,18],[83,19],[84,19],[124,20],[125,21],[126,22],[127,23],[128,24],[129,25],[130,26],[131,27],[132,28],[133,29],[134,29],[136,30],[135,31],[137,32],[138,33],[139,34],[123,35],[174,2],[140,36],[141,37],[142,38],[143,39],[144,40],[145,41],[146,42],[147,43],[148,44],[149,45],[150,46],[151,47],[152,48],[153,48],[154,49],[155,2],[156,50],[158,51],[157,52],[159,53],[160,54],[161,55],[162,56],[163,57],[164,58],[165,59],[82,60],[81,2],[175,61],[166,62],[167,63],[168,64],[169,65],[170,66],[171,67],[172,68],[173,69],[232,70],[219,71],[226,72],[222,73],[220,74],[223,75],[227,76],[228,72],[225,77],[224,78],[229,79],[230,80],[231,81],[221,82],[233,2],[239,83],[234,2],[241,84],[77,2],[190,2],[189,2],[242,85],[75,2],[78,86],[79,85],[267,87],[268,88],[243,89],[246,89],[265,87],[266,87],[256,87],[255,90],[253,87],[248,87],[261,87],[259,87],[263,87],[247,87],[260,87],[264,87],[249,87],[250,87],[262,87],[244,87],[251,87],[252,87],[254,87],[258,87],[269,91],[257,87],[245,87],[282,92],[281,2],[276,91],[278,93],[277,91],[270,91],[271,91],[273,91],[275,91],[279,93],[280,93],[272,93],[274,93],[194,94],[201,2],[283,2],[284,95],[85,2],[76,2],[216,96],[240,2],[238,97],[235,98],[237,99],[236,2],[73,2],[74,2],[12,2],[13,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[4,2],[25,2],[29,2],[26,2],[27,2],[28,2],[30,2],[31,2],[32,2],[5,2],[33,2],[34,2],[35,2],[36,2],[6,2],[40,2],[37,2],[38,2],[39,2],[41,2],[7,2],[42,2],[47,2],[48,2],[43,2],[44,2],[45,2],[46,2],[8,2],[52,2],[49,2],[50,2],[51,2],[53,2],[9,2],[54,2],[55,2],[56,2],[59,2],[57,2],[58,2],[60,2],[61,2],[10,2],[62,2],[1,2],[63,2],[64,2],[11,2],[69,2],[66,2],[65,2],[72,2],[70,2],[68,2],[71,2],[67,2],[101,100],[111,101],[100,100],[121,102],[92,103],[91,104],[120,98],[114,105],[119,106],[94,107],[108,108],[93,109],[117,110],[89,111],[88,98],[118,112],[90,113],[95,114],[96,2],[99,114],[86,2],[122,115],[112,116],[103,117],[104,118],[106,119],[102,120],[105,121],[115,98],[97,122],[98,123],[107,124],[87,125],[110,116],[109,114],[113,2],[116,126],[80,127]],"latestChangedDtsFile":"./index.d.ts","version":"5.6.3"}
1
+ {"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../src/index.ts","../../../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/ts5.6/index.d.ts","../../../../node_modules/@types/accepts/index.d.ts","../../../../node_modules/@types/aria-query/index.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../../node_modules/@types/babel__generator/index.d.ts","../../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../../node_modules/@types/babel__template/index.d.ts","../../../../node_modules/@types/babel__traverse/index.d.ts","../../../../node_modules/@types/babel__core/index.d.ts","../../../../node_modules/@types/bcryptjs/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/ws/index.d.ts","../../../../node_modules/bun-types/fetch.d.ts","../../../../node_modules/bun-types/globals.d.ts","../../../../node_modules/bun-types/bun.d.ts","../../../../node_modules/bun-types/overrides.d.ts","../../../../node_modules/bun-types/ffi.d.ts","../../../../node_modules/bun-types/test.d.ts","../../../../node_modules/bun-types/html-rewriter.d.ts","../../../../node_modules/bun-types/jsc.d.ts","../../../../node_modules/bun-types/sqlite.d.ts","../../../../node_modules/bun-types/wasm.d.ts","../../../../node_modules/bun-types/deprecated.d.ts","../../../../node_modules/bun-types/index.d.ts","../../../../node_modules/@types/bun/index.d.ts","../../../../node_modules/@types/content-disposition/index.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/send/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../node_modules/@types/keygrip/index.d.ts","../../../../node_modules/@types/cookies/index.d.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/jsonfile/index.d.ts","../../../../node_modules/@types/jsonfile/utils.d.ts","../../../../node_modules/@types/fs-extra/index.d.ts","../../../../node_modules/@types/http-assert/index.d.ts","../../../../node_modules/@types/is-hotkey/index.d.ts","../../../../node_modules/@types/js-levenshtein/index.d.ts","../../../../node_modules/@types/js-yaml/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/koa-compose/index.d.ts","../../../../node_modules/@types/koa/index.d.ts","../../../../node_modules/@types/koa-bodyparser/index.d.ts","../../../../node_modules/@types/koa-compress/index.d.ts","../../../../node_modules/@types/koa__cors/index.d.ts","../../../../node_modules/@types/mime-types/index.d.ts","../../../../node_modules/@types/mustache/index.d.ts","../../../../node_modules/form-data/index.d.ts","../../../../node_modules/@types/node-fetch/externals.d.ts","../../../../node_modules/@types/node-fetch/index.d.ts","../../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../../node_modules/@types/nodemailer/index.d.ts","../../../../node_modules/@types/npm-package-arg/index.d.ts","../../../../node_modules/@types/pg/node_modules/pg-types/index.d.ts","../../../../node_modules/pg-protocol/dist/messages.d.ts","../../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../../node_modules/pg-protocol/dist/parser.d.ts","../../../../node_modules/pg-protocol/dist/index.d.ts","../../../../node_modules/@types/pg/index.d.ts","../../../../node_modules/kleur/kleur.d.ts","../../../../node_modules/@types/prompts/index.d.ts","../../../../node_modules/@types/react-dom/index.d.ts","../../../../node_modules/@types/semver/classes/semver.d.ts","../../../../node_modules/@types/semver/functions/parse.d.ts","../../../../node_modules/@types/semver/functions/valid.d.ts","../../../../node_modules/@types/semver/functions/clean.d.ts","../../../../node_modules/@types/semver/functions/inc.d.ts","../../../../node_modules/@types/semver/functions/diff.d.ts","../../../../node_modules/@types/semver/functions/major.d.ts","../../../../node_modules/@types/semver/functions/minor.d.ts","../../../../node_modules/@types/semver/functions/patch.d.ts","../../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../../node_modules/@types/semver/functions/compare.d.ts","../../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../../node_modules/@types/semver/functions/sort.d.ts","../../../../node_modules/@types/semver/functions/rsort.d.ts","../../../../node_modules/@types/semver/functions/gt.d.ts","../../../../node_modules/@types/semver/functions/lt.d.ts","../../../../node_modules/@types/semver/functions/eq.d.ts","../../../../node_modules/@types/semver/functions/neq.d.ts","../../../../node_modules/@types/semver/functions/gte.d.ts","../../../../node_modules/@types/semver/functions/lte.d.ts","../../../../node_modules/@types/semver/functions/cmp.d.ts","../../../../node_modules/@types/semver/functions/coerce.d.ts","../../../../node_modules/@types/semver/classes/comparator.d.ts","../../../../node_modules/@types/semver/classes/range.d.ts","../../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../../node_modules/@types/semver/ranges/valid.d.ts","../../../../node_modules/@types/semver/ranges/outside.d.ts","../../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../../node_modules/@types/semver/ranges/subset.d.ts","../../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../../node_modules/@types/semver/index.d.ts","../../../../node_modules/@types/uuid/index.d.ts"],"fileIdsList":[[82,125,178,190,198],[82,125,190,198],[82,125,140,175,190,198],[82,125,178,179,180,181,182,190,198],[82,125,178,180,190,198],[82,125,140,175,185,190,198],[82,125,190,198,199],[82,125,140,175,185,190,198,209,210],[82,125,137,140,175,190,198,203,204,205],[82,125,186,190,198,204,206,208],[82,125,138,175,190,198,213,214],[82,125,138,167,175,190,198],[82,125,190,198,222],[82,125,173,175,190,198,222],[82,124,125,137,140,141,145,151,167,175,176,190,198,201,207,210,211,216,221],[82,125,140,167,175,190,198,228,229],[82,83,125,190,198],[82,124,125,190,198],[82,125,130,159,190,198],[82,125,126,131,137,138,145,156,167,190,198],[82,125,126,127,137,145,190,198],[82,125,128,168,190,198],[82,125,129,130,138,146,190,198],[82,125,130,156,164,190,198],[82,125,131,133,137,145,190,198],[82,124,125,132,190,198],[82,125,133,134,190,198],[82,125,137,190,198],[82,125,135,137,190,198],[82,124,125,137,190,198],[82,125,137,138,139,156,167,190,198],[82,125,137,138,139,152,156,159,190,191,198],[82,122,125,172,190,198],[82,125,133,137,140,145,156,167,190,198],[82,125,137,138,140,141,145,156,164,167,190,198],[82,125,140,142,156,164,167,190,198],[82,125,137,143,190,198],[82,125,144,167,172,190,198],[82,125,133,137,145,156,190,198],[82,125,146,190,198],[82,125,147,190,198],[82,124,125,148,190,198],[82,83,84,124,125,126,127,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,190,191,198],[82,125,150,190,198],[82,125,151,190,198],[82,125,137,152,153,190,198],[82,125,152,154,168,170,190,198],[82,125,137,156,157,158,159,190,198],[82,125,156,158,190,198],[82,125,156,157,190,198],[82,125,159,190,198],[82,125,160,190,198],[82,83,125,156,190,198],[82,125,137,162,163,190,198],[82,125,162,163,190,198],[82,125,130,145,156,164,190,191,198],[82,125,165,190,198],[125,190,198],[81,82,83,84,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,190,198],[82,125,145,166,190,198],[82,125,140,151,167,190,198],[82,125,130,168,190,198],[82,125,156,169,190,198],[82,125,144,170,190,198],[82,125,171,190,198],[82,125,130,137,139,148,156,167,170,172,190,198],[82,125,156,173,190,198],[82,125,175,190,198,232,234,238,239,240,241,242,243],[82,125,156,175,190,198],[82,125,137,175,190,198,232,234,235,237,244],[82,125,137,145,156,167,175,190,198,231,232,233,235,236,237,244],[82,125,156,175,190,198,234,235],[82,125,156,175,190,198,234],[82,125,175,190,198,232,234,235,237,244],[82,125,156,175,190,198,236],[82,125,137,145,156,164,175,190,191,198,233,235,237],[82,125,137,175,190,198,232,234,235,236,237,244],[82,125,137,156,175,190,198,232,233,234,235,236,237,244],[82,125,137,156,175,190,198,232,234,235,237,244],[82,125,140,156,175,190,198,237],[82,125,137,156,164,175,190,191,198,246,247,250,251],[82,125,156,175,190,198,252],[78,82,125,190,198],[75,76,77,82,125,190,198],[82,125,190,198,255,294],[82,125,190,198,255,279,294],[82,125,190,198,294],[82,125,190,198,255],[82,125,190,198,255,280,294],[82,125,190,198,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[82,125,190,198,280,294],[82,125,138,156,175,190,198,202],[82,125,140,175,190,198,203,207],[82,125,137,140,142,156,164,167,173,175,190,191,198],[82,125,130,164,168,191,198],[82,125,190],[82,122,125,190,198],[82,122,125,130,148,156,159,168,172,187,188,190,198],[82,125,175,187,188,189,190,191,192,193,194,195,196,197,198],[82,125,139,164,190,198],[82,125,190,193,198],[82,125,140,156,175,190,198],[82,125,175,190,198,247,248,249],[82,125,175,190,198],[82,125,156,175,190,198,247],[82,94,98,125,167,190,198],[82,94,125,156,167,190,198],[82,89,125,190,198],[82,91,94,125,164,167,190,191,198],[82,125,145,164,190,191,198],[82,89,125,175,190,198],[82,91,94,125,145,167,190,198],[82,86,87,90,93,125,137,156,167,190,198],[82,94,101,125,190,198],[82,86,92,125,190,198],[82,94,115,116,125,190,198],[82,90,94,125,159,167,175,190,198],[82,115,125,175,190,198],[82,88,89,125,175,190,198],[82,94,125,190,198],[82,88,89,90,91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,125,190,198],[82,94,109,125,190,198],[82,94,101,102,125,190,198],[82,92,94,102,103,125,190,198],[82,93,125,190,198],[82,86,89,94,125,190,198],[82,94,98,102,103,125,190,198],[82,98,125,190,198],[82,92,94,97,125,167,190,198],[82,86,91,94,101,125,190,198],[82,125,156,190,198],[82,89,94,115,125,172,175,190,198],[79,82,125,190,198]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"abee51ebffafd50c07d76be5848a34abfe4d791b5745ef1e5648718722fab924","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d540251809289a05349b70ab5f4b7b99f922af66ab3c39ba56a475dcf95d5ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"65ff5a0aefd7817a03c1ad04fee85c9cdd3ec415cc3c9efec85d8008d4d5e4ee","impliedFormat":1},{"version":"aea201321e7df78b294c9c39c61503ed81fb73b1b1703240013b557dfa25b016","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"51646b3c3c139dc279cd419617cb9c92061232060139bd33cae3ea44c15969fe","signature":"5dba60c20c6ba4771fced29dae4f4f3e5b9506b11b07457019d4dab99bccabad"},{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d1319e6b5d0efd8c5eae07eb864a00102151e8b9afddd2d45db52e9aae002c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"4eedea23b8a843ec0fd51a384fb6b9fe1bc89198f713d0465c2c8392a9d51271","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"c521f961c1606c94dc831992e659f426b6def6e2e6e327ee25d3c642eb393f95","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0de0233242682db9ac13efa0ddbb456a41abe6f291211b40ba3aa766b03e9b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"596572d40c1f13d8b57920d6d1a77c5ec6fe4952dc157f416f04a801cd3e2678","impliedFormat":1},{"version":"ad23fd126ff06e72728dd7bfc84326a8ca8cec2b9d2dac0193d42a777df0e7d8","impliedFormat":1},{"version":"a55fd4d49da86d2cc19de575beb1515184e55f5f3165e1482ff02fd99f900b5c","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"7edec695cdb707c7146ac34c44ca364469c7ea504344b3206c686e79f61b61a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"d1b1295af3667779be43eb6d4fbaa342e656aa2c4b77a4ad3cf42ec55baeea00","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"dd9492e12a57068f08d70cb5eb5ceb39fa5bcf23be01af574270aeee95b982af","impliedFormat":1},{"version":"e432b0e3761ca9ba734bdd41e19a75fec1454ca8e9769bfdf8b31011854cf06a","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"78955c9259da94920609be3e589fc9253268b3fffa822e1e31d28ee2ce0b8a74","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"73aa178e8fb1449ef3666093d8dca25f96302a80ee45f8ff027df8e4792bf9fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"fdedf82878e4c744bc2a1c1e802ae407d63474da51f14a54babe039018e53d8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"08353b04a3501d84fc8d7b49de99f6c1cc26026e6d9d697a18315f3bfe92ed03","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"710ad93f8de29dc15e5892aa735e72348b62f40a6d1220f2849837d332f92885","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f1da5d682cdb628890e4a8578fb9e8ab332e6a1a4b3a13fce08b7b4d45d192a","affectsGlobalScope":true,"impliedFormat":1},{"version":"efeedd8bbc5c0d53e760d8b120a010470722982e6ae14de8d1bcff66ebc2ae71","impliedFormat":1},{"version":"b718a94332858862943630649a310d6f8e9a09f86ae7215d8554e75bbbfd7817","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"483bb10b755f3572526fd76d9481221e8dc30568edcc1a9cc73479d8874bd16d","impliedFormat":1},{"version":"87f287f296f3ff07dbd14ea7853c2400d995dccd7bd83206196d6c0974774e96","impliedFormat":1},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"03f1d83d61696326ea29c8a1c15cbaccf61e92598d53f2ccae06078531f42448","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"3a9313fe5ace558b8b18e85f931da10b259e738775f411c061e5f15787b138eb","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"a3d3f704c5339a36da3ca8c62b29072f87e86c783b8452d235992142ec71aa2d","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"eb15edfcef078300657e1d5d678e1944b3518c2dd8f26792fdba2fe29f73d32b","impliedFormat":1},{"version":"720f5d028d71bc22ed4a5311a6ea884329db475d994f805ea86470111eccc1a1","impliedFormat":1},{"version":"8c4df6bbce66d5c39a40a642ce426ec1b2daf16e5be2e4c88751dab596745ab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"fd5e0d9b6792c4789055b2e44381f89d1328c7afa9e03755571f683b0732ed2b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3de9f829f53966384023e023185c0515d18b747f0001924a1919751e6ac5308d","affectsGlobalScope":true,"impliedFormat":1},{"version":"75e5eba775a6a65a949380d689933849e190fef8a12867eb6fe884141af09d30","impliedFormat":1},{"version":"8a5b54c46c65f2f4f7d594dfd9a9bc4fb719d7a2a65d4f582aa7240ca5145a03","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b8af6e8cf44313406800b820bffc49e83a8ec4598772db25954d03a86c96818","affectsGlobalScope":true,"impliedFormat":1},{"version":"95d4d18508a76d6a7036029d974d27e5ffddd742650f967dca22cf035518ca28","impliedFormat":1},{"version":"c3b50cb839f257e949470080b12c737ce0e585d198690dffc8cc4dd91821b083","impliedFormat":1},{"version":"d2e66d9477edaa0e4dea79d699f0855a5a7419915da740e28fbfdb322c6a60a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ca69bbf884a17e7a485bb4fcd129386874050916b275e414af14b2170b4ea728","affectsGlobalScope":true,"impliedFormat":1},{"version":"b52c121cd491cfdbea04c3a77d23e193c23cb411e7598a04ba13a4592842fe2f","impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"0504070e7eaba788f5d0d5926782ed177f1db01cee28363c488fae94950c0bbc","impliedFormat":1},{"version":"d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","impliedFormat":1},{"version":"b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","impliedFormat":1},{"version":"f0c3a51c7314523b169d4756b2df6e3e59a3f0d9bc4848248362edaf75b5d315","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"a899915e1fc41c6130d906ae77067b63ff2d678bb842b4c7a0741dca7f55c218","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"0e13570a7e86c6d83dd92e81758a930f63747483e2cd34ef36fcdb47d1f9726a","impliedFormat":1},{"version":"5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04","impliedFormat":1},{"version":"6847334317c1bc1e6fc4b679b0095bbd2b6ee3b85fe3f26fc26bac462f68ef5e","impliedFormat":1},{"version":"2224f3072e3cc07906eeed5c71746779511fba2dd224addc5489bcdb489bdee5","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"fbf802b3a028f5eb22ad406ee5fc7c368f0acfd3a2a6d0f805120766f5717ec8","impliedFormat":1},{"version":"0112a7f3c11fc4792e70f5d0d5c9f80ee6a1c5c548723714433da6a03307e87b","impliedFormat":1},{"version":"a8d630427635fa316e57fa4949132acde9cf23aa067220bffea30612497824cc","impliedFormat":1},{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7e8d3f08435ad2cefe67f58182618bfc9a0a29db08cf2544b94cbcae754a9bd9","impliedFormat":1},{"version":"8cf9b9045a614f883b623c2f1a631ec6a93321747e933330b2eec0ee47164a34","impliedFormat":1},{"version":"cee62e64fc4bdfb3798ab8e21486fadd2027ce4128349989acc63905366f91c5","impliedFormat":1},{"version":"f4b436d9b250c7e7087edef00fc0ecf9a62cbbbfe0f1d1c4f3888f1355c17eeb","impliedFormat":1},{"version":"643976e0b3d579304eafdb817bffc5b33bd8f99636ba9f5ee7a8d33288c1ae94","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"b58c81d4cc365d3986aee6c2a86592edc50f141b796899079196ffb103047390","impliedFormat":1},{"version":"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","impliedFormat":1},{"version":"4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","impliedFormat":1},{"version":"b70c7ea83a7d0de17a791d9b5283f664033a96362c42cc4d2b2e0bdaa65ef7d1","impliedFormat":1},{"version":"6825eb4d1c8beb77e9ed6681c830326a15ebf52b171f83ffbca1b1574c90a3b0","impliedFormat":1},{"version":"1741975791f9be7f803a826457273094096e8bba7a50f8fa960d5ed2328cdbcc","impliedFormat":1},{"version":"6ec0d1c15d14d63d08ccb10d09d839bf8a724f6b4b9ed134a3ab5042c54a7721","impliedFormat":1},{"version":"043a3b03dcb40d6b87d36ad26378c80086905232ee5602f067eaaed21baa42ef","impliedFormat":1},{"version":"b61028c5e29a0691e91a03fa2c4501ea7ed27f8fa536286dc2887a39a38b6c44","impliedFormat":1},{"version":"2c3bcb8a4ea2fcb4208a06672af7540dd65bf08298d742f041ffa6cbe487cf80","impliedFormat":1},{"version":"1cce0460d75645fc40044c729da9a16c2e0dabe11a58b5e4bfd62ac840a1835d","impliedFormat":1},{"version":"c784a9f75a6f27cf8c43cc9a12c66d68d3beb2e7376e1babfae5ae4998ffbc4a","impliedFormat":1},{"version":"feb4c51948d875fdbbaa402dad77ee40cf1752b179574094b613d8ad98921ce1","impliedFormat":1},{"version":"a6d3984b706cefe5f4a83c1d3f0918ff603475a2a3afa9d247e4114f18b1f1ef","impliedFormat":1},{"version":"b457d606cabde6ea3b0bc32c23dc0de1c84bb5cb06d9e101f7076440fc244727","impliedFormat":1},{"version":"9d59919309a2d462b249abdefba8ca36b06e8e480a77b36c0d657f83a63af465","impliedFormat":1},{"version":"9faa2661daa32d2369ec31e583df91fd556f74bcbd036dab54184303dee4f311","impliedFormat":1},{"version":"ba2e5b6da441b8cf9baddc30520c59dc3ab47ad3674f6cb51f64e7e1f662df12","impliedFormat":1},{"version":"da3d9c69fe4d916969f59b6553ac79b49e8dea8d35084733c396a3555d155f56","impliedFormat":1},{"version":"a589f9f052276a3fc00b75e62f73b93ea568fce3e935b86ed7052945f99d9dc2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"9b4f7ff9681448c72abe38ea8eefd7ffe0c3aefe495137f02012a08801373f71","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"1fcf48177cd64f25c193ecc0bf33995d54ea527e29f7faf8cf666f54f3fa0375","impliedFormat":1},{"version":"6ab263df6465e2ed8f1d02922bae18bb5b407020767de021449a4c509859b22e","impliedFormat":1},{"version":"6805621d9f970cda51ab1516e051febe5f3ec0e45b371c7ad98ac2700d13d57c","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"f874ea4d0091b0a44362a5f74d26caab2e66dec306c2bf7e8965f5106e784c3b","impliedFormat":1}],"root":[80],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"referencedMap":[[180,1],[178,2],[176,3],[177,2],[183,4],[179,1],[181,5],[182,1],[184,2],[186,6],[200,7],[185,3],[201,2],[211,8],[212,2],[206,9],[209,10],[215,11],[216,2],[207,2],[217,2],[218,2],[219,2],[220,2],[213,12],[214,2],[210,2],[223,13],[221,13],[224,14],[222,15],[225,13],[226,2],[202,2],[227,2],[229,2],[230,16],[83,17],[84,17],[124,18],[125,19],[126,20],[127,21],[128,22],[129,23],[130,24],[131,25],[132,26],[133,27],[134,27],[136,28],[135,29],[137,30],[138,31],[139,32],[123,33],[174,2],[140,34],[141,35],[142,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,42],[149,43],[150,44],[151,45],[152,46],[153,46],[154,47],[155,2],[156,48],[158,49],[157,50],[159,51],[160,52],[161,53],[162,54],[163,55],[164,56],[165,57],[82,58],[81,2],[175,59],[166,60],[167,61],[168,62],[169,63],[170,64],[171,65],[172,66],[173,67],[244,68],[231,69],[238,70],[234,71],[232,72],[235,73],[239,74],[240,70],[237,75],[236,76],[241,77],[242,78],[243,79],[233,80],[245,2],[251,81],[246,2],[253,82],[77,2],[204,2],[205,2],[254,83],[75,2],[78,84],[79,83],[279,85],[280,86],[255,87],[258,87],[277,85],[278,85],[268,85],[267,88],[265,85],[260,85],[273,85],[271,85],[275,85],[259,85],[272,85],[276,85],[261,85],[262,85],[274,85],[256,85],[263,85],[264,85],[266,85],[270,85],[281,89],[269,85],[257,85],[294,90],[293,2],[288,89],[290,91],[289,89],[282,89],[283,89],[285,89],[287,89],[291,91],[292,91],[284,91],[286,91],[203,92],[208,93],[295,2],[187,94],[85,2],[190,95],[198,96],[188,97],[192,2],[189,98],[194,2],[199,99],[195,2],[191,100],[196,2],[193,101],[197,2],[76,2],[228,102],[252,2],[250,103],[247,104],[249,105],[248,2],[73,2],[74,2],[12,2],[13,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[4,2],[25,2],[29,2],[26,2],[27,2],[28,2],[30,2],[31,2],[32,2],[5,2],[33,2],[34,2],[35,2],[36,2],[6,2],[40,2],[37,2],[38,2],[39,2],[41,2],[7,2],[42,2],[47,2],[48,2],[43,2],[44,2],[45,2],[46,2],[8,2],[52,2],[49,2],[50,2],[51,2],[53,2],[9,2],[54,2],[55,2],[56,2],[59,2],[57,2],[58,2],[60,2],[61,2],[10,2],[62,2],[1,2],[63,2],[64,2],[11,2],[69,2],[66,2],[65,2],[72,2],[70,2],[68,2],[71,2],[67,2],[101,106],[111,107],[100,106],[121,108],[92,109],[91,110],[120,104],[114,111],[119,112],[94,113],[108,114],[93,115],[117,116],[89,117],[88,104],[118,118],[90,119],[95,120],[96,2],[99,120],[86,2],[122,121],[112,122],[103,123],[104,124],[106,125],[102,126],[105,127],[115,104],[97,128],[98,129],[107,130],[87,131],[110,122],[109,120],[113,2],[116,132],[80,133]],"latestChangedDtsFile":"./index.d.ts","version":"5.6.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/typesafe",
3
- "version": "2.0.0-alpha.32",
3
+ "version": "2.0.0-alpha.35",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -26,4 +26,4 @@
26
26
  "@types/node": "^20.16.11"
27
27
  },
28
28
  "type": "module"
29
- }
29
+ }