convex-helpers 0.1.6 → 0.1.7

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.
@@ -204,11 +204,23 @@ type UnvalidatedBuilder<FuncType extends "query" | "mutation" | "action", ModCtx
204
204
  type CustomBuilder<FuncType extends "query" | "mutation" | "action", ModArgsValidator extends PropertyValidators, ModCtx extends Record<string, any>, ModMadeArgs extends Record<string, any>, InputCtx, Visibility extends FunctionVisibility> = ModArgsValidator extends EmptyObject ? ValidatedBuilder<FuncType, ModArgsValidator, ModCtx, ModMadeArgs, InputCtx, Visibility> & UnvalidatedBuilder<FuncType, ModCtx, ModMadeArgs, InputCtx, Visibility> : ValidatedBuilder<FuncType, ModArgsValidator, ModCtx, ModMadeArgs, InputCtx, Visibility>;
205
205
  type EmptyObject = Record<string, never>;
206
206
  type DefaultFunctionArgs = Record<string, unknown>;
207
- type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> = Z extends z.ZodNull ? Validator<null> : Z extends z.ZodNumber ? Validator<number> : Z extends z.ZodNaN ? Validator<number> : Z extends z.ZodBigInt ? Validator<bigint> : Z extends z.ZodBoolean ? Validator<boolean> : Z extends z.ZodString ? Validator<string> : Z extends z.ZodLiteral<infer Literal> ? Validator<Literal> : Z extends z.ZodArray<infer Inner> ? Validator<ConvexValidatorFromZodValidator<Inner>["type"][]> : Z extends z.ZodTuple<infer Inner> ? Validator<ConvexValidatorFromZodValidator<Inner[number]>["type"][]> : Z extends z.ZodObject<infer ZodShape> ? ReturnType<typeof v.object<{
208
- [key in keyof ZodShape]: ConvexValidatorFromZodValidator<ZodShape[key]>;
209
- }>> : Z extends z.ZodUnion<infer T> ? Validator<ConvexValidatorFromZodValidator<T[number]>["type"], false, ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]> : Z extends z.ZodDiscriminatedUnion<any, infer T> ? Validator<ConvexValidatorFromZodValidator<T[number]>["type"], false, ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]> : Z extends z.ZodEnum<infer T> ? Validator<T[number]> : Z extends z.ZodOptional<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodDefault<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodNullable<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, infer InnerOptional, infer InnerFieldPaths> ? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths> : never : Z extends z.ZodBranded<infer Inner, any> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodEffects<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodLazy<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodPipeline<infer Inner, any> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodReadonly<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodUnknown ? Validator<any, false, string> : Z extends z.ZodAny ? Validator<any, false, string> : never;
210
- export declare function zodToConvex<Z extends z.ZodTypeAny>(zod: Z): ConvexValidatorFromZodValidator<Z>;
211
- export declare function zodToConvexValidator<Z extends ZodValidator>(zod: Z): { [k in keyof Z]: ConvexValidatorFromZodValidator<Z[k]>; };
207
+ type ConvexValidatorFromZod<Z extends z.ZodTypeAny> = Z extends Zid<infer TableName> ? Validator<GenericId<TableName>> : Z extends z.ZodString ? Validator<string> : Z extends z.ZodNumber ? Validator<number> : Z extends z.ZodNaN ? Validator<number> : Z extends z.ZodBigInt ? Validator<bigint> : Z extends z.ZodBoolean ? Validator<boolean> : Z extends z.ZodNull ? Validator<null> : Z extends z.ZodUnknown ? Validator<any, false, string> : Z extends z.ZodAny ? Validator<any, false, string> : Z extends z.ZodArray<infer Inner> ? Validator<ConvexValidatorFromZod<Inner>["type"][]> : Z extends z.ZodObject<infer ZodShape> ? ReturnType<typeof v.object<{
208
+ [key in keyof ZodShape]: ConvexValidatorFromZod<ZodShape[key]>;
209
+ }>> : Z extends z.ZodUnion<infer T> ? Validator<ConvexValidatorFromZod<T[number]>["type"], false, ConvexValidatorFromZod<T[number]>["fieldPaths"]> : Z extends z.ZodDiscriminatedUnion<any, infer T> ? Validator<ConvexValidatorFromZod<T[number]>["type"], false, ConvexValidatorFromZod<T[number]>["fieldPaths"]> : Z extends z.ZodTuple<infer Inner> ? Validator<ConvexValidatorFromZod<Inner[number]>["type"][]> : Z extends z.ZodLazy<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodLiteral<infer Literal> ? Validator<Literal> : Z extends z.ZodEnum<infer T> ? Validator<T[number]> : Z extends z.ZodEffects<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodOptional<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodNullable<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, infer InnerOptional, infer InnerFieldPaths> ? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths> : never : Z extends z.ZodBranded<infer Inner, any> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodDefault<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodReadonly<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodPipeline<infer Inner, any> ? ConvexValidatorFromZod<Inner> : never;
210
+ /**
211
+ * Turn a Zod validator into a Convex Validator.
212
+ * @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
213
+ * @returns Convex Validator (e.g. `v.string()` from "convex/values")
214
+ */
215
+ export declare function zodToConvex<Z extends z.ZodTypeAny>(zod: Z): ConvexValidatorFromZod<Z>;
216
+ /**
217
+ * Like zodToConvex, but it takes in a bare object, as expected by Convex
218
+ * function arguments, or the argument to defineTable.
219
+ *
220
+ * @param zod Object with string keys and Zod validators as values
221
+ * @returns Object with the same keys, but with Convex validators as values
222
+ */
223
+ export declare function zodToConvexFields<Z extends ZodValidator>(zod: Z): { [k in keyof Z]: ConvexValidatorFromZod<Z[k]>; };
212
224
  interface ZidDef<TableName extends string> extends ZodTypeDef {
213
225
  typeName: "ConvexId";
214
226
  tableName: TableName;
@@ -72,7 +72,7 @@ export function zCustomQuery(query, mod) {
72
72
  const inputArgs = mod.args ?? NoOp.args;
73
73
  function customQueryBuilder(fn) {
74
74
  if ("args" in fn) {
75
- const convexValidator = zodToConvexValidator(fn.args);
75
+ const convexValidator = zodToConvexFields(fn.args);
76
76
  return query({
77
77
  args: {
78
78
  ...convexValidator,
@@ -171,7 +171,7 @@ export function zCustomMutation(mutation, mod) {
171
171
  const inputArgs = mod.args ?? NoOp.args;
172
172
  function customMutationBuilder(fn) {
173
173
  if ("args" in fn) {
174
- const convexValidator = zodToConvexValidator(fn.args);
174
+ const convexValidator = zodToConvexFields(fn.args);
175
175
  return mutation({
176
176
  args: {
177
177
  ...convexValidator,
@@ -270,7 +270,7 @@ export function zCustomAction(action, mod) {
270
270
  const inputArgs = mod.args ?? NoOp.args;
271
271
  function customActionBuilder(fn) {
272
272
  if ("args" in fn) {
273
- const convexValidator = zodToConvexValidator(fn.args);
273
+ const convexValidator = zodToConvexFields(fn.args);
274
274
  return action({
275
275
  args: {
276
276
  ...convexValidator,
@@ -309,6 +309,11 @@ export function zCustomAction(action, mod) {
309
309
  }
310
310
  return customActionBuilder;
311
311
  }
312
+ /**
313
+ * Turn a Zod validator into a Convex Validator.
314
+ * @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
315
+ * @returns Convex Validator (e.g. `v.string()` from "convex/values")
316
+ */
312
317
  export function zodToConvex(zod) {
313
318
  const typeName = zod._def.typeName;
314
319
  switch (typeName) {
@@ -335,7 +340,7 @@ export function zodToConvex(zod) {
335
340
  }
336
341
  return v.array(inner);
337
342
  case "ZodObject":
338
- return v.object(zodToConvexValidator(zod._def.shape()));
343
+ return v.object(zodToConvexFields(zod._def.shape()));
339
344
  case "ZodUnion":
340
345
  case "ZodDiscriminatedUnion":
341
346
  return v.union(...zod._def.options.map((v) => zodToConvex(v)));
@@ -393,7 +398,14 @@ export function zodToConvex(zod) {
393
398
  // case "ZodPromise":
394
399
  }
395
400
  }
396
- export function zodToConvexValidator(zod) {
401
+ /**
402
+ * Like zodToConvex, but it takes in a bare object, as expected by Convex
403
+ * function arguments, or the argument to defineTable.
404
+ *
405
+ * @param zod Object with string keys and Zod validators as values
406
+ * @returns Object with the same keys, but with Convex validators as values
407
+ */
408
+ export function zodToConvexFields(zod) {
397
409
  return Object.fromEntries(Object.entries(zod).map(([k, v]) => [k, zodToConvex(v)]));
398
410
  }
399
411
  class Zid extends z.ZodType {
@@ -1 +1 @@
1
- {"program":{"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.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.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.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.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.esnext.full.d.ts","../index.ts","../../../node_modules/convex/dist/cjs-types/values/value.d.ts","../../../node_modules/convex/dist/cjs-types/type_utils.d.ts","../../../node_modules/convex/dist/cjs-types/values/validator.d.ts","../../../node_modules/convex/dist/cjs-types/values/base64.d.ts","../../../node_modules/convex/dist/cjs-types/values/errors.d.ts","../../../node_modules/convex/dist/cjs-types/values/index.d.ts","../../../node_modules/convex/dist/cjs-types/server/authentication.d.ts","../../../node_modules/convex/dist/cjs-types/server/data_model.d.ts","../../../node_modules/convex/dist/cjs-types/server/filter_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/index_range_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/pagination.d.ts","../../../node_modules/convex/dist/cjs-types/server/search_filter_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/query.d.ts","../../../node_modules/convex/dist/cjs-types/server/system_fields.d.ts","../../../node_modules/convex/dist/cjs-types/server/schema.d.ts","../../../node_modules/convex/dist/cjs-types/server/database.d.ts","../../../node_modules/convex/dist/cjs-types/server/api.d.ts","../../../node_modules/convex/dist/cjs-types/server/scheduler.d.ts","../../../node_modules/convex/dist/cjs-types/server/vector_search.d.ts","../../../node_modules/convex/dist/cjs-types/server/registration.d.ts","../../../node_modules/convex/dist/cjs-types/server/impl/registration_impl.d.ts","../../../node_modules/convex/dist/cjs-types/server/storage.d.ts","../../../node_modules/convex/dist/cjs-types/server/cron.d.ts","../../../node_modules/convex/dist/cjs-types/server/router.d.ts","../../../node_modules/convex/dist/cjs-types/server/index.d.ts","../server/customfunctions.ts","../server/index.ts","../server/relationships.ts","../server/rowlevelsecurity.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../server/zod.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/chai/index.d.ts","../../../node_modules/@types/chai-subset/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.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/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/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/scheduler/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"fd1adc28ce106d6b5f7204355726a7ec922191ad5a8cc1a01841cbf9df9a7e64",{"version":"c2a823924fc122dc552efeaa3cfa702dbd12adcf8693b79f7f02a0e60235cd50","signature":"a28ee933b3456d6a6ad726672be51f091aa3f9096bf000178b7cf420c3a51c3c"},"4e07a72cf312f7fe912c6c17867d862204b0bfeb9810d63a2bedb8ca6357bf3d","56c7652b9e41b2acf8fc249f13bbf293f2fd5d20a6826a779fb13f2b41310285","59d2e32221c991779d3af380dae73daded3f318eb683ce124b4b1fecbcaf6f86","f37104775d567bf587acc198edd4baa7222f79810463d469375c8ef0d292a157","c5ee44dca52898ad7262cadc354f5e6f434a007c2d904a53ecfb4ee0e419b403","1b22bf4181b025cfdd10e2546b41a3c1abcf2025dd530653c07127763b7ffcbc","baceceaea822c7fe1cca74bf87399c1248fcf838d6b62496af7e32ddcb8e7d1f","a9535e9918939f1fb885995f9ae2aa5b564c0f5246a114e9627f369f48df300a","c4dd27a0c3897b8f1b7082f70d70f38231f0e0973813680c8ca08ddf0e7d16c1","b23fad2190be146426a7de0fa403e24fccbc9c985d49d22f8b9f39803db47699","dd50701fcd170682a5c8e6a8f257fff9b511da6e4b58945717ea49f6654d67b6","895d89df016d846222abdd633b1f6e3a7f4c820f56901dbda853916d302c16f2","fe05dff4d835a34d8b61468deeb948abf13e77378cb2ec24607f132f2a4065f4","4800737422c770084f6b337d9bba6ca9bc13a46850c783bb559bf9557e045233","ae9b47b32c38cdbb07cebfc9f63edd3b592004468b86d15cd39bacddb991f587","3cd49883d42900347aeb4fe5735469942b7312d17134b76b99475aa9ccceda28","1d992cebf65522bfc97001f776961bdef583d0271fabadde75a2d3656fa3ba37","0a2602130be5a581a921d84f465ce0f81e62c961b4d2ffe10e9bcd4060dd41cf","7c1c1d4c8fe888eecca43aa8d1bb12811c4915ffd27718b939c9bb127f2225bf","01a82190c278e5f6eabb33489a5c46753bf9e1522cbaa03fedc8e38054081d8e","d253a139c2c0bcb8d381a697aee2b74c7b7f82a7874f47e5a27512b8b1db332d","5c4621a72b5994b6c8d84ca2dc6592ab7288c70a72e86df68b89187f801ebfa7","0970d6bc6482adedadd5ea94c6bc7655b4c28c76fd3974681c83533da0b6aece","bef5bd9ab0763737d500e02d7ef79003a862caa9f2f2bbf76e234de65e806b50","c404c98ae44ff58ce335e15f620a7cf7a124c6e3ef4c1a0797edc2fc028a5353",{"version":"0c83b7895cb6232ed20f4228f70b0ccb0f20df48143b755679af3ac801055b5a","signature":"552925bc2f0412afde519fc7a2af34f9f1ef6a8dee9de9395890624ecb2367f7"},{"version":"d647f976284ee30c774a63f8984225e8bcecbc41457190185ebfe3482509b0f0","signature":"1c4b16669832a27f36d6e8a0413ac1e552ed2c381839dd1c4f3d90180367d518"},{"version":"4fd01212aa4f0f7a272685724101f4b63de5dba1fc84384c041d853abec071b7","signature":"a1d828034144c16cf3922502dcc5b6599cf5160f4886153f8da011a6073d2326"},{"version":"be5da689332fb4f1ddd5dc4bf652f846cc1f16a8861137327a213107b8edfd05","signature":"924f5ac90704260ef266adc2ae8eaa7cc8ffa30b24789c72f7730af7e0718622"},"5487b97cfa28b26b4a9ef0770f872bdbebd4c46124858de00f242c3eed7519f4","7a01f546ace66019156e4232a1bee2fabc2f8eabeb052473d926ee1693956265","fb53b1c6a6c799b7e3cc2de3fb5c9a1c04a1c60d4380a37792d84c5f8b33933b","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","98a9cc18f661d28e6bd31c436e1984f3980f35e0f0aa9cf795c54f8ccb667ffe","c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","2a317fff5810a628d205a507998a77521120b462b03d36babf6eb387da991bee","f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802",{"version":"c22a0890d332b14e1ceae2d3d778d19eb6ea5eb1c5af964e79704e2fb5d2fadf","signature":"83c500e29ad5ee71c794df881c6919cc38ca35f4fc03d1e95cf38ff907b290e6"},"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","923c136dcbf20f140c369078a7eb56f6697889d104397d694f70e21dd08b1810","7a1f3d0b8dd0e869c58b44848d9f0be3592c3ff6dc77091e7130306f6d2907ed","8041cfce439ff29d339742389de04c136e3029d6b1817f07b2d7fcbfb7534990","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","29a46d003ca3c721e6405f00dee7e3de91b14e09701eba5d887bf76fb2d47d38","069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9",{"version":"4a2c144ea6f441e9616ec77fe9b1009b0cdf6db0cd9727b8d99623975cd6c693","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"cc5e65fb1729463665074b9d7163e78a4225b7af7f3a6b3c74492f415166612f","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"185282b122cbca820c297a02a57b89cf5967ab43e220e3e174d872d3f9a94d2c","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","e8968b394e4365588f8f89cfff86435258cf10062585c1d2224627ab92acda22","285e512c7a0db217a0599e18c462d565fa35be4a5153dd7b80bee88c83e83ddf","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","1f758340b027b18ae8773ac3d33a60648a2af49eaae9e4fde18d0a0dd608642c","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"dea4c00820d4fac5e530d4842aed2fb20d6744d75a674b95502cbd433f88bcb0","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"0d832a0650a74aafc276cb3f7bb26bde2e2270a6f87e6c871a64122e9203079b","affectsGlobalScope":true},{"version":"c6f3869f12bb5c3bb8ecd0b050ea20342b89b944eae18d313cde6b0ccc0925d7","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","d742ed2db6d5425b3b6ac5fb1f2e4b1ed2ae74fbeee8d0030d852121a4b05d2f","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"2225100373ca3d63bcc7f206e1177152d2e2161285a0bd83c8374db1503a0d1f","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","4a34b074b11c3597fb2ff890bc8f1484375b3b80793ab01f974534808d5777c7",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","9ed09d4538e25fc79cefc5e7b5bfbae0464f06d2984f19da009f85d13656c211",{"version":"3b75495c77f85fef76a898491b2eff2e4eb80a37d798a8ad8b39a578c2303859","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","b1bf87add0ccfb88472cd4c6013853d823a7efb791c10bb7a11679526be91eda",{"version":"edb93fbb31a9296c1d569c37527a8dafd296887d98fed055c223881507cdbbc1","affectsGlobalScope":true},"8a02143a323c05741ec49533d54c4928dbf6618d297d855f12114304c3b69846","4ef960df4f672e93b479f88211ed8b5cfa8a598b97aafa3396cacdc3341e3504"],"root":[69,[95,98],112],"options":{"composite":true,"module":99,"noFallthroughCasesInSwitch":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[114],[114,115,116,117,118],[114,116],[120],[122],[157],[158,163,191],[159,170,171,178,188,199],[159,160,170,178],[161,200],[162,163,171,179],[163,188,196],[164,166,170,178],[165],[166,167],[170],[168,170],[157,170],[170,171,172,188,199],[170,171,172,185,188,191],[155,158,204],[166,170,173,178,188,199],[170,171,173,174,178,188,196,199],[173,175,188,196,199],[122,123,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206],[170,176],[177,199,204],[166,170,178,188],[179],[180],[157,181],[182,198,204],[183],[184],[170,185,186],[185,187,200,202],[158,170,188,189,190,191],[158,188,190],[188,189],[191],[192],[157,188],[170,194,195],[194,195],[163,178,188,196],[197],[178,198],[158,173,184,199],[163,200],[188,201],[177,202],[203],[158,163,170,172,181,188,199,202,204],[188,205],[212],[208,209,210,211],[71,80,89],[75,86,87],[75],[75,77,82,83,84],[75,77],[77,89],[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],[77],[72],[77,78,79,80,81],[70,71,72,77,86,87,88,94],[89],[70,86],[71,72,77,83],[71,75,77],[70,77],[70],[70,72,73,74],[70,71],[132,136,199],[132,188,199],[127],[129,132,196,199],[178,196],[207],[127,207],[129,132,178,199],[124,125,128,131,158,170,188,199],[124,130],[128,132,158,191,199,207],[158,207],[148,158,207],[126,127,207],[132],[126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154],[132,139,140],[130,132,140,141],[131],[124,127,132],[132,136,140,141],[136],[130,132,135,199],[124,129,130,132,136,139],[158,188],[127,132,148,158,204,207],[110],[101,102],[99,100,101,103,104,108],[100,101],[109],[101],[99,100,101,104,105,106,107],[99,100,110],[75,94],[69,75,94],[75,94,95,111],[71,72,75,83,94],[94]],"referencedMap":[[116,1],[119,2],[115,1],[117,3],[118,1],[121,4],[122,5],[123,5],[157,6],[158,7],[159,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,15],[169,16],[168,17],[170,18],[171,19],[172,20],[156,21],[173,22],[174,23],[175,24],[207,25],[176,26],[177,27],[178,28],[179,29],[180,30],[181,31],[182,32],[183,33],[184,34],[185,35],[186,35],[187,36],[188,37],[190,38],[189,39],[191,40],[192,41],[193,42],[194,43],[195,44],[196,45],[197,46],[198,47],[199,48],[200,49],[201,50],[202,51],[203,52],[204,53],[205,54],[213,55],[212,56],[86,57],[92,58],[77,59],[85,60],[78,61],[90,62],[94,63],[79,64],[80,65],[82,66],[89,67],[93,68],[87,69],[84,70],[81,64],[91,59],[83,71],[88,72],[74,73],[75,74],[72,75],[139,76],[146,77],[138,76],[153,78],[130,79],[129,80],[152,81],[147,82],[150,83],[132,84],[131,85],[127,86],[126,87],[149,88],[128,89],[133,90],[137,90],[155,91],[154,90],[141,92],[142,93],[144,94],[140,95],[143,96],[148,81],[135,97],[136,98],[145,99],[125,100],[151,101],[111,102],[103,103],[109,104],[104,105],[107,102],[110,106],[102,107],[108,108],[101,109],[95,110],[96,110],[97,111],[98,110],[112,112]],"exportedModulesMap":[[116,1],[119,2],[115,1],[117,3],[118,1],[121,4],[122,5],[123,5],[157,6],[158,7],[159,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,15],[169,16],[168,17],[170,18],[171,19],[172,20],[156,21],[173,22],[174,23],[175,24],[207,25],[176,26],[177,27],[178,28],[179,29],[180,30],[181,31],[182,32],[183,33],[184,34],[185,35],[186,35],[187,36],[188,37],[190,38],[189,39],[191,40],[192,41],[193,42],[194,43],[195,44],[196,45],[197,46],[198,47],[199,48],[200,49],[201,50],[202,51],[203,52],[204,53],[205,54],[213,55],[212,56],[86,57],[92,58],[77,59],[85,60],[78,61],[90,62],[94,63],[79,64],[80,65],[82,66],[89,67],[93,68],[87,69],[84,70],[81,64],[91,59],[83,71],[88,72],[74,73],[75,74],[72,75],[139,76],[146,77],[138,76],[153,78],[130,79],[129,80],[152,81],[147,82],[150,83],[132,84],[131,85],[127,86],[126,87],[149,88],[128,89],[133,90],[137,90],[155,91],[154,90],[141,92],[142,93],[144,94],[140,95],[143,96],[148,81],[135,97],[136,98],[145,99],[125,100],[151,101],[111,102],[103,103],[109,104],[104,105],[107,102],[110,106],[102,107],[108,108],[101,109],[95,110],[96,113],[97,110],[98,114],[112,112]],"semanticDiagnosticsPerFile":[116,114,113,119,115,117,118,121,120,122,123,157,158,159,160,161,162,163,164,165,166,167,169,168,170,171,172,156,206,173,174,175,207,176,177,178,179,180,181,182,183,184,185,186,187,188,190,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,208,213,209,212,214,211,86,76,92,77,85,78,90,94,79,80,82,89,93,87,84,81,91,83,88,71,73,74,75,72,70,210,139,146,138,153,130,129,152,147,150,132,131,127,126,149,128,133,134,137,124,155,154,141,142,144,140,143,148,135,136,145,125,151,111,103,109,105,106,104,107,99,100,110,102,108,101,69,66,67,12,13,17,16,2,18,19,20,21,22,23,24,25,3,4,26,30,27,28,29,31,32,33,5,34,35,36,37,6,41,38,39,40,42,7,43,48,49,44,45,46,47,8,53,50,51,52,54,9,55,56,57,60,58,59,61,62,10,1,11,65,64,68,63,15,14,95,96,97,98,112],"latestChangedDtsFile":"./server/zod.d.ts"},"version":"5.3.3"}
1
+ {"program":{"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.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.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.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.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.esnext.full.d.ts","../index.ts","../../../node_modules/convex/dist/cjs-types/values/value.d.ts","../../../node_modules/convex/dist/cjs-types/type_utils.d.ts","../../../node_modules/convex/dist/cjs-types/values/validator.d.ts","../../../node_modules/convex/dist/cjs-types/values/base64.d.ts","../../../node_modules/convex/dist/cjs-types/values/errors.d.ts","../../../node_modules/convex/dist/cjs-types/values/index.d.ts","../../../node_modules/convex/dist/cjs-types/server/authentication.d.ts","../../../node_modules/convex/dist/cjs-types/server/data_model.d.ts","../../../node_modules/convex/dist/cjs-types/server/filter_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/index_range_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/pagination.d.ts","../../../node_modules/convex/dist/cjs-types/server/search_filter_builder.d.ts","../../../node_modules/convex/dist/cjs-types/server/query.d.ts","../../../node_modules/convex/dist/cjs-types/server/system_fields.d.ts","../../../node_modules/convex/dist/cjs-types/server/schema.d.ts","../../../node_modules/convex/dist/cjs-types/server/database.d.ts","../../../node_modules/convex/dist/cjs-types/server/api.d.ts","../../../node_modules/convex/dist/cjs-types/server/scheduler.d.ts","../../../node_modules/convex/dist/cjs-types/server/vector_search.d.ts","../../../node_modules/convex/dist/cjs-types/server/registration.d.ts","../../../node_modules/convex/dist/cjs-types/server/impl/registration_impl.d.ts","../../../node_modules/convex/dist/cjs-types/server/storage.d.ts","../../../node_modules/convex/dist/cjs-types/server/cron.d.ts","../../../node_modules/convex/dist/cjs-types/server/router.d.ts","../../../node_modules/convex/dist/cjs-types/server/index.d.ts","../server/customfunctions.ts","../server/index.ts","../server/relationships.ts","../server/rowlevelsecurity.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../server/zod.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/chai/index.d.ts","../../../node_modules/@types/chai-subset/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.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/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/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/scheduler/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"fd1adc28ce106d6b5f7204355726a7ec922191ad5a8cc1a01841cbf9df9a7e64",{"version":"c2a823924fc122dc552efeaa3cfa702dbd12adcf8693b79f7f02a0e60235cd50","signature":"a28ee933b3456d6a6ad726672be51f091aa3f9096bf000178b7cf420c3a51c3c"},"4e07a72cf312f7fe912c6c17867d862204b0bfeb9810d63a2bedb8ca6357bf3d","56c7652b9e41b2acf8fc249f13bbf293f2fd5d20a6826a779fb13f2b41310285","59d2e32221c991779d3af380dae73daded3f318eb683ce124b4b1fecbcaf6f86","f37104775d567bf587acc198edd4baa7222f79810463d469375c8ef0d292a157","c5ee44dca52898ad7262cadc354f5e6f434a007c2d904a53ecfb4ee0e419b403","1b22bf4181b025cfdd10e2546b41a3c1abcf2025dd530653c07127763b7ffcbc","baceceaea822c7fe1cca74bf87399c1248fcf838d6b62496af7e32ddcb8e7d1f","a9535e9918939f1fb885995f9ae2aa5b564c0f5246a114e9627f369f48df300a","c4dd27a0c3897b8f1b7082f70d70f38231f0e0973813680c8ca08ddf0e7d16c1","b23fad2190be146426a7de0fa403e24fccbc9c985d49d22f8b9f39803db47699","dd50701fcd170682a5c8e6a8f257fff9b511da6e4b58945717ea49f6654d67b6","895d89df016d846222abdd633b1f6e3a7f4c820f56901dbda853916d302c16f2","fe05dff4d835a34d8b61468deeb948abf13e77378cb2ec24607f132f2a4065f4","4800737422c770084f6b337d9bba6ca9bc13a46850c783bb559bf9557e045233","ae9b47b32c38cdbb07cebfc9f63edd3b592004468b86d15cd39bacddb991f587","3cd49883d42900347aeb4fe5735469942b7312d17134b76b99475aa9ccceda28","1d992cebf65522bfc97001f776961bdef583d0271fabadde75a2d3656fa3ba37","0a2602130be5a581a921d84f465ce0f81e62c961b4d2ffe10e9bcd4060dd41cf","7c1c1d4c8fe888eecca43aa8d1bb12811c4915ffd27718b939c9bb127f2225bf","01a82190c278e5f6eabb33489a5c46753bf9e1522cbaa03fedc8e38054081d8e","d253a139c2c0bcb8d381a697aee2b74c7b7f82a7874f47e5a27512b8b1db332d","5c4621a72b5994b6c8d84ca2dc6592ab7288c70a72e86df68b89187f801ebfa7","0970d6bc6482adedadd5ea94c6bc7655b4c28c76fd3974681c83533da0b6aece","bef5bd9ab0763737d500e02d7ef79003a862caa9f2f2bbf76e234de65e806b50","c404c98ae44ff58ce335e15f620a7cf7a124c6e3ef4c1a0797edc2fc028a5353",{"version":"0c83b7895cb6232ed20f4228f70b0ccb0f20df48143b755679af3ac801055b5a","signature":"552925bc2f0412afde519fc7a2af34f9f1ef6a8dee9de9395890624ecb2367f7"},{"version":"d647f976284ee30c774a63f8984225e8bcecbc41457190185ebfe3482509b0f0","signature":"1c4b16669832a27f36d6e8a0413ac1e552ed2c381839dd1c4f3d90180367d518"},{"version":"4fd01212aa4f0f7a272685724101f4b63de5dba1fc84384c041d853abec071b7","signature":"a1d828034144c16cf3922502dcc5b6599cf5160f4886153f8da011a6073d2326"},{"version":"be5da689332fb4f1ddd5dc4bf652f846cc1f16a8861137327a213107b8edfd05","signature":"924f5ac90704260ef266adc2ae8eaa7cc8ffa30b24789c72f7730af7e0718622"},"5487b97cfa28b26b4a9ef0770f872bdbebd4c46124858de00f242c3eed7519f4","7a01f546ace66019156e4232a1bee2fabc2f8eabeb052473d926ee1693956265","fb53b1c6a6c799b7e3cc2de3fb5c9a1c04a1c60d4380a37792d84c5f8b33933b","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","98a9cc18f661d28e6bd31c436e1984f3980f35e0f0aa9cf795c54f8ccb667ffe","c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","2a317fff5810a628d205a507998a77521120b462b03d36babf6eb387da991bee","f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802",{"version":"1f363efa1d234e6bd2014faf34c93d43f9b1d390b68866e6dcff302e5b866215","signature":"fa575a7c8c22e4dbff5f6532e7bd0ebc1f970934543d2fd62cdc6688da00920c"},"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","923c136dcbf20f140c369078a7eb56f6697889d104397d694f70e21dd08b1810","7a1f3d0b8dd0e869c58b44848d9f0be3592c3ff6dc77091e7130306f6d2907ed","8041cfce439ff29d339742389de04c136e3029d6b1817f07b2d7fcbfb7534990","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","29a46d003ca3c721e6405f00dee7e3de91b14e09701eba5d887bf76fb2d47d38","069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9",{"version":"4a2c144ea6f441e9616ec77fe9b1009b0cdf6db0cd9727b8d99623975cd6c693","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"cc5e65fb1729463665074b9d7163e78a4225b7af7f3a6b3c74492f415166612f","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"185282b122cbca820c297a02a57b89cf5967ab43e220e3e174d872d3f9a94d2c","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","e8968b394e4365588f8f89cfff86435258cf10062585c1d2224627ab92acda22","285e512c7a0db217a0599e18c462d565fa35be4a5153dd7b80bee88c83e83ddf","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","1f758340b027b18ae8773ac3d33a60648a2af49eaae9e4fde18d0a0dd608642c","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"dea4c00820d4fac5e530d4842aed2fb20d6744d75a674b95502cbd433f88bcb0","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"0d832a0650a74aafc276cb3f7bb26bde2e2270a6f87e6c871a64122e9203079b","affectsGlobalScope":true},{"version":"c6f3869f12bb5c3bb8ecd0b050ea20342b89b944eae18d313cde6b0ccc0925d7","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","d742ed2db6d5425b3b6ac5fb1f2e4b1ed2ae74fbeee8d0030d852121a4b05d2f","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"2225100373ca3d63bcc7f206e1177152d2e2161285a0bd83c8374db1503a0d1f","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","4a34b074b11c3597fb2ff890bc8f1484375b3b80793ab01f974534808d5777c7",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","9ed09d4538e25fc79cefc5e7b5bfbae0464f06d2984f19da009f85d13656c211",{"version":"3b75495c77f85fef76a898491b2eff2e4eb80a37d798a8ad8b39a578c2303859","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","b1bf87add0ccfb88472cd4c6013853d823a7efb791c10bb7a11679526be91eda",{"version":"edb93fbb31a9296c1d569c37527a8dafd296887d98fed055c223881507cdbbc1","affectsGlobalScope":true},"8a02143a323c05741ec49533d54c4928dbf6618d297d855f12114304c3b69846","4ef960df4f672e93b479f88211ed8b5cfa8a598b97aafa3396cacdc3341e3504"],"root":[69,[95,98],112],"options":{"composite":true,"module":99,"noFallthroughCasesInSwitch":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[114],[114,115,116,117,118],[114,116],[120],[122],[157],[158,163,191],[159,170,171,178,188,199],[159,160,170,178],[161,200],[162,163,171,179],[163,188,196],[164,166,170,178],[165],[166,167],[170],[168,170],[157,170],[170,171,172,188,199],[170,171,172,185,188,191],[155,158,204],[166,170,173,178,188,199],[170,171,173,174,178,188,196,199],[173,175,188,196,199],[122,123,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206],[170,176],[177,199,204],[166,170,178,188],[179],[180],[157,181],[182,198,204],[183],[184],[170,185,186],[185,187,200,202],[158,170,188,189,190,191],[158,188,190],[188,189],[191],[192],[157,188],[170,194,195],[194,195],[163,178,188,196],[197],[178,198],[158,173,184,199],[163,200],[188,201],[177,202],[203],[158,163,170,172,181,188,199,202,204],[188,205],[212],[208,209,210,211],[71,80,89],[75,86,87],[75],[75,77,82,83,84],[75,77],[77,89],[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],[77],[72],[77,78,79,80,81],[70,71,72,77,86,87,88,94],[89],[70,86],[71,72,77,83],[71,75,77],[70,77],[70],[70,72,73,74],[70,71],[132,136,199],[132,188,199],[127],[129,132,196,199],[178,196],[207],[127,207],[129,132,178,199],[124,125,128,131,158,170,188,199],[124,130],[128,132,158,191,199,207],[158,207],[148,158,207],[126,127,207],[132],[126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154],[132,139,140],[130,132,140,141],[131],[124,127,132],[132,136,140,141],[136],[130,132,135,199],[124,129,130,132,136,139],[158,188],[127,132,148,158,204,207],[110],[101,102],[99,100,101,103,104,108],[100,101],[109],[101],[99,100,101,104,105,106,107],[99,100,110],[75,94],[69,75,94],[75,94,95,111],[71,72,75,83,94],[94]],"referencedMap":[[116,1],[119,2],[115,1],[117,3],[118,1],[121,4],[122,5],[123,5],[157,6],[158,7],[159,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,15],[169,16],[168,17],[170,18],[171,19],[172,20],[156,21],[173,22],[174,23],[175,24],[207,25],[176,26],[177,27],[178,28],[179,29],[180,30],[181,31],[182,32],[183,33],[184,34],[185,35],[186,35],[187,36],[188,37],[190,38],[189,39],[191,40],[192,41],[193,42],[194,43],[195,44],[196,45],[197,46],[198,47],[199,48],[200,49],[201,50],[202,51],[203,52],[204,53],[205,54],[213,55],[212,56],[86,57],[92,58],[77,59],[85,60],[78,61],[90,62],[94,63],[79,64],[80,65],[82,66],[89,67],[93,68],[87,69],[84,70],[81,64],[91,59],[83,71],[88,72],[74,73],[75,74],[72,75],[139,76],[146,77],[138,76],[153,78],[130,79],[129,80],[152,81],[147,82],[150,83],[132,84],[131,85],[127,86],[126,87],[149,88],[128,89],[133,90],[137,90],[155,91],[154,90],[141,92],[142,93],[144,94],[140,95],[143,96],[148,81],[135,97],[136,98],[145,99],[125,100],[151,101],[111,102],[103,103],[109,104],[104,105],[107,102],[110,106],[102,107],[108,108],[101,109],[95,110],[96,110],[97,111],[98,110],[112,112]],"exportedModulesMap":[[116,1],[119,2],[115,1],[117,3],[118,1],[121,4],[122,5],[123,5],[157,6],[158,7],[159,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,15],[169,16],[168,17],[170,18],[171,19],[172,20],[156,21],[173,22],[174,23],[175,24],[207,25],[176,26],[177,27],[178,28],[179,29],[180,30],[181,31],[182,32],[183,33],[184,34],[185,35],[186,35],[187,36],[188,37],[190,38],[189,39],[191,40],[192,41],[193,42],[194,43],[195,44],[196,45],[197,46],[198,47],[199,48],[200,49],[201,50],[202,51],[203,52],[204,53],[205,54],[213,55],[212,56],[86,57],[92,58],[77,59],[85,60],[78,61],[90,62],[94,63],[79,64],[80,65],[82,66],[89,67],[93,68],[87,69],[84,70],[81,64],[91,59],[83,71],[88,72],[74,73],[75,74],[72,75],[139,76],[146,77],[138,76],[153,78],[130,79],[129,80],[152,81],[147,82],[150,83],[132,84],[131,85],[127,86],[126,87],[149,88],[128,89],[133,90],[137,90],[155,91],[154,90],[141,92],[142,93],[144,94],[140,95],[143,96],[148,81],[135,97],[136,98],[145,99],[125,100],[151,101],[111,102],[103,103],[109,104],[104,105],[107,102],[110,106],[102,107],[108,108],[101,109],[95,110],[96,113],[97,110],[98,114],[112,112]],"semanticDiagnosticsPerFile":[116,114,113,119,115,117,118,121,120,122,123,157,158,159,160,161,162,163,164,165,166,167,169,168,170,171,172,156,206,173,174,175,207,176,177,178,179,180,181,182,183,184,185,186,187,188,190,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,208,213,209,212,214,211,86,76,92,77,85,78,90,94,79,80,82,89,93,87,84,81,91,83,88,71,73,74,75,72,70,210,139,146,138,153,130,129,152,147,150,132,131,127,126,149,128,133,134,137,124,155,154,141,142,144,140,143,148,135,136,145,125,151,111,103,109,105,106,104,107,99,100,110,102,108,101,69,66,67,12,13,17,16,2,18,19,20,21,22,23,24,25,3,4,26,30,27,28,29,31,32,33,5,34,35,36,37,6,41,38,39,40,42,7,43,48,49,44,45,46,47,8,53,50,51,52,54,9,55,56,57,60,58,59,61,62,10,1,11,65,64,68,63,15,14,95,96,97,98,112],"latestChangedDtsFile":"./server/zod.d.ts"},"version":"5.3.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convex-helpers",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "A collection of useful code to complement the official convex package.",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",
@@ -1,4 +1,4 @@
1
- import { zCustomQuery, zodToConvexValidator } from "./zod";
1
+ import { zCustomQuery, zodToConvexFields } from "./zod";
2
2
  import { z } from "zod";
3
3
  import { v } from "convex/values";
4
4
  import { useQuery } from "convex/react";
@@ -157,7 +157,7 @@ declare const api: ApiFromModules<{
157
157
 
158
158
  assert(
159
159
  sameType(
160
- zodToConvexValidator({
160
+ zodToConvexFields({
161
161
  s: z.string().email().max(5),
162
162
  n: z.number(),
163
163
  nan: z.nan(),
@@ -189,7 +189,7 @@ assert(
189
189
  );
190
190
  assert(
191
191
  sameType(
192
- zodToConvexValidator({
192
+ zodToConvexFields({
193
193
  simpleArray: z.array(z.boolean()),
194
194
  tuple: z.tuple([z.boolean(), z.boolean()]),
195
195
  enum: z.enum(["a", "b"]),
@@ -221,7 +221,7 @@ assert(
221
221
  );
222
222
  assert(
223
223
  sameType(
224
- zodToConvexValidator({
224
+ zodToConvexFields({
225
225
  transformed: z.transformer(z.string(), {
226
226
  type: "refinement",
227
227
  refinement: () => true,
package/server/zod.ts CHANGED
@@ -103,7 +103,7 @@ export function zCustomQuery<
103
103
  const inputArgs = mod.args ?? NoOp.args;
104
104
  function customQueryBuilder(fn: any): any {
105
105
  if ("args" in fn) {
106
- const convexValidator = zodToConvexValidator(fn.args);
106
+ const convexValidator = zodToConvexFields(fn.args);
107
107
  return query({
108
108
  args: {
109
109
  ...convexValidator,
@@ -227,7 +227,7 @@ export function zCustomMutation<
227
227
  const inputArgs = mod.args ?? NoOp.args;
228
228
  function customMutationBuilder(fn: any): any {
229
229
  if ("args" in fn) {
230
- const convexValidator = zodToConvexValidator(fn.args);
230
+ const convexValidator = zodToConvexFields(fn.args);
231
231
  return mutation({
232
232
  args: {
233
233
  ...convexValidator,
@@ -351,7 +351,7 @@ export function zCustomAction<
351
351
  const inputArgs = mod.args ?? NoOp.args;
352
352
  function customActionBuilder(fn: any): any {
353
353
  if ("args" in fn) {
354
- const convexValidator = zodToConvexValidator(fn.args);
354
+ const convexValidator = zodToConvexFields(fn.args);
355
355
  return action({
356
356
  args: {
357
357
  ...convexValidator,
@@ -500,9 +500,12 @@ type CustomBuilder<
500
500
  type EmptyObject = Record<string, never>;
501
501
  type DefaultFunctionArgs = Record<string, unknown>;
502
502
 
503
- type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
504
- Z extends z.ZodNull
505
- ? Validator<null>
503
+ type ConvexValidatorFromZod<Z extends z.ZodTypeAny> =
504
+ // Keep this in sync with zodToConvex implementation
505
+ Z extends Zid<infer TableName>
506
+ ? Validator<GenericId<TableName>>
507
+ : Z extends z.ZodString
508
+ ? Validator<string>
506
509
  : Z extends z.ZodNumber
507
510
  ? Validator<number>
508
511
  : Z extends z.ZodNaN
@@ -511,46 +514,44 @@ type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
511
514
  ? Validator<bigint>
512
515
  : Z extends z.ZodBoolean
513
516
  ? Validator<boolean>
514
- : Z extends z.ZodString
515
- ? Validator<string>
516
- : Z extends z.ZodLiteral<infer Literal>
517
- ? Validator<Literal>
517
+ : Z extends z.ZodNull
518
+ ? Validator<null>
519
+ : Z extends z.ZodUnknown
520
+ ? Validator<any, false, string>
521
+ : Z extends z.ZodAny
522
+ ? Validator<any, false, string>
518
523
  : Z extends z.ZodArray<infer Inner>
519
- ? Validator<ConvexValidatorFromZodValidator<Inner>["type"][]>
520
- : Z extends z.ZodTuple<infer Inner>
521
- ? Validator<ConvexValidatorFromZodValidator<Inner[number]>["type"][]>
524
+ ? Validator<ConvexValidatorFromZod<Inner>["type"][]>
522
525
  : Z extends z.ZodObject<infer ZodShape>
523
526
  ? ReturnType<
524
527
  typeof v.object<{
525
- [key in keyof ZodShape]: ConvexValidatorFromZodValidator<
526
- ZodShape[key]
527
- >;
528
+ [key in keyof ZodShape]: ConvexValidatorFromZod<ZodShape[key]>;
528
529
  }>
529
530
  >
530
531
  : Z extends z.ZodUnion<infer T>
531
532
  ? Validator<
532
- ConvexValidatorFromZodValidator<T[number]>["type"],
533
+ ConvexValidatorFromZod<T[number]>["type"],
533
534
  false,
534
- ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]
535
+ ConvexValidatorFromZod<T[number]>["fieldPaths"]
535
536
  >
536
537
  : Z extends z.ZodDiscriminatedUnion<any, infer T>
537
538
  ? Validator<
538
- ConvexValidatorFromZodValidator<T[number]>["type"],
539
+ ConvexValidatorFromZod<T[number]>["type"],
539
540
  false,
540
- ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]
541
+ ConvexValidatorFromZod<T[number]>["fieldPaths"]
541
542
  >
543
+ : Z extends z.ZodTuple<infer Inner>
544
+ ? Validator<ConvexValidatorFromZod<Inner[number]>["type"][]>
545
+ : Z extends z.ZodLazy<infer Inner>
546
+ ? ConvexValidatorFromZod<Inner>
547
+ : Z extends z.ZodLiteral<infer Literal>
548
+ ? Validator<Literal>
542
549
  : Z extends z.ZodEnum<infer T>
543
550
  ? Validator<T[number]>
551
+ : Z extends z.ZodEffects<infer Inner>
552
+ ? ConvexValidatorFromZod<Inner>
544
553
  : Z extends z.ZodOptional<infer Inner>
545
- ? ConvexValidatorFromZodValidator<Inner> extends Validator<
546
- infer InnerConvex,
547
- false,
548
- infer InnerFieldPaths
549
- >
550
- ? Validator<InnerConvex | undefined, true, InnerFieldPaths>
551
- : never
552
- : Z extends z.ZodDefault<infer Inner> // Treat like optional
553
- ? ConvexValidatorFromZodValidator<Inner> extends Validator<
554
+ ? ConvexValidatorFromZod<Inner> extends Validator<
554
555
  infer InnerConvex,
555
556
  false,
556
557
  infer InnerFieldPaths
@@ -558,7 +559,7 @@ type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
558
559
  ? Validator<InnerConvex | undefined, true, InnerFieldPaths>
559
560
  : never
560
561
  : Z extends z.ZodNullable<infer Inner>
561
- ? ConvexValidatorFromZodValidator<Inner> extends Validator<
562
+ ? ConvexValidatorFromZod<Inner> extends Validator<
562
563
  infer InnerConvex,
563
564
  infer InnerOptional,
564
565
  infer InnerFieldPaths
@@ -566,23 +567,23 @@ type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
566
567
  ? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths>
567
568
  : never
568
569
  : Z extends z.ZodBranded<infer Inner, any>
569
- ? ConvexValidatorFromZodValidator<Inner>
570
- : Z extends z.ZodEffects<infer Inner>
571
- ? ConvexValidatorFromZodValidator<Inner>
572
- : Z extends z.ZodLazy<infer Inner>
573
- ? ConvexValidatorFromZodValidator<Inner>
574
- : Z extends z.ZodPipeline<infer Inner, any> // Validate input type
575
- ? ConvexValidatorFromZodValidator<Inner>
570
+ ? ConvexValidatorFromZod<Inner>
571
+ : Z extends z.ZodDefault<infer Inner> // Treat like optional
572
+ ? ConvexValidatorFromZod<Inner> extends Validator<
573
+ infer InnerConvex,
574
+ false,
575
+ infer InnerFieldPaths
576
+ >
577
+ ? Validator<InnerConvex | undefined, true, InnerFieldPaths>
578
+ : never
576
579
  : Z extends z.ZodReadonly<infer Inner>
577
- ? ConvexValidatorFromZodValidator<Inner>
578
- : Z extends z.ZodUnknown
579
- ? Validator<any, false, string>
580
- : Z extends z.ZodAny
581
- ? Validator<any, false, string>
580
+ ? ConvexValidatorFromZod<Inner>
581
+ : Z extends z.ZodPipeline<infer Inner, any> // Validate input type
582
+ ? ConvexValidatorFromZod<Inner>
582
583
  : // Some that are a bit unknown
583
584
  // : Z extends z.ZodDate ? Validator<number>
584
- // : Z extends z.ZodNever ? Validator<never>
585
585
  // : Z extends z.ZodSymbol ? Validator<symbol>
586
+ // : Z extends z.ZodNever ? Validator<never>
586
587
  // : Z extends z.ZodIntersection<infer T, infer U>
587
588
  // ? Validator<
588
589
  // ConvexValidatorFromZodValidator<T>["type"] &
@@ -601,68 +602,69 @@ type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
601
602
  // : Z extends z.ZodTypeAny
602
603
  never;
603
604
 
605
+ /**
606
+ * Turn a Zod validator into a Convex Validator.
607
+ * @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
608
+ * @returns Convex Validator (e.g. `v.string()` from "convex/values")
609
+ */
604
610
  export function zodToConvex<Z extends z.ZodTypeAny>(
605
611
  zod: Z
606
- ): ConvexValidatorFromZodValidator<Z> {
612
+ ): ConvexValidatorFromZod<Z> {
607
613
  const typeName: ZodFirstPartyTypeKind | "ConvexId" = zod._def.typeName;
608
614
  switch (typeName) {
609
615
  case "ConvexId":
610
- return v.id(zod._def.tableName) as ConvexValidatorFromZodValidator<Z>;
616
+ return v.id(zod._def.tableName) as ConvexValidatorFromZod<Z>;
611
617
  case "ZodString":
612
- return v.string() as ConvexValidatorFromZodValidator<Z>;
618
+ return v.string() as ConvexValidatorFromZod<Z>;
613
619
  case "ZodNumber":
614
620
  case "ZodNaN":
615
- return v.number() as ConvexValidatorFromZodValidator<Z>;
621
+ return v.number() as ConvexValidatorFromZod<Z>;
616
622
  case "ZodBigInt":
617
- return v.int64() as ConvexValidatorFromZodValidator<Z>;
623
+ return v.int64() as ConvexValidatorFromZod<Z>;
618
624
  case "ZodBoolean":
619
- return v.boolean() as ConvexValidatorFromZodValidator<Z>;
625
+ return v.boolean() as ConvexValidatorFromZod<Z>;
620
626
  case "ZodNull":
621
- return v.null() as ConvexValidatorFromZodValidator<Z>;
627
+ return v.null() as ConvexValidatorFromZod<Z>;
622
628
  case "ZodAny":
623
629
  case "ZodUnknown":
624
- return v.any() as ConvexValidatorFromZodValidator<Z>;
630
+ return v.any() as ConvexValidatorFromZod<Z>;
625
631
  case "ZodArray":
626
632
  const inner = zodToConvex(zod._def.type);
627
633
  if (inner.isOptional) {
628
634
  throw new Error("Arrays of optional values are not supported");
629
635
  }
630
- return v.array(inner) as ConvexValidatorFromZodValidator<Z>;
636
+ return v.array(inner) as ConvexValidatorFromZod<Z>;
631
637
  case "ZodObject":
632
638
  return v.object(
633
- zodToConvexValidator(zod._def.shape())
634
- ) as ConvexValidatorFromZodValidator<Z>;
639
+ zodToConvexFields(zod._def.shape())
640
+ ) as ConvexValidatorFromZod<Z>;
635
641
  case "ZodUnion":
636
642
  case "ZodDiscriminatedUnion":
637
643
  return v.union(
638
644
  ...zod._def.options.map((v: z.ZodTypeAny) => zodToConvex(v))
639
- ) as ConvexValidatorFromZodValidator<Z>;
645
+ ) as ConvexValidatorFromZod<Z>;
640
646
  case "ZodTuple":
641
647
  const allTypes = zod._def.items.map((v: z.ZodTypeAny) => zodToConvex(v));
642
648
  if (zod._def.rest) {
643
649
  allTypes.push(zodToConvex(zod._def.rest));
644
650
  }
645
- return v.array(
646
- v.union(...allTypes)
647
- ) as ConvexValidatorFromZodValidator<Z>;
651
+ return v.array(v.union(...allTypes)) as ConvexValidatorFromZod<Z>;
648
652
  case "ZodLazy":
649
- return zodToConvex(
650
- zod._def.getter()
651
- ) as ConvexValidatorFromZodValidator<Z>;
653
+ return zodToConvex(zod._def.getter()) as ConvexValidatorFromZod<Z>;
652
654
  case "ZodLiteral":
653
- return v.literal(zod._def.value) as ConvexValidatorFromZodValidator<Z>;
655
+ return v.literal(zod._def.value) as ConvexValidatorFromZod<Z>;
654
656
  case "ZodEnum":
655
657
  return v.union(
656
658
  ...zod._def.values.map((l: string | number | boolean | bigint) =>
657
659
  v.literal(l)
658
660
  )
659
- ) as ConvexValidatorFromZodValidator<Z>;
661
+ ) as ConvexValidatorFromZod<Z>;
660
662
  case "ZodEffects":
661
- return zodToConvex(zod._def.schema) as ConvexValidatorFromZodValidator<Z>;
663
+ return zodToConvex(zod._def.schema) as ConvexValidatorFromZod<Z>;
662
664
  case "ZodOptional":
663
665
  return v.optional(
664
666
  zodToConvex((zod as any).unwrap()) as any
665
- ) as ConvexValidatorFromZodValidator<Z>;
667
+ ) as ConvexValidatorFromZod<Z>;
666
668
  case "ZodNullable":
667
669
  const nullable = zodToConvex((zod as any).unwrap());
668
670
  if (nullable.isOptional) {
@@ -670,25 +672,21 @@ export function zodToConvex<Z extends z.ZodTypeAny>(
670
672
  // Casting to any to ignore the mismatch of optional
671
673
  return v.optional(
672
674
  v.union(v.null(), nullable as any)
673
- ) as ConvexValidatorFromZodValidator<Z>;
675
+ ) as ConvexValidatorFromZod<Z>;
674
676
  }
675
- return v.union(v.null(), nullable) as ConvexValidatorFromZodValidator<Z>;
677
+ return v.union(v.null(), nullable) as ConvexValidatorFromZod<Z>;
676
678
  case "ZodBranded":
677
- return zodToConvex(
678
- (zod as any).unwrap()
679
- ) as ConvexValidatorFromZodValidator<Z>;
679
+ return zodToConvex((zod as any).unwrap()) as ConvexValidatorFromZod<Z>;
680
680
  case "ZodDefault":
681
681
  const withDefault = zodToConvex(zod._def.innerType);
682
682
  if (withDefault.isOptional) {
683
- return withDefault as ConvexValidatorFromZodValidator<Z>;
683
+ return withDefault as ConvexValidatorFromZod<Z>;
684
684
  }
685
- return v.optional(withDefault) as ConvexValidatorFromZodValidator<Z>;
685
+ return v.optional(withDefault) as ConvexValidatorFromZod<Z>;
686
686
  case "ZodReadonly":
687
- return zodToConvex(
688
- zod._def.innerType
689
- ) as ConvexValidatorFromZodValidator<Z>;
687
+ return zodToConvex(zod._def.innerType) as ConvexValidatorFromZod<Z>;
690
688
  case "ZodPipeline":
691
- return zodToConvex(zod._def.in) as ConvexValidatorFromZodValidator<Z>;
689
+ return zodToConvex(zod._def.in) as ConvexValidatorFromZod<Z>;
692
690
  default:
693
691
  throw new Error(`Unknown zod type: ${typeName}`);
694
692
  // N/A or not supported
@@ -708,10 +706,17 @@ export function zodToConvex<Z extends z.ZodTypeAny>(
708
706
  }
709
707
  }
710
708
 
711
- export function zodToConvexValidator<Z extends ZodValidator>(zod: Z) {
709
+ /**
710
+ * Like zodToConvex, but it takes in a bare object, as expected by Convex
711
+ * function arguments, or the argument to defineTable.
712
+ *
713
+ * @param zod Object with string keys and Zod validators as values
714
+ * @returns Object with the same keys, but with Convex validators as values
715
+ */
716
+ export function zodToConvexFields<Z extends ZodValidator>(zod: Z) {
712
717
  return Object.fromEntries(
713
718
  Object.entries(zod).map(([k, v]) => [k, zodToConvex(v)])
714
- ) as { [k in keyof Z]: ConvexValidatorFromZodValidator<Z[k]> };
719
+ ) as { [k in keyof Z]: ConvexValidatorFromZod<Z[k]> };
715
720
  }
716
721
 
717
722
  interface ZidDef<TableName extends string> extends ZodTypeDef {