cdk-common 2.0.368 → 2.0.369

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/.jsii +3 -3
  2. package/lib/main.js +1 -1
  3. package/node_modules/@aws-cdk/assert/LICENSE +1 -1
  4. package/node_modules/@aws-cdk/assert/NOTICE +1 -1
  5. package/node_modules/@aws-cdk/assert/package.json +8 -8
  6. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +1 -1
  7. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +1 -1
  8. package/node_modules/@aws-cdk/cfnspec/package.json +3 -3
  9. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +1 -1
  10. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +1 -1
  11. package/node_modules/@aws-cdk/cloudformation-diff/package.json +4 -4
  12. package/node_modules/table/node_modules/ajv/README.md +5 -4
  13. package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.d.ts +5 -5
  14. package/node_modules/table/node_modules/ajv/dist/compile/codegen/index.d.ts +2 -2
  15. package/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.d.ts +5 -5
  16. package/node_modules/table/node_modules/ajv/dist/compile/index.d.ts +1 -1
  17. package/node_modules/table/node_modules/ajv/dist/compile/jtd/serialize.js +18 -7
  18. package/node_modules/table/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -1
  19. package/node_modules/table/node_modules/ajv/dist/compile/jtd/types.d.ts +2 -2
  20. package/node_modules/table/node_modules/ajv/dist/compile/resolve.d.ts +1 -1
  21. package/node_modules/table/node_modules/ajv/dist/compile/rules.d.ts +2 -2
  22. package/node_modules/table/node_modules/ajv/dist/compile/util.d.ts +2 -2
  23. package/node_modules/table/node_modules/ajv/dist/compile/validate/dataType.d.ts +1 -1
  24. package/node_modules/table/node_modules/ajv/dist/compile/validate/index.js +11 -1
  25. package/node_modules/table/node_modules/ajv/dist/compile/validate/index.js.map +1 -1
  26. package/node_modules/table/node_modules/ajv/dist/compile/validate/subschema.d.ts +1 -1
  27. package/node_modules/table/node_modules/ajv/dist/core.d.ts +3 -3
  28. package/node_modules/table/node_modules/ajv/dist/jtd.d.ts +1 -1
  29. package/node_modules/table/node_modules/ajv/dist/runtime/equal.d.ts +1 -1
  30. package/node_modules/table/node_modules/ajv/dist/runtime/re2.d.ts +1 -1
  31. package/node_modules/table/node_modules/ajv/dist/runtime/uri.d.ts +1 -1
  32. package/node_modules/table/node_modules/ajv/dist/types/index.d.ts +19 -19
  33. package/node_modules/table/node_modules/ajv/dist/types/json-schema.d.ts +14 -14
  34. package/node_modules/table/node_modules/ajv/dist/types/jtd-schema.d.ts +30 -25
  35. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +1 -1
  36. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +1 -1
  37. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +1 -1
  38. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +1 -1
  39. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +2 -2
  40. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +1 -1
  41. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +1 -1
  42. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +1 -1
  43. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +1 -1
  44. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +1 -1
  45. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +1 -1
  46. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +1 -1
  47. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +1 -1
  48. package/node_modules/table/node_modules/ajv/dist/vocabularies/errors.d.ts +1 -1
  49. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/format.d.ts +1 -1
  50. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +1 -1
  51. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +1 -1
  52. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +1 -1
  53. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +1 -1
  54. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +1 -1
  55. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +3 -3
  56. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.js +8 -5
  57. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -1
  58. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +3 -3
  59. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +1 -1
  60. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.js +10 -7
  61. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -1
  62. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +1 -1
  63. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +1 -1
  64. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/const.d.ts +1 -1
  65. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +1 -1
  66. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +1 -1
  67. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/index.d.ts +2 -2
  68. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +3 -3
  69. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +1 -1
  70. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +1 -1
  71. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/required.d.ts +1 -1
  72. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +1 -1
  73. package/node_modules/table/node_modules/ajv/lib/compile/jtd/serialize.ts +20 -14
  74. package/node_modules/table/node_modules/ajv/lib/compile/validate/index.ts +10 -1
  75. package/node_modules/table/node_modules/ajv/lib/types/jtd-schema.ts +21 -11
  76. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/properties.ts +13 -6
  77. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/values.ts +10 -7
  78. package/node_modules/table/node_modules/ajv/package.json +5 -5
  79. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import * as equal from "fast-deep-equal";
2
- declare type Equal = typeof equal & {
2
+ type Equal = typeof equal & {
3
3
  code: string;
4
4
  };
5
5
  declare const _default: Equal;
@@ -1,5 +1,5 @@
1
1
  import * as re2 from "re2";
2
- declare type Re2 = typeof re2 & {
2
+ type Re2 = typeof re2 & {
3
3
  code: string;
4
4
  };
5
5
  declare const _default: Re2;
@@ -1,5 +1,5 @@
1
1
  import * as uri from "uri-js";
2
- declare type URI = typeof uri & {
2
+ type URI = typeof uri & {
3
3
  code: string;
4
4
  };
5
5
  declare const _default: URI;
@@ -20,10 +20,10 @@ export interface SchemaObject extends _SchemaObject {
20
20
  export interface AsyncSchema extends _SchemaObject {
21
21
  $async: true;
22
22
  }
23
- export declare type AnySchemaObject = SchemaObject | AsyncSchema;
24
- export declare type Schema = SchemaObject | boolean;
25
- export declare type AnySchema = Schema | AsyncSchema;
26
- export declare type SchemaMap = {
23
+ export type AnySchemaObject = SchemaObject | AsyncSchema;
24
+ export type Schema = SchemaObject | boolean;
25
+ export type AnySchema = Schema | AsyncSchema;
26
+ export type SchemaMap = {
27
27
  [Key in string]?: AnySchema;
28
28
  };
29
29
  export interface SourceCode {
@@ -56,10 +56,10 @@ export interface JTDParser<T = unknown> {
56
56
  message?: string;
57
57
  position?: number;
58
58
  }
59
- export declare type EvaluatedProperties = {
59
+ export type EvaluatedProperties = {
60
60
  [K in string]?: true;
61
61
  } | true;
62
- export declare type EvaluatedItems = number | true;
62
+ export type EvaluatedItems = number | true;
63
63
  export interface Evaluated {
64
64
  props?: EvaluatedProperties;
65
65
  items?: EvaluatedItems;
@@ -70,7 +70,7 @@ export interface AsyncValidateFunction<T = unknown> extends ValidateFunction<T>
70
70
  (...args: Parameters<ValidateFunction<T>>): Promise<T>;
71
71
  $async: true;
72
72
  }
73
- export declare type AnyValidateFunction<T = any> = ValidateFunction<T> | AsyncValidateFunction<T>;
73
+ export type AnyValidateFunction<T = any> = ValidateFunction<T> | AsyncValidateFunction<T>;
74
74
  export interface ErrorObject<K extends string = string, P = Record<string, any>, S = unknown> {
75
75
  keyword: K;
76
76
  instancePath: string;
@@ -82,7 +82,7 @@ export interface ErrorObject<K extends string = string, P = Record<string, any>,
82
82
  parentSchema?: AnySchemaObject;
83
83
  data?: unknown;
84
84
  }
85
- export declare type ErrorNoParams<K extends string, S = unknown> = ErrorObject<K, Record<string, never>, S>;
85
+ export type ErrorNoParams<K extends string, S = unknown> = ErrorObject<K, Record<string, never>, S>;
86
86
  interface _KeywordDef {
87
87
  keyword: string | string[];
88
88
  type?: JSONType | JSONType[];
@@ -102,8 +102,8 @@ export interface CodeKeywordDefinition extends _KeywordDef {
102
102
  code: (cxt: KeywordCxt, ruleType?: string) => void;
103
103
  trackErrors?: boolean;
104
104
  }
105
- export declare type MacroKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaCxt) => AnySchema;
106
- export declare type CompileKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaObjCxt) => DataValidateFunction;
105
+ export type MacroKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaCxt) => AnySchema;
106
+ export type CompileKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaObjCxt) => DataValidateFunction;
107
107
  export interface DataValidateFunction {
108
108
  (...args: Parameters<ValidateFunction>): boolean | Promise<any>;
109
109
  errors?: Partial<ErrorObject>[];
@@ -124,8 +124,8 @@ export interface FuncKeywordDefinition extends _KeywordDef {
124
124
  export interface MacroKeywordDefinition extends FuncKeywordDefinition {
125
125
  macro: MacroKeywordFunc;
126
126
  }
127
- export declare type KeywordDefinition = CodeKeywordDefinition | FuncKeywordDefinition | MacroKeywordDefinition;
128
- export declare type AddedKeywordDefinition = KeywordDefinition & {
127
+ export type KeywordDefinition = CodeKeywordDefinition | FuncKeywordDefinition | MacroKeywordDefinition;
128
+ export type AddedKeywordDefinition = KeywordDefinition & {
129
129
  type: JSONType[];
130
130
  schemaType: JSONType[];
131
131
  };
@@ -133,7 +133,7 @@ export interface KeywordErrorDefinition {
133
133
  message: string | Code | ((cxt: KeywordErrorCxt) => string | Code);
134
134
  params?: Code | ((cxt: KeywordErrorCxt) => Code);
135
135
  }
136
- export declare type Vocabulary = (KeywordDefinition | string)[];
136
+ export type Vocabulary = (KeywordDefinition | string)[];
137
137
  export interface KeywordErrorCxt {
138
138
  gen: CodeGen;
139
139
  keyword: string;
@@ -148,12 +148,12 @@ export interface KeywordErrorCxt {
148
148
  params: KeywordCxtParams;
149
149
  it: SchemaCxt;
150
150
  }
151
- export declare type KeywordCxtParams = {
151
+ export type KeywordCxtParams = {
152
152
  [P in string]?: Code | string | number;
153
153
  };
154
- export declare type FormatValidator<T extends string | number> = (data: T) => boolean;
155
- export declare type FormatCompare<T extends string | number> = (data1: T, data2: T) => number | undefined;
156
- export declare type AsyncFormatValidator<T extends string | number> = (data: T) => Promise<boolean>;
154
+ export type FormatValidator<T extends string | number> = (data: T) => boolean;
155
+ export type FormatCompare<T extends string | number> = (data1: T, data2: T) => number | undefined;
156
+ export type AsyncFormatValidator<T extends string | number> = (data: T) => Promise<boolean>;
157
157
  export interface FormatDefinition<T extends string | number> {
158
158
  type?: T extends string ? "string" | undefined : "number";
159
159
  validate: FormatValidator<T> | (T extends string ? string | RegExp : never);
@@ -166,8 +166,8 @@ export interface AsyncFormatDefinition<T extends string | number> {
166
166
  async: true;
167
167
  compare?: FormatCompare<T>;
168
168
  }
169
- export declare type AddedFormat = true | RegExp | FormatValidator<string> | FormatDefinition<string> | FormatDefinition<number> | AsyncFormatDefinition<string> | AsyncFormatDefinition<number>;
170
- export declare type Format = AddedFormat | string;
169
+ export type AddedFormat = true | RegExp | FormatValidator<string> | FormatDefinition<string> | FormatDefinition<number> | AsyncFormatDefinition<string> | AsyncFormatDefinition<number>;
170
+ export type Format = AddedFormat | string;
171
171
  export interface RegExpEngine {
172
172
  (pattern: string, u: string): RegExpLike;
173
173
  code: string;
@@ -1,9 +1,9 @@
1
- declare type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name}` : Type;
2
- declare type UnionToIntersection<U> = (U extends any ? (_: U) => void : never) extends (_: infer I) => void ? I : never;
3
- export declare type SomeJSONSchema = UncheckedJSONSchemaType<Known, true>;
4
- declare type UncheckedPartialSchema<T> = Partial<UncheckedJSONSchemaType<T, true>>;
5
- export declare type PartialSchema<T> = StrictNullChecksWrapper<"PartialSchema", UncheckedPartialSchema<T>>;
6
- declare type JSONType<T extends string, IsPartial extends boolean> = IsPartial extends true ? T | undefined : T;
1
+ type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name}` : Type;
2
+ type UnionToIntersection<U> = (U extends any ? (_: U) => void : never) extends (_: infer I) => void ? I : never;
3
+ export type SomeJSONSchema = UncheckedJSONSchemaType<Known, true>;
4
+ type UncheckedPartialSchema<T> = Partial<UncheckedJSONSchemaType<T, true>>;
5
+ export type PartialSchema<T> = StrictNullChecksWrapper<"PartialSchema", UncheckedPartialSchema<T>>;
6
+ type JSONType<T extends string, IsPartial extends boolean> = IsPartial extends true ? T | undefined : T;
7
7
  interface NumberKeywords {
8
8
  minimum?: number;
9
9
  maximum?: number;
@@ -18,7 +18,7 @@ interface StringKeywords {
18
18
  pattern?: string;
19
19
  format?: string;
20
20
  }
21
- declare type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (// these two unions allow arbitrary unions of types
21
+ type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (// these two unions allow arbitrary unions of types
22
22
  {
23
23
  anyOf: readonly UncheckedJSONSchemaType<T, IsPartial>[];
24
24
  } | {
@@ -97,21 +97,21 @@ declare type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (// these t
97
97
  $defs?: Record<string, UncheckedJSONSchemaType<Known, true>>;
98
98
  definitions?: Record<string, UncheckedJSONSchemaType<Known, true>>;
99
99
  };
100
- export declare type JSONSchemaType<T> = StrictNullChecksWrapper<"JSONSchemaType", UncheckedJSONSchemaType<T, false>>;
101
- declare type Known = {
100
+ export type JSONSchemaType<T> = StrictNullChecksWrapper<"JSONSchemaType", UncheckedJSONSchemaType<T, false>>;
101
+ type Known = {
102
102
  [key: string]: Known;
103
103
  } | [Known, ...Known[]] | Known[] | number | string | boolean | null;
104
- declare type UncheckedPropertiesSchema<T> = {
104
+ type UncheckedPropertiesSchema<T> = {
105
105
  [K in keyof T]-?: (UncheckedJSONSchemaType<T[K], false> & Nullable<T[K]>) | {
106
106
  $ref: string;
107
107
  };
108
108
  };
109
- export declare type PropertiesSchema<T> = StrictNullChecksWrapper<"PropertiesSchema", UncheckedPropertiesSchema<T>>;
110
- declare type UncheckedRequiredMembers<T> = {
109
+ export type PropertiesSchema<T> = StrictNullChecksWrapper<"PropertiesSchema", UncheckedPropertiesSchema<T>>;
110
+ type UncheckedRequiredMembers<T> = {
111
111
  [K in keyof T]-?: undefined extends T[K] ? never : K;
112
112
  }[keyof T];
113
- export declare type RequiredMembers<T> = StrictNullChecksWrapper<"RequiredMembers", UncheckedRequiredMembers<T>>;
114
- declare type Nullable<T> = undefined extends T ? {
113
+ export type RequiredMembers<T> = StrictNullChecksWrapper<"RequiredMembers", UncheckedRequiredMembers<T>>;
114
+ type Nullable<T> = undefined extends T ? {
115
115
  nullable: true;
116
116
  const?: null;
117
117
  enum?: Readonly<(T | null)[]>;
@@ -1,9 +1,9 @@
1
1
  /** numeric strings */
2
- declare type NumberType = "float32" | "float64" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
2
+ type NumberType = "float32" | "float64" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
3
3
  /** string strings */
4
- declare type StringType = "string" | "timestamp";
4
+ type StringType = "string" | "timestamp";
5
5
  /** Generic JTD Schema without inference of the represented type */
6
- export declare type SomeJTDSchemaType = (// ref
6
+ export type SomeJTDSchemaType = (// ref
7
7
  {
8
8
  ref: string;
9
9
  } | {
@@ -31,32 +31,34 @@ export declare type SomeJTDSchemaType = (// ref
31
31
  definitions?: Record<string, SomeJTDSchemaType>;
32
32
  };
33
33
  /** required keys of an object, not undefined */
34
- declare type RequiredKeys<T> = {
34
+ type RequiredKeys<T> = {
35
35
  [K in keyof T]-?: undefined extends T[K] ? never : K;
36
36
  }[keyof T];
37
37
  /** optional or undifined-able keys of an object */
38
- declare type OptionalKeys<T> = {
38
+ type OptionalKeys<T> = {
39
39
  [K in keyof T]-?: undefined extends T[K] ? K : never;
40
40
  }[keyof T];
41
41
  /** type is true if T is a union type */
42
- declare type IsUnion_<T, U extends T = T> = false extends (T extends unknown ? ([U] extends [T] ? false : true) : never) ? false : true;
43
- declare type IsUnion<T> = IsUnion_<T>;
42
+ type IsUnion_<T, U extends T = T> = false extends (T extends unknown ? ([U] extends [T] ? false : true) : never) ? false : true;
43
+ type IsUnion<T> = IsUnion_<T>;
44
44
  /** type is true if T is identically E */
45
- declare type TypeEquality<T, E> = [T] extends [E] ? ([E] extends [T] ? true : false) : false;
45
+ type TypeEquality<T, E> = [T] extends [E] ? ([E] extends [T] ? true : false) : false;
46
46
  /** type is true if T or null is identically E or null*/
47
- declare type NullTypeEquality<T, E> = TypeEquality<T | null, E | null>;
47
+ type NullTypeEquality<T, E> = TypeEquality<T | null, E | null>;
48
48
  /** gets only the string literals of a type or null if a type isn't a string literal */
49
- declare type EnumString<T> = [T] extends [never] ? null : T extends string ? string extends T ? null : T : null;
49
+ type EnumString<T> = [T] extends [never] ? null : T extends string ? string extends T ? null : T : null;
50
50
  /** true if type is a union of string literals */
51
- declare type IsEnum<T> = null extends EnumString<Exclude<T, null>> ? false : true;
51
+ type IsEnum<T> = null extends EnumString<T> ? false : true;
52
52
  /** true only if all types are array types (not tuples) */
53
- declare type IsElements<T> = false extends IsUnion<T> ? [T] extends [readonly unknown[]] ? undefined extends T[0.5] ? false : true : false : false;
53
+ type IsElements<T> = false extends IsUnion<T> ? [T] extends [readonly unknown[]] ? undefined extends T[0.5] ? false : true : false : false;
54
54
  /** true if the the type is a values type */
55
- declare type IsValues<T> = false extends IsUnion<Exclude<T, null>> ? TypeEquality<keyof Exclude<T, null>, string> : false;
56
- /** true if type is a proeprties type and Union is false, or type is a discriminator type and Union is true */
57
- declare type IsRecord<T, Union extends boolean> = Union extends IsUnion<Exclude<T, null>> ? null extends EnumString<keyof Exclude<T, null>> ? false : true : false;
55
+ type IsValues<T> = false extends IsUnion<T> ? TypeEquality<keyof T, string> : false;
56
+ /** true if type is a properties type and Union is false, or type is a discriminator type and Union is true */
57
+ type IsRecord<T, Union extends boolean> = Union extends IsUnion<T> ? null extends EnumString<keyof T> ? false : true : false;
58
+ /** true if type represents an empty record */
59
+ type IsEmptyRecord<T> = [T] extends [Record<string, never>] ? [T] extends [never] ? false : true : false;
58
60
  /** actual schema */
59
- export declare type JTDSchemaType<T, D extends Record<string, unknown> = Record<string, never>> = (// refs - where null wasn't specified, must match exactly
61
+ export type JTDSchemaType<T, D extends Record<string, unknown> = Record<string, never>> = (// refs - where null wasn't specified, must match exactly
60
62
  (null extends EnumString<keyof D> ? never : ({
61
63
  [K in keyof D]: [T] extends [D[K]] ? {
62
64
  ref: K;
@@ -79,13 +81,18 @@ export declare type JTDSchemaType<T, D extends Record<string, unknown> = Record<
79
81
  type: StringType;
80
82
  } : true extends NullTypeEquality<T, Date> ? {
81
83
  type: "timestamp";
82
- } : true extends IsEnum<T> ? {
84
+ } : true extends IsEnum<Exclude<T, null>> ? {
83
85
  enum: EnumString<Exclude<T, null>>[];
84
86
  } : true extends IsElements<Exclude<T, null>> ? T extends readonly (infer E)[] ? {
85
87
  elements: JTDSchemaType<E, D>;
86
- } : never : true extends IsValues<T> ? T extends Record<string, infer V> ? {
88
+ } : never : true extends IsEmptyRecord<Exclude<T, null>> ? {
89
+ properties: Record<string, never>;
90
+ optionalProperties?: Record<string, never>;
91
+ } | {
92
+ optionalProperties: Record<string, never>;
93
+ } : true extends IsValues<Exclude<T, null>> ? T extends Record<string, infer V> ? {
87
94
  values: JTDSchemaType<V, D>;
88
- } : never : true extends IsRecord<T, false> ? ([RequiredKeys<Exclude<T, null>>] extends [never] ? {
95
+ } : never : true extends IsRecord<Exclude<T, null>, false> ? ([RequiredKeys<Exclude<T, null>>] extends [never] ? {
89
96
  properties?: Record<string, never>;
90
97
  } : {
91
98
  properties: {
@@ -99,13 +106,11 @@ export declare type JTDSchemaType<T, D extends Record<string, unknown> = Record<
99
106
  };
100
107
  }) & {
101
108
  additionalProperties?: boolean;
102
- } : true extends IsRecord<T, true> ? {
109
+ } : true extends IsRecord<Exclude<T, null>, true> ? {
103
110
  [K in keyof Exclude<T, null>]-?: Exclude<T, null>[K] extends string ? {
104
111
  discriminator: K;
105
112
  mapping: {
106
- [M in Exclude<T, null>[K]]: JTDSchemaType<Omit<T extends {
107
- [C in K]: M;
108
- } ? T : never, K>, D>;
113
+ [M in Exclude<T, null>[K]]: JTDSchemaType<Omit<T extends Record<K, M> ? T : never, K>, D>;
109
114
  };
110
115
  } : never;
111
116
  }[keyof Exclude<T, null>] : never) & (null extends T ? {
@@ -118,7 +123,7 @@ export declare type JTDSchemaType<T, D extends Record<string, unknown> = Record<
118
123
  [K in keyof D]: JTDSchemaType<D[K], D>;
119
124
  };
120
125
  };
121
- declare type JTDDataDef<S, D extends Record<string, unknown>> = // ref
126
+ type JTDDataDef<S, D extends Record<string, unknown>> = // ref
122
127
  (S extends {
123
128
  ref: string;
124
129
  } ? D extends {
@@ -163,7 +168,7 @@ declare type JTDDataDef<S, D extends Record<string, unknown>> = // ref
163
168
  }[keyof S["mapping"]] : never : unknown) | (S extends {
164
169
  nullable: true;
165
170
  } ? null : never);
166
- export declare type JTDDataType<S> = S extends {
171
+ export type JTDDataType<S> = S extends {
167
172
  definitions: Record<string, unknown>;
168
173
  } ? JTDDataDef<S, S["definitions"]> : JTDDataDef<S, Record<string, never>>;
169
174
  export {};
@@ -1,6 +1,6 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
2
  import type { KeywordCxt } from "../../compile/validate";
3
- export declare type AdditionalItemsError = ErrorObject<"additionalItems", {
3
+ export type AdditionalItemsError = ErrorObject<"additionalItems", {
4
4
  limit: number;
5
5
  }, AnySchema>;
6
6
  declare const def: CodeKeywordDefinition;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, AddedKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type AdditionalPropertiesError = ErrorObject<"additionalProperties", {
2
+ export type AdditionalPropertiesError = ErrorObject<"additionalProperties", {
3
3
  additionalProperty: string;
4
4
  }, AnySchema>;
5
5
  declare const def: CodeKeywordDefinition & AddedKeywordDefinition;
@@ -1,4 +1,4 @@
1
1
  import type { CodeKeywordDefinition, ErrorNoParams, AnySchema } from "../../types";
2
- export declare type AnyOfError = ErrorNoParams<"anyOf", AnySchema[]>;
2
+ export type AnyOfError = ErrorNoParams<"anyOf", AnySchema[]>;
3
3
  declare const def: CodeKeywordDefinition;
4
4
  export default def;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type ContainsError = ErrorObject<"contains", {
2
+ export type ContainsError = ErrorObject<"contains", {
3
3
  minContains: number;
4
4
  maxContains?: number;
5
5
  }, AnySchema>;
@@ -1,6 +1,6 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition, SchemaMap, AnySchema } from "../../types";
2
2
  import type { KeywordCxt } from "../../compile/validate";
3
- export declare type PropertyDependencies = {
3
+ export type PropertyDependencies = {
4
4
  [K in string]?: string[];
5
5
  };
6
6
  export interface DependenciesErrorParams {
@@ -9,7 +9,7 @@ export interface DependenciesErrorParams {
9
9
  depsCount: number;
10
10
  deps: string;
11
11
  }
12
- export declare type DependenciesError = ErrorObject<"dependencies", DependenciesErrorParams, {
12
+ export type DependenciesError = ErrorObject<"dependencies", DependenciesErrorParams, {
13
13
  [K in string]?: string[] | AnySchema;
14
14
  }>;
15
15
  export declare const error: KeywordErrorDefinition;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type IfKeywordError = ErrorObject<"if", {
2
+ export type IfKeywordError = ErrorObject<"if", {
3
3
  failingKeyword: string;
4
4
  }, AnySchema>;
5
5
  declare const def: CodeKeywordDefinition;
@@ -10,4 +10,4 @@ import { AnyOfError } from "./anyOf";
10
10
  import { OneOfError } from "./oneOf";
11
11
  import { IfKeywordError } from "./if";
12
12
  export default function getApplicator(draft2020?: boolean): Vocabulary;
13
- export declare type ApplicatorKeywordError = ErrorNoParams<"false schema"> | AdditionalItemsError | ItemsError | ContainsError | AdditionalPropertiesError | DependenciesError | IfKeywordError | AnyOfError | OneOfError | NotKeywordError | PropertyNamesError;
13
+ export type ApplicatorKeywordError = ErrorNoParams<"false schema"> | AdditionalItemsError | ItemsError | ContainsError | AdditionalPropertiesError | DependenciesError | IfKeywordError | AnyOfError | OneOfError | NotKeywordError | PropertyNamesError;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type ItemsError = ErrorObject<"items", {
2
+ export type ItemsError = ErrorObject<"items", {
3
3
  limit: number;
4
4
  }, AnySchema>;
5
5
  declare const def: CodeKeywordDefinition;
@@ -1,4 +1,4 @@
1
1
  import type { CodeKeywordDefinition, ErrorNoParams, AnySchema } from "../../types";
2
- export declare type NotKeywordError = ErrorNoParams<"not", AnySchema>;
2
+ export type NotKeywordError = ErrorNoParams<"not", AnySchema>;
3
3
  declare const def: CodeKeywordDefinition;
4
4
  export default def;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type OneOfError = ErrorObject<"oneOf", {
2
+ export type OneOfError = ErrorObject<"oneOf", {
3
3
  passingSchemas: [number, number] | null;
4
4
  }, AnySchema[]>;
5
5
  declare const def: CodeKeywordDefinition;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
2
- export declare type PropertyNamesError = ErrorObject<"propertyNames", {
2
+ export type PropertyNamesError = ErrorObject<"propertyNames", {
3
3
  propertyName: string;
4
4
  }, AnySchema>;
5
5
  declare const def: CodeKeywordDefinition;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition } from "../../types";
2
2
  import { DiscrError, DiscrErrorObj } from "../discriminator/types";
3
- export declare type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
3
+ export type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
4
4
  declare const def: CodeKeywordDefinition;
5
5
  export default def;
@@ -3,7 +3,7 @@ export declare enum DiscrError {
3
3
  Tag = "tag",
4
4
  Mapping = "mapping"
5
5
  }
6
- export declare type DiscrErrorObj<E extends DiscrError> = ErrorObject<"discriminator", {
6
+ export type DiscrErrorObj<E extends DiscrError> = ErrorObject<"discriminator", {
7
7
  error: E;
8
8
  tag: string;
9
9
  tagValue: unknown;
@@ -6,4 +6,4 @@ import type { UnevaluatedPropertiesError } from "./unevaluated/unevaluatedProper
6
6
  import type { UnevaluatedItemsError } from "./unevaluated/unevaluatedItems";
7
7
  import type { DependentRequiredError } from "./validation/dependentRequired";
8
8
  import type { DiscriminatorError } from "./discriminator";
9
- export declare type DefinedError = TypeError | ApplicatorKeywordError | ValidationKeywordError | FormatError | UnevaluatedPropertiesError | UnevaluatedItemsError | DependentRequiredError | DiscriminatorError;
9
+ export type DefinedError = TypeError | ApplicatorKeywordError | ValidationKeywordError | FormatError | UnevaluatedPropertiesError | UnevaluatedItemsError | DependentRequiredError | DiscriminatorError;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject } from "../../types";
2
- export declare type FormatError = ErrorObject<"format", {
2
+ export type FormatError = ErrorObject<"format", {
3
3
  format: string;
4
4
  }, string | {
5
5
  $data: string;
@@ -1,6 +1,6 @@
1
1
  import type { CodeKeywordDefinition } from "../../types";
2
2
  import { _JTDTypeError } from "./error";
3
3
  import { DiscrError, DiscrErrorObj } from "../discriminator/types";
4
- export declare type JTDDiscriminatorError = _JTDTypeError<"discriminator", "object", string> | DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
4
+ export type JTDDiscriminatorError = _JTDTypeError<"discriminator", "object", string> | DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
5
5
  declare const def: CodeKeywordDefinition;
6
6
  export default def;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, SchemaObject } from "../../types";
2
2
  import { _JTDTypeError } from "./error";
3
- export declare type JTDElementsError = _JTDTypeError<"elements", "array", SchemaObject>;
3
+ export type JTDElementsError = _JTDTypeError<"elements", "array", SchemaObject>;
4
4
  declare const def: CodeKeywordDefinition;
5
5
  export default def;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, ErrorObject } from "../../types";
2
- export declare type JTDEnumError = ErrorObject<"enum", {
2
+ export type JTDEnumError = ErrorObject<"enum", {
3
3
  allowedValues: string[];
4
4
  }, string[]>;
5
5
  declare const def: CodeKeywordDefinition;
@@ -1,6 +1,6 @@
1
1
  import type { KeywordErrorDefinition, KeywordErrorCxt, ErrorObject } from "../../types";
2
2
  import { Code } from "../../compile/codegen";
3
- export declare type _JTDTypeError<K extends string, T extends string, S> = ErrorObject<K, {
3
+ export type _JTDTypeError<K extends string, T extends string, S> = ErrorObject<K, {
4
4
  type: T;
5
5
  nullable: boolean;
6
6
  }, S>;
@@ -7,4 +7,4 @@ import { JTDDiscriminatorError } from "./discriminator";
7
7
  import { JTDValuesError } from "./values";
8
8
  declare const jtdVocabulary: Vocabulary;
9
9
  export default jtdVocabulary;
10
- export declare type JTDErrorObject = JTDTypeError | JTDEnumError | JTDElementsError | JTDPropertiesError | JTDDiscriminatorError | JTDValuesError;
10
+ export type JTDErrorObject = JTDTypeError | JTDEnumError | JTDElementsError | JTDPropertiesError | JTDDiscriminatorError | JTDValuesError;
@@ -5,11 +5,11 @@ declare enum PropError {
5
5
  Additional = "additional",
6
6
  Missing = "missing"
7
7
  }
8
- declare type PropKeyword = "properties" | "optionalProperties";
9
- declare type PropSchema = {
8
+ type PropKeyword = "properties" | "optionalProperties";
9
+ type PropSchema = {
10
10
  [P in string]?: SchemaObject;
11
11
  };
12
- export declare type JTDPropertiesError = _JTDTypeError<PropKeyword, "object", PropSchema> | ErrorObject<PropKeyword, {
12
+ export type JTDPropertiesError = _JTDTypeError<PropKeyword, "object", PropSchema> | ErrorObject<PropKeyword, {
13
13
  error: PropError.Additional;
14
14
  additionalProperty: string;
15
15
  }, PropSchema> | ErrorObject<PropKeyword, {
@@ -109,8 +109,7 @@ function validateProperties(cxt) {
109
109
  }
110
110
  function validateAdditional() {
111
111
  gen.forIn("key", data, (key) => {
112
- const _allProps = it.jtdDiscriminator === undefined ? allProps : [it.jtdDiscriminator].concat(allProps);
113
- const addProp = isAdditional(key, _allProps, "properties");
112
+ const addProp = isAdditional(key, allProps, "properties", it.jtdDiscriminator);
114
113
  const addOptProp = isAdditional(key, allOptProps, "optionalProperties");
115
114
  const extra = addProp === true ? addOptProp : addOptProp === true ? addProp : (0, codegen_1.and)(addProp, addOptProp);
116
115
  gen.if(extra, () => {
@@ -125,15 +124,19 @@ function validateProperties(cxt) {
125
124
  });
126
125
  });
127
126
  }
128
- function isAdditional(key, props, keyword) {
127
+ function isAdditional(key, props, keyword, jtdDiscriminator) {
129
128
  let additional;
130
129
  if (props.length > 8) {
131
130
  // TODO maybe an option instead of hard-coded 8?
132
131
  const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema[keyword], keyword);
133
132
  additional = (0, codegen_1.not)((0, code_1.isOwnProperty)(gen, propsSchema, key));
133
+ if (jtdDiscriminator !== undefined) {
134
+ additional = (0, codegen_1.and)(additional, (0, codegen_1._) `${key} !== ${jtdDiscriminator}`);
135
+ }
134
136
  }
135
- else if (props.length) {
136
- additional = (0, codegen_1.and)(...props.map((p) => (0, codegen_1._) `${key} !== ${p}`));
137
+ else if (props.length || jtdDiscriminator !== undefined) {
138
+ const ps = jtdDiscriminator === undefined ? props : [jtdDiscriminator].concat(props);
139
+ additional = (0, codegen_1.and)(...ps.map((p) => (0, codegen_1._) `${key} !== ${p}`));
137
140
  }
138
141
  else {
139
142
  additional = true;
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/properties.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { CodeKeywordDefinition } from "../../types";
2
2
  import { _JTDTypeError } from "./error";
3
- export declare type JTDTypeError = _JTDTypeError<"type", JTDType, JTDType>;
4
- export declare type IntType = "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
3
+ export type JTDTypeError = _JTDTypeError<"type", JTDType, JTDType>;
4
+ export type IntType = "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
5
5
  export declare const intRange: {
6
6
  [T in IntType]: [number, number, number];
7
7
  };
8
- export declare type JTDType = "boolean" | "string" | "timestamp" | "float32" | "float64" | IntType;
8
+ export type JTDType = "boolean" | "string" | "timestamp" | "float32" | "float64" | IntType;
9
9
  declare const def: CodeKeywordDefinition;
10
10
  export default def;
@@ -1,5 +1,5 @@
1
1
  import type { CodeKeywordDefinition, SchemaObject } from "../../types";
2
2
  import { _JTDTypeError } from "./error";
3
- export declare type JTDValuesError = _JTDTypeError<"values", "object", SchemaObject>;
3
+ export type JTDValuesError = _JTDTypeError<"values", "object", SchemaObject>;
4
4
  declare const def: CodeKeywordDefinition;
5
5
  export default def;
@@ -12,14 +12,17 @@ const def = {
12
12
  code(cxt) {
13
13
  (0, metadata_1.checkMetadata)(cxt);
14
14
  const { gen, data, schema, it } = cxt;
15
- if ((0, util_1.alwaysValidSchema)(it, schema))
16
- return;
17
15
  const [valid, cond] = (0, nullable_1.checkNullableObject)(cxt, data);
18
- gen.if(cond);
19
- gen.assign(valid, validateMap());
20
- gen.elseIf((0, codegen_1.not)(valid));
21
- cxt.error();
22
- gen.endIf();
16
+ if ((0, util_1.alwaysValidSchema)(it, schema)) {
17
+ gen.if((0, codegen_1.not)((0, codegen_1.or)(cond, valid)), () => cxt.error());
18
+ }
19
+ else {
20
+ gen.if(cond);
21
+ gen.assign(valid, validateMap());
22
+ gen.elseIf((0, codegen_1.not)(valid));
23
+ cxt.error();
24
+ gen.endIf();
25
+ }
23
26
  cxt.ok(valid);
24
27
  function validateMap() {
25
28
  const _valid = gen.name("valid");
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/values.ts"],"names":[],"mappings":";;AAEA,6CAA0D;AAC1D,mDAA+C;AAC/C,yCAAwC;AACxC,yCAA8C;AAC9C,mCAAgD;AAIhD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC;IAC1B,IAAI,CAAC,GAAe;QAClB,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAClB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACnC,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAA,8BAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACpD,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QAChC,GAAG,CAAC,MAAM,CAAC,IAAA,aAAG,EAAC,KAAK,CAAC,CAAC,CAAA;QACtB,GAAG,CAAC,KAAK,EAAE,CAAA;QACX,GAAG,CAAC,KAAK,EAAE,CAAA;QACX,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAEb,SAAS,WAAW;YAClB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,EAAE,CAAC,SAAS,EAAE;gBAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACvC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;gBACjD,OAAO,QAAQ,CAAA;aAChB;YACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACrB,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACjC,OAAO,MAAM,CAAA;YAEb,SAAS,cAAc,CAAC,QAAoB;gBAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC7B,GAAG,CAAC,SAAS,CACX;wBACE,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,GAAG;wBACb,YAAY,EAAE,WAAI,CAAC,GAAG;qBACvB,EACD,MAAM,CACP,CAAA;oBACD,GAAG,CAAC,EAAE,CAAC,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;gBAC/B,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/values.ts"],"names":[],"mappings":";;AAEA,6CAA0D;AAC1D,mDAAmD;AACnD,yCAAwC;AACxC,yCAA8C;AAC9C,mCAAgD;AAIhD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC;IAC1B,IAAI,CAAC,GAAe;QAClB,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAClB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACnC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAA,8BAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACpD,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE;YACjC,GAAG,CAAC,EAAE,CAAC,IAAA,aAAG,EAAC,IAAA,YAAE,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;SAChD;aAAM;YACL,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;YAChC,GAAG,CAAC,MAAM,CAAC,IAAA,aAAG,EAAC,KAAK,CAAC,CAAC,CAAA;YACtB,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,KAAK,EAAE,CAAA;SACZ;QACD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAEb,SAAS,WAAW;YAClB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,EAAE,CAAC,SAAS,EAAE;gBAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACvC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;gBACjD,OAAO,QAAQ,CAAA;aAChB;YACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACrB,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACjC,OAAO,MAAM,CAAA;YAEb,SAAS,cAAc,CAAC,QAAoB;gBAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC7B,GAAG,CAAC,SAAS,CACX;wBACE,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,GAAG;wBACb,YAAY,EAAE,WAAI,CAAC,GAAG;qBACvB,EACD,MAAM,CACP,CAAA;oBACD,GAAG,CAAC,EAAE,CAAC,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;gBAC/B,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}