@pobammer-ts/eslint-cease-nonsense-rules 1.2.3 → 1.2.4

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 (36) hide show
  1. package/dist/build-metadata.json +5 -0
  2. package/dist/index.js +11637 -80
  3. package/dist/index.js.map +515 -1
  4. package/package.json +10 -10
  5. package/dist/configure-utilities.js +0 -136
  6. package/dist/configure-utilities.js.map +0 -1
  7. package/dist/rules/ban-instances.js +0 -123
  8. package/dist/rules/ban-instances.js.map +0 -1
  9. package/dist/rules/ban-react-fc.js +0 -42
  10. package/dist/rules/ban-react-fc.js.map +0 -1
  11. package/dist/rules/enforce-ianitor-check-type.js +0 -340
  12. package/dist/rules/enforce-ianitor-check-type.js.map +0 -1
  13. package/dist/rules/no-color3-constructor.js +0 -76
  14. package/dist/rules/no-color3-constructor.js.map +0 -1
  15. package/dist/rules/no-instance-methods-without-this.js +0 -122
  16. package/dist/rules/no-instance-methods-without-this.js.map +0 -1
  17. package/dist/rules/no-print.js +0 -25
  18. package/dist/rules/no-print.js.map +0 -1
  19. package/dist/rules/no-shorthand-names.js +0 -116
  20. package/dist/rules/no-shorthand-names.js.map +0 -1
  21. package/dist/rules/no-warn.js +0 -25
  22. package/dist/rules/no-warn.js.map +0 -1
  23. package/dist/rules/prefer-sequence-overloads.js +0 -109
  24. package/dist/rules/prefer-sequence-overloads.js.map +0 -1
  25. package/dist/rules/prefer-udim2-shorthand.js +0 -161
  26. package/dist/rules/prefer-udim2-shorthand.js.map +0 -1
  27. package/dist/rules/require-named-effect-functions.js +0 -350
  28. package/dist/rules/require-named-effect-functions.js.map +0 -1
  29. package/dist/rules/require-paired-calls.js +0 -861
  30. package/dist/rules/require-paired-calls.js.map +0 -1
  31. package/dist/rules/require-react-component-keys.js +0 -357
  32. package/dist/rules/require-react-component-keys.js.map +0 -1
  33. package/dist/rules/use-exhaustive-dependencies.js +0 -697
  34. package/dist/rules/use-exhaustive-dependencies.js.map +0 -1
  35. package/dist/rules/use-hook-at-top-level.js +0 -351
  36. package/dist/rules/use-hook-at-top-level.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1,515 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AACpF,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,uBAAuB,MAAM,mCAAmC,CAAC;AACxE,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAAO,2BAA2B,MAAM,wCAAwC,CAAC;AACjF,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,yBAAyB,MAAM,sCAAsC,CAAC;AAC7E,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAI9D,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,sCAAsC,EACtC,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,uBAAuB,CAAC;AAU/B;;;;GAIG;AACH,MAAM,KAAK,GAA4C;IACtD,eAAe,EAAE,YAAY;IAC7B,cAAc,EAAE,UAAU;IAC1B,4BAA4B,EAAE,uBAAuB;IACrD,uBAAuB,EAAE,mBAAmB;IAC5C,kCAAkC,EAAE,4BAA4B;IAChE,UAAU,EAAE,OAAO;IACnB,oBAAoB,EAAE,gBAAgB;IACtC,SAAS,EAAE,MAAM;IACjB,2BAA2B,EAAE,uBAAuB;IACpD,wBAAwB,EAAE,oBAAoB;IAC9C,gCAAgC,EAAE,2BAA2B;IAC7D,sBAAsB,EAAE,kBAAkB;IAC1C,8BAA8B,EAAE,yBAAyB;IACzD,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,iBAAiB;CACjC,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE;QACR,gBAAgB,EAAE;YACjB,KAAK;SACL;KACD;IACD,KAAK,EAAE;QACN,6BAA6B,EAAE,OAAO;QACtC,2CAA2C,EAAE,OAAO;QACpD,sCAAsC,EAAE,OAAO;QAC/C,iDAAiD,EAAE,OAAO;QAC1D,yBAAyB,EAAE,OAAO;QAClC,mCAAmC,EAAE,OAAO;QAC5C,wBAAwB,EAAE,OAAO;QACjC,0CAA0C,EAAE,OAAO;QACnD,uCAAuC,EAAE,OAAO;QAChD,+CAA+C,EAAE,OAAO;QACxD,6CAA6C,EAAE,OAAO;QACtD,4CAA4C,EAAE,OAAO;QACrD,sCAAsC,EAAE,OAAO;KAC/C;CACQ,CAAC;AAWX,MAAM,MAAM,GAAW;IACtB,OAAO,EAAE,EAAE,WAAW,EAAE;IACxB,KAAK;CACI,CAAC;AAEX,eAAe,MAAM,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/rules/ban-instances.ts", "../node_modules/typebox/build/system/memory/metrics.mjs", "../node_modules/typebox/build/system/memory/assign.mjs", "../node_modules/typebox/build/guard/guard.mjs", "../node_modules/typebox/build/guard/emit.mjs", "../node_modules/typebox/build/guard/globals.mjs", "../node_modules/typebox/build/system/memory/clone.mjs", "../node_modules/typebox/build/system/settings/settings.mjs", "../node_modules/typebox/build/system/memory/create.mjs", "../node_modules/typebox/build/system/memory/discard.mjs", "../node_modules/typebox/build/system/memory/update.mjs", "../node_modules/typebox/build/type/types/schema.mjs", "../node_modules/typebox/build/type/action/_optional.mjs", "../node_modules/typebox/build/type/action/_readonly.mjs", "../node_modules/typebox/build/type/types/deferred.mjs", "../node_modules/typebox/build/type/types/_immutable.mjs", "../node_modules/typebox/build/type/types/_optional.mjs", "../node_modules/typebox/build/type/types/_readonly.mjs", "../node_modules/typebox/build/type/types/array.mjs", "../node_modules/typebox/build/type/types/async-iterator.mjs", "../node_modules/typebox/build/type/types/base.mjs", "../node_modules/typebox/build/type/types/constructor.mjs", "../node_modules/typebox/build/type/types/function.mjs", "../node_modules/typebox/build/type/types/ref.mjs", "../node_modules/typebox/build/type/types/generic.mjs", "../node_modules/typebox/build/type/types/never.mjs", "../node_modules/typebox/build/type/engine/call/resolve-target.mjs", "../node_modules/typebox/build/type/types/cyclic.mjs", "../node_modules/typebox/build/system/arguments/arguments.mjs", "../node_modules/typebox/build/type/types/unknown.mjs", "../node_modules/typebox/build/type/types/infer.mjs", "../node_modules/typebox/build/type/types/any.mjs", "../node_modules/typebox/build/type/engine/enum/typescript-enum-to-enum-values.mjs", "../node_modules/typebox/build/type/types/enum.mjs", "../node_modules/typebox/build/type/types/intersect.mjs", "../node_modules/typebox/build/system/unreachable/unreachable.mjs", "../node_modules/typebox/build/system/environment/can-evaluate.mjs", "../node_modules/typebox/build/system/hashing/hash.mjs", "../node_modules/typebox/build/system/locale/en_US.mjs", "../node_modules/typebox/build/system/locale/_config.mjs", "../node_modules/typebox/build/type/types/_codec.mjs", "../node_modules/typebox/build/type/types/_refine.mjs", "../node_modules/typebox/build/type/types/bigint.mjs", "../node_modules/typebox/build/type/types/boolean.mjs", "../node_modules/typebox/build/type/types/identifier.mjs", "../node_modules/typebox/build/type/types/integer.mjs", "../node_modules/typebox/build/type/types/iterator.mjs", "../node_modules/typebox/build/type/types/literal.mjs", "../node_modules/typebox/build/type/types/null.mjs", "../node_modules/typebox/build/type/types/number.mjs", "../node_modules/typebox/build/type/types/symbol.mjs", "../node_modules/typebox/build/type/types/properties.mjs", "../node_modules/typebox/build/type/types/object.mjs", "../node_modules/typebox/build/type/types/parameter.mjs", "../node_modules/typebox/build/type/types/promise.mjs", "../node_modules/typebox/build/type/types/string.mjs", "../node_modules/typebox/build/type/engine/record/record-create.mjs", "../node_modules/typebox/build/type/types/record.mjs", "../node_modules/typebox/build/type/types/rest.mjs", "../node_modules/typebox/build/type/types/this.mjs", "../node_modules/typebox/build/type/types/tuple.mjs", "../node_modules/typebox/build/type/types/undefined.mjs", "../node_modules/typebox/build/type/types/union.mjs", "../node_modules/typebox/build/type/types/unsafe.mjs", "../node_modules/typebox/build/type/types/void.mjs", "../node_modules/typebox/build/type/script/mapping.mjs", "../node_modules/typebox/build/type/script/token/internal/result.mjs", "../node_modules/typebox/build/type/script/token/internal/take.mjs", "../node_modules/typebox/build/type/script/token/internal/char.mjs", "../node_modules/typebox/build/type/script/token/internal/trim.mjs", "../node_modules/typebox/build/type/script/token/internal/many.mjs", "../node_modules/typebox/build/type/script/token/internal/optional.mjs", "../node_modules/typebox/build/type/script/token/integer.mjs", "../node_modules/typebox/build/type/script/token/bigint.mjs", "../node_modules/typebox/build/type/script/token/const.mjs", "../node_modules/typebox/build/type/script/token/ident.mjs", "../node_modules/typebox/build/type/script/token/number.mjs", "../node_modules/typebox/build/type/script/token/until.mjs", "../node_modules/typebox/build/type/script/token/span.mjs", "../node_modules/typebox/build/type/script/token/string.mjs", "../node_modules/typebox/build/type/script/token/until_1.mjs", "../node_modules/typebox/build/type/script/parser.mjs", "../node_modules/typebox/build/type/engine/patterns/template.mjs", "../node_modules/typebox/build/type/types/template-literal.mjs", "../node_modules/typebox/build/type/extends/result.mjs", "../node_modules/typebox/build/type/engine/patterns/pattern.mjs", "../node_modules/typebox/build/type/engine/template-literal/finite.mjs", "../node_modules/typebox/build/type/engine/template-literal/decode.mjs", "../node_modules/typebox/build/type/engine/enum/enum-to-union.mjs", "../node_modules/typebox/build/type/extends/extends-right.mjs", "../node_modules/typebox/build/type/extends/any.mjs", "../node_modules/typebox/build/type/extends/array.mjs", "../node_modules/typebox/build/type/extends/async-iterator.mjs", "../node_modules/typebox/build/type/extends/bigint.mjs", "../node_modules/typebox/build/type/extends/boolean.mjs", "../node_modules/typebox/build/type/extends/parameters.mjs", "../node_modules/typebox/build/type/extends/return-type.mjs", "../node_modules/typebox/build/type/extends/constructor.mjs", "../node_modules/typebox/build/type/extends/enum.mjs", "../node_modules/typebox/build/type/extends/function.mjs", "../node_modules/typebox/build/type/extends/integer.mjs", "../node_modules/typebox/build/type/engine/evaluate/compare.mjs", "../node_modules/typebox/build/type/engine/evaluate/flatten.mjs", "../node_modules/typebox/build/type/engine/tuple/to-object.mjs", "../node_modules/typebox/build/type/engine/evaluate/composite.mjs", "../node_modules/typebox/build/type/engine/evaluate/narrow.mjs", "../node_modules/typebox/build/type/engine/evaluate/distribute.mjs", "../node_modules/typebox/build/type/engine/evaluate/evaluate.mjs", "../node_modules/typebox/build/type/engine/evaluate/broaden.mjs", "../node_modules/typebox/build/type/engine/evaluate/instantiate.mjs", "../node_modules/typebox/build/type/extends/intersect.mjs", "../node_modules/typebox/build/type/extends/iterator.mjs", "../node_modules/typebox/build/type/extends/literal.mjs", "../node_modules/typebox/build/type/extends/never.mjs", "../node_modules/typebox/build/type/extends/null.mjs", "../node_modules/typebox/build/type/extends/number.mjs", "../node_modules/typebox/build/type/extends/object.mjs", "../node_modules/typebox/build/type/extends/promise.mjs", "../node_modules/typebox/build/type/extends/string.mjs", "../node_modules/typebox/build/type/extends/symbol.mjs", "../node_modules/typebox/build/type/extends/template-literal.mjs", "../node_modules/typebox/build/type/extends/inference.mjs", "../node_modules/typebox/build/type/extends/tuple.mjs", "../node_modules/typebox/build/type/extends/undefined.mjs", "../node_modules/typebox/build/type/extends/union.mjs", "../node_modules/typebox/build/type/extends/unknown.mjs", "../node_modules/typebox/build/type/extends/void.mjs", "../node_modules/typebox/build/type/extends/extends-left.mjs", "../node_modules/typebox/build/type/action/interface.mjs", "../node_modules/typebox/build/type/engine/cyclic/check.mjs", "../node_modules/typebox/build/type/engine/cyclic/candidates.mjs", "../node_modules/typebox/build/type/engine/cyclic/dependencies.mjs", "../node_modules/typebox/build/type/engine/cyclic/extends.mjs", "../node_modules/typebox/build/type/engine/cyclic/instantiate.mjs", "../node_modules/typebox/build/type/engine/cyclic/target.mjs", "../node_modules/typebox/build/type/extends/extends.mjs", "../node_modules/typebox/build/type/engine/call/resolve-arguments.mjs", "../node_modules/typebox/build/type/engine/call/instantiate.mjs", "../node_modules/typebox/build/type/types/call.mjs", "../node_modules/typebox/build/type/engine/awaited/instantiate.mjs", "../node_modules/typebox/build/type/engine/intrinsics/mapping.mjs", "../node_modules/typebox/build/type/engine/intrinsics/from-literal.mjs", "../node_modules/typebox/build/type/engine/intrinsics/from-template-literal.mjs", "../node_modules/typebox/build/type/engine/intrinsics/from-union.mjs", "../node_modules/typebox/build/type/engine/intrinsics/from-type.mjs", "../node_modules/typebox/build/type/action/capitalize.mjs", "../node_modules/typebox/build/type/action/lowercase.mjs", "../node_modules/typebox/build/type/action/uncapitalize.mjs", "../node_modules/typebox/build/type/action/uppercase.mjs", "../node_modules/typebox/build/type/engine/intrinsics/instantiate.mjs", "../node_modules/typebox/build/type/action/conditional.mjs", "../node_modules/typebox/build/type/engine/conditional/instantiate.mjs", "../node_modules/typebox/build/type/action/constructor-parameters.mjs", "../node_modules/typebox/build/type/engine/constructor-parameters/instantiate.mjs", "../node_modules/typebox/build/type/action/exclude.mjs", "../node_modules/typebox/build/type/engine/exclude/instantiate.mjs", "../node_modules/typebox/build/type/action/extract.mjs", "../node_modules/typebox/build/type/engine/extract/instantiate.mjs", "../node_modules/typebox/build/type/engine/helpers/keys.mjs", "../node_modules/typebox/build/type/engine/indexed/from-array.mjs", "../node_modules/typebox/build/type/engine/indexable/from-cyclic.mjs", "../node_modules/typebox/build/type/engine/indexable/from-union.mjs", "../node_modules/typebox/build/type/engine/indexable/from-enum.mjs", "../node_modules/typebox/build/type/engine/indexable/from-intersect.mjs", "../node_modules/typebox/build/type/engine/indexable/from-literal.mjs", "../node_modules/typebox/build/type/engine/indexable/from-template-literal.mjs", "../node_modules/typebox/build/type/engine/indexable/from-type.mjs", "../node_modules/typebox/build/type/engine/indexable/to-indexable-keys.mjs", "../node_modules/typebox/build/type/engine/indexed/from-object.mjs", "../node_modules/typebox/build/type/engine/indexed/array-indexer.mjs", "../node_modules/typebox/build/type/engine/indexed/from-tuple.mjs", "../node_modules/typebox/build/type/engine/helpers/keys-to-indexer.mjs", "../node_modules/typebox/build/type/action/indexed.mjs", "../node_modules/typebox/build/type/engine/object/from-cyclic.mjs", "../node_modules/typebox/build/type/engine/object/from-intersect.mjs", "../node_modules/typebox/build/type/engine/object/from-object.mjs", "../node_modules/typebox/build/type/engine/object/from-tuple.mjs", "../node_modules/typebox/build/type/engine/object/from-union.mjs", "../node_modules/typebox/build/type/engine/object/from-type.mjs", "../node_modules/typebox/build/type/engine/object/collapse.mjs", "../node_modules/typebox/build/type/engine/indexed/instantiate.mjs", "../node_modules/typebox/build/type/action/instance-type.mjs", "../node_modules/typebox/build/type/engine/instance-type/instantiate.mjs", "../node_modules/typebox/build/type/engine/interface/instantiate.mjs", "../node_modules/typebox/build/type/action/keyof.mjs", "../node_modules/typebox/build/type/engine/keyof/from-any.mjs", "../node_modules/typebox/build/type/engine/keyof/from-array.mjs", "../node_modules/typebox/build/type/engine/keyof/from-object.mjs", "../node_modules/typebox/build/type/engine/keyof/from-record.mjs", "../node_modules/typebox/build/type/engine/keyof/from-tuple.mjs", "../node_modules/typebox/build/type/engine/keyof/instantiate.mjs", "../node_modules/typebox/build/type/engine/mapped/mapped-keys.mjs", "../node_modules/typebox/build/type/action/mapped.mjs", "../node_modules/typebox/build/type/engine/mapped/instantiate.mjs", "../node_modules/typebox/build/type/engine/module/instantiate.mjs", "../node_modules/typebox/build/type/action/non-nullable.mjs", "../node_modules/typebox/build/type/engine/non-nullable/instantiate.mjs", "../node_modules/typebox/build/type/engine/indexable/to-indexable.mjs", "../node_modules/typebox/build/type/action/omit.mjs", "../node_modules/typebox/build/type/engine/omit/instantiate.mjs", "../node_modules/typebox/build/type/action/options.mjs", "../node_modules/typebox/build/type/engine/options/instantiate.mjs", "../node_modules/typebox/build/type/action/parameters.mjs", "../node_modules/typebox/build/type/engine/parameters/instantiate.mjs", "../node_modules/typebox/build/type/action/partial.mjs", "../node_modules/typebox/build/type/engine/partial/from-cyclic.mjs", "../node_modules/typebox/build/type/engine/partial/from-intersect.mjs", "../node_modules/typebox/build/type/engine/partial/from-union.mjs", "../node_modules/typebox/build/type/engine/partial/from-object.mjs", "../node_modules/typebox/build/type/engine/partial/from-type.mjs", "../node_modules/typebox/build/type/engine/partial/instantiate.mjs", "../node_modules/typebox/build/type/action/pick.mjs", "../node_modules/typebox/build/type/engine/pick/instantiate.mjs", "../node_modules/typebox/build/type/action/readonly-type.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-array.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-cyclic.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-intersect.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-object.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-tuple.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-union.mjs", "../node_modules/typebox/build/type/engine/readonly-type/from-type.mjs", "../node_modules/typebox/build/type/engine/readonly-type/instantiate.mjs", "../node_modules/typebox/build/type/engine/record/from-key-any.mjs", "../node_modules/typebox/build/type/engine/record/from-key-boolean.mjs", "../node_modules/typebox/build/type/engine/record/from-key-enum.mjs", "../node_modules/typebox/build/type/engine/record/from-key-integer.mjs", "../node_modules/typebox/build/type/engine/record/from-key-intersect.mjs", "../node_modules/typebox/build/type/engine/record/from-key-literal.mjs", "../node_modules/typebox/build/type/engine/record/from-key-number.mjs", "../node_modules/typebox/build/type/engine/record/from-key-string.mjs", "../node_modules/typebox/build/type/engine/record/from-key-template-literal.mjs", "../node_modules/typebox/build/type/engine/record/from-key-union.mjs", "../node_modules/typebox/build/type/engine/record/from-key.mjs", "../node_modules/typebox/build/type/engine/record/instantiate.mjs", "../node_modules/typebox/build/type/engine/ref/instantiate.mjs", "../node_modules/typebox/build/type/engine/required/from-cyclic.mjs", "../node_modules/typebox/build/type/engine/required/from-intersect.mjs", "../node_modules/typebox/build/type/engine/required/from-union.mjs", "../node_modules/typebox/build/type/engine/required/from-object.mjs", "../node_modules/typebox/build/type/engine/required/from-type.mjs", "../node_modules/typebox/build/type/action/required.mjs", "../node_modules/typebox/build/type/engine/required/instantiate.mjs", "../node_modules/typebox/build/type/action/return-type.mjs", "../node_modules/typebox/build/type/engine/return-type/instantiate.mjs", "../node_modules/typebox/build/type/engine/template-literal/create.mjs", "../node_modules/typebox/build/type/engine/template-literal/encode.mjs", "../node_modules/typebox/build/type/engine/template-literal/instantiate.mjs", "../node_modules/typebox/build/type/engine/rest/spread.mjs", "../node_modules/typebox/build/type/engine/instantiate.mjs", "../node_modules/typebox/build/type/action/awaited.mjs", "../node_modules/typebox/build/type/action/evaluate.mjs", "../node_modules/typebox/build/type/action/module.mjs", "../node_modules/typebox/build/type/script/script.mjs", "../node_modules/typebox/build/index.mjs", "../node_modules/typebox/build/schema/types/_guard.mjs", "../node_modules/typebox/build/schema/types/_refine.mjs", "../node_modules/typebox/build/schema/types/schema.mjs", "../node_modules/typebox/build/schema/types/additionalItems.mjs", "../node_modules/typebox/build/schema/types/additionalProperties.mjs", "../node_modules/typebox/build/schema/types/allOf.mjs", "../node_modules/typebox/build/schema/types/anchor.mjs", "../node_modules/typebox/build/schema/types/anyOf.mjs", "../node_modules/typebox/build/schema/types/const.mjs", "../node_modules/typebox/build/schema/types/contains.mjs", "../node_modules/typebox/build/schema/types/default.mjs", "../node_modules/typebox/build/schema/types/dependencies.mjs", "../node_modules/typebox/build/schema/types/dependentRequired.mjs", "../node_modules/typebox/build/schema/types/dependentSchemas.mjs", "../node_modules/typebox/build/schema/types/dynamicAnchor.mjs", "../node_modules/typebox/build/schema/types/else.mjs", "../node_modules/typebox/build/schema/types/enum.mjs", "../node_modules/typebox/build/schema/types/exclusiveMaximum.mjs", "../node_modules/typebox/build/schema/types/exclusiveMinimum.mjs", "../node_modules/typebox/build/schema/types/format.mjs", "../node_modules/typebox/build/schema/types/id.mjs", "../node_modules/typebox/build/schema/types/if.mjs", "../node_modules/typebox/build/schema/types/items.mjs", "../node_modules/typebox/build/schema/types/maximum.mjs", "../node_modules/typebox/build/schema/types/maxContains.mjs", "../node_modules/typebox/build/schema/types/maxItems.mjs", "../node_modules/typebox/build/schema/types/maxLength.mjs", "../node_modules/typebox/build/schema/types/maxProperties.mjs", "../node_modules/typebox/build/schema/types/minimum.mjs", "../node_modules/typebox/build/schema/types/minContains.mjs", "../node_modules/typebox/build/schema/types/minItems.mjs", "../node_modules/typebox/build/schema/types/minLength.mjs", "../node_modules/typebox/build/schema/types/minProperties.mjs", "../node_modules/typebox/build/schema/types/multipleOf.mjs", "../node_modules/typebox/build/schema/types/not.mjs", "../node_modules/typebox/build/schema/types/oneOf.mjs", "../node_modules/typebox/build/schema/types/pattern.mjs", "../node_modules/typebox/build/schema/types/patternProperties.mjs", "../node_modules/typebox/build/schema/types/prefixItems.mjs", "../node_modules/typebox/build/schema/types/properties.mjs", "../node_modules/typebox/build/schema/types/propertyNames.mjs", "../node_modules/typebox/build/schema/types/recursiveAnchor.mjs", "../node_modules/typebox/build/schema/types/recursiveRef.mjs", "../node_modules/typebox/build/schema/types/ref.mjs", "../node_modules/typebox/build/schema/types/required.mjs", "../node_modules/typebox/build/schema/types/then.mjs", "../node_modules/typebox/build/schema/types/type.mjs", "../node_modules/typebox/build/schema/types/uniqueItems.mjs", "../node_modules/typebox/build/schema/types/unevaluatedItems.mjs", "../node_modules/typebox/build/schema/types/unevaluatedProperties.mjs", "../node_modules/typebox/build/schema/engine/_context.mjs", "../node_modules/typebox/build/schema/engine/_externals.mjs", "../node_modules/typebox/build/schema/engine/_guard.mjs", "../node_modules/typebox/build/schema/engine/_refine.mjs", "../node_modules/typebox/build/schema/engine/_unique.mjs", "../node_modules/typebox/build/schema/engine/additionalItems.mjs", "../node_modules/typebox/build/schema/engine/additionalProperties.mjs", "../node_modules/typebox/build/schema/engine/_reducer.mjs", "../node_modules/typebox/build/schema/engine/allOf.mjs", "../node_modules/typebox/build/schema/engine/anyOf.mjs", "../node_modules/typebox/build/schema/engine/boolean.mjs", "../node_modules/typebox/build/schema/engine/const.mjs", "../node_modules/typebox/build/schema/engine/contains.mjs", "../node_modules/typebox/build/schema/engine/dependencies.mjs", "../node_modules/typebox/build/schema/engine/dependentRequired.mjs", "../node_modules/typebox/build/schema/engine/dependentSchemas.mjs", "../node_modules/typebox/build/schema/engine/enum.mjs", "../node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs", "../node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs", "../node_modules/typebox/build/format/date.mjs", "../node_modules/typebox/build/format/time.mjs", "../node_modules/typebox/build/format/date-time.mjs", "../node_modules/typebox/build/format/duration.mjs", "../node_modules/typebox/build/format/email.mjs", "../node_modules/typebox/build/format/hostname.mjs", "../node_modules/typebox/build/format/idn-email.mjs", "../node_modules/typebox/build/format/idn-hostname.mjs", "../node_modules/typebox/build/format/ipv4.mjs", "../node_modules/typebox/build/format/ipv6.mjs", "../node_modules/typebox/build/format/iri-reference.mjs", "../node_modules/typebox/build/format/iri.mjs", "../node_modules/typebox/build/format/json-pointer-uri-fragment.mjs", "../node_modules/typebox/build/format/json-pointer.mjs", "../node_modules/typebox/build/format/regex.mjs", "../node_modules/typebox/build/format/relative-json-pointer.mjs", "../node_modules/typebox/build/format/uri-reference.mjs", "../node_modules/typebox/build/format/uri-template.mjs", "../node_modules/typebox/build/format/uri.mjs", "../node_modules/typebox/build/format/url.mjs", "../node_modules/typebox/build/format/uuid.mjs", "../node_modules/typebox/build/format/_registry.mjs", "../node_modules/typebox/build/schema/engine/format.mjs", "../node_modules/typebox/build/schema/engine/if.mjs", "../node_modules/typebox/build/schema/engine/items.mjs", "../node_modules/typebox/build/schema/engine/maxContains.mjs", "../node_modules/typebox/build/schema/engine/maximum.mjs", "../node_modules/typebox/build/schema/engine/maxItems.mjs", "../node_modules/typebox/build/schema/engine/maxLength.mjs", "../node_modules/typebox/build/schema/engine/maxProperties.mjs", "../node_modules/typebox/build/schema/engine/minContains.mjs", "../node_modules/typebox/build/schema/engine/minimum.mjs", "../node_modules/typebox/build/schema/engine/minItems.mjs", "../node_modules/typebox/build/schema/engine/minLength.mjs", "../node_modules/typebox/build/schema/engine/minProperties.mjs", "../node_modules/typebox/build/schema/engine/multipleOf.mjs", "../node_modules/typebox/build/schema/engine/not.mjs", "../node_modules/typebox/build/schema/engine/oneOf.mjs", "../node_modules/typebox/build/schema/engine/pattern.mjs", "../node_modules/typebox/build/schema/engine/patternProperties.mjs", "../node_modules/typebox/build/schema/engine/prefixItems.mjs", "../node_modules/typebox/build/schema/engine/_exact_optional.mjs", "../node_modules/typebox/build/schema/engine/properties.mjs", "../node_modules/typebox/build/schema/engine/propertyNames.mjs", "../node_modules/typebox/build/schema/engine/recursiveRef.mjs", "../node_modules/typebox/build/schema/engine/ref.mjs", "../node_modules/typebox/build/schema/engine/required.mjs", "../node_modules/typebox/build/schema/engine/type.mjs", "../node_modules/typebox/build/schema/engine/unevaluatedItems.mjs", "../node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs", "../node_modules/typebox/build/schema/engine/uniqueItems.mjs", "../node_modules/typebox/build/schema/engine/schema.mjs", "../node_modules/typebox/build/schema/engine/_functions.mjs", "../node_modules/typebox/build/schema/pointer/pointer.mjs", "../node_modules/typebox/build/schema/resolve/ref.mjs", "../node_modules/typebox/build/schema/engine/_stack.mjs", "../node_modules/typebox/build/schema/build.mjs", "../node_modules/typebox/build/schema/check.mjs", "../node_modules/typebox/build/schema/errors.mjs", "../node_modules/typebox/build/value/check/check.mjs", "../node_modules/typebox/build/value/errors/errors.mjs", "../node_modules/typebox/build/value/assert/assert.mjs", "../node_modules/typebox/build/value/clean/from-array.mjs", "../node_modules/typebox/build/value/clean/from-base.mjs", "../node_modules/typebox/build/value/clean/from-cyclic.mjs", "../node_modules/typebox/build/value/clean/from-intersect.mjs", "../node_modules/typebox/build/value/clean/additional.mjs", "../node_modules/typebox/build/value/clean/from-object.mjs", "../node_modules/typebox/build/value/clean/from-record.mjs", "../node_modules/typebox/build/value/clean/from-ref.mjs", "../node_modules/typebox/build/value/clean/from-tuple.mjs", "../node_modules/typebox/build/value/clone/clone.mjs", "../node_modules/typebox/build/value/clean/from-union.mjs", "../node_modules/typebox/build/value/clean/from-type.mjs", "../node_modules/typebox/build/value/clean/clean.mjs", "../node_modules/typebox/build/value/convert/from-array.mjs", "../node_modules/typebox/build/value/convert/from-base.mjs", "../node_modules/typebox/build/value/convert/try/try-result.mjs", "../node_modules/typebox/build/value/convert/try/try-bigint.mjs", "../node_modules/typebox/build/value/convert/try/try-boolean.mjs", "../node_modules/typebox/build/value/convert/try/try-null.mjs", "../node_modules/typebox/build/value/convert/try/try-number.mjs", "../node_modules/typebox/build/value/convert/try/try-string.mjs", "../node_modules/typebox/build/value/convert/try/try-undefined.mjs", "../node_modules/typebox/build/value/convert/from-bigint.mjs", "../node_modules/typebox/build/value/convert/from-boolean.mjs", "../node_modules/typebox/build/value/convert/from-cyclic.mjs", "../node_modules/typebox/build/value/convert/from-union.mjs", "../node_modules/typebox/build/value/convert/from-enum.mjs", "../node_modules/typebox/build/value/convert/from-integer.mjs", "../node_modules/typebox/build/value/convert/from-intersect.mjs", "../node_modules/typebox/build/value/convert/from-literal.mjs", "../node_modules/typebox/build/value/convert/from-null.mjs", "../node_modules/typebox/build/value/convert/from-number.mjs", "../node_modules/typebox/build/value/convert/from-additional.mjs", "../node_modules/typebox/build/value/shared/optional-undefined.mjs", "../node_modules/typebox/build/value/convert/from-object.mjs", "../node_modules/typebox/build/value/convert/from-record.mjs", "../node_modules/typebox/build/value/convert/from-ref.mjs", "../node_modules/typebox/build/value/convert/from-string.mjs", "../node_modules/typebox/build/value/convert/from-template-literal.mjs", "../node_modules/typebox/build/value/convert/from-tuple.mjs", "../node_modules/typebox/build/value/convert/from-undefined.mjs", "../node_modules/typebox/build/value/convert/from-void.mjs", "../node_modules/typebox/build/value/convert/from-type.mjs", "../node_modules/typebox/build/value/convert/convert.mjs", "../node_modules/typebox/build/value/default/from-array.mjs", "../node_modules/typebox/build/value/default/from-base.mjs", "../node_modules/typebox/build/value/default/from-cyclic.mjs", "../node_modules/typebox/build/value/default/from-default.mjs", "../node_modules/typebox/build/value/default/from-intersect.mjs", "../node_modules/typebox/build/value/default/from-object.mjs", "../node_modules/typebox/build/value/default/from-record.mjs", "../node_modules/typebox/build/value/default/from-ref.mjs", "../node_modules/typebox/build/value/default/from-tuple.mjs", "../node_modules/typebox/build/value/default/from-union.mjs", "../node_modules/typebox/build/value/default/from-type.mjs", "../node_modules/typebox/build/value/default/default.mjs", "../node_modules/typebox/build/value/pipeline/pipeline.mjs", "../node_modules/typebox/build/value/codec/callback.mjs", "../node_modules/typebox/build/value/codec/from-array.mjs", "../node_modules/typebox/build/value/codec/from-cyclic.mjs", "../node_modules/typebox/build/value/codec/from-intersect.mjs", "../node_modules/typebox/build/value/codec/from-object.mjs", "../node_modules/typebox/build/value/codec/from-record.mjs", "../node_modules/typebox/build/value/codec/from-ref.mjs", "../node_modules/typebox/build/value/codec/from-tuple.mjs", "../node_modules/typebox/build/value/codec/from-union.mjs", "../node_modules/typebox/build/value/codec/from-type.mjs", "../node_modules/typebox/build/value/codec/decode.mjs", "../node_modules/typebox/build/value/codec/encode.mjs", "../node_modules/typebox/build/value/codec/has.mjs", "../node_modules/typebox/build/value/create/error.mjs", "../node_modules/typebox/build/value/create/from-default.mjs", "../node_modules/typebox/build/value/create/from-array.mjs", "../node_modules/typebox/build/value/create/from-async-iterator.mjs", "../node_modules/typebox/build/value/create/from-base.mjs", "../node_modules/typebox/build/value/create/from-bigint.mjs", "../node_modules/typebox/build/value/create/from-boolean.mjs", "../node_modules/typebox/build/value/create/from-constructor.mjs", "../node_modules/typebox/build/value/create/from-cyclic.mjs", "../node_modules/typebox/build/value/create/from-enum.mjs", "../node_modules/typebox/build/value/create/from-function.mjs", "../node_modules/typebox/build/value/create/from-integer.mjs", "../node_modules/typebox/build/value/create/from-intersect.mjs", "../node_modules/typebox/build/value/create/from-iterator.mjs", "../node_modules/typebox/build/value/create/from-literal.mjs", "../node_modules/typebox/build/value/create/from-never.mjs", "../node_modules/typebox/build/value/create/from-null.mjs", "../node_modules/typebox/build/value/create/from-number.mjs", "../node_modules/typebox/build/value/create/from-object.mjs", "../node_modules/typebox/build/value/create/from-promise.mjs", "../node_modules/typebox/build/value/create/from-record.mjs", "../node_modules/typebox/build/value/create/from-ref.mjs", "../node_modules/typebox/build/value/create/from-string.mjs", "../node_modules/typebox/build/value/create/from-symbol.mjs", "../node_modules/typebox/build/value/create/from-template-literal.mjs", "../node_modules/typebox/build/value/create/from-tuple.mjs", "../node_modules/typebox/build/value/create/from-undefined.mjs", "../node_modules/typebox/build/value/create/from-union.mjs", "../node_modules/typebox/build/value/create/from-void.mjs", "../node_modules/typebox/build/value/create/from-type.mjs", "../node_modules/typebox/build/value/create/create.mjs", "../node_modules/typebox/build/value/parse/parse.mjs", "../node_modules/typebox/build/value/delta/edit.mjs", "../node_modules/typebox/build/compile/validator.mjs", "../node_modules/typebox/build/compile/compile.mjs", "../src/rules/ban-react-fc.ts", "../src/rules/enforce-ianitor-check-type.ts", "../src/rules/no-color3-constructor.ts", "../src/rules/no-instance-methods-without-this.ts", "../src/rules/no-print.ts", "../src/rules/no-shorthand-names.ts", "../src/rules/no-warn.ts", "../src/rules/prefer-sequence-overloads.ts", "../src/rules/prefer-udim2-shorthand.ts", "../src/rules/require-named-effect-functions.ts", "../src/rules/require-paired-calls.ts", "../src/rules/require-react-component-keys.ts", "../src/rules/use-exhaustive-dependencies.ts", "../src/rules/use-hook-at-top-level.ts", "../src/configure-utilities.ts", "../src/index.ts"],
4
+ "sourcesContent": [
5
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { TSESLint } from \"@typescript-eslint/utils\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\n/**\n * Configuration for banned Roblox Instance classes.\n *\n * Supports two formats:\n * - Array: `[\"Part\", \"Frame\"]` - uses default message\n * - Object: `{ Part: \"Use MeshPart instead\" }` - uses custom message\n *\n * @example\n * ```typescript\n * // Array format\n * { bannedInstances: [\"Part\", \"Frame\", \"Script\"] }\n *\n * // Object format with custom messages\n * { bannedInstances: { Part: \"Use MeshPart instead\", Script: \"Scripts should not be created at runtime\" } }\n * ```\n */\nexport interface BanInstancesOptions {\n\treadonly bannedInstances: ReadonlyArray<string> | Readonly<Record<string, string>>;\n}\n\ntype Options = [BanInstancesOptions?];\ntype MessageIds = \"bannedInstance\" | \"bannedInstanceCustom\";\n\nconst isArrayConfig = Compile(Type.Array(Type.String()));\nconst isObjectConfig = Compile(Type.Record(Type.String(), Type.String()));\nconst isOptionsObject = Compile(\n\tType.Object({\n\t\tbannedInstances: Type.Union([Type.Array(Type.String()), Type.Record(Type.String(), Type.String())]),\n\t}),\n);\n\ninterface BannedClassEntry {\n\treadonly originalName: string;\n\treadonly message: string | undefined;\n}\n\ninterface NormalizedConfig {\n\treadonly bannedClasses: ReadonlyMap<string, BannedClassEntry>;\n}\n\nfunction normalizeConfig(options: unknown): NormalizedConfig {\n\tif (!isOptionsObject.Check(options)) return { bannedClasses: new Map() };\n\n\tconst { bannedInstances } = options;\n\n\tif (isArrayConfig.Check(bannedInstances)) {\n\t\tconst map = new Map<string, BannedClassEntry>();\n\t\tfor (const className of bannedInstances)\n\t\t\tmap.set(className.toLowerCase(), { originalName: className, message: undefined });\n\t\treturn { bannedClasses: map };\n\t}\n\n\tif (isObjectConfig.Check(bannedInstances)) {\n\t\tconst map = new Map<string, BannedClassEntry>();\n\t\tfor (const [className, message] of Object.entries(bannedInstances))\n\t\t\tmap.set(className.toLowerCase(), { originalName: className, message });\n\t\treturn { bannedClasses: map };\n\t}\n\n\treturn { bannedClasses: new Map() };\n}\n\ninterface RuleDocsWithRecommended extends TSESLint.RuleMetaDataDocs {\n\treadonly recommended?: boolean;\n}\n\nconst docs: RuleDocsWithRecommended = {\n\tdescription: \"Ban specified Roblox Instance classes in new Instance() calls and JSX elements.\",\n\trecommended: false,\n};\n\nconst banInstances: TSESLint.RuleModuleWithMetaDocs<MessageIds, Options, RuleDocsWithRecommended> = {\n\tcreate(context) {\n\t\tconst config = normalizeConfig(context.options[0]);\n\n\t\tif (config.bannedClasses.size === 0) return {};\n\n\t\tfunction reportBannedClass(node: TSESTree.Node, entry: BannedClassEntry): void {\n\t\t\tconst { originalName, message } = entry;\n\n\t\t\tif (message !== undefined && message !== \"\") {\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { className: originalName, customMessage: message },\n\t\t\t\t\tmessageId: \"bannedInstanceCustom\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { className: originalName },\n\t\t\t\t\tmessageId: \"bannedInstance\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t// Handle: <classname> JSX elements (lowercase = Roblox Instance)\n\t\t\t// Capitalized JSX elements like <Part> are custom React components\n\t\t\tJSXOpeningElement(node: TSESTree.JSXOpeningElement) {\n\t\t\t\tconst { name } = node;\n\n\t\t\t\tif (name.type !== TSESTree.AST_NODE_TYPES.JSXIdentifier) return;\n\n\t\t\t\tconst elementName = name.name;\n\t\t\t\tconst firstChar = elementName.charAt(0);\n\n\t\t\t\t// Only lowercase JSX elements are Roblox Instances\n\t\t\t\tif (firstChar !== firstChar.toLowerCase()) return;\n\n\t\t\t\t// Lookup by lowercase (config keys are stored lowercase)\n\t\t\t\tconst entry = config.bannedClasses.get(elementName.toLowerCase());\n\t\t\t\tif (!entry) return;\n\n\t\t\t\treportBannedClass(node, entry);\n\t\t\t},\n\t\t\t// Handle: new Instance(\"ClassName\")\n\t\t\tNewExpression(node: TSESTree.NewExpression) {\n\t\t\t\tif (node.callee.type !== TSESTree.AST_NODE_TYPES.Identifier) return;\n\t\t\t\tif (node.callee.name !== \"Instance\") return;\n\n\t\t\t\tconst [firstArgument] = node.arguments;\n\t\t\t\tif (!firstArgument || firstArgument.type !== TSESTree.AST_NODE_TYPES.Literal) return;\n\t\t\t\tif (typeof firstArgument.value !== \"string\") return;\n\n\t\t\t\t// Lookup by lowercase (config keys are stored lowercase)\n\t\t\t\tconst entry = config.bannedClasses.get(firstArgument.value.toLowerCase());\n\t\t\t\tif (!entry) return;\n\n\t\t\t\treportBannedClass(node, entry);\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [{ bannedInstances: [] }],\n\tmeta: {\n\t\tdocs,\n\t\tmessages: {\n\t\t\tbannedInstance: \"Instance class '{{className}}' is banned.\",\n\t\t\tbannedInstanceCustom: \"{{customMessage}}\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tbannedInstances: {\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Instance classes to ban. Array of names or object mapping names to custom messages.\",\n\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tadditionalProperties: { type: \"string\" },\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: [\"bannedInstances\"],\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default banInstances;\n",
6
+ "/** TypeBox instantiation metrics */\nexport const Metrics = {\n assign: 0,\n create: 0,\n clone: 0,\n discard: 0,\n update: 0\n};\n",
7
+ "// deno-fmt-ignore-file\nimport { Metrics } from './metrics.mjs';\n/**\n * Performs an Object assign using the Left and Right object types. We track this operation as it\n * creates a new GC handle per assignment.\n */\nexport function Assign(left, right) {\n Metrics.assign += 1;\n return { ...left, ...right };\n}\n",
8
+ "// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return Array.isArray(value);\n}\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && Symbol.asyncIterator in value;\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return IsEqual(typeof value, 'bigint');\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return IsEqual(typeof value, 'boolean');\n}\n/** Returns true if this value is a constructor */\nexport function IsConstructor(value) {\n if (IsUndefined(value) || !IsFunction(value))\n return false;\n const result = Function.prototype.toString.call(value);\n if (/^class\\s/.test(result))\n return true;\n if (/\\[native code\\]/.test(result))\n return true;\n return false;\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return IsEqual(typeof value, 'function');\n}\n/** Returns true if this value is integer */\nexport function IsInteger(value) {\n return Number.isInteger(value);\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && Symbol.iterator in value;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return IsEqual(value, null);\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return Number.isFinite(value);\n}\n/** Returns true if this value is an object but not an array */\nexport function IsObjectNotArray(value) {\n return IsObject(value) && !IsArray(value);\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return IsEqual(typeof value, 'object') && !(IsNull(value));\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return IsEqual(typeof value, 'string');\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return IsEqual(typeof value, 'symbol');\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return IsEqual(value, undefined);\n}\n// --------------------------------------------------------------------------\n// Relational\n// --------------------------------------------------------------------------\nexport function IsEqual(left, right) {\n return left === right;\n}\nexport function IsGreaterThan(left, right) {\n return left > right;\n}\nexport function IsLessThan(left, right) {\n return left < right;\n}\nexport function IsLessEqualThan(left, right) {\n return left <= right;\n}\nexport function IsGreaterEqualThan(left, right) {\n return left >= right;\n}\n// --------------------------------------------------------------------------\n// MultipleOf\n// --------------------------------------------------------------------------\nexport function IsMultipleOf(dividend, divisor) {\n if (IsBigInt(dividend) || IsBigInt(divisor)) {\n return BigInt(dividend) % BigInt(divisor) === 0n;\n }\n const tolerance = 1e-10;\n if (!IsNumber(dividend))\n return true;\n if (IsInteger(dividend) && (1 / divisor) % 1 === 0)\n return true;\n const mod = dividend % divisor;\n return Math.min(Math.abs(mod), Math.abs(mod - divisor)) < tolerance;\n}\n// ------------------------------------------------------------------\n// IsClassInstance\n// ------------------------------------------------------------------\n/** Returns true if the value appears to be an instance of a class. */\nexport function IsClassInstance(value) {\n if (!IsObject(value))\n return false;\n const proto = globalThis.Object.getPrototypeOf(value);\n if (IsNull(proto))\n return false;\n return IsEqual(typeof proto.constructor, 'function') &&\n !(IsEqual(proto.constructor, globalThis.Object) ||\n IsEqual(proto.constructor.name, 'Object'));\n}\n// ------------------------------------------------------------------\n// IsValueLike\n// ------------------------------------------------------------------\nexport function IsValueLike(value) {\n return IsBigInt(value) ||\n IsBoolean(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsString(value) ||\n IsUndefined(value);\n}\n// --------------------------------------------------------------------------\n// String\n// --------------------------------------------------------------------------\n/** Returns the number of Unicode Grapheme Clusters */\nexport function StringGraphemeCount(value) {\n return Array.from(value).length;\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\nexport function Every(value, offset, callback) {\n for (let index = offset; index < value.length; index++) {\n if (!callback(value[index], index))\n return false;\n }\n return true;\n}\nexport function EveryAll(value, offset, callback) {\n let result = true;\n for (let index = offset; index < value.length; index++) {\n if (!callback(value[index], index))\n result = false;\n }\n return result;\n}\n// --------------------------------------------------------------------------\n// Object\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n/** Returns object entries as `[RegExp, Value][]` */\nexport function EntriesRegExp(value) {\n return Keys(value).map((key) => [new RegExp(`^${key}$`), value[key]]);\n}\n/** Returns object entries as `[string, Value][]` */\nexport function Entries(value) {\n return Object.entries(value);\n}\n/** Returns the property keys for this object via `Object.getOwnPropertyKeys({ ... })` */\nexport function Keys(value) {\n return Object.getOwnPropertyNames(value);\n}\n/** Returns the property keys for this object via `Object.getOwnPropertyKeys({ ... })` */\nexport function Symbols(value) {\n return Object.getOwnPropertySymbols(value);\n}\n/** Returns the property values for the given object via `Object.values()` */\nexport function Values(value) {\n return Object.values(value);\n}\n// ------------------------------------------------------------------\n// IsDeepEqual\n// ------------------------------------------------------------------\nfunction DeepEqualObject(left, right) {\n if (!IsObject(right))\n return false;\n const keys = Keys(left);\n return IsEqual(keys.length, Keys(right).length) &&\n keys.every((key) => IsDeepEqual(left[key], right[key]));\n}\nfunction DeepEqualArray(left, right) {\n return IsArray(right) && IsEqual(left.length, right.length) &&\n left.every((_, index) => IsDeepEqual(left[index], right[index]));\n}\n/** Tests values for deep equality */\nexport function IsDeepEqual(left, right) {\n return (IsArray(left) ? DeepEqualArray(left, right) : IsObject(left) ? DeepEqualObject(left, right) : IsEqual(left, right));\n}\n",
9
+ "import * as G from './guard.mjs';\n// ------------------------------------------------------------------\n// Identifier\n// ------------------------------------------------------------------\nconst identifierRegExp = /^[\\p{ID_Start}_$][\\p{ID_Continue}_$\\u200C\\u200D]*$/u;\n/** Returns true if this value is a valid JavaScript identifier */\nfunction IsIdentifier(value) {\n return identifierRegExp.test(value);\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function And(left, right) {\n return `(${left} && ${right})`;\n}\nexport function Or(left, right) {\n return `(${left} || ${right})`;\n}\nexport function Not(expr) {\n return `!(${expr})`;\n}\n// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return `Array.isArray(${value})`;\n}\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return `Guard.IsAsyncIterator(${value})`;\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return `typeof ${value} === \"bigint\"`;\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return `typeof ${value} === \"boolean\"`;\n}\n/** Returns true if this value is integer */\nexport function IsInteger(value) {\n return `Number.isInteger(${value})`;\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return `Guard.IsIterator(${value})`;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return `${value} === null`;\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return `Number.isFinite(${value})`;\n}\n/** Returns true if this value is an object but not an array */\nexport function IsObjectNotArray(value) {\n return And(IsObject(value), Not(IsArray(value)));\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return `typeof ${value} === \"object\" && ${value} !== null`;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return `typeof ${value} === \"string\"`;\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return `typeof ${value} === \"symbol\"`;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return `${value} === undefined`;\n}\n// ------------------------------------------------------------------\n// Functions and Constructors\n// ------------------------------------------------------------------\nexport function IsFunction(value) {\n return `typeof ${value} === \"function\"`;\n}\nexport function IsConstructor(value) {\n return `Guard.IsConstructor(${value})`;\n}\n// ------------------------------------------------------------------\n// Relational\n// ------------------------------------------------------------------\nexport function IsEqual(left, right) {\n return `${left} === ${right}`;\n}\nexport function IsGreaterThan(left, right) {\n return `${left} > ${right}`;\n}\nexport function IsLessThan(left, right) {\n return `${left} < ${right}`;\n}\nexport function IsLessEqualThan(left, right) {\n return `${left} <= ${right}`;\n}\nexport function IsGreaterEqualThan(left, right) {\n return `${left} >= ${right}`;\n}\n// --------------------------------------------------------------------------\n// String\n// --------------------------------------------------------------------------\nexport function StringGraphemeCount(value) {\n return `Guard.StringGraphemeCount(${value})`;\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\nexport function Every(value, offset, params, expression) {\n return G.IsEqual(offset, '0')\n ? `${value}.every((${params[0]}, ${params[1]}) => ${expression})`\n : `((value, callback) => { for(let index = ${offset}; index < value.length; index++) if (!callback(value[index], index)) return false; return true })(${value}, (${params[0]}, ${params[1]}) => ${expression})`;\n}\n// --------------------------------------------------------------------------\n// Objects\n// --------------------------------------------------------------------------\nexport function Entries(value) {\n return `Object.entries(${value})`;\n}\nexport function Keys(value) {\n return `Object.getOwnPropertyNames(${value})`;\n}\nexport function HasPropertyKey(value, key) {\n const isProtoField = G.IsEqual(key, '\"__proto__\"') || G.IsEqual(key, '\"toString\"') || G.IsEqual(key, '\"constructor\"');\n return isProtoField ? `Object.prototype.hasOwnProperty.call(${value}, ${key})` : `${key} in ${value}`;\n}\nexport function IsDeepEqual(left, right) {\n return `Guard.IsDeepEqual(${left}, ${right})`;\n}\n// ------------------------------------------------------------------\n// Expressions\n// ------------------------------------------------------------------\nexport function ArrayLiteral(elements) {\n return `[${elements.join(', ')}]`;\n}\nexport function ArrowFunction(parameters, body) {\n return `((${parameters.join(', ')}) => ${body})`;\n}\nexport function Call(value, arguments_) {\n return `${value}(${arguments_.join(', ')})`;\n}\nexport function New(value, arguments_) {\n return `new ${value}(${arguments_.join(', ')})`;\n}\nexport function Member(left, right) {\n return `${left}${IsIdentifier(right) ? `.${right}` : `[${Constant(right)}]`}`;\n}\nexport function Constant(value) {\n return G.IsString(value) ? JSON.stringify(value) : `${value}`;\n}\nexport function Ternary(condition, true_, false_) {\n return `(${condition} ? ${true_} : ${false_})`;\n}\n// ------------------------------------------------------------------\n// Statements\n// ------------------------------------------------------------------\nexport function Statements(statements) {\n return `{ ${statements.join('; ')}; }`;\n}\nexport function ConstDeclaration(identifier, expression) {\n return `const ${identifier} = ${expression}`;\n}\nexport function If(condition, then) {\n return `if(${condition}) { ${then} }`;\n}\nexport function Return(expression) {\n return `return ${expression}`;\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function ReduceAnd(operands) {\n return G.IsEqual(operands.length, 0) ? 'true' : operands.reduce((left, right) => And(left, right));\n}\nexport function ReduceOr(operands) {\n // deno-coverage-ignore - we never observe 0 operands\n return G.IsEqual(operands.length, 0) ? 'false' : operands.reduce((left, right) => Or(left, right));\n}\n// --------------------------------------------------------------------------\n// Arithmatic\n// --------------------------------------------------------------------------\nexport function PrefixIncrement(expression) {\n return `++${expression}`;\n}\nexport function MultipleOf(dividend, divisor) {\n return `Guard.IsMultipleOf(${dividend}, ${divisor})`;\n}\n",
10
+ "// --------------------------------------------------------------------------\n// Primitives\n// --------------------------------------------------------------------------\nexport function IsBoolean(value) {\n return value instanceof Boolean;\n}\nexport function IsNumber(value) {\n return value instanceof Number;\n}\nexport function IsString(value) {\n return value instanceof String;\n}\n// --------------------------------------------------------------------------\n// TypeArray\n// --------------------------------------------------------------------------\nexport function IsTypeArray(value) {\n return globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if the value is a Int8Array */\nexport function IsInt8Array(value) {\n return value instanceof globalThis.Int8Array;\n}\n/** Returns true if the value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if the value is a Uint8ClampedArray */\nexport function IsUint8ClampedArray(value) {\n return value instanceof globalThis.Uint8ClampedArray;\n}\n/** Returns true if the value is a Int16Array */\nexport function IsInt16Array(value) {\n return value instanceof globalThis.Int16Array;\n}\n/** Returns true if the value is a Uint16Array */\nexport function IsUint16Array(value) {\n return value instanceof globalThis.Uint16Array;\n}\n/** Returns true if the value is a Int32Array */\nexport function IsInt32Array(value) {\n return value instanceof globalThis.Int32Array;\n}\n/** Returns true if the value is a Uint32Array */\nexport function IsUint32Array(value) {\n return value instanceof globalThis.Uint32Array;\n}\n/** Returns true if the value is a Float32Array */\nexport function IsFloat32Array(value) {\n return value instanceof globalThis.Float32Array;\n}\n/** Returns true if the value is a Float64Array */\nexport function IsFloat64Array(value) {\n return value instanceof globalThis.Float64Array;\n}\n/** Returns true if the value is a BigInt64Array */\nexport function IsBigInt64Array(value) {\n return value instanceof globalThis.BigInt64Array;\n}\n/** Returns true if the value is a BigUint64Array */\nexport function IsBigUint64Array(value) {\n return value instanceof globalThis.BigUint64Array;\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\n/** Returns true if the value is a RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\n/** Returns true if the value is a Date */\nexport function IsDate(value) {\n return value instanceof globalThis.Date;\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Returns true if the value is a Set */\nexport function IsSet(value) {\n return value instanceof globalThis.Set;\n}\n// ------------------------------------------------------------------\n// Map\n// ------------------------------------------------------------------\n/** Returns true if the value is a Map */\nexport function IsMap(value) {\n return value instanceof globalThis.Map;\n}\n",
11
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Metrics } from './metrics.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nfunction IsGuard(value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, '~guard');\n}\nfunction FromGuard(value) {\n return value; // non-clonable\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n return value.map((value) => FromValue(value));\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n const result = {};\n const descriptors = Object.getOwnPropertyDescriptors(value);\n for (const key of Object.keys(descriptors)) {\n const descriptor = descriptors[key];\n if (Guard.HasPropertyKey(descriptor, 'value')) {\n Object.defineProperty(result, key, { ...descriptor, value: FromValue(descriptor.value) });\n }\n }\n return result;\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromRegExp(value) {\n return new RegExp(value.source, value.flags);\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromUnknown(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Value\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return (value instanceof RegExp ? FromRegExp(value) :\n IsGuard(value) ? FromGuard(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsObject(value) ? FromObject(value) :\n FromUnknown(value));\n}\n/**\n * Clones a value using the TypeBox type cloning strategy. This function preserves non-enumerable\n * properties from the source value. This is to ensure cloned types retain discriminable\n * hidden properties.\n */\nexport function Clone(value) {\n Metrics.clone += 1;\n return FromValue(value);\n}\n",
12
+ "import { Guard } from '../../guard/index.mjs';\n// Internal mutable state\nconst settings = {\n immutableTypes: false,\n maxErrors: 8,\n useEval: true,\n exactOptionalPropertyTypes: false,\n enumerableKind: false\n};\n/** Resets system settings to defaults */\nexport function Reset() {\n settings.immutableTypes = false;\n settings.maxErrors = 8;\n settings.useEval = true;\n settings.exactOptionalPropertyTypes = false;\n settings.enumerableKind = false;\n}\n/** Sets system settings */\nexport function Set(options) {\n for (const key of Guard.Keys(options)) {\n const value = options[key];\n if (value !== undefined) {\n Object.defineProperty(settings, key, { value });\n }\n }\n}\n/** Gets current system settings */\nexport function Get() {\n return settings;\n}\n",
13
+ "// deno-fmt-ignore-file\nimport { Settings } from '../settings/index.mjs';\nimport { Metrics } from './metrics.mjs';\nfunction MergeHidden(left, right, configuration = {}) {\n for (const key of Object.keys(right)) {\n Object.defineProperty(left, key, {\n configurable: true,\n writable: true,\n enumerable: false,\n value: right[key]\n });\n }\n return left;\n}\nfunction Merge(left, right) {\n return { ...left, ...right };\n}\n/**\n * Creates an object with hidden, enumerable, and optional property sets. This function\n * ensures types are instantiated according to configuration rules for enumerable and\n * non-enumerable properties.\n */\nexport function Create(hidden, enumerable, options = {}) {\n Metrics.create += 1;\n const settings = Settings.Get();\n const withOptions = Merge(enumerable, options);\n const withHidden = settings.enumerableKind ? Merge(withOptions, hidden) : MergeHidden(withOptions, hidden);\n return settings.immutableTypes ? Object.freeze(withHidden) : withHidden;\n}\n",
14
+ "// deno-fmt-ignore-file\nimport { Metrics } from \"./metrics.mjs\";\nimport { Clone } from './clone.mjs';\n/** Discards multiple property keys from the given object value */\nexport function Discard(value, propertyKeys) {\n Metrics.discard += 1;\n const result = {};\n const descriptors = Object.getOwnPropertyDescriptors(Clone(value));\n const keysToDiscard = new Set(propertyKeys);\n for (const key of Object.keys(descriptors)) {\n if (keysToDiscard.has(key))\n continue;\n Object.defineProperty(result, key, descriptors[key]);\n }\n return result;\n}\n",
15
+ "// deno-fmt-ignore-file\nimport { Settings } from '../settings/index.mjs';\nimport { Metrics } from \"./metrics.mjs\";\nimport { Clone } from './clone.mjs';\n/**\n * Updates a value with new properties while preserving property enumerability. Use this function to modify\n * existing types without altering their configuration.\n */\nexport function Update(current, hidden, enumerable) {\n Metrics.update += 1;\n const settings = Settings.Get();\n const result = Clone(current);\n // hidden\n for (const key of Object.keys(hidden)) {\n Object.defineProperty(result, key, {\n configurable: true,\n writable: true,\n enumerable: settings.enumerableKind,\n value: hidden[key]\n });\n }\n // enumerable\n for (const key of Object.keys(enumerable)) {\n Object.defineProperty(result, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: enumerable[key]\n });\n }\n return result;\n}\n",
16
+ "// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Kind\n// ------------------------------------------------------------------\nexport function IsKind(value, kind) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, '~kind') && Guard.IsEqual(value[\"~kind\"], kind);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsSchema(value) {\n return Guard.IsObject(value);\n}\n",
17
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Action\n// ------------------------------------------------------------------\n/** Creates an OptionalAddAction. */\nexport function OptionalAddAction(type) {\n return Memory.Create({ ['~kind']: 'OptionalAddAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a OptionalAddAction. */\nexport function IsOptionalAddAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'OptionalAddAction')\n && IsSchema(value.type);\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a OptionalRemoveAction. */\nexport function OptionalRemoveAction(type) {\n return Memory.Create({ ['~kind']: 'OptionalRemoveAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a OptionalRemoveAction. */\nexport function IsOptionalRemoveAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'OptionalRemoveAction')\n && IsSchema(value.type);\n}\n",
18
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Action\n// ------------------------------------------------------------------\n/** Creates a ReadonlyAddAction. */\nexport function ReadonlyAddAction(type) {\n return Memory.Create({ ['~kind']: 'ReadonlyAddAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a ReadonlyAddAction. */\nexport function IsReadonlyAddAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'ReadonlyAddAction')\n && IsSchema(value.type);\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a ReadonlyRemoveAction. */\nexport function ReadonlyRemoveAction(type) {\n return Memory.Create({ ['~kind']: 'ReadonlyRemoveAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a ReadonlyRemoveAction. */\nexport function IsReadonlyRemoveAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'ReadonlyRemoveAction')\n && IsSchema(value.type);\n}\n",
19
+ "import { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Deferred action. */\nexport function Deferred(action, parameters, options) {\n return Memory.Create({ '~kind': 'Deferred' }, { action, parameters, options }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TDeferred. */\nexport function IsDeferred(value) {\n return IsKind(value, 'Deferred');\n}\n",
20
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes Immutable from the given type. */\nexport function ImmutableRemove(type) {\n return Memory.Discard(type, ['~immutable']);\n}\n/** Adds Immutable to the given type. */\nexport function ImmutableAdd(type) {\n return Memory.Update(type, { '~immutable': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Immutable modifier to the given type. */\nexport function Immutable(type) {\n return ImmutableAdd(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TImmutable */\nexport function IsImmutable(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~immutable');\n}\n",
21
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes Optional from the given type. */\nexport function OptionalRemove(type) {\n const result = Memory.Discard(type, ['~optional']);\n return result;\n}\n/** Adds Optional to the given type. */\nexport function OptionalAdd(type) {\n return Memory.Update(type, { '~optional': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Optional modifier to the given type. */\nexport function Optional(type) {\n return OptionalAdd(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TOptional */\nexport function IsOptional(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~optional');\n}\n",
22
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes a Readonly property modifier from the given type. */\nexport function ReadonlyRemove(type) {\n return Memory.Discard(type, ['~readonly']);\n}\n/** Adds a Readonly property modifier to the given type. */\nexport function ReadonlyAdd(type) {\n return Memory.Update(type, { '~readonly': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Readonly property modifier to the given type. */\nexport function Readonly(type) {\n return ReadonlyAdd(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TReadonly */\nexport function IsReadonly(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~readonly');\n}\n",
23
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Array type. */\nexport function Array(items, options) {\n return Memory.Create({ '~kind': 'Array' }, { type: 'array', items }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TArray. */\nexport function IsArray(value) {\n return IsKind(value, 'Array');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TArray. */\nexport function ArrayOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'items']);\n}\n",
24
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a AsyncIterator type. */\nexport function AsyncIterator(iteratorItems, options) {\n return Memory.Create({ '~kind': 'AsyncIterator' }, { type: 'asyncIterator', iteratorItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TAsyncIterator */\nexport function IsAsyncIterator(value) {\n return IsKind(value, 'AsyncIterator');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TAsyncIterator. */\nexport function AsyncIteratorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'iteratorItems']);\n}\n",
25
+ "// deno-fmt-ignore-file\nimport { Settings } from '../../system/settings/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Type.Base<...>\n// ------------------------------------------------------------------\nfunction BaseProperty(value) {\n return {\n enumerable: Settings.Get().enumerableKind,\n writable: false,\n configurable: false,\n value\n };\n}\n/** Base class for creating extension types. */\nexport class Base {\n constructor() {\n globalThis.Object.defineProperty(this, '~kind', BaseProperty('Base'));\n globalThis.Object.defineProperty(this, '~guard', BaseProperty({\n check: (value) => this.Check(value),\n errors: (value) => this.Errors(value)\n }));\n }\n /** Checks a value or returns false if invalid */\n Check(value) {\n return true;\n }\n /** Returns errors for a value. Return an empty array if valid. */\n Errors(value) {\n return [];\n }\n /** Converts a value into this type */\n Convert(value) {\n return value;\n }\n /** Cleans a value according to this type */\n Clean(value) {\n return value;\n }\n /** Returns a default value for this type */\n Default(value) {\n return value;\n }\n /** Creates a new instance of this type */\n Create() {\n throw new Error('Create not implemented');\n }\n /** Clones this type */\n Clone() {\n throw Error('Clone not implemented');\n }\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a Base type. */\nexport function IsBase(value) {\n return IsKind(value, 'Base');\n}\n",
26
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Constructor type. */\nexport function Constructor(parameters, instanceType, options = {}) {\n return Memory.Create({ '~kind': 'Constructor' }, { type: 'constructor', parameters, instanceType }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TConstructor. */\nexport function IsConstructor(value) {\n return IsKind(value, 'Constructor');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TConstructor. */\nexport function ConstructorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'parameters', 'instanceType']);\n}\n",
27
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Function type. */\nexport function Function(parameters, returnType, options = {}) {\n return Memory.Create({ ['~kind']: 'Function' }, { type: 'function', parameters, returnType }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TFunction. */\nexport function IsFunction(value) {\n return IsKind(value, 'Function');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TFunction. */\nexport function FunctionOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'parameters', 'returnType']);\n}\n",
28
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Ref type. */\nexport function Ref(ref, options) {\n return Memory.Create({ ['~kind']: 'Ref' }, { $ref: ref }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TRef. */\nexport function IsRef(value) {\n return IsKind(value, 'Ref');\n}\n",
29
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\n/** Creates a Generic type. */\nexport function Generic(parameters, expression) {\n return Memory.Create({ '~kind': 'Generic' }, { type: 'generic', parameters, expression });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TGeneric. */\nexport function IsGeneric(value) {\n return IsKind(value, 'Generic');\n}\n",
30
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const NeverPattern = '(?!)';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Never type. */\nexport function Never(options) {\n return Memory.Create({ '~kind': 'Never' }, { not: {} }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TNever. */\nexport function IsNever(value) {\n return IsKind(value, 'Never');\n}\n",
31
+ "// deno-fmt-ignore-file\nimport { Generic, IsGeneric } from '../../types/generic.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { Never } from '../../types/never.mjs';\nfunction FromNotResolvable() {\n return ['(not-resolvable)', Never()];\n}\nfunction FromNotGeneric() {\n return ['(not-generic)', Never()];\n}\nfunction FromGeneric(name, parameters, expression) {\n return [name, Generic(parameters, expression)];\n}\nfunction FromRef(context, ref, arguments_) {\n return (ref in context\n ? FromType(context, ref, context[ref], arguments_)\n : FromNotResolvable());\n}\nfunction FromType(context, name, target, arguments_) {\n return (IsGeneric(target) ? FromGeneric(name, target.parameters, target.expression) :\n IsRef(target) ? FromRef(context, target.$ref, arguments_) :\n FromNotGeneric());\n}\n/** Resolves a named generic target from the context, or returns TNever if it cannot be resolved or is not generic. */\nexport function ResolveTarget(context, target, arguments_) {\n return FromType(context, '(anonymous)', target, arguments_);\n}\n",
32
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Cyclic type. */\nexport function Cyclic($defs, $ref, options) {\n // $defs require an $id per definition to enable Ajv to resolve correctly\n const defs = Guard.Keys($defs).reduce((result, key) => {\n return { ...result, [key]: Memory.Update($defs[key], {}, { $id: key }) };\n }, {});\n return Memory.Create({ ['~kind']: 'Cyclic' }, { $defs: defs, $ref }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TCyclic. */\nexport function IsCyclic(value) {\n return IsKind(value, 'Cyclic');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TCyclic. */\nexport function CyclicOptions(type) {\n return Memory.Discard(type, ['~kind', '$defs', '$ref']);\n}\n",
33
+ "/**\n * Match arguments for overloaded functions that use the `...args: unknown[]` pattern. Arguments\n * are parsed using argument length only.\n */\nexport function Match(args, match) {\n return (match[args.length]?.(...args) ?? (() => {\n throw Error('Invalid Arguments');\n })());\n}\n",
34
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Unknown type. */\nexport function Unknown(options) {\n return Memory.Create({ ['~kind']: 'Unknown' }, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnknown. */\nexport function IsUnknown(value) {\n return IsKind(value, 'Unknown');\n}\n",
35
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\nimport { Unknown } from '../types/unknown.mjs';\n/** Creates an Infer instruction. */\nexport function Infer(...args) {\n const [name, extends_] = Arguments.Match(args, {\n 2: (name, extends_) => [name, extends_, extends_],\n 1: (name) => [name, Unknown(), Unknown()],\n });\n return Memory.Create({ ['~kind']: 'Infer' }, { type: 'infer', name, extends: extends_ }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TInfer. */\nexport function IsInfer(value) {\n return IsKind(value, 'Infer');\n}\n",
36
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file \nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Any type. */\nexport function Any(options) {\n return Memory.Create({ ['~kind']: 'Any' }, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TAny. */\nexport function IsAny(value) {\n return IsKind(value, 'Any');\n}\n",
37
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nexport function IsTypeScriptEnumLike(value) {\n return Guard.IsObjectNotArray(value);\n}\nexport function TypeScriptEnumToEnumValues(type) {\n const keys = Guard.Keys(type).filter((key) => isNaN(key));\n return keys.reduce((result, key) => [...result, type[key]], []);\n}\n",
38
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { IsTypeScriptEnumLike } from '../engine/enum/typescript-enum-to-enum-values.mjs';\nimport { TypeScriptEnumToEnumValues } from '../engine/enum/typescript-enum-to-enum-values.mjs';\n/** Creates an Enum type. */\nexport function Enum(value, options) {\n const values = IsTypeScriptEnumLike(value) ? TypeScriptEnumToEnumValues(value) : value;\n return Memory.Create({ '~kind': 'Enum' }, { enum: values }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TEnum. */\nexport function IsEnum(value) {\n return IsKind(value, 'Enum');\n}\n",
39
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Intersect type. */\nexport function Intersect(types, options = {}) {\n return Memory.Create({ '~kind': 'Intersect' }, { allOf: types }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TIntersect. */\nexport function IsIntersect(value) {\n return IsKind(value, 'Intersect');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TIntersect. */\nexport function IntersectOptions(type) {\n return Memory.Discard(type, ['~kind', 'allOf']);\n}\n",
40
+ "// deno-coverage-ignore-start - unreachable by definition\n/** Used for unreachable logic */\nexport function Unreachable() {\n throw new Error('Unreachable');\n}\n// deno-coverage-ignore-stop\n",
41
+ "import { Settings } from '../settings/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nlet supported = undefined;\n// ------------------------------------------------------------------\n// TryEval\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - catch is environment dependent\nfunction TryEval() {\n try {\n new globalThis.Function('null')();\n return true;\n }\n catch {\n return false;\n }\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// CanEvaluate\n// ------------------------------------------------------------------\n/** Returns true if the environment supports dynamic JavaScript evaluation */\nexport function CanEvaluate() {\n if (Guard.IsUndefined(supported))\n supported = TryEval();\n return supported && Settings.Get().useEval;\n}\n",
42
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../unreachable/index.mjs';\nimport { Guard, GlobalsGuard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// InstanceKeys\n//\n// Retrieves all enumerable and non-enumerable own property keys \n// and inherited prototype keys (excluding symbols and the 'constructor') \n// from an object instance.\n//\n// This function is useful for differentiating between class instances \n// based on their structural keys rather than relying on the \n// constructor name. It provides a more reliable structural comparison \n// by capturing both own and prototype properties.\n//\n// ------------------------------------------------------------------\nfunction InstanceKeys(value) {\n const propertyKeys = new Set();\n let current = value;\n while (current && current !== Object.prototype) {\n for (const key of Reflect.ownKeys(current)) {\n if (key !== 'constructor' && typeof key !== 'symbol')\n propertyKeys.add(key);\n }\n current = Object.getPrototypeOf(current);\n }\n return [...propertyKeys];\n}\n// ------------------------------------------------------------------\n// IsIEEE754\n//\n// TypeBox guards do not consider +/- Infinity or NaN as valid\n// numbers, but they are valid IEEE754 numbers. We use a special\n// guard to ensure these numbers are considered for hashing.\n//\n// ------------------------------------------------------------------\nfunction IsIEEE754(value) {\n return typeof value === 'number';\n}\n// ------------------------------------------------------------------\n// ByteMarker\n// ------------------------------------------------------------------\nvar ByteMarker;\n(function (ByteMarker) {\n ByteMarker[ByteMarker[\"Array\"] = 0] = \"Array\";\n ByteMarker[ByteMarker[\"BigInt\"] = 1] = \"BigInt\";\n ByteMarker[ByteMarker[\"Boolean\"] = 2] = \"Boolean\";\n ByteMarker[ByteMarker[\"Date\"] = 3] = \"Date\";\n ByteMarker[ByteMarker[\"Constructor\"] = 4] = \"Constructor\";\n ByteMarker[ByteMarker[\"Function\"] = 5] = \"Function\";\n ByteMarker[ByteMarker[\"Null\"] = 6] = \"Null\";\n ByteMarker[ByteMarker[\"Number\"] = 7] = \"Number\";\n ByteMarker[ByteMarker[\"Object\"] = 8] = \"Object\";\n ByteMarker[ByteMarker[\"RegExp\"] = 9] = \"RegExp\";\n ByteMarker[ByteMarker[\"String\"] = 10] = \"String\";\n ByteMarker[ByteMarker[\"Symbol\"] = 11] = \"Symbol\";\n ByteMarker[ByteMarker[\"TypeArray\"] = 12] = \"TypeArray\";\n ByteMarker[ByteMarker[\"Undefined\"] = 13] = \"Undefined\";\n})(ByteMarker || (ByteMarker = {}));\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)];\nconst Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));\nconst F64 = new Float64Array(1);\nconst F64In = new DataView(F64.buffer);\nconst F64Out = new Uint8Array(F64.buffer);\n// ------------------------------------------------------------------\n// Operation\n// ------------------------------------------------------------------\nfunction FNV1A64_OP(byte) {\n Accumulator = Accumulator ^ Bytes[byte];\n Accumulator = (Accumulator * Prime) % Size;\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n FNV1A64_OP(ByteMarker.Array);\n for (const item of value) {\n FromValue(item);\n }\n}\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n FNV1A64_OP(ByteMarker.BigInt);\n F64In.setBigInt64(0, value);\n for (const byte of F64Out) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n FNV1A64_OP(ByteMarker.Boolean);\n FNV1A64_OP(value ? 1 : 0);\n}\n// ------------------------------------------------------------------\n// Constructor\n// ------------------------------------------------------------------\nfunction FromConstructor(value) {\n FNV1A64_OP(ByteMarker.Constructor);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\nfunction FromDate(value) {\n FNV1A64_OP(ByteMarker.Date);\n FromValue(value.getTime());\n}\n// ------------------------------------------------------------------\n// Function\n// ------------------------------------------------------------------\nfunction FromFunction(value) {\n FNV1A64_OP(ByteMarker.Function);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(_value) {\n FNV1A64_OP(ByteMarker.Null);\n}\n// ------------------------------------------------------------------\n// Number | IEEE754\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n FNV1A64_OP(ByteMarker.Number);\n F64In.setFloat64(0, value, true /* little-endian */);\n for (const byte of F64Out) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n FNV1A64_OP(ByteMarker.Object);\n for (const key of InstanceKeys(value).sort()) {\n FromValue(key);\n FromValue(value[key]);\n }\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromRegExp(value) {\n FNV1A64_OP(ByteMarker.RegExp);\n FromString(value.toString());\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nconst encoder = new TextEncoder();\nfunction FromString(value) {\n FNV1A64_OP(ByteMarker.String);\n for (const byte of encoder.encode(value)) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Symbol\n// ------------------------------------------------------------------\nfunction FromSymbol(value) {\n FNV1A64_OP(ByteMarker.Symbol);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// TypeArray\n// ------------------------------------------------------------------\nfunction FromTypeArray(value) {\n FNV1A64_OP(ByteMarker.TypeArray);\n const buffer = new Uint8Array(value.buffer);\n for (let i = 0; i < buffer.length; i++) {\n FNV1A64_OP(buffer[i]);\n }\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(_value) {\n return FNV1A64_OP(ByteMarker.Undefined);\n}\n// ------------------------------------------------------------------\n// Hash\n//\n// deno-coverage-ignore-start - unreachable\n//\n// This function should all JavaScript values so we can't reach the\n// fall-through. We use Unreachable to assert that no values pass\n// through. We will need to handle these should they arise.\n//\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return (GlobalsGuard.IsTypeArray(value) ? FromTypeArray(value) :\n GlobalsGuard.IsDate(value) ? FromDate(value) :\n GlobalsGuard.IsRegExp(value) ? FromRegExp(value) :\n GlobalsGuard.IsBoolean(value) ? FromBoolean(value.valueOf()) :\n GlobalsGuard.IsString(value) ? FromString(value.valueOf()) :\n GlobalsGuard.IsNumber(value) ? FromNumber(value.valueOf()) :\n IsIEEE754(value) ? FromNumber(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsConstructor(value) ? FromConstructor(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsObject(value) ? FromObject(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsSymbol(value) ? FromSymbol(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Guard.IsFunction(value) ? FromFunction(value) :\n Unreachable());\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Hash\n// ------------------------------------------------------------------\n/** Generates a FNV1A-64 non cryptographic hash of the given value */\nexport function HashCode(value) {\n Accumulator = BigInt('14695981039346656037');\n FromValue(value);\n return Accumulator;\n}\n/** Generates a FNV1A-64 non cryptographic hash of the given value */\nexport function Hash(value) {\n return HashCode(value).toString(16).padStart(16, '0');\n}\n",
43
+ "// deno-fmt-ignore-file\n/** en_US: English (United States) - ISO 639-1 language code 'en' with ISO 3166-1 alpha-2 country code 'US' for United States. */\nexport function en_US(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'must not have additional properties';\n case 'anyOf': return 'must match a schema in anyOf';\n case 'boolean': return 'schema is false';\n case 'const': return 'must be equal to constant';\n case 'contains': return 'must contain at least 1 valid item';\n case 'dependencies': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'dependentRequired': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'enum': return 'must be equal to one of the allowed values';\n case 'exclusiveMaximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `must match format \"${error.params.format}\"`;\n case 'if': return `must match \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `must not have more than ${error.params.limit} items`;\n case 'maxLength': return `must not have more than ${error.params.limit} characters`;\n case 'maxProperties': return `must not have more than ${error.params.limit} properties`;\n case 'maximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `must not have fewer than ${error.params.limit} items`;\n case 'minLength': return `must not have fewer than ${error.params.limit} characters`;\n case 'minProperties': return `must not have fewer than ${error.params.limit} properties`;\n case 'minimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `must be multiple of ${error.params.multipleOf}`;\n case 'not': return 'must not be valid';\n case 'oneOf': return 'must match exactly one schema in oneOf';\n case 'pattern': return `must match pattern \"${error.params.pattern}\"`;\n case 'propertyNames': return `property names ${error.params.propertyNames.join(', ')} are invalid`;\n case 'required': return `must have required properties ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `must be ${error.params.type}` : `must be either ${error.params.type.join(' or ')}`;\n case 'unevaluatedItems': return 'must not have unevaluated items';\n case 'unevaluatedProperties': return 'must not have unevaluated properties';\n case 'uniqueItems': return `must not have duplicate items`;\n case '~guard': return `must match check function`;\n case '~refine': return error.params.message;\n // deno-coverage-ignore - unreachable\n default: return 'an unknown validation error occurred';\n }\n}\n",
44
+ "// deno-fmt-ignore-file\nimport { en_US } from './en_US.mjs';\nlet locale = en_US;\n/** Sets the locale */\nexport function Set(callback) {\n locale = callback;\n}\n/** Gets the locale */\nexport function Get() {\n return locale;\n}\n/** Resets the locale to `en_US` */\nexport function Reset() {\n Set(en_US);\n}\n",
45
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\nexport class EncodeBuilder {\n constructor(type, decode) {\n this.type = type;\n this.decode = decode;\n }\n Encode(callback) {\n const type = this.type;\n const decode = IsCodec(type) ? (value) => this.decode(type['~codec'].decode(value)) : this.decode;\n const encode = IsCodec(type) ? (value) => type['~codec'].encode(callback(value)) : callback;\n const codec = { decode, encode };\n return Memory.Update(this.type, { '~codec': codec }, {});\n }\n}\nexport class DecodeBuilder {\n constructor(type) {\n this.type = type;\n }\n Decode(callback) {\n return new EncodeBuilder(this.type, callback);\n }\n}\n// ------------------------------------------------------------------\n// Bidirectional\n// ------------------------------------------------------------------\n/** Creates a bi-directional Codec. Codec functions are called on Value.Decode and Value.Encode. */\nexport function Codec(type) {\n return new DecodeBuilder(type);\n}\n// ------------------------------------------------------------------\n// Unidirectional\n// ------------------------------------------------------------------\n/** Createsa uni-directional Codec with Decode only. The Decode function is called on Value.Decode */\nexport function Decode(type, callback) {\n return Codec(type).Decode(callback).Encode(() => {\n throw Error('Encode not implemented');\n });\n}\n/** Creates a uni-directional Codec with Encode only. The Encode function is called on Value.Encode */\nexport function Encode(type, callback) {\n return Codec(type).Decode(() => {\n throw Error('Decode not implemented');\n }).Encode(callback);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsCodec(value) {\n return IsSchema(value) &&\n Guard.HasPropertyKey(value, '~codec') &&\n Guard.IsObject(value['~codec']) &&\n Guard.HasPropertyKey(value['~codec'], 'encode') &&\n Guard.HasPropertyKey(value['~codec'], 'decode');\n}\n",
46
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Applies a Refine check to the given type. */\nexport function RefineAdd(type, refinement) {\n const refinements = IsRefine(type) ? [...type['~refine'], refinement] : [refinement];\n return Memory.Update(type, { '~refine': refinements }, {});\n}\n/** Applies a Refine check to the given type. */\nexport function Refine(type, refine, message = 'error') {\n return RefineAdd(type, { refine, message });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TRefine. */\nexport function IsRefine(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~refine');\n}\n",
47
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const BigIntPattern = '-?(?:0|[1-9][0-9]*)n';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a BigInt type. */\nexport function BigInt(options) {\n return Memory.Create({ '~kind': 'BigInt' }, { type: 'bigint' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TBigInt. */\nexport function IsBigInt(value) {\n return IsKind(value, 'BigInt');\n}\n",
48
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Boolean type. */\nexport function Boolean(options) {\n return Memory.Create({ '~kind': 'Boolean' }, { type: 'boolean' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TBoolean. */\nexport function IsBoolean(value) {\n return IsKind(value, 'Boolean');\n}\n",
49
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Identifier. */\nexport function Identifier(name) {\n return Memory.Create({ '~kind': 'Identifier' }, { name });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TIdentifier. */\nexport function IsIdentifier(value) {\n return IsKind(value, 'Identifier');\n}\n",
50
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const IntegerPattern = '-?(?:0|[1-9][0-9]*)';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Integer type. */\nexport function Integer(options) {\n return Memory.Create({ '~kind': 'Integer' }, { type: 'integer' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TInteger. */\nexport function IsInteger(value) {\n return IsKind(value, 'Integer');\n}\n",
51
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Iterator type. */\nexport function Iterator(iteratorItems, options) {\n return Memory.Create({ '~kind': 'Iterator' }, { type: 'iterator', iteratorItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TIterator. */\nexport function IsIterator(value) {\n return IsKind(value, 'Iterator');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TIterator. */\nexport function IteratorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'iteratorItems']);\n}\n",
52
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// InvalidLiteralValue\n// ------------------------------------------------------------------\nexport class InvalidLiteralValue extends Error {\n constructor(value) {\n super(`Invalid Literal value`);\n Object.defineProperty(this, 'cause', {\n value: { value },\n writable: false,\n configurable: false,\n enumerable: false\n });\n }\n}\nexport function LiteralTypeName(value) {\n return (Guard.IsBigInt(value) ? 'bigint' :\n Guard.IsBoolean(value) ? 'boolean' :\n Guard.IsNumber(value) ? 'number' :\n Guard.IsString(value) ? 'string' :\n (() => { throw new InvalidLiteralValue(value); })());\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Literal type. */\nexport function Literal(value, options) {\n return Memory.Create({ '~kind': 'Literal' }, { type: LiteralTypeName(value), const: value }, options);\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TLiteralValue. */\nexport function IsLiteralValue(value) {\n return Guard.IsBigInt(value)\n || Guard.IsBoolean(value)\n || Guard.IsNumber(value)\n || Guard.IsString(value);\n}\n/** Returns true if the given value is TLiteral<bigint>. */\nexport function IsLiteralBigInt(value) {\n return IsLiteral(value) && Guard.IsBigInt(value.const);\n}\n/** Returns true if the given value is TLiteral<boolean>. */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && Guard.IsBoolean(value.const);\n}\n/** Returns true if the given value is TLiteral<number>. */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && Guard.IsNumber(value.const);\n}\n/** Returns true if the given value is TLiteral<string>. */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && Guard.IsString(value.const);\n}\n/** Returns true if the given value is TLiteral. */\nexport function IsLiteral(value) {\n return IsKind(value, 'Literal');\n}\n",
53
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Null type. */\nexport function Null(options) {\n return Memory.Create({ '~kind': 'Null' }, { type: 'null' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TNull. */\nexport function IsNull(value) {\n return IsKind(value, 'Null');\n}\n",
54
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const NumberPattern = '-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Number type. */\nexport function Number(options) {\n return Memory.Create({ '~kind': 'Number' }, { type: 'number' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TNumber. */\nexport function IsNumber(value) {\n return IsKind(value, 'Number');\n}\n",
55
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Symbol type. */\nexport function Symbol(options) {\n return Memory.Create({ '~kind': 'Symbol' }, { type: 'symbol' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TSymbol. */\nexport function IsSymbol(value) {\n return IsKind(value, 'Symbol');\n}\n",
56
+ "// deno-lint-ignore-file no-array-constructor\n// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from './_optional.mjs';\n/** Creates a RequiredArray derived from the given TProperties value. */\nexport function RequiredArray(properties) {\n return Guard.Keys(properties).filter((key) => !IsOptional(properties[key]));\n}\n/** Extracts a tuple of keys from a TProperties value. */\nexport function PropertyKeys(properties) {\n return Guard.Keys(properties);\n}\n/** Extracts a tuple of property values from a TProperties value. */\nexport function PropertyValues(properties) {\n return Guard.Values(properties);\n}\n",
57
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { RequiredArray } from './properties.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Object type. */\nfunction _Object_(properties, options = {}) {\n const requiredKeys = RequiredArray(properties);\n const required = requiredKeys.length > 0 ? { required: requiredKeys } : {};\n return Memory.Create({ '~kind': 'Object' }, { type: 'object', ...required, properties }, options);\n}\n/** `[Json]` Creates an Object type */\nexport var Object = _Object_; // Required for CommonJS ES Interop\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TObject. */\nexport function IsObject(value) {\n return IsKind(value, 'Object');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TObject. */\nexport function ObjectOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'properties', 'required']);\n}\n",
58
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Unknown } from './unknown.mjs';\n/** Creates a Parameter type. */\nexport function Parameter(...args) {\n const [name, extends_, equals] = Arguments.Match(args, {\n 3: (name, extends_, equals) => [name, extends_, equals],\n 2: (name, extends_) => [name, extends_, extends_],\n 1: (name) => [name, Unknown(), Unknown()],\n });\n return Memory.Create({ '~kind': 'Parameter' }, { name, extends: extends_, equals }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TParameter. */\nexport function IsParameter(value) {\n return IsKind(value, 'Parameter');\n}\n",
59
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Promise type. */\nexport function Promise(item, options) {\n return Memory.Create({ ['~kind']: 'Promise' }, { type: 'promise', item }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given type is TPromise. */\nexport function IsPromise(value) {\n return IsKind(value, 'Promise');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TPromise. */\nexport function PromiseOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'item']);\n}\n",
60
+ "// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// StringPattern\n// ------------------------------------------------------------------\nexport const StringPattern = '.*';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a String type. */\nexport function String(options) {\n return Memory.Create({ '~kind': 'String' }, { type: 'string' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TString. */\nexport function IsString(value) {\n return IsKind(value, 'String');\n}\n",
61
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nexport function CreateRecord(key, value) {\n const type = 'object';\n const patternProperties = { [key]: value };\n return Memory.Create({ ['~kind']: 'Record' }, { type, patternProperties });\n}\n",
62
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Integer, IntegerPattern } from './integer.mjs';\nimport { Number, NumberPattern } from './number.mjs';\nimport { String, StringPattern } from './string.mjs';\nimport { Deferred } from './deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\nimport { CreateRecord } from '../engine/record/record-create.mjs';\nexport const IntegerKey = `^${IntegerPattern}$`;\nexport const NumberKey = `^${NumberPattern}$`;\nexport const StringKey = `^${StringPattern}$`;\n/** Represents a deferred Record action. */\nexport function RecordDeferred(key, value, options = {}) {\n return Deferred('Record', [key, value], options);\n}\nexport function RecordConstruct(key, value, options = {}) {\n return Instantiate({}, RecordDeferred(key, value, options));\n}\n// -------------------------------------------------------------------\n// Factory\n// -------------------------------------------------------------------\n/** Creates a Record type. */\nexport function Record(key, value, options = {}) {\n return RecordConstruct(key, value, options);\n}\n// -------------------------------------------------------------------\n// FromPattern\n// -------------------------------------------------------------------\n/** Creates a Record type from regular expression pattern. */\nexport function RecordFromPattern(key, value) {\n return CreateRecord(key, value);\n}\n/** Returns the raw string pattern used for the Record key */\nexport function RecordPattern(type) {\n return Guard.Keys(type.patternProperties)[0];\n}\n/** Returns the Record key as a TypeBox type */\nexport function RecordKey(type) {\n const pattern = RecordPattern(type);\n const result = (Guard.IsEqual(pattern, IntegerKey) ? Integer() :\n Guard.IsEqual(pattern, NumberKey) ? Number() :\n String());\n return result;\n}\nexport function RecordValue(type) {\n return type.patternProperties[RecordPattern(type)];\n}\n// -------------------------------------------------------------------\n// Guard\n// -------------------------------------------------------------------\nexport function IsRecord(value) {\n return IsKind(value, 'Record');\n}\n// -------------------------------------------------------------------\n// Options\n// -------------------------------------------------------------------\nexport function RecordOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'patternProperties']);\n}\n",
63
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\n/** Creates a Rest instruction type. */\nexport function Rest(type) {\n return Memory.Create({ '~kind': 'Rest' }, { type: 'rest', items: type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TRest. */\nexport function IsRest(value) {\n return IsKind(value, 'Rest');\n}\n",
64
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a This type. */\nexport function This(options) {\n return Memory.Create({ ['~kind']: 'This' }, { $ref: '#' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TThis. */\nexport function IsThis(value) {\n return IsKind(value, 'This');\n}\n",
65
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Tuple type. */\nexport function Tuple(types, options = {}) {\n const [items, minItems, additionalItems] = [types, types.length, false];\n return Memory.Create({ ['~kind']: 'Tuple' }, { type: 'array', additionalItems, items, minItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TTuple. */\nexport function IsTuple(value) {\n return IsKind(value, 'Tuple');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TTuple. */\nexport function TupleOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'items', 'minItems', 'additionalItems']);\n}\n",
66
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Undefined type. */\nexport function Undefined(options) {\n return Memory.Create({ '~kind': 'Undefined' }, { type: 'undefined' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUndefined. */\nexport function IsUndefined(value) {\n return IsKind(value, 'Undefined');\n}\n",
67
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Union type. */\nexport function Union(anyOf, options = {}) {\n return Memory.Create({ '~kind': 'Union' }, { anyOf }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnion. */\nexport function IsUnion(value) {\n return IsKind(value, 'Union');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TUnion. */\nexport function UnionOptions(type) {\n return Memory.Discard(type, ['~kind', 'anyOf']);\n}\n",
68
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file \nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Unsafe type. */\nexport function Unsafe(schema) {\n return Memory.Create({ ['~kind']: 'Unsafe' }, {}, schema);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnsafe. */\nexport function IsUnsafe(value) {\n return IsKind(value, 'Unsafe');\n}\n",
69
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Void type. */\nexport function Void(options) {\n return Memory.Create({ '~kind': 'Void' }, { type: 'void' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TVoid. */\nexport function IsVoid(value) {\n return IsKind(value, 'Void');\n}\n",
70
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport * as C from '../action/index.mjs';\nimport * as T from '../types/index.mjs';\nfunction IntrinsicOrCall(ref, parameters) {\n // deno-coverage-ignore-start\n //\n // Have extensively tested but reports show no Omit coverage (review)\n return (Guard.IsEqual(ref, 'Array') ? T.Array(parameters[0]) :\n Guard.IsEqual(ref, 'AsyncIterator') ? T.AsyncIterator(parameters[0]) :\n Guard.IsEqual(ref, 'Iterator') ? T.Iterator(parameters[0]) :\n Guard.IsEqual(ref, 'Promise') ? T.Promise(parameters[0]) :\n Guard.IsEqual(ref, 'Awaited') ? C.AwaitedDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Capitalize') ? C.CapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ConstructorParameters') ? C.ConstructorParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Evaluate') ? C.EvaluateDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Exclude') ? C.ExcludeDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Extract') ? C.ExtractDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Index') ? C.IndexDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'InstanceType') ? C.InstanceTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Lowercase') ? C.LowercaseDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'NonNullable') ? C.NonNullableDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Omit') ? C.OmitDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Options') ? C.OptionsDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Parameters') ? C.ParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Partial') ? C.PartialDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Pick') ? C.PickDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Readonly') ? C.ReadonlyTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'KeyOf') ? C.KeyOfDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Record') ? T.RecordDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Required') ? C.RequiredDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ReturnType') ? C.ReturnTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uncapitalize') ? C.UncapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uppercase') ? C.UppercaseDeferred(parameters[0]) :\n T.CallConstruct(T.Ref(ref), parameters));\n // deno-coverage-ignore-stop\n}\n// ------------------------------------------------------------------\n// Unreachable\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start\nfunction Unreachable() {\n throw Error('Unreachable');\n}\nconst DelimitedDecode = (input, result = []) => {\n return input.reduce((result, left) => {\n return Guard.IsArray(left) && Guard.IsEqual(left.length, 2)\n ? [...result, left[0]]\n : [...result, left];\n }, []);\n};\nconst Delimited = (input) => {\n const [left, right] = input;\n return DelimitedDecode([...left, ...right]);\n};\nexport function GenericParameterExtendsEqualsMapping(input) {\n return T.Parameter(input[0], input[2], input[4]);\n}\nexport function GenericParameterExtendsMapping(input) {\n return T.Parameter(input[0], input[2], input[2]);\n}\nexport function GenericParameterEqualsMapping(input) {\n return T.Parameter(input[0], T.Unknown(), input[2]);\n}\nexport function GenericParameterIdentifierMapping(input) {\n return T.Parameter(input, T.Unknown(), T.Unknown());\n}\nexport function GenericParameterMapping(input) {\n return input;\n}\nexport function GenericParameterListMapping(input) {\n return Delimited(input);\n}\nexport function GenericParametersMapping(input) {\n return input[1];\n}\nexport function GenericCallArgumentListMapping(input) {\n return Delimited(input);\n}\nexport function GenericCallArgumentsMapping(input) {\n return input[1];\n}\nexport function GenericCallMapping(input) {\n return IntrinsicOrCall(input[0], input[1]);\n}\nexport function OptionalSemiColonMapping(input) {\n return null;\n}\nexport function KeywordStringMapping(input) {\n return T.String();\n}\nexport function KeywordNumberMapping(input) {\n return T.Number();\n}\nexport function KeywordBooleanMapping(input) {\n return T.Boolean();\n}\nexport function KeywordUndefinedMapping(input) {\n return T.Undefined();\n}\nexport function KeywordNullMapping(input) {\n return T.Null();\n}\nexport function KeywordIntegerMapping(input) {\n return T.Integer();\n}\nexport function KeywordBigIntMapping(input) {\n return T.BigInt();\n}\nexport function KeywordUnknownMapping(input) {\n return T.Unknown();\n}\nexport function KeywordAnyMapping(input) {\n return T.Any();\n}\nexport function KeywordObjectMapping(input) {\n return T.Object({});\n}\nexport function KeywordNeverMapping(input) {\n return T.Never();\n}\nexport function KeywordSymbolMapping(input) {\n return T.Symbol();\n}\nexport function KeywordVoidMapping(input) {\n return T.Void();\n}\nexport function KeywordThisMapping(input) {\n return T.This();\n}\nexport function KeywordMapping(input) {\n return input;\n}\nexport function TemplateInterpolateMapping(input) {\n return input[1];\n}\nexport function TemplateSpanMapping(input) {\n return T.Literal(input);\n}\nexport function TemplateBodyMapping(input) {\n return (Guard.IsEqual(input.length, 3)\n ? [input[0], input[1], ...input[2]]\n : [input[0]]);\n}\nexport function TemplateLiteralTypesMapping(input) {\n return input[1];\n}\nexport function TemplateLiteralMapping(input) {\n return T.TemplateLiteralDeferred(input);\n}\nexport function LiteralBigIntMapping(input) {\n return T.Literal(BigInt(input));\n}\nexport function LiteralBooleanMapping(input) {\n return T.Literal(Guard.IsEqual(input, 'true'));\n}\nexport function LiteralNumberMapping(input) {\n return T.Literal(parseFloat(input));\n}\nexport function LiteralStringMapping(input) {\n return T.Literal(input);\n}\nexport function LiteralMapping(input) {\n return input;\n}\nexport function KeyOfMapping(input) {\n return input.length > 0;\n}\nexport function IndexArrayMapping(input) {\n return input.reduce((result, current) => {\n return Guard.IsEqual(current.length, 3)\n ? [...result, [current[1]]]\n : [...result, []];\n }, []);\n}\nexport function ExtendsMapping(input) {\n return Guard.IsEqual(input.length, 6)\n ? [input[1], input[3], input[5]]\n : [];\n}\nexport function BaseMapping(input) {\n return Guard.IsArray(input) && Guard.IsEqual(input.length, 3)\n ? input[1]\n : input;\n}\n// deno-coverage-ignore-start\n// ...\nconst FactorIndexArray = (Type, indexArray) => {\n return indexArray.reduceRight((result, right) => {\n const _right = right;\n return (Guard.IsEqual(_right.length, 1) ? C.IndexDeferred(result, _right[0]) :\n Guard.IsEqual(_right.length, 0) ? T.Array(result) :\n Unreachable());\n }, Type);\n};\n// deno-coverage-ignore-stop\nconst FactorExtends = (type, extend) => {\n return Guard.IsEqual(extend.length, 3)\n ? C.ConditionalDeferred(type, extend[0], extend[1], extend[2])\n : type;\n};\nexport function FactorMapping(input) {\n const [keyOf, type, indexArray, extend] = input;\n return keyOf\n ? FactorExtends(C.KeyOfDeferred(FactorIndexArray(type, indexArray)), extend)\n : FactorExtends(FactorIndexArray(type, indexArray), extend);\n}\n// deno-coverage-ignore-start\nfunction ExprBinaryMapping(left, rest) {\n return (Guard.IsEqual(rest.length, 3) ? (() => {\n const [operator, right, next] = rest;\n const Schema = ExprBinaryMapping(right, next);\n if (Guard.IsEqual(operator, '&')) {\n return T.IsIntersect(Schema)\n ? T.Intersect([left, ...Schema.allOf])\n : T.Intersect([left, Schema]);\n }\n if (Guard.IsEqual(operator, '|')) {\n return T.IsUnion(Schema)\n ? T.Union([left, ...Schema.anyOf])\n : T.Union([left, Schema]);\n }\n Unreachable();\n })() : left);\n}\nexport function ExprTermTailMapping(input) {\n return input;\n}\nexport function ExprTermMapping(input) {\n const [left, rest] = input;\n return ExprBinaryMapping(left, rest);\n}\nexport function ExprTailMapping(input) {\n return input;\n}\nexport function ExprMapping(input) {\n const [left, rest] = input;\n return ExprBinaryMapping(left, rest);\n}\nexport function ExprReadonlyMapping(input) {\n return T.ImmutableAdd(input[1]);\n}\nexport function ExprPipeMapping(input) {\n return input[1];\n}\nexport function GenericTypeMapping(input) {\n return T.Generic(input[0], input[2]);\n}\n// deno-coverage-ignore-start\nexport function InferTypeMapping(input) {\n return (Guard.IsEqual(input.length, 4) ? T.Infer(input[1], input[3]) :\n Guard.IsEqual(input.length, 2) ? T.Infer(input[1], T.Unknown()) :\n Unreachable());\n}\nexport function TypeMapping(input) {\n return input;\n}\nexport function PropertyKeyNumberMapping(input) {\n return `${input}`;\n}\nexport function PropertyKeyIdentMapping(input) {\n return input;\n}\nexport function PropertyKeyQuotedMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function PropertyKeyIndexMapping(input) {\n return (T.IsInteger(input[3]) ? T.IntegerKey :\n T.IsNumber(input[3]) ? T.NumberKey :\n T.IsSymbol(input[3]) ? T.StringKey :\n T.IsString(input[3]) ? T.StringKey :\n Unreachable());\n}\nexport function PropertyKeyMapping(input) {\n return input;\n}\nexport function ReadonlyMapping(input) {\n return input.length > 0;\n}\nexport function OptionalMapping(input) {\n return input.length > 0;\n}\nexport function PropertyMapping(input) {\n const [isReadonly, key, isOptional, _colon, type] = input;\n return {\n [key]: (isReadonly && isOptional ? T.ReadonlyAdd(T.OptionalAdd(type)) :\n isReadonly && !isOptional ? T.ReadonlyAdd(type) :\n !isReadonly && isOptional ? T.OptionalAdd(type) :\n type)\n };\n}\nexport function PropertyDelimiterMapping(input) {\n return input;\n}\nexport function PropertyListMapping(input) {\n return Delimited(input);\n}\nfunction PropertiesReduce(propertyList) {\n return propertyList.reduce((result, left) => {\n const isPatternProperties = (Guard.HasPropertyKey(left, T.IntegerKey) || Guard.HasPropertyKey(left, T.NumberKey) || Guard.HasPropertyKey(left, T.StringKey));\n // @ts-ignore 5.0.4 - unable to observe ...left on right arm\n return (isPatternProperties\n ? [result[0], Memory.Assign(result[1], left)]\n : [Memory.Assign(result[0], left), result[1]]);\n }, [{}, {}]);\n}\nexport function PropertiesMapping(input) {\n return PropertiesReduce(input[1]);\n}\nexport function _Object_Mapping(input) {\n const [properties, patternProperties] = input;\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return T.Object(properties, options);\n}\n// deno-coverage-ignore-start\nexport function ElementNamedMapping(input) {\n return (Guard.IsEqual(input.length, 5) ? T.ReadonlyAdd(T.OptionalAdd(input[4])) :\n Guard.IsEqual(input.length, 3) ? input[2] :\n Guard.IsEqual(input.length, 4) ? (Guard.IsEqual(input[2], 'readonly') ? T.ReadonlyAdd(input[3]) : T.OptionalAdd(input[3])) :\n Unreachable());\n}\nexport function ElementReadonlyOptionalMapping(input) {\n return T.ReadonlyAdd(T.OptionalAdd(input[1]));\n}\nexport function ElementReadonlyMapping(input) {\n return T.ReadonlyAdd(input[1]);\n}\nexport function ElementOptionalMapping(input) {\n return T.OptionalAdd(input[0]);\n}\nexport function ElementBaseMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function ElementMapping(input) {\n return (Guard.IsEqual(input.length, 2) ? T.Rest(input[1]) :\n Guard.IsEqual(input.length, 1) ? input[0] :\n Unreachable());\n}\nexport function ElementListMapping(input) {\n return Delimited(input);\n}\nexport function TupleMapping(input) {\n return T.Tuple(input[1]);\n}\nexport function ParameterReadonlyOptionalMapping(input) {\n return T.ReadonlyAdd(T.OptionalAdd(input[4]));\n}\nexport function ParameterReadonlyMapping(input) {\n return T.ReadonlyAdd(input[3]);\n}\nexport function ParameterOptionalMapping(input) {\n return T.OptionalAdd(input[3]);\n}\nexport function ParameterTypeMapping(input) {\n return input[2];\n}\nexport function ParameterBaseMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function ParameterMapping(input) {\n return (Guard.IsEqual(input.length, 2) ? T.Rest(input[1]) :\n Guard.IsEqual(input.length, 1) ? input[0] :\n Unreachable());\n}\nexport function ParameterListMapping(input) {\n return Delimited(input);\n}\nexport function _Function_Mapping(input) {\n return T.Function(input[1], input[4]);\n}\nexport function ConstructorMapping(input) {\n return T.Constructor(input[2], input[5]);\n}\nfunction ApplyReadonly(state, type) {\n return (Guard.IsEqual(state, 'remove') ? C.ReadonlyRemoveAction(type) :\n Guard.IsEqual(state, 'add') ? C.ReadonlyAddAction(type) :\n type);\n}\nexport function MappedReadonlyMapping(input) {\n return (Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '-') ? 'remove' :\n Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '+') ? 'add' :\n Guard.IsEqual(input.length, 1) ? 'add' :\n 'none');\n}\nfunction ApplyOptional(state, type) {\n return (Guard.IsEqual(state, 'remove') ? C.OptionalRemoveAction(type) :\n Guard.IsEqual(state, 'add') ? C.OptionalAddAction(type) :\n type);\n}\nexport function MappedOptionalMapping(input) {\n return (Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '-') ? 'remove' :\n Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '+') ? 'add' :\n Guard.IsEqual(input.length, 1) ? 'add' :\n 'none');\n}\nexport function MappedAsMapping(input) {\n return Guard.IsEqual(input.length, 2) ? [input[1]] : [];\n}\nexport function MappedMapping(input) {\n return (Guard.IsArray(input[6]) && Guard.IsEqual(input[6].length, 1)\n ? C.MappedDeferred(T.Identifier(input[3]), input[5], input[6][0], ApplyReadonly(input[1], ApplyOptional(input[8], input[10])))\n : C.MappedDeferred(T.Identifier(input[3]), input[5], T.Ref(input[3]), ApplyReadonly(input[1], ApplyOptional(input[8], input[10]))));\n}\nexport function ReferenceMapping(input) {\n return T.Ref(input);\n}\nexport function OptionsMapping(input) {\n return C.OptionsDeferred(input[2], input[4]);\n}\nexport function JsonNumberMapping(input) {\n return parseFloat(input);\n}\nexport function JsonBooleanMapping(input) {\n return Guard.IsEqual(input, 'true');\n}\nexport function JsonStringMapping(input) {\n return input;\n}\nexport function JsonNullMapping(input) {\n return null;\n}\nexport function JsonPropertyMapping(input) {\n return { [input[0]]: input[2] };\n}\nexport function JsonPropertyListMapping(input) {\n return Delimited(input);\n}\nfunction JsonObjectMappingReduce(propertyList) {\n return propertyList.reduce((result, left) => {\n return Memory.Assign(result, left);\n }, {});\n}\nexport function JsonObjectMapping(input) {\n return JsonObjectMappingReduce(input[1]);\n}\nexport function JsonElementListMapping(input) {\n return Delimited(input);\n}\nexport function JsonArrayMapping(input) {\n return input[1];\n}\nexport function JsonMapping(input) {\n return input;\n}\nexport function PatternBigIntMapping(input) {\n return T.BigInt();\n}\nexport function PatternStringMapping(input) {\n return T.String();\n}\nexport function PatternNumberMapping(input) {\n return T.Number();\n}\nexport function PatternIntegerMapping(input) {\n return T.Integer();\n}\nexport function PatternNeverMapping(input) {\n return T.Never();\n}\nexport function PatternTextMapping(input) {\n return T.Literal(input);\n}\nexport function PatternBaseMapping(input) {\n return input;\n}\nexport function PatternGroupMapping(input) {\n return T.Union(input[1]);\n}\nexport function PatternUnionMapping(input) {\n return (input.length === 3 ? [...input[0], ...input[2]] :\n input.length === 1 ? [...input[0]] :\n []);\n}\nexport function PatternTermMapping(input) {\n return [input[0], ...input[1]];\n}\nexport function PatternBodyMapping(input) {\n return input;\n}\nexport function PatternMapping(input) {\n return input[1];\n}\nexport function InterfaceDeclarationHeritageListMapping(input) {\n return Delimited(input);\n}\nexport function InterfaceDeclarationHeritageMapping(input) {\n return Guard.IsEqual(input.length, 2) ? input[1] : [];\n}\nexport function InterfaceDeclarationGenericMapping(input) {\n const parameters = input[2];\n const heritage = input[3];\n const [properties, patternProperties] = input[4];\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return { [input[1]]: T.Generic(parameters, C.InterfaceDeferred(heritage, properties, options)) };\n}\nexport function InterfaceDeclarationMapping(input) {\n const heritage = input[2];\n const [properties, patternProperties] = input[3];\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return { [input[1]]: C.InterfaceDeferred(heritage, properties, options) };\n}\nexport function TypeAliasDeclarationGenericMapping(input) {\n return { [input[1]]: T.Generic(input[2], input[4]) };\n}\nexport function TypeAliasDeclarationMapping(input) {\n return { [input[1]]: input[3] };\n}\nexport function ExportKeywordMapping(input) {\n return null; // ignored-dont-care\n}\nexport function ModuleDeclarationDelimiterMapping(input) {\n return input;\n}\nexport function ModuleDeclarationListMapping(input) {\n return PropertiesReduce(Delimited(input));\n}\nexport function ModuleDeclarationMapping(input) {\n return input[1];\n}\nexport function ModuleMapping(input) {\n const moduleDeclaration = input[0];\n const moduleDeclarationList = input[1];\n return C.ModuleDeferred(Memory.Assign(moduleDeclaration, moduleDeclarationList[0]));\n}\nexport function ScriptMapping(input) {\n return input;\n}\n",
71
+ "// deno-coverage-ignore-start - parsebox tested\nimport { IsArray, IsEqual } from './guard.mjs';\n/** Checks the value is a Tuple-2 [string, string] result */\nexport function IsResult(value) {\n return IsArray(value) && IsEqual(value.length, 2);\n}\n// deno-coverage-ignore-stop\n",
72
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual, IsString } from './guard.mjs';\nfunction TakeVariant(variant, input) {\n return (IsEqual(input.indexOf(variant), 0)\n ? [variant, input.slice(variant.length)]\n : []);\n}\n/** Takes one of the given variants or fail */\nexport function Take(variants, input) {\n const [left, ...right] = variants;\n return (IsString(left)\n ? (() => {\n const result = TakeVariant(left, input);\n return IsEqual(result.length, 2) ? result : Take(right, input);\n })()\n : []);\n}\n// deno-coverage-ignore-stop\n",
73
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\n// ------------------------------------------------------------------\n// Range\n// ------------------------------------------------------------------\nfunction Range(start, end) {\n return Array.from({ length: end - start + 1 }, (_, i) => String.fromCharCode(start + i));\n}\nexport const Alpha = [\n ...Range(97, 122), // Lowercase\n ...Range(65, 90) // Uppercase\n];\nexport const Zero = '0';\nexport const NonZero = Range(49, 57); // 1 - 9\nexport const Digit = [Zero, ...NonZero];\n// ------------------------------------------------------------------\n// Characters\n// ------------------------------------------------------------------\nexport const WhiteSpace = ' ';\nexport const NewLine = '\\n';\nexport const TabSpace = '\\t';\nexport const UnderScore = '_';\nexport const Dot = '.';\nexport const DollarSign = '$';\nexport const Hyphen = '-';\n// deno-coverage-ignore-stop\n",
74
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './guard.mjs';\nimport * as Char from './char.mjs';\nconst LineComment = '//';\nconst OpenComment = '/*';\nconst CloseComment = '*/';\nfunction DiscardMultilineComment(input) {\n const index = input.indexOf(CloseComment);\n const result = IsEqual(index, -1) ? '' : input.slice(index + 2);\n return result;\n}\nfunction DiscardLineComment(input) {\n const index = input.indexOf(Char.NewLine);\n const result = IsEqual(index, -1) ? '' : input.slice(index);\n return result;\n}\n// ...\nfunction TrimStartUntilNewline(input) {\n return input.replace(/^[ \\t\\r\\f\\v]+/, '');\n}\nexport function TrimWhitespace(input) {\n const trimmed = TrimStartUntilNewline(input);\n return (trimmed.startsWith(OpenComment) ? TrimWhitespace(DiscardMultilineComment(trimmed.slice(2))) :\n trimmed.startsWith(LineComment) ? TrimWhitespace(DiscardLineComment(trimmed.slice(2))) :\n trimmed);\n}\nexport function Trim(input) {\n const trimmed = input.trimStart();\n return (trimmed.startsWith(OpenComment) ? Trim(DiscardMultilineComment(trimmed.slice(2))) :\n trimmed.startsWith(LineComment) ? Trim(DiscardLineComment(trimmed.slice(2))) :\n trimmed);\n}\n// deno-coverage-ignore-stop\n",
75
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './result.mjs';\nimport { Take } from './take.mjs';\nfunction IsDiscard(discard, input) {\n return discard.includes(input);\n}\n/** Takes characters from the Input until no-match. The Discard set is used to omit characters from the match */\nexport function Many(allowed, discard, input, result = '') {\n const takeResult = Take(allowed, input);\n return (IsResult(takeResult)\n ? IsDiscard(discard, takeResult[0])\n ? Many(allowed, discard, takeResult[1], result)\n : Many(allowed, discard, takeResult[1], `${result}${takeResult[0]}`)\n : [result, input]);\n}\n// deno-coverage-ignore-stop\n",
76
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './result.mjs';\nimport { Take } from './take.mjs';\n/** Matches the given Value or empty string if no match. This function never fails */\nexport function Optional(value, input) {\n const result = Take([value], input);\n return (IsResult(result)\n ? result\n : ['', input]);\n}\n// deno-coverage-ignore-stop\n",
77
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Optional } from './internal/optional.mjs';\nimport { Digit } from './internal/char.mjs';\nimport { Hyphen } from './internal/char.mjs';\nimport { Zero } from './internal/char.mjs';\nimport { NonZero } from './internal/char.mjs';\nimport { UnderScore } from './internal/char.mjs';\nfunction TakeSign(input) {\n return Optional(Hyphen, input);\n}\nfunction TakeNonZero(input) {\n return Take(NonZero, input);\n}\nconst AllowedDigits = [...Digit, UnderScore];\nfunction TakeDigits(input) {\n return Many(AllowedDigits, [UnderScore], input);\n}\nfunction TakeInteger(input) {\n const sign = TakeSign(input);\n return (IsResult(sign) ? (() => {\n const zero = Take([Zero], sign[1]);\n return IsResult(zero)\n ? [`${sign[0]}${zero[0]}`, zero[1]]\n : (() => {\n const nonZero = TakeNonZero(sign[1]);\n return IsResult(nonZero) ? (() => {\n const digits = TakeDigits(nonZero[1]);\n return IsResult(digits)\n ? [`${sign[0]}${nonZero[0]}${digits[0]}`, digits[1]]\n : []; // fail: did not match Digits\n })() : []; // fail: did not match NonZero\n })();\n })() : [] // fail: did not match Sign\n );\n}\n/** Matches if next is a Integer */\nexport function Integer(input) {\n return TakeInteger(Trim(input));\n}\n// deno-coverage-ignore-stop\n",
78
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Integer } from './integer.mjs';\nfunction TakeBigInt(input) {\n const integer = Integer(input);\n return (IsResult(integer) ? (() => {\n const n = Take(['n'], integer[1]);\n return IsResult(n)\n ? [`${integer[0]}`, n[1]]\n : []; // fail: did not match 'n'\n })() : [] // fail: did not match Integer\n );\n}\n/** Matches if next is a Integer literal with trailing 'n'. Trailing 'n' is omitted in result. */\nexport function BigInt(input) {\n return TakeBigInt(input);\n}\n// deno-coverage-ignore-stop\n",
79
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { TrimWhitespace } from './internal/trim.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { NewLine } from './internal/char.mjs';\nimport { WhiteSpace } from './internal/char.mjs';\nfunction TakeConst(const_, input) {\n return Take([const_], input);\n}\n/** Matches if next is the given Const value */\nexport function Const(const_, input) {\n return (IsEqual(const_, '') ? ['', input] : (const_.startsWith(NewLine) ? TakeConst(const_, TrimWhitespace(input)) :\n const_.startsWith(WhiteSpace) ? TakeConst(const_, input) :\n TakeConst(const_, Trim(input))));\n}\n// deno-coverage-ignore-stop\n",
80
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Alpha } from './internal/char.mjs';\nimport { Digit } from './internal/char.mjs';\nimport { UnderScore } from './internal/char.mjs';\nimport { DollarSign } from './internal/char.mjs';\nconst Initial = [...Alpha, UnderScore, DollarSign];\nfunction TakeInitial(input) {\n return Take(Initial, input);\n}\nconst Remaining = [...Initial, ...Digit];\nfunction TakeRemaining(input, result = '') {\n const remaining = Take(Remaining, input);\n return (IsResult(remaining)\n ? TakeRemaining(remaining[1], `${result}${remaining[0]}`)\n : [result, input]);\n}\nfunction TakeIdent(input) {\n const initial = TakeInitial(input);\n return (IsResult(initial) ? (() => {\n const remaining = TakeRemaining(initial[1]);\n return IsResult(remaining)\n ? [`${initial[0]}${remaining[0]}`, remaining[1]]\n : []; // fail: did not match Remaining\n })() : [] // fail: did not match Initial\n );\n}\n/** Matches if next is an Ident */\nexport function Ident(input) {\n return TakeIdent(Trim(input));\n}\n// deno-coverage-ignore-stop\n",
81
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Optional } from './internal/optional.mjs';\nimport { Digit, UnderScore } from './internal/char.mjs';\nimport { Dot } from './internal/char.mjs';\nimport { Hyphen } from './internal/char.mjs';\nimport { Integer } from './integer.mjs';\nconst AllowedDigits = [...Digit, UnderScore];\nfunction TakeSign(input) {\n return Optional(Hyphen, input);\n}\nfunction IsLeadingDot(input) {\n return IsResult(Take([Dot], input));\n}\nfunction TakeFractional(input) {\n const digits = Many(AllowedDigits, [UnderScore], input);\n return (IsResult(digits)\n ? IsEqual(digits[0], '')\n ? [] // fail: no Digits\n : [digits[0], digits[1]]\n : [] // fail: did not match Digits\n );\n}\nfunction LeadingDot(sign, input) {\n const dot = Take([Dot], input);\n return (IsResult(dot) ? (() => {\n const fractional = TakeFractional(dot[1]);\n return IsResult(fractional)\n ? [`${sign}0${dot[0]}${fractional[0]}`, fractional[1]]\n : []; // fail: did not match Fractional\n })() : [] // fail: did not match Dot\n );\n}\nfunction LeadingInteger(sign, input) {\n const integer = Integer(input);\n return (IsResult(integer) ? (() => {\n const dot = Take([Dot], integer[1]);\n return IsResult(dot) ? (() => {\n const fractional = TakeFractional(dot[1]);\n return IsResult(fractional)\n ? [`${sign}${integer[0]}${dot[0]}${fractional[0]}`, fractional[1]]\n : [`${sign}${integer[0]}`, dot[1]]; // fail: did not match Fractional, use Integer\n })() : [`${sign}${integer[0]}`, integer[1]]; // fail: did not match Dot, use Integer\n })() : [] // fail: did not match Integer\n );\n}\nfunction TakeNumber(input) {\n const sign = TakeSign(input);\n return (IsResult(sign)\n ? IsLeadingDot(sign[1])\n ? LeadingDot(sign[0], sign[1])\n : LeadingInteger(sign[0], sign[1])\n : [] // fail: did not match Sign\n );\n}\n/** Matches if next is a literal Number */\nexport function Number(input) {\n return TakeNumber(Trim(input));\n}\n// deno-coverage-ignore-stop\n",
82
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual, IsString } from './internal/guard.mjs';\nfunction IsEnd(end, input) {\n const [left, ...right] = end;\n return (IsString(left)\n ? input.startsWith(left)\n ? true\n : IsEnd(right, input)\n : false);\n}\n/** Match Input until but not including End. No match if End not found. */\nexport function Until(end, input, result = '') {\n return (IsEqual(input, '')\n ? [] // fail: Input is empty\n : IsEnd(end, input) ? [result, input] : (() => {\n const [left, right] = [input.slice(0, 1), input.slice(1)];\n return Until(end, right, `${result}${left}`);\n })());\n}\n// deno-coverage-ignore-stop\n",
83
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { NewLine } from './internal/char.mjs';\nimport { Until } from './until.mjs';\nfunction MultiLine(start, end, input) {\n return (input.startsWith(start) ? (() => {\n const until = Until([end], input.slice(start.length));\n return IsResult(until) ? (() => {\n return until[1].startsWith(end)\n ? [`${until[0]}`, until[1].slice(end.length)]\n : []; // fail: did not match End\n })() : []; // fail: did not match Until\n })() : [] // fail: did not match Start\n );\n}\nfunction SingleLine(start, end, input) {\n return (input.startsWith(start) ? (() => {\n const until = Until([NewLine, end], input.slice(start.length));\n return IsResult(until) ? (() => {\n return until[1].startsWith(end)\n ? [`${until[0]}`, until[1].slice(end.length)]\n : []; // fail: did not match End\n })() : []; // fail: did not match Until\n })() : [] // fail: not match Start\n );\n}\n/** Matches from Start and End capturing everything in-between. Start and End are consumed. */\nexport function Span(start, end, multiLine, input) {\n return (multiLine\n ? MultiLine(start, end, Trim(input))\n : SingleLine(start, end, Trim(input)));\n}\n// deno-coverage-ignore-stop\n",
84
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Span } from './span.mjs';\nfunction TakeInitial(quotes, input) {\n return Take(quotes, input);\n}\nfunction TakeSpan(quote, input) {\n return Span(quote, quote, false, input);\n}\nfunction TakeString(quotes, input) {\n const initial = TakeInitial(quotes, input);\n return (IsResult(initial)\n ? TakeSpan(initial[0], `${initial[0]}${initial[1]}`)\n : [] // fail: did not match Initial\n );\n}\n/** Matches a literal String with the given quotes */\nexport function String(quotes, input) {\n return TakeString(quotes, Trim(input));\n}\n// deno-coverage-ignore-stop\n",
85
+ "// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { IsResult } from './internal/result.mjs';\nimport { Until } from './until.mjs';\n/** Match Input until but not including End. No match if End not found or match is zero-length. */\nexport function Until_1(end, input) {\n const until = Until(end, input);\n return (IsResult(until)\n ? IsEqual(until[0], '')\n ? [] // fail: match has no characters\n : until\n : [] // fail: did not match Until\n );\n}\n// deno-coverage-ignore-stop\n",
86
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport * as S from './mapping.mjs';\nimport * as Token from './token/index.mjs';\nconst If = (result, left, right = () => []) => result.length === 2 ? left(result) : right();\nexport const GenericParameterExtendsEquals = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('extends', input), ([_1, input]) => If(Type(input), ([_2, input]) => If(Token.Const('=', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.GenericParameterExtendsEqualsMapping(_0), input]);\nexport const GenericParameterExtends = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('extends', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParameterExtendsMapping(_0), input]);\nexport const GenericParameterEquals = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('=', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParameterEqualsMapping(_0), input]);\nexport const GenericParameterIdentifier = (input) => If(Token.Ident(input), ([_0, input]) => [S.GenericParameterIdentifierMapping(_0), input]);\nexport const GenericParameter = (input) => If(If(GenericParameterExtendsEquals(input), ([_0, input]) => [_0, input], () => If(GenericParameterExtends(input), ([_0, input]) => [_0, input], () => If(GenericParameterEquals(input), ([_0, input]) => [_0, input], () => If(GenericParameterIdentifier(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.GenericParameterMapping(_0), input]);\nexport const GenericParameterList_0 = (input, result = []) => If(If(GenericParameter(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => GenericParameterList_0(input, [...result, _0]), () => [result, input]);\nexport const GenericParameterList = (input) => If(If(GenericParameterList_0(input), ([_0, input]) => If(If(If(GenericParameter(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericParameterListMapping(_0), input]);\nexport const GenericParameters = (input) => If(If(Token.Const('<', input), ([_0, input]) => If(GenericParameterList(input), ([_1, input]) => If(Token.Const('>', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParametersMapping(_0), input]);\nexport const GenericCallArgumentList_0 = (input, result = []) => If(If(Type(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => GenericCallArgumentList_0(input, [...result, _0]), () => [result, input]);\nexport const GenericCallArgumentList = (input) => If(If(GenericCallArgumentList_0(input), ([_0, input]) => If(If(If(Type(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericCallArgumentListMapping(_0), input]);\nexport const GenericCallArguments = (input) => If(If(Token.Const('<', input), ([_0, input]) => If(GenericCallArgumentList(input), ([_1, input]) => If(Token.Const('>', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericCallArgumentsMapping(_0), input]);\nexport const GenericCall = (input) => If(If(Token.Ident(input), ([_0, input]) => If(GenericCallArguments(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericCallMapping(_0), input]);\nexport const OptionalSemiColon = (input) => If(If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.OptionalSemiColonMapping(_0), input]);\nexport const KeywordString = (input) => If(Token.Const('string', input), ([_0, input]) => [S.KeywordStringMapping(_0), input]);\nexport const KeywordNumber = (input) => If(Token.Const('number', input), ([_0, input]) => [S.KeywordNumberMapping(_0), input]);\nexport const KeywordBoolean = (input) => If(Token.Const('boolean', input), ([_0, input]) => [S.KeywordBooleanMapping(_0), input]);\nexport const KeywordUndefined = (input) => If(Token.Const('undefined', input), ([_0, input]) => [S.KeywordUndefinedMapping(_0), input]);\nexport const KeywordNull = (input) => If(Token.Const('null', input), ([_0, input]) => [S.KeywordNullMapping(_0), input]);\nexport const KeywordInteger = (input) => If(Token.Const('integer', input), ([_0, input]) => [S.KeywordIntegerMapping(_0), input]);\nexport const KeywordBigInt = (input) => If(Token.Const('bigint', input), ([_0, input]) => [S.KeywordBigIntMapping(_0), input]);\nexport const KeywordUnknown = (input) => If(Token.Const('unknown', input), ([_0, input]) => [S.KeywordUnknownMapping(_0), input]);\nexport const KeywordAny = (input) => If(Token.Const('any', input), ([_0, input]) => [S.KeywordAnyMapping(_0), input]);\nexport const KeywordObject = (input) => If(Token.Const('object', input), ([_0, input]) => [S.KeywordObjectMapping(_0), input]);\nexport const KeywordNever = (input) => If(Token.Const('never', input), ([_0, input]) => [S.KeywordNeverMapping(_0), input]);\nexport const KeywordSymbol = (input) => If(Token.Const('symbol', input), ([_0, input]) => [S.KeywordSymbolMapping(_0), input]);\nexport const KeywordVoid = (input) => If(Token.Const('void', input), ([_0, input]) => [S.KeywordVoidMapping(_0), input]);\nexport const KeywordThis = (input) => If(Token.Const('this', input), ([_0, input]) => [S.KeywordThisMapping(_0), input]);\nexport const Keyword = (input) => If(If(KeywordString(input), ([_0, input]) => [_0, input], () => If(KeywordNumber(input), ([_0, input]) => [_0, input], () => If(KeywordBoolean(input), ([_0, input]) => [_0, input], () => If(KeywordUndefined(input), ([_0, input]) => [_0, input], () => If(KeywordNull(input), ([_0, input]) => [_0, input], () => If(KeywordInteger(input), ([_0, input]) => [_0, input], () => If(KeywordBigInt(input), ([_0, input]) => [_0, input], () => If(KeywordUnknown(input), ([_0, input]) => [_0, input], () => If(KeywordAny(input), ([_0, input]) => [_0, input], () => If(KeywordObject(input), ([_0, input]) => [_0, input], () => If(KeywordNever(input), ([_0, input]) => [_0, input], () => If(KeywordSymbol(input), ([_0, input]) => [_0, input], () => If(KeywordVoid(input), ([_0, input]) => [_0, input], () => If(KeywordThis(input), ([_0, input]) => [_0, input], () => [])))))))))))))), ([_0, input]) => [S.KeywordMapping(_0), input]);\nexport const TemplateInterpolate = (input) => If(If(Token.Const('${', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.TemplateInterpolateMapping(_0), input]);\nexport const TemplateSpan = (input) => If(Token.Until(['${', '`'], input), ([_0, input]) => [S.TemplateSpanMapping(_0), input]);\nexport const TemplateBody = (input) => If(If(If(TemplateSpan(input), ([_0, input]) => If(TemplateInterpolate(input), ([_1, input]) => If(TemplateBody(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(TemplateSpan(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(TemplateSpan(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.TemplateBodyMapping(_0), input]);\nexport const TemplateLiteralTypes = (input) => If(If(Token.Const('`', input), ([_0, input]) => If(TemplateBody(input), ([_1, input]) => If(Token.Const('`', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.TemplateLiteralTypesMapping(_0), input]);\nexport const TemplateLiteral = (input) => If(TemplateLiteralTypes(input), ([_0, input]) => [S.TemplateLiteralMapping(_0), input]);\nexport const LiteralBigInt = (input) => If(Token.BigInt(input), ([_0, input]) => [S.LiteralBigIntMapping(_0), input]);\nexport const LiteralBoolean = (input) => If(If(Token.Const('true', input), ([_0, input]) => [_0, input], () => If(Token.Const('false', input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.LiteralBooleanMapping(_0), input]);\nexport const LiteralNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.LiteralNumberMapping(_0), input]);\nexport const LiteralString = (input) => If(Token.String(['\\'', '\\\"'], input), ([_0, input]) => [S.LiteralStringMapping(_0), input]);\nexport const Literal = (input) => If(If(LiteralBigInt(input), ([_0, input]) => [_0, input], () => If(LiteralBoolean(input), ([_0, input]) => [_0, input], () => If(LiteralNumber(input), ([_0, input]) => [_0, input], () => If(LiteralString(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.LiteralMapping(_0), input]);\nexport const KeyOf = (input) => If(If(If(Token.Const('keyof', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.KeyOfMapping(_0), input]);\nexport const IndexArray_0 = (input, result = []) => If(If(If(Token.Const('[', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(Token.Const('[', input), ([_0, input]) => If(Token.Const(']', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => IndexArray_0(input, [...result, _0]), () => [result, input]);\nexport const IndexArray = (input) => If(IndexArray_0(input), ([_0, input]) => [S.IndexArrayMapping(_0), input]);\nexport const Extends = (input) => If(If(If(Token.Const('extends', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('?', input), ([_2, input]) => If(Type(input), ([_3, input]) => If(Token.Const(':', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExtendsMapping(_0), input]);\nexport const Base = (input) => If(If(If(Token.Const('(', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(Keyword(input), ([_0, input]) => [_0, input], () => If(_Object_(input), ([_0, input]) => [_0, input], () => If(Tuple(input), ([_0, input]) => [_0, input], () => If(TemplateLiteral(input), ([_0, input]) => [_0, input], () => If(Literal(input), ([_0, input]) => [_0, input], () => If(Constructor(input), ([_0, input]) => [_0, input], () => If(_Function_(input), ([_0, input]) => [_0, input], () => If(Mapped(input), ([_0, input]) => [_0, input], () => If(Options(input), ([_0, input]) => [_0, input], () => If(GenericCall(input), ([_0, input]) => [_0, input], () => If(Reference(input), ([_0, input]) => [_0, input], () => [])))))))))))), ([_0, input]) => [S.BaseMapping(_0), input]);\nexport const Factor = (input) => If(If(KeyOf(input), ([_0, input]) => If(Base(input), ([_1, input]) => If(IndexArray(input), ([_2, input]) => If(Extends(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.FactorMapping(_0), input]);\nexport const ExprTermTail = (input) => If(If(If(Token.Const('&', input), ([_0, input]) => If(Factor(input), ([_1, input]) => If(ExprTermTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTermTailMapping(_0), input]);\nexport const ExprTerm = (input) => If(If(Factor(input), ([_0, input]) => If(ExprTermTail(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprTermMapping(_0), input]);\nexport const ExprTail = (input) => If(If(If(Token.Const('|', input), ([_0, input]) => If(ExprTerm(input), ([_1, input]) => If(ExprTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTailMapping(_0), input]);\nexport const Expr = (input) => If(If(ExprTerm(input), ([_0, input]) => If(ExprTail(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprMapping(_0), input]);\nexport const ExprReadonly = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Expr(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprReadonlyMapping(_0), input]);\nexport const ExprPipe = (input) => If(If(Token.Const('|', input), ([_0, input]) => If(Expr(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprPipeMapping(_0), input]);\nexport const GenericType = (input) => If(If(GenericParameters(input), ([_0, input]) => If(Token.Const('=', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericTypeMapping(_0), input]);\nexport const InferType = (input) => If(If(If(Token.Const('infer', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const('extends', input), ([_2, input]) => If(Expr(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Const('infer', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.InferTypeMapping(_0), input]);\nexport const Type = (input) => If(If(InferType(input), ([_0, input]) => [_0, input], () => If(ExprPipe(input), ([_0, input]) => [_0, input], () => If(ExprReadonly(input), ([_0, input]) => [_0, input], () => If(Expr(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.TypeMapping(_0), input]);\nexport const PropertyKeyNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.PropertyKeyNumberMapping(_0), input]);\nexport const PropertyKeyIdent = (input) => If(Token.Ident(input), ([_0, input]) => [S.PropertyKeyIdentMapping(_0), input]);\nexport const PropertyKeyQuoted = (input) => If(Token.String(['\\'', '\\\"'], input), ([_0, input]) => [S.PropertyKeyQuotedMapping(_0), input]);\nexport const PropertyKeyIndex = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(If(KeywordInteger(input), ([_0, input]) => [_0, input], () => If(KeywordNumber(input), ([_0, input]) => [_0, input], () => If(KeywordString(input), ([_0, input]) => [_0, input], () => If(KeywordSymbol(input), ([_0, input]) => [_0, input], () => [])))), ([_3, input]) => If(Token.Const(']', input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.PropertyKeyIndexMapping(_0), input]);\nexport const PropertyKey = (input) => If(If(PropertyKeyNumber(input), ([_0, input]) => [_0, input], () => If(PropertyKeyIdent(input), ([_0, input]) => [_0, input], () => If(PropertyKeyQuoted(input), ([_0, input]) => [_0, input], () => If(PropertyKeyIndex(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.PropertyKeyMapping(_0), input]);\nexport const Readonly = (input) => If(If(If(Token.Const('readonly', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ReadonlyMapping(_0), input]);\nexport const Optional = (input) => If(If(If(Token.Const('?', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.OptionalMapping(_0), input]);\nexport const Property = (input) => If(If(Readonly(input), ([_0, input]) => If(PropertyKey(input), ([_1, input]) => If(Optional(input), ([_2, input]) => If(Token.Const(':', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.PropertyMapping(_0), input]);\nexport const PropertyDelimiter = (input) => If(If(If(Token.Const(',', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(',', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const('\\n', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))))), ([_0, input]) => [S.PropertyDelimiterMapping(_0), input]);\nexport const PropertyList_0 = (input, result = []) => If(If(Property(input), ([_0, input]) => If(PropertyDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => PropertyList_0(input, [...result, _0]), () => [result, input]);\nexport const PropertyList = (input) => If(If(PropertyList_0(input), ([_0, input]) => If(If(If(Property(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.PropertyListMapping(_0), input]);\nexport const Properties = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(PropertyList(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PropertiesMapping(_0), input]);\nexport const _Object_ = (input) => If(Properties(input), ([_0, input]) => [S._Object_Mapping(_0), input]);\nexport const ElementNamed = (input) => If(If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Token.Const('readonly', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Token.Const('readonly', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.ElementNamedMapping(_0), input]);\nexport const ElementReadonlyOptional = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('?', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ElementReadonlyOptionalMapping(_0), input]);\nexport const ElementReadonly = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Type(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementReadonlyMapping(_0), input]);\nexport const ElementOptional = (input) => If(If(Type(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementOptionalMapping(_0), input]);\nexport const ElementBase = (input) => If(If(ElementNamed(input), ([_0, input]) => [_0, input], () => If(ElementReadonlyOptional(input), ([_0, input]) => [_0, input], () => If(ElementReadonly(input), ([_0, input]) => [_0, input], () => If(ElementOptional(input), ([_0, input]) => [_0, input], () => If(Type(input), ([_0, input]) => [_0, input], () => []))))), ([_0, input]) => [S.ElementBaseMapping(_0), input]);\nexport const Element = (input) => If(If(If(Token.Const('...', input), ([_0, input]) => If(ElementBase(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(ElementBase(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ElementMapping(_0), input]);\nexport const ElementList_0 = (input, result = []) => If(If(Element(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ElementList_0(input, [...result, _0]), () => [result, input]);\nexport const ElementList = (input) => If(If(ElementList_0(input), ([_0, input]) => If(If(If(Element(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementListMapping(_0), input]);\nexport const Tuple = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(ElementList(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.TupleMapping(_0), input]);\nexport const ParameterReadonlyOptional = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Token.Const('readonly', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.ParameterReadonlyOptionalMapping(_0), input]);\nexport const ParameterReadonly = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Token.Const('readonly', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.ParameterReadonlyMapping(_0), input]);\nexport const ParameterOptional = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.ParameterOptionalMapping(_0), input]);\nexport const ParameterType = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ParameterTypeMapping(_0), input]);\nexport const ParameterBase = (input) => If(If(ParameterReadonlyOptional(input), ([_0, input]) => [_0, input], () => If(ParameterReadonly(input), ([_0, input]) => [_0, input], () => If(ParameterOptional(input), ([_0, input]) => [_0, input], () => If(ParameterType(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.ParameterBaseMapping(_0), input]);\nexport const Parameter = (input) => If(If(If(Token.Const('...', input), ([_0, input]) => If(ParameterBase(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(ParameterBase(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ParameterMapping(_0), input]);\nexport const ParameterList_0 = (input, result = []) => If(If(Parameter(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ParameterList_0(input, [...result, _0]), () => [result, input]);\nexport const ParameterList = (input) => If(If(ParameterList_0(input), ([_0, input]) => If(If(If(Parameter(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ParameterListMapping(_0), input]);\nexport const _Function_ = (input) => If(If(Token.Const('(', input), ([_0, input]) => If(ParameterList(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => If(Token.Const('=>', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S._Function_Mapping(_0), input]);\nexport const Constructor = (input) => If(If(Token.Const('new', input), ([_0, input]) => If(Token.Const('(', input), ([_1, input]) => If(ParameterList(input), ([_2, input]) => If(Token.Const(')', input), ([_3, input]) => If(Token.Const('=>', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [S.ConstructorMapping(_0), input]);\nexport const MappedReadonly = (input) => If(If(If(Token.Const('+', input), ([_0, input]) => If(Token.Const('readonly', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('-', input), ([_0, input]) => If(Token.Const('readonly', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('readonly', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.MappedReadonlyMapping(_0), input]);\nexport const MappedOptional = (input) => If(If(If(Token.Const('+', input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('-', input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('?', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.MappedOptionalMapping(_0), input]);\nexport const MappedAs = (input) => If(If(If(Token.Const('as', input), ([_0, input]) => If(Type(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.MappedAsMapping(_0), input]);\nexport const Mapped = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(MappedReadonly(input), ([_1, input]) => If(Token.Const('[', input), ([_2, input]) => If(Token.Ident(input), ([_3, input]) => If(Token.Const('in', input), ([_4, input]) => If(Type(input), ([_5, input]) => If(MappedAs(input), ([_6, input]) => If(Token.Const(']', input), ([_7, input]) => If(MappedOptional(input), ([_8, input]) => If(Token.Const(':', input), ([_9, input]) => If(Type(input), ([_10, input]) => If(OptionalSemiColon(input), ([_11, input]) => If(Token.Const('}', input), ([_12, input]) => [[_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12], input]))))))))))))), ([_0, input]) => [S.MappedMapping(_0), input]);\nexport const Reference = (input) => If(Token.Ident(input), ([_0, input]) => [S.ReferenceMapping(_0), input]);\nexport const Options = (input) => If(If(Token.Const('Options', input), ([_0, input]) => If(Token.Const('<', input), ([_1, input]) => If(Type(input), ([_2, input]) => If(Token.Const(',', input), ([_3, input]) => If(JsonObject(input), ([_4, input]) => If(Token.Const('>', input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [S.OptionsMapping(_0), input]);\nexport const JsonNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.JsonNumberMapping(_0), input]);\nexport const JsonBoolean = (input) => If(If(Token.Const('true', input), ([_0, input]) => [_0, input], () => If(Token.Const('false', input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.JsonBooleanMapping(_0), input]);\nexport const JsonString = (input) => If(Token.String(['\\\"', '\\''], input), ([_0, input]) => [S.JsonStringMapping(_0), input]);\nexport const JsonNull = (input) => If(Token.Const('null', input), ([_0, input]) => [S.JsonNullMapping(_0), input]);\nexport const JsonProperty = (input) => If(If(PropertyKey(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Json(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonPropertyMapping(_0), input]);\nexport const JsonPropertyList_0 = (input, result = []) => If(If(JsonProperty(input), ([_0, input]) => If(PropertyDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => JsonPropertyList_0(input, [...result, _0]), () => [result, input]);\nexport const JsonPropertyList = (input) => If(If(JsonPropertyList_0(input), ([_0, input]) => If(If(If(JsonProperty(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.JsonPropertyListMapping(_0), input]);\nexport const JsonObject = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(JsonPropertyList(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonObjectMapping(_0), input]);\nexport const JsonElementList_0 = (input, result = []) => If(If(Json(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => JsonElementList_0(input, [...result, _0]), () => [result, input]);\nexport const JsonElementList = (input) => If(If(JsonElementList_0(input), ([_0, input]) => If(If(If(Json(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.JsonElementListMapping(_0), input]);\nexport const JsonArray = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(JsonElementList(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonArrayMapping(_0), input]);\nexport const Json = (input) => If(If(JsonNumber(input), ([_0, input]) => [_0, input], () => If(JsonBoolean(input), ([_0, input]) => [_0, input], () => If(JsonString(input), ([_0, input]) => [_0, input], () => If(JsonNull(input), ([_0, input]) => [_0, input], () => If(JsonObject(input), ([_0, input]) => [_0, input], () => If(JsonArray(input), ([_0, input]) => [_0, input], () => [])))))), ([_0, input]) => [S.JsonMapping(_0), input]);\nexport const PatternBigInt = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)n', input), ([_0, input]) => [S.PatternBigIntMapping(_0), input]);\nexport const PatternString = (input) => If(Token.Const('.*', input), ([_0, input]) => [S.PatternStringMapping(_0), input]);\nexport const PatternNumber = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?', input), ([_0, input]) => [S.PatternNumberMapping(_0), input]);\nexport const PatternInteger = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)', input), ([_0, input]) => [S.PatternIntegerMapping(_0), input]);\nexport const PatternNever = (input) => If(Token.Const('(?!)', input), ([_0, input]) => [S.PatternNeverMapping(_0), input]);\nexport const PatternText = (input) => If(Token.Until_1(['-?(?:0|[1-9][0-9]*)n', '.*', '-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?', '-?(?:0|[1-9][0-9]*)', '(?!)', '(', ')', '$', '|'], input), ([_0, input]) => [S.PatternTextMapping(_0), input]);\nexport const PatternBase = (input) => If(If(PatternBigInt(input), ([_0, input]) => [_0, input], () => If(PatternString(input), ([_0, input]) => [_0, input], () => If(PatternNumber(input), ([_0, input]) => [_0, input], () => If(PatternInteger(input), ([_0, input]) => [_0, input], () => If(PatternNever(input), ([_0, input]) => [_0, input], () => If(PatternGroup(input), ([_0, input]) => [_0, input], () => If(PatternText(input), ([_0, input]) => [_0, input], () => []))))))), ([_0, input]) => [S.PatternBaseMapping(_0), input]);\nexport const PatternGroup = (input) => If(If(Token.Const('(', input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PatternGroupMapping(_0), input]);\nexport const PatternUnion = (input) => If(If(If(PatternTerm(input), ([_0, input]) => If(Token.Const('|', input), ([_1, input]) => If(PatternUnion(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(PatternTerm(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.PatternUnionMapping(_0), input]);\nexport const PatternTerm = (input) => If(If(PatternBase(input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.PatternTermMapping(_0), input]);\nexport const PatternBody = (input) => If(If(PatternUnion(input), ([_0, input]) => [_0, input], () => If(PatternTerm(input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.PatternBodyMapping(_0), input]);\nexport const Pattern = (input) => If(If(Token.Const('^', input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => If(Token.Const('$', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PatternMapping(_0), input]);\nexport const InterfaceDeclarationHeritageList_0 = (input, result = []) => If(If(Type(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => InterfaceDeclarationHeritageList_0(input, [...result, _0]), () => [result, input]);\nexport const InterfaceDeclarationHeritageList = (input) => If(If(InterfaceDeclarationHeritageList_0(input), ([_0, input]) => If(If(If(Type(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.InterfaceDeclarationHeritageListMapping(_0), input]);\nexport const InterfaceDeclarationHeritage = (input) => If(If(If(Token.Const('extends', input), ([_0, input]) => If(InterfaceDeclarationHeritageList(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.InterfaceDeclarationHeritageMapping(_0), input]);\nexport const InterfaceDeclarationGeneric = (input) => If(If(Token.Const('interface', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(GenericParameters(input), ([_2, input]) => If(InterfaceDeclarationHeritage(input), ([_3, input]) => If(Properties(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.InterfaceDeclarationGenericMapping(_0), input]);\nexport const InterfaceDeclaration = (input) => If(If(Token.Const('interface', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(InterfaceDeclarationHeritage(input), ([_2, input]) => If(Properties(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.InterfaceDeclarationMapping(_0), input]);\nexport const TypeAliasDeclarationGeneric = (input) => If(If(Token.Const('type', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(GenericParameters(input), ([_2, input]) => If(Token.Const('=', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.TypeAliasDeclarationGenericMapping(_0), input]);\nexport const TypeAliasDeclaration = (input) => If(If(Token.Const('type', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const('=', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.TypeAliasDeclarationMapping(_0), input]);\nexport const ExportKeyword = (input) => If(If(If(Token.Const('export', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExportKeywordMapping(_0), input]);\nexport const ModuleDeclarationDelimiter = (input) => If(If(If(Token.Const(';', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const('\\n', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.ModuleDeclarationDelimiterMapping(_0), input]);\nexport const ModuleDeclarationList_0 = (input, result = []) => If(If(ModuleDeclaration(input), ([_0, input]) => If(ModuleDeclarationDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ModuleDeclarationList_0(input, [...result, _0]), () => [result, input]);\nexport const ModuleDeclarationList = (input) => If(If(ModuleDeclarationList_0(input), ([_0, input]) => If(If(If(ModuleDeclaration(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ModuleDeclarationListMapping(_0), input]);\nexport const ModuleDeclaration = (input) => If(If(ExportKeyword(input), ([_0, input]) => If(If(InterfaceDeclarationGeneric(input), ([_0, input]) => [_0, input], () => If(InterfaceDeclaration(input), ([_0, input]) => [_0, input], () => If(TypeAliasDeclarationGeneric(input), ([_0, input]) => [_0, input], () => If(TypeAliasDeclaration(input), ([_0, input]) => [_0, input], () => [])))), ([_1, input]) => If(OptionalSemiColon(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ModuleDeclarationMapping(_0), input]);\nexport const Module = (input) => If(If(ModuleDeclaration(input), ([_0, input]) => If(ModuleDeclarationList(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ModuleMapping(_0), input]);\nexport const Script = (input) => If(If(Module(input), ([_0, input]) => [_0, input], () => If(GenericType(input), ([_0, input]) => [_0, input], () => If(Type(input), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.ScriptMapping(_0), input]);\n",
87
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { TemplateLiteralTypes } from '../../script/parser.mjs';\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable\n//\n// Parser is parsing regular expression for strings and will return \n// at least 1 TLiteral at a minumum.\n//\n// ------------------------------------------------------------------\n/** Parses a Template into a TemplateLiteral types */\nexport function ParseTemplateIntoTypes(template) {\n const parsed = TemplateLiteralTypes(`\\`${template}\\``);\n const result = Guard.IsEqual(parsed.length, 2)\n ? parsed[0]\n : Unreachable(); // []\n return result;\n}\n// deno-coverage-ignore-stop\n",
88
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Deferred } from './deferred.mjs';\nimport { ParseTemplateIntoTypes } from '../engine/patterns/template.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\nimport { Memory } from '../../system/system.mjs';\n/** Creates a deferred TemplateLiteral action. */\nexport function TemplateLiteralDeferred(types, options = {}) {\n return Deferred('TemplateLiteral', [types], options);\n}\nexport function TemplateLiteralFromTypes(types) {\n return Instantiate({}, TemplateLiteralDeferred(types, {}));\n}\nexport function TemplateLiteralFromString(template) {\n const types = ParseTemplateIntoTypes(template);\n return TemplateLiteralFromTypes(types);\n}\n/** Creates a TemplateLiteral type. */\nexport function TemplateLiteral(input, options = {}) {\n const type = Guard.IsString(input) ? TemplateLiteralFromString(input) : TemplateLiteralFromTypes(input);\n return Memory.Update(type, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TTemplateLiteral. */\nexport function IsTemplateLiteral(value) {\n return IsKind(value, 'TemplateLiteral');\n}\n",
89
+ "import { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nexport function ExtendsUnion(inferred) {\n return Memory.Create({ ['~kind']: 'ExtendsUnion' }, { inferred });\n}\nexport function IsExtendsUnion(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.HasPropertyKey(value, 'inferred') &&\n Guard.IsEqual(value['~kind'], 'ExtendsUnion') &&\n Guard.IsObject(value.inferred);\n}\nexport function ExtendsTrue(inferred) {\n return Memory.Create({ ['~kind']: 'ExtendsTrue' }, { inferred });\n}\nexport function IsExtendsTrue(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.HasPropertyKey(value, 'inferred') &&\n Guard.IsEqual(value['~kind'], 'ExtendsTrue') &&\n Guard.IsObject(value.inferred);\n}\nexport function ExtendsFalse() {\n return Memory.Create({ ['~kind']: 'ExtendsFalse' }, {});\n}\nexport function IsExtendsFalse(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.IsEqual(value['~kind'], 'ExtendsFalse');\n}\nexport function IsExtendsTrueLike(value) {\n return IsExtendsUnion(value) || IsExtendsTrue(value);\n}\n",
90
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Pattern } from '../../script/parser.mjs';\n/** Parses a Pattern into a sequence of TemplateLiteral types */\nexport function ParsePatternIntoTypes(pattern) {\n const parsed = Pattern(pattern);\n const result = Guard.IsEqual(parsed.length, 2)\n ? parsed[0]\n : Unreachable(); // []\n return result;\n}\n// deno-coverage-ignore-stop\n",
91
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nfunction FromLiteral(value) {\n return true;\n}\nfunction FromTypesReduce(types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? FromType(left)\n ? FromTypesReduce(right)\n : false\n : true);\n}\nfunction FromTypes(types) {\n const result = Guard.IsEqual(types.length, 0) ? false : FromTypesReduce(types);\n return result;\n}\nfunction FromType(type) {\n return (IsUnion(type) ? FromTypes(type.anyOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n false);\n}\n/** Returns true if the given TemplateLiteral types yields a finite variant set */\nexport function TemplateLiteralFinite(types) {\n const result = FromTypes(types);\n return result;\n}\n",
92
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { String } from '../../types/string.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { ParsePatternIntoTypes } from '../patterns/pattern.mjs';\nimport { TemplateLiteralFinite } from './finite.mjs';\nfunction FromLiteralPush(variants, value, result = []) {\n const [left, ...right] = variants;\n return (Guard.IsString(left) ? FromLiteralPush(right, value, [...result, `${left}${value}`]) : result);\n}\nfunction FromLiteral(variants, value) {\n return (Guard.IsEqual(variants.length, 0) ? [`${value}`] : FromLiteralPush(variants, value));\n}\nfunction FromUnion(variants, types, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? FromUnion(variants, right, [...result, ...FromType(variants, left)])\n : result);\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable | internal\n// \n// Parsed TemplateLiteral patterns only yield Literal or Union but\n// we keep the fall-through to assert that no other types can reach \n// here without error.\n//\n// ------------------------------------------------------------------\nfunction FromType(variants, type) {\n const result = (IsUnion(type) ? FromUnion(variants, type.anyOf) :\n IsLiteral(type) ? FromLiteral(variants, type.const) :\n Unreachable() // []\n );\n return result;\n}\nfunction DecodeFromSpan(variants, types) {\n const [left, ...right] = types;\n return (IsSchema(left) ? DecodeFromSpan(FromType(variants, left), right) : variants);\n}\nfunction VariantsToLiterals(variants) {\n return variants.map(variant => Literal(variant));\n}\nfunction DecodeTypesAsUnion(types) {\n const variants = DecodeFromSpan([], types);\n const literals = VariantsToLiterals(variants);\n const result = Union(literals);\n return result;\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - internal\n// \n// Cannot invoke the 0-length condition as the TemplateLiteral \n// parsers always return at least 1 TLiteral or TUnion. We would \n// return a empty string TLiteral for this case, but will use \n// Unreachable to catch parse inputs that trigger 0-length.\n//\n// ------------------------------------------------------------------\nfunction DecodeTypes(types) {\n return (Guard.IsEqual(types.length, 0) ? Unreachable() : // Literal('') :\n Guard.IsEqual(types.length, 1) && IsLiteral(types[0]) ? types[0] :\n DecodeTypesAsUnion(types));\n}\n/** Decodes a TemplateLiteral into a Type. If the TemplateLiteral yields a non-finite set, the return value is TString */\nexport function TemplateLiteralDecode(pattern) {\n const types = ParsePatternIntoTypes(pattern);\n const finite = TemplateLiteralFinite(types);\n const result = finite\n ? DecodeTypes(types)\n : String();\n return result;\n}\n",
93
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { Literal } from '../../types/literal.mjs';\nimport { Null } from '../../types/null.mjs';\nimport { Never } from '../../types/never.mjs';\nfunction FromEnumValue(value) {\n return (Guard.IsString(value) || Guard.IsNumber(value) ? Literal(value) :\n Guard.IsNull(value) ? Null() :\n Never());\n}\nexport function EnumValuesToVariants(values) {\n const result = values.map(value => FromEnumValue(value));\n return result;\n}\nexport function EnumValuesToUnion(values) {\n const variants = EnumValuesToVariants(values);\n const result = Union(variants);\n return result;\n}\nexport function EnumToUnion(type) {\n const result = EnumValuesToUnion(type.enum);\n return result;\n}\n",
94
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsAny } from '../types/any.mjs';\nimport { IsEnum } from '../types/enum.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsIntersect } from '../types/intersect.mjs';\nimport { IsTemplateLiteral } from '../types/template-literal.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport * as Result from './result.mjs';\nimport { TemplateLiteralDecode } from '../engine/template-literal/decode.mjs';\nimport { EnumValuesToUnion } from '../engine/enum/index.mjs';\nfunction ExtendsRightInfer(inferred, name, left, right) {\n const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(Memory.Assign(Memory.Assign(inferred, check.inferred), { [name]: left }))\n : Result.ExtendsFalse());\n}\nfunction ExtendsRightAny(inferred, left) {\n return Result.ExtendsTrue(inferred);\n}\nfunction ExtendsRightEnum(inferred, left, right) {\n const union = EnumValuesToUnion(right);\n return ExtendsLeft(inferred, left, union);\n}\nfunction ExtendsRightIntersect(inferred, left, right) {\n const [head, ...tail] = right;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, left, head);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsRightIntersect(check.inferred, left, tail)\n : Result.ExtendsFalse();\n })() : Result.ExtendsTrue(inferred));\n}\nfunction ExtendsRightTemplateLiteral(inferred, left, right) {\n const decoded = TemplateLiteralDecode(right);\n return ExtendsLeft(inferred, left, decoded);\n}\nfunction ExtendsRightUnion(inferred, left, right) {\n const [head, ...tail] = right;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, left, head);\n return Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(check.inferred)\n : ExtendsRightUnion(inferred, left, tail);\n })() : Result.ExtendsFalse());\n}\nexport function ExtendsRight(inferred, left, right) {\n return (IsAny(right) ? ExtendsRightAny(inferred, left) :\n IsEnum(right) ? ExtendsRightEnum(inferred, left, right.enum) :\n IsInfer(right) ? ExtendsRightInfer(inferred, right.name, left, right.extends) :\n IsIntersect(right) ? ExtendsRightIntersect(inferred, left, right.allOf) :\n IsTemplateLiteral(right) ? ExtendsRightTemplateLiteral(inferred, left, right.pattern) :\n IsUnion(right) ? ExtendsRightUnion(inferred, left, right.anyOf) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsFalse());\n}\n",
95
+ "// deno-fmt-ignore-file\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsAny } from '../types/any.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsAny(inferred, left, right) {\n return (IsInfer(right) ? ExtendsRight(inferred, left, right) :\n IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsUnion(inferred));\n}\n",
96
+ "// deno-fmt-ignore-file\nimport { IsArray } from '../types/array.mjs';\nimport { IsImmutable } from '../types/_immutable.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsImmutable(left, right) {\n const isImmutableLeft = IsImmutable(left);\n const isImmutableRight = IsImmutable(right);\n return (isImmutableLeft && isImmutableRight ? true :\n !isImmutableLeft && isImmutableRight ? true :\n isImmutableLeft && !isImmutableRight ? false :\n true);\n}\nexport function ExtendsArray(inferred, arrayLeft, left, right) {\n return (IsArray(right)\n ? ExtendsImmutable(arrayLeft, right)\n ? ExtendsLeft(inferred, left, right.items)\n : Result.ExtendsFalse()\n : ExtendsRight(inferred, arrayLeft, right));\n}\n",
97
+ "// deno-fmt-ignore-file\nimport { AsyncIterator, IsAsyncIterator } from '../types/async-iterator.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsAsyncIterator(inferred, left, right) {\n return (IsAsyncIterator(right)\n ? ExtendsLeft(inferred, left, right.iteratorItems)\n : ExtendsRight(inferred, AsyncIterator(left), right));\n}\n",
98
+ "// deno-fmt-ignore-file\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsBigInt(inferred, left, right) {\n return (IsBigInt(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
99
+ "// deno-fmt-ignore-file\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsBoolean(inferred, left, right) {\n return (IsBoolean(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
100
+ "// deno-fmt-ignore-file\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsOptional } from '../types/_optional.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport * as Result from './result.mjs';\nfunction ParameterCompare(inferred, left, leftRest, right, rightRest) {\n // Parameter extends Right on Left, except when infer Right \n const checkLeft = IsInfer(right) ? left : right;\n const checkRight = IsInfer(right) ? right : left;\n const isLeftOptional = IsOptional(left);\n const isRightOptional = IsOptional(right);\n const check = ExtendsLeft(inferred, checkLeft, checkRight);\n return (!isLeftOptional && isRightOptional\n ? Result.ExtendsFalse()\n : Result.IsExtendsTrueLike(check)\n ? ExtendsParameters(check.inferred, leftRest, rightRest)\n : Result.ExtendsFalse());\n}\nfunction ParameterRight(inferred, left, leftRest, rightRest) {\n const [head, ...tail] = rightRest;\n return (IsSchema(head)\n ? ParameterCompare(inferred, left, leftRest, head, tail)\n : IsOptional(left) // 'right-did-not-have-enough-elements'\n ? Result.ExtendsTrue(inferred) // 'ok: left was optional'\n : Result.ExtendsFalse() // 'fail: left was required'\n );\n}\nfunction ParametersLeft(inferred, left, rightRest) {\n const [head, ...tail] = left;\n return (IsSchema(head)\n ? ParameterRight(inferred, head, tail, rightRest)\n : Result.ExtendsTrue(inferred));\n}\nexport function ExtendsParameters(inferred, left, right) {\n return ParametersLeft(inferred, left, right);\n}\n",
101
+ "// deno-fmt-ignore-file\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsReturnType(inferred, left, right) {\n return (IsVoid(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsLeft(inferred, left, right));\n}\n",
102
+ "// deno-fmt-ignore-file\nimport { IsConstructor } from '../types/constructor.mjs';\nimport * as Result from './result.mjs';\n// ------------------------------------------------------------------\n// Parameters | ReturnType\n// ------------------------------------------------------------------ \nimport { ExtendsParameters } from './parameters.mjs';\nimport { ExtendsReturnType } from './return-type.mjs';\nexport function ExtendsConstructor(inferred, parameters, returnType, right) {\n return (IsConstructor(right) ? (() => {\n const check = ExtendsParameters(inferred, parameters, right.parameters);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsReturnType(check.inferred, returnType, right.instanceType)\n : Result.ExtendsFalse();\n })() : Result.ExtendsFalse());\n}\n",
103
+ "// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { EnumToUnion } from '../engine/enum/index.mjs';\nexport function ExtendsEnum(inferred, left, right) {\n return ExtendsLeft(inferred, EnumToUnion(left), right);\n}\n",
104
+ "// deno-fmt-ignore-file\nimport { IsFunction } from '../types/function.mjs';\nimport * as Result from './result.mjs';\n// ------------------------------------------------------------------\n// Parameters | ReturnType\n// ------------------------------------------------------------------ \nimport { ExtendsParameters } from './parameters.mjs';\nimport { ExtendsReturnType } from './return-type.mjs';\nexport function ExtendsFunction(inferred, parameters, returnType, right) {\n return (IsFunction(right) ? (() => {\n const check = ExtendsParameters(inferred, parameters, right.parameters);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsReturnType(check.inferred, returnType, right.returnType)\n : Result.ExtendsFalse();\n })() : Result.ExtendsFalse());\n}\n",
105
+ "// deno-fmt-ignore-file\nimport { IsInteger } from '../types/integer.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsInteger(inferred, left, right) {\n return (IsInteger(right) ? Result.ExtendsTrue(inferred) :\n IsNumber(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, left, right));\n}\n",
106
+ "// deno-fmt-ignore-file\nimport { IsUnknown } from '../../types/unknown.mjs';\nimport { Extends, ExtendsResult } from \"../../extends/index.mjs\";\n// ------------------------------------------------------------------\n// TCompare\n// ------------------------------------------------------------------\nexport const ResultEqual = 'equal';\nexport const ResultDisjoint = 'disjoint';\nexport const ResultLeftInside = 'left-inside';\nexport const ResultRightInside = 'right-inside';\n/** Compares left and right types and determines their set relationship. */\nexport function Compare(left, right) {\n const extendsCheck = [\n IsUnknown(left) ? ExtendsResult.ExtendsFalse() : Extends({}, left, right),\n IsUnknown(left) ? ExtendsResult.ExtendsTrue({}) : Extends({}, right, left),\n ];\n return (ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultEqual :\n ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsFalse(extendsCheck[1]) ? ResultLeftInside :\n ExtendsResult.IsExtendsFalse(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultRightInside :\n ResultDisjoint);\n}\n",
107
+ "// deno-fmt-ignore-file\nimport { IsUnion } from '../../types/union.mjs';\nfunction FlattenType(type) {\n const result = IsUnion(type) ? Flatten(type.anyOf) : [type];\n return result;\n}\nexport function Flatten(types) {\n return types.reduce((result, type) => {\n return [...result, ...FlattenType(type)];\n }, []);\n}\n",
108
+ "// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nexport function TupleElementsToProperties(types) {\n const result = types.reduceRight((result, right, index) => {\n return { [index]: right, ...result };\n }, {});\n return result;\n}\nexport function TupleToObject(type) {\n const properties = TupleElementsToProperties(type.items);\n const result = Object(properties);\n return result;\n}\n",
109
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { ReadonlyAdd, ReadonlyRemove, IsReadonly } from '../../types/_readonly.mjs';\nimport { OptionalAdd, OptionalRemove, IsOptional } from '../../types/_optional.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { TupleElementsToProperties } from '../tuple/to-object.mjs';\nimport { EvaluateIntersect } from './evaluate.mjs';\nfunction IsReadonlyProperty(left, right) {\n return (IsReadonly(left) ? IsReadonly(right) ? true : false : false);\n}\nfunction IsOptionalProperty(left, right) {\n return (IsOptional(left) ? IsOptional(right) ? true : false : false);\n}\nfunction CompositeProperty(left, right) {\n const isReadonly = IsReadonlyProperty(left, right);\n const isOptional = IsOptionalProperty(left, right);\n const evaluated = EvaluateIntersect([left, right]);\n // Modifiers need to be discarded and re-applied\n const property = ReadonlyRemove(OptionalRemove(evaluated));\n return (isReadonly && isOptional ? ReadonlyAdd(OptionalAdd(property)) :\n isReadonly && !isOptional ? ReadonlyAdd(property) :\n !isReadonly && isOptional ? OptionalAdd(property) :\n property);\n}\nfunction CompositePropertyKey(left, right, key) {\n return (key in left\n ? key in right\n ? CompositeProperty(left[key], right[key])\n : left[key]\n : key in right\n ? right[key]\n : Never());\n}\nfunction CompositeProperties(left, right) {\n const keys = new Set([...Guard.Keys(right), ...Guard.Keys(left)]);\n return [...keys].reduce((result, key) => {\n return { ...result, [key]: CompositePropertyKey(left, right, key) };\n }, {});\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable | internal\n//\n// Composite is called by Distribute which provisions the type as\n// either TObject ot TTuple. Fall-through unreachable.\n//\n// ------------------------------------------------------------------\nfunction GetProperties(type) {\n const result = (IsObject(type) ? type.properties :\n IsTuple(type) ? TupleElementsToProperties(type.items) :\n Unreachable() // {}\n );\n return result;\n}\nexport function Composite(left, right) {\n const leftProperties = GetProperties(left);\n const rightProperties = GetProperties(right);\n const properties = CompositeProperties(leftProperties, rightProperties);\n return Object(properties);\n}\n",
110
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Never } from \"../../types/never.mjs\";\nimport { Compare, ResultLeftInside, ResultRightInside, ResultEqual } from \"./compare.mjs\";\nexport function Narrow(left, right) {\n const result = Compare(left, right);\n return (Guard.IsEqual(result, ResultLeftInside) ? left :\n Guard.IsEqual(result, ResultRightInside) ? right :\n Guard.IsEqual(result, ResultEqual) ? right :\n Never());\n}\n",
111
+ "// deno-fmt-ignore-file\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { Composite } from './composite.mjs';\nimport { Narrow } from './narrow.mjs';\nimport { EvaluateType } from \"./evaluate.mjs\";\nimport { EvaluateIntersect } from \"./evaluate.mjs\";\nfunction CanDistribute(type) {\n return IsObject(type) || IsTuple(type);\n}\nfunction DistributeNormalize(type) {\n return (IsIntersect(type)\n ? EvaluateIntersect(type.allOf)\n : type);\n}\nfunction DistributeOperation(left, right) {\n const normalLeft = DistributeNormalize(left);\n const normalRight = DistributeNormalize(right);\n const isObjectLeft = CanDistribute(normalLeft);\n const IsObjectRight = CanDistribute(normalRight);\n const result = (isObjectLeft && IsObjectRight ? Composite(EvaluateType(normalLeft), normalRight) :\n isObjectLeft && !IsObjectRight ? EvaluateType(normalLeft) :\n !isObjectLeft && IsObjectRight ? normalRight :\n Narrow(EvaluateType(normalLeft), normalRight));\n return result;\n}\nfunction DistributeType(type, types, result = []) {\n const [left, ...right] = types;\n return (!Guard.IsUndefined(left) // TSchema[]\n ? DistributeType(type, right, [...result, DistributeOperation(type, left)])\n : result.length === 0\n ? [type]\n : result);\n}\nfunction DistributeUnion(types, distribution, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? DistributeUnion(right, distribution, [...result, ...Distribute([left], distribution)])\n : result);\n}\nexport function Distribute(types, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? IsUnion(left)\n ? Distribute(right, DistributeUnion(left.anyOf, result))\n : Distribute(right, DistributeType(left, result))\n : result);\n}\n",
112
+ "// deno-fmt-ignore-file\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Distribute } from './distribute.mjs';\nimport { Broaden } from './broaden.mjs';\nexport function EvaluateIntersect(types) {\n const distribution = Distribute(types);\n const result = Broaden(distribution);\n return result;\n}\nexport function EvaluateUnion(types) {\n const result = Broaden(types);\n return result;\n}\nexport function EvaluateType(type) {\n return (IsIntersect(type) ? EvaluateIntersect(type.allOf) :\n IsUnion(type) ? EvaluateUnion(type.anyOf) :\n type);\n}\n",
113
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsAny } from '../../types/any.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { Compare, ResultRightInside, ResultLeftInside, ResultEqual } from './compare.mjs';\nimport { Flatten } from './flatten.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nfunction BroadFilter(type, types) {\n return types.filter(left => {\n return Compare(type, left) === ResultRightInside\n ? false\n : true;\n });\n}\nfunction IsBroadestType(type, types) {\n const result = types.some(left => {\n const result = Compare(type, left);\n return Guard.IsEqual(result, ResultLeftInside) || Guard.IsEqual(result, ResultEqual);\n });\n return Guard.IsEqual(result, false);\n}\nfunction BroadenType(type, types) {\n const evaluated = EvaluateType(type);\n return (IsAny(evaluated) ? [evaluated] :\n IsBroadestType(evaluated, types)\n ? [...BroadFilter(evaluated, types), evaluated]\n : types);\n}\nfunction BroadenTypes(types, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? IsObject(left)\n ? BroadenTypes(right, [...result, left]) // special: push object type\n : BroadenTypes(right, BroadenType(left, result))\n : result);\n}\n/** Broadens a set of types and returns either the most broad type, or union or disjoint types. */\nexport function Broaden(types) {\n const broadened = BroadenTypes(types);\n const flattened = Flatten(broadened);\n const result = (flattened.length === 0 ? Never() :\n flattened.length === 1 ? flattened[0] :\n Union(flattened));\n return result;\n}\n",
114
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nfunction EvaluateImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(EvaluateType(instantiatedType), {}, options);\n}\nexport function EvaluateInstantiate(context, state, type, options) {\n return (\n // [instantiation-rule]\n //\n // Evaluate instantiation should never defer on instantiate as the caller is specifically \n // requesting that the type be evaluated in whatever context is available. However, actions \n // embedded in the Evaluate call may defer local to themselves.\n EvaluateImmediate(context, state, type, options));\n}\n",
115
+ "// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends-left.mjs';\n// ----------------------------------------------------------------------------\n// ExtendsIntersect\n//\n// This function evaluates the intersection and continues. This is different\n// to IntersectRight which MUST enumerate each type to derive Inferred. Left \n// side types do not infer so it should be ok to do this.\n//\n// ----------------------------------------------------------------------------\nimport { EvaluateIntersect } from '../engine/evaluate/index.mjs';\nexport function ExtendsIntersect(inferred, left, right) {\n const evaluated = EvaluateIntersect(left);\n return ExtendsLeft(inferred, evaluated, right);\n}\n",
116
+ "// deno-fmt-ignore-file\nimport { Iterator, IsIterator } from '../types/iterator.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsIterator(inferred, left, right) {\n return (IsIterator(right)\n ? ExtendsLeft(inferred, left, right.iteratorItems)\n : ExtendsRight(inferred, Iterator(left), right));\n}\n",
117
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/unreachable.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsLiteral, Literal } from '../types/literal.mjs';\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { IsString } from '../types/string.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsLiteralValue(inferred, left, right) {\n return (left === right\n ? Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse());\n}\nfunction ExtendsLiteralBigInt(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsBigInt(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralBoolean(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsBoolean(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralNumber(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsNumber(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralString(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsString(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nexport function ExtendsLiteral(inferred, left, right) {\n return (Guard.IsBigInt(left.const) ? ExtendsLiteralBigInt(inferred, left.const, right) :\n Guard.IsBoolean(left.const) ? ExtendsLiteralBoolean(inferred, left.const, right) :\n Guard.IsNumber(left.const) ? ExtendsLiteralNumber(inferred, left.const, right) :\n Guard.IsString(left.const) ? ExtendsLiteralString(inferred, left.const, right) :\n Unreachable() // ExtendsRight(inferred, left, right)\n );\n}\n// deno-coverage-ignore-stop\n",
118
+ "// deno-fmt-ignore-file\nimport { IsInfer } from '../types/infer.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNever(inferred, left, right) {\n return (IsInfer(right)\n ? ExtendsRight(inferred, left, right)\n : Result.ExtendsTrue(inferred));\n}\n",
119
+ "// deno-fmt-ignore-file\nimport { IsNull } from '../types/null.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNull(inferred, left, right) {\n return (IsNull(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
120
+ "// deno-fmt-ignore-file\nimport { IsNumber } from '../types/number.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNumber(inferred, left, right) {\n return (IsNumber(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
121
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from '../types/_optional.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsNever } from '../types/never.mjs';\nimport { IsObject, Object } from '../types/object.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsPropertyOptional(inferred, left, right) {\n return (IsOptional(left)\n ? IsOptional(right)\n ? Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse()\n : Result.ExtendsTrue(inferred));\n}\nfunction ExtendsProperty(inferred, left, right) {\n return (\n // Right TInfer<TNever> is TExtendsFalse\n IsInfer(right) && IsNever(right.extends) ? Result.ExtendsFalse() : (() => {\n const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? ExtendsPropertyOptional(check.inferred, left, right)\n : Result.ExtendsFalse());\n })());\n}\nfunction ExtractInferredProperties(keys, properties) {\n return keys.reduce((result, key) => {\n return key in properties\n ? Result.IsExtendsTrueLike(properties[key])\n // @ts-ignore 5.0.4 cannot see `.inferred`\n ? { ...result, ...properties[key].inferred }\n : Unreachable() // result\n : Unreachable(); // result\n }, {});\n}\nfunction ExtendsPropertiesComparer(inferred, left, right) {\n const properties = {};\n for (const rightKey of Guard.Keys(right)) {\n properties[rightKey] = (rightKey in left\n // We don't consider the exterior Inferred as part of the property check as\n // we don't want the exterior Context to override the Inferred Context for\n // the Property Key. This override behavior is observed in the following\n // case we want the inferred A to shadow the exterior A.\n //\n // const A = Type.Script(`{ x: 1, y: 1 }`)\n // const S = Type.Script({ A }, `{\n // [K in keyof A]: A extends { \n // x: infer A, \n // y: infer B \n // } ? [A, B] <-- inferred 'A' shadows the exterior 'A'\n // : never\n // }`)\n ? ExtendsProperty({}, left[rightKey], right[rightKey])\n // If the right key K is not in left, but the right property is optional\n // then we say this property is permissable. This is because an optional\n // property on right is the same as property missing in left. If the\n // right is infer, then we just assign the extend type to inferred.\n : IsOptional(right[rightKey])\n ? IsInfer(right[rightKey])\n // @ts-ignore 5.0.1 - cannot observe extend in right[rightKey].extends\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [right[rightKey].name]: right[rightKey].extends }))\n : Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse());\n }\n // Check if all properties are ExtendsTrueLike\n const checked = Guard.Values(properties).every(result => Result.IsExtendsTrueLike(result));\n // Extract inferred results from properties, but only if the check is true.\n const extracted = checked ? ExtractInferredProperties(Guard.Keys(properties), properties) : {};\n return (checked\n ? Result.ExtendsTrue(extracted)\n : Result.ExtendsFalse());\n}\nfunction ExtendsProperties(inferred, left, right) {\n const compared = ExtendsPropertiesComparer(inferred, left, right);\n return (Result.IsExtendsTrueLike(compared)\n ? Result.ExtendsTrue(Memory.Assign(inferred, compared.inferred))\n : Result.ExtendsFalse());\n}\nfunction ExtendsObjectToObject(inferred, left, right) {\n return ExtendsProperties(inferred, left, right);\n}\nexport function ExtendsObject(inferred, left, right) {\n return (IsObject(right)\n ? ExtendsObjectToObject(inferred, left, right.properties)\n : ExtendsRight(inferred, Object(left), right));\n}\n",
122
+ "// deno-fmt-ignore-file\nimport { Promise, IsPromise } from '../types/promise.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsPromise(inferred, left, right) {\n return (IsPromise(right)\n ? ExtendsLeft(inferred, left, right.item)\n : ExtendsRight(inferred, Promise(left), right));\n}\n",
123
+ "// deno-fmt-ignore-file\nimport { IsString } from '../types/string.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsString(inferred, left, right) {\n return (IsString(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
124
+ "// deno-fmt-ignore-file\nimport { IsSymbol } from '../types/symbol.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsSymbol(inferred, left, right) {\n return (IsSymbol(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
125
+ "// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { TemplateLiteralDecode } from '../engine/template-literal/decode.mjs';\nexport function ExtendsTemplateLiteral(inferred, left, right) {\n const decoded = TemplateLiteralDecode(left);\n return ExtendsLeft(inferred, decoded, right);\n}\n",
126
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\n// ----------------------------------------------------------------------------\n// Schematics\n// ----------------------------------------------------------------------------\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { Tuple } from '../types/tuple.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { Union } from '../types/union.mjs';\n// ----------------------------------------------------------------------------\n// Operator\n// ----------------------------------------------------------------------------\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsRest } from '../types/rest.mjs';\nimport * as Result from './result.mjs';\n// ----------------------------------------------------------------------------\n// Factory\n// ----------------------------------------------------------------------------\nexport function Inferrable(name, type) {\n return Memory.Create({ '~kind': 'Inferrable' }, { name, type }, {});\n}\n// ----------------------------------------------------------------------------\n// Guard\n// ----------------------------------------------------------------------------\nexport function IsInferable(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'name')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value[\"~kind\"], 'Inferrable')\n && Guard.IsString(value.name)\n && Guard.IsObject(value.type);\n}\nexport function TryRestInferable(type) {\n return (IsRest(type)\n ? IsInfer(type.items)\n ? IsArray(type.items.extends) ? Inferrable(type.items.name, type.items.extends.items) :\n IsUnknown(type.items.extends) ? Inferrable(type.items.name, type.items.extends) :\n undefined\n : Unreachable() // undefined\n : undefined);\n}\nexport function TryInferable(type) {\n return (IsInfer(type) ? Inferrable(type.name, type.extends) :\n undefined);\n}\nfunction TryInferResults(rest, right, result = []) {\n const [head, ...tail] = rest;\n return (IsSchema(head)\n ? (() => {\n const check = ExtendsLeft({}, head, right);\n return Result.IsExtendsTrueLike(check)\n ? TryInferResults(tail, right, [...result, head])\n : undefined;\n })() : result);\n}\nexport function InferTupleResult(inferred, name, left, right) {\n const results = TryInferResults(left, right);\n return (Guard.IsArray(results)\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Tuple(results) }))\n : Result.ExtendsFalse());\n}\nexport function InferUnionResult(inferred, name, left, right) {\n const results = TryInferResults(left, right);\n return (Guard.IsArray(results)\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Union(results) }))\n : Result.ExtendsFalse());\n}\n",
127
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsTuple, Tuple } from '../types/tuple.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nimport { InstantiateElements } from '../engine/instantiate.mjs';\n// ----------------------------------------------------------------------------\n// Inference\n// ----------------------------------------------------------------------------\nimport { TryRestInferable, TryInferable, IsInferable, InferTupleResult, InferUnionResult } from './inference.mjs';\nfunction Reverse(types) {\n return [...types].reverse();\n}\nfunction ApplyReverse(types, reversed) {\n return (reversed ? Reverse(types) : types);\n}\nfunction Reversed(types) {\n const first = types.length > 0 ? types[0] : undefined;\n const inferrable = IsSchema(first) ? TryRestInferable(first) : undefined;\n return IsSchema(inferrable);\n}\nfunction ElementsCompare(inferred, reversed, left, leftRest, right, rightRest) {\n const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? Elements(check.inferred, reversed, leftRest, rightRest)\n : Result.ExtendsFalse() // 'left-and-right-not-compared'\n );\n}\nfunction ElementsLeft(inferred, reversed, leftRest, right, rightRest) {\n const inferable = TryRestInferable(right);\n return (IsInferable(inferable)\n ? InferTupleResult(inferred, inferable.name, ApplyReverse(leftRest, reversed), inferable.type)\n : (() => {\n const [head, ...tail] = leftRest;\n return IsSchema(head)\n ? ElementsCompare(inferred, reversed, head, tail, right, rightRest)\n : Result.ExtendsFalse();\n })());\n}\nfunction ElementsRight(inferred, reversed, leftRest, rightRest) {\n const [head, ...tail] = rightRest;\n return (IsSchema(head)\n ? ElementsLeft(inferred, reversed, leftRest, head, tail)\n : Guard.IsEqual(leftRest.length, 0)\n ? Result.ExtendsTrue(inferred) // 'Ok: right-empty-and-left-empty'\n : Result.ExtendsFalse() // 'Fail: right-empty-and-left-not-empty'\n );\n}\nfunction Elements(inferred, reversed, leftRest, rightRest) {\n return ElementsRight(inferred, reversed, leftRest, rightRest);\n}\nfunction ExtendsTupleToTuple(inferred, left, right) {\n const instantiatedRight = InstantiateElements(inferred, { callstack: [] }, right);\n const reversed = Reversed(instantiatedRight);\n return Elements(inferred, reversed, ApplyReverse(left, reversed), ApplyReverse(instantiatedRight, reversed));\n}\nfunction ExtendsTupleToArray(inferred, left, right) {\n const inferrable = TryInferable(right);\n return (IsInferable(inferrable)\n // @ts-ignore 4.9.5 fails to see `type` property on inferrable\n ? InferUnionResult(inferred, inferrable.name, left, inferrable.type)\n : (() => {\n const [head, ...tail] = left;\n return IsSchema(head)\n ? (() => {\n const check = ExtendsLeft(inferred, head, right);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsTupleToArray(check.inferred, tail, right)\n : Result.ExtendsFalse();\n })()\n : Result.ExtendsTrue(inferred);\n })());\n}\nexport function ExtendsTuple(inferred, left, right) {\n const instantiatedLeft = InstantiateElements(inferred, { callstack: [] }, left);\n return (IsTuple(right) ? ExtendsTupleToTuple(inferred, instantiatedLeft, right.items) :\n IsArray(right) ? ExtendsTupleToArray(inferred, instantiatedLeft, right.items) :\n ExtendsRight(inferred, Tuple(instantiatedLeft), right));\n}\n",
128
+ "// deno-fmt-ignore-file\nimport { IsUndefined } from '../types/undefined.mjs';\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsUndefined(inferred, left, right) {\n return (IsVoid(right) ? Result.ExtendsTrue(inferred) :\n IsUndefined(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, left, right));\n}\n",
129
+ "// deno-fmt-ignore-file\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport * as Result from './result.mjs';\n// ----------------------------------------------------------------------------\n// Inference\n// ----------------------------------------------------------------------------\nimport { IsInferable, TryInferable, InferUnionResult } from './inference.mjs';\nfunction ExtendsUnionSome(inferred, type, unionTypes) {\n const [head, ...tail] = unionTypes;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, type, head);\n return Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(check.inferred)\n : ExtendsUnionSome(inferred, type, tail);\n })() : Result.ExtendsFalse());\n}\nfunction ExtendsUnionLeft(inferred, left, right) {\n const [head, ...tail] = left;\n return (IsSchema(head) ? (() => {\n const check = ExtendsUnionSome(inferred, head, right);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsUnionLeft(check.inferred, tail, right)\n : Result.ExtendsFalse();\n })() : Result.ExtendsTrue(inferred));\n}\nexport function ExtendsUnion(inferred, left, right) {\n const inferrable = TryInferable(right);\n return (IsInferable(inferrable)\n // @ts-ignore 4.9.5 fails to see `type` property on inferrable\n ? InferUnionResult(inferred, inferrable.name, left, inferrable.type)\n : IsUnion(right)\n ? ExtendsUnionLeft(inferred, left, right.anyOf)\n : ExtendsUnionLeft(inferred, left, [right]));\n}\n",
130
+ "// deno-fmt-ignore-file\nimport { IsAny } from '../types/any.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsUnknown(inferred, left, right) {\n return (IsInfer(right) ? ExtendsRight(inferred, left, right) :\n IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsFalse());\n}\n",
131
+ "// deno-fmt-ignore-file\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsVoid(inferred, left, right) {\n return (IsVoid(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n",
132
+ "// deno-fmt-ignore-file\nimport { ExtendsAny } from './any.mjs';\nimport { ExtendsArray } from './array.mjs';\nimport { ExtendsAsyncIterator } from './async-iterator.mjs';\nimport { ExtendsBigInt } from './bigint.mjs';\nimport { ExtendsBoolean } from './boolean.mjs';\nimport { ExtendsConstructor } from './constructor.mjs';\nimport { ExtendsEnum } from './enum.mjs';\nimport { ExtendsFunction } from './function.mjs';\nimport { ExtendsInteger } from './integer.mjs';\nimport { ExtendsIntersect } from './intersect.mjs';\nimport { ExtendsIterator } from './iterator.mjs';\nimport { ExtendsLiteral } from './literal.mjs';\nimport { ExtendsNever } from './never.mjs';\nimport { ExtendsNull } from './null.mjs';\nimport { ExtendsNumber } from './number.mjs';\nimport { ExtendsObject } from './object.mjs';\nimport { ExtendsPromise } from './promise.mjs';\nimport { ExtendsString } from './string.mjs';\nimport { ExtendsSymbol } from './symbol.mjs';\nimport { ExtendsTemplateLiteral } from './template-literal.mjs';\nimport { ExtendsTuple } from './tuple.mjs';\nimport { ExtendsUndefined } from './undefined.mjs';\nimport { ExtendsUnion } from './union.mjs';\nimport { ExtendsUnknown } from './unknown.mjs';\nimport { ExtendsVoid } from './void.mjs';\n// ----------------------------------------------------------------------------\n// Types\n// ----------------------------------------------------------------------------\nimport { IsAny } from '../types/any.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsAsyncIterator } from '../types/async-iterator.mjs';\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { IsConstructor } from '../types/constructor.mjs';\nimport { IsEnum } from '../types/enum.mjs';\nimport { IsFunction } from '../types/function.mjs';\nimport { IsInteger } from '../types/integer.mjs';\nimport { IsIntersect } from '../types/intersect.mjs';\nimport { IsIterator } from '../types/iterator.mjs';\nimport { IsLiteral } from '../types/literal.mjs';\nimport { IsNever } from '../types/never.mjs';\nimport { IsNull } from '../types/null.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { IsObject } from '../types/object.mjs';\nimport { IsPromise } from '../types/promise.mjs';\nimport { IsString } from '../types/string.mjs';\nimport { IsSymbol } from '../types/symbol.mjs';\nimport { IsTemplateLiteral } from '../types/template-literal.mjs';\nimport { IsTuple } from '../types/tuple.mjs';\nimport { IsUndefined } from '../types/undefined.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { IsVoid } from '../types/void.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsLeft(inferred, left, right) {\n return (IsAny(left) ? ExtendsAny(inferred, left, right) :\n IsArray(left) ? ExtendsArray(inferred, left, left.items, right) :\n IsAsyncIterator(left) ? ExtendsAsyncIterator(inferred, left.iteratorItems, right) :\n IsBigInt(left) ? ExtendsBigInt(inferred, left, right) :\n IsBoolean(left) ? ExtendsBoolean(inferred, left, right) :\n IsConstructor(left) ? ExtendsConstructor(inferred, left.parameters, left.instanceType, right) :\n IsEnum(left) ? ExtendsEnum(inferred, left, right) :\n IsFunction(left) ? ExtendsFunction(inferred, left.parameters, left.returnType, right) :\n IsInteger(left) ? ExtendsInteger(inferred, left, right) :\n IsIntersect(left) ? ExtendsIntersect(inferred, left.allOf, right) :\n IsIterator(left) ? ExtendsIterator(inferred, left.iteratorItems, right) :\n IsLiteral(left) ? ExtendsLiteral(inferred, left, right) :\n IsNever(left) ? ExtendsNever(inferred, left, right) :\n IsNull(left) ? ExtendsNull(inferred, left, right) :\n IsNumber(left) ? ExtendsNumber(inferred, left, right) :\n IsObject(left) ? ExtendsObject(inferred, left.properties, right) :\n IsPromise(left) ? ExtendsPromise(inferred, left.item, right) :\n IsString(left) ? ExtendsString(inferred, left, right) :\n IsSymbol(left) ? ExtendsSymbol(inferred, left, right) :\n IsTemplateLiteral(left) ? ExtendsTemplateLiteral(inferred, left.pattern, right) :\n IsTuple(left) ? ExtendsTuple(inferred, left.items, right) :\n IsUndefined(left) ? ExtendsUndefined(inferred, left, right) :\n IsUnion(left) ? ExtendsUnion(inferred, left.anyOf, right) :\n IsUnknown(left) ? ExtendsUnknown(inferred, left, right) :\n IsVoid(left) ? ExtendsVoid(inferred, left, right) :\n Result.ExtendsFalse());\n}\n",
133
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Interface action. */\nexport function InterfaceDeferred(heritage, properties, options = {}) {\n return Deferred('Interface', [heritage, properties], options);\n}\n/** Returns true if this value is a deferred Interface action. */\nexport function IsInterfaceDeferred(value) {\n return IsSchema(value)\n && Guard.HasPropertyKey(value, 'action')\n && Guard.IsEqual(value.action, 'Interface');\n}\n/** Creates an Interface using the given heritage and properties. */\nexport function Interface(heritage, properties, options = {}) {\n return Instantiate({}, InterfaceDeferred(heritage, properties, options));\n}\n",
134
+ "// deno-fmt-ignore-file\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsAsyncIterator } from '../../types/async-iterator.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsIterator } from '../../types/iterator.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsPromise } from '../../types/promise.mjs';\nimport { PropertyValues } from '../../types/properties.mjs';\nimport { IsRecord, RecordValue } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsInterfaceDeferred } from '../../action/interface.mjs';\nfunction FromRef(stack, context, ref) {\n return (stack.includes(ref)\n ? true\n : FromType([...stack, ref], context, context[ref]));\n}\nfunction FromProperties(stack, context, properties) {\n const types = PropertyValues(properties);\n return FromTypes(stack, context, types);\n}\nfunction FromTypes(stack, context, types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? FromType(stack, context, left)\n ? true\n : FromTypes(stack, context, right)\n : false);\n}\nfunction FromType(stack, context, type) {\n return (IsRef(type) ? FromRef(stack, context, type.$ref) :\n IsArray(type) ? FromType(stack, context, type.items) :\n IsAsyncIterator(type) ? FromType(stack, context, type.iteratorItems) :\n IsConstructor(type) ? FromTypes(stack, context, [...type.parameters, type.instanceType]) :\n IsFunction(type) ? FromTypes(stack, context, [...type.parameters, type.returnType]) :\n IsInterfaceDeferred(type) ? FromProperties(stack, context, type.parameters[1]) :\n IsIntersect(type) ? FromTypes(stack, context, type.allOf) :\n IsIterator(type) ? FromType(stack, context, type.iteratorItems) :\n IsObject(type) ? FromProperties(stack, context, type.properties) :\n IsPromise(type) ? FromType(stack, context, type.item) :\n IsUnion(type) ? FromTypes(stack, context, type.anyOf) :\n IsTuple(type) ? FromTypes(stack, context, type.items) :\n IsRecord(type) ? FromType(stack, context, RecordValue(type)) :\n false);\n}\n/** Performs a cyclic check on the given type. Initial key stack can be empty, but faster if specified */\nexport function CyclicCheck(stack, context, type) {\n const result = FromType(stack, context, type);\n return result;\n}\n",
135
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { PropertyKeys } from '../../types/properties.mjs';\nimport { CyclicCheck } from './check.mjs';\nfunction ResolveCandidateKeys(context, keys) {\n return keys.reduce((result, left) => {\n return left in context\n ? CyclicCheck([left], context, context[left])\n ? [...result, left]\n : result\n : Unreachable();\n }, []);\n}\n/** Returns keys for context types that need to be transformed to TCyclic. */\nexport function CyclicCandidates(context) {\n const keys = PropertyKeys(context);\n const result = ResolveCandidateKeys(context, keys);\n return result;\n}\n",
136
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsAsyncIterator } from '../../types/async-iterator.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsIterator } from '../../types/iterator.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsPromise } from '../../types/promise.mjs';\nimport { PropertyValues } from '../../types/properties.mjs';\nimport { IsRecord, RecordValue } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsInterfaceDeferred } from '../../action/interface.mjs';\nfunction FromRef(context, ref, result) {\n return (result.includes(ref)\n ? result\n : ref in context\n ? FromType(context, context[ref], [...result, ref])\n : Unreachable());\n}\nfunction FromProperties(context, properties, result) {\n const types = PropertyValues(properties);\n return FromTypes(context, types, result);\n}\nfunction FromTypes(context, types, result) {\n return types.reduce((result, left) => {\n return FromType(context, left, result);\n }, result);\n}\nfunction FromType(context, type, result) {\n return (IsRef(type) ? FromRef(context, type.$ref, result) :\n IsArray(type) ? FromType(context, type.items, result) :\n IsAsyncIterator(type) ? FromType(context, type.iteratorItems, result) :\n IsConstructor(type) ? FromTypes(context, [...type.parameters, type.instanceType], result) :\n IsFunction(type) ? FromTypes(context, [...type.parameters, type.returnType], result) :\n IsInterfaceDeferred(type) ? FromProperties(context, type.parameters[1], result) :\n IsIntersect(type) ? FromTypes(context, type.allOf, result) :\n IsIterator(type) ? FromType(context, type.iteratorItems, result) :\n IsObject(type) ? FromProperties(context, type.properties, result) :\n IsPromise(type) ? FromType(context, type.item, result) :\n IsUnion(type) ? FromTypes(context, type.anyOf, result) :\n IsTuple(type) ? FromTypes(context, type.items, result) :\n IsRecord(type) ? FromType(context, RecordValue(type), result) :\n result);\n}\n/** Returns dependent cyclic keys for the given type. This function is used to dead-type-eliminate (DTE) for initializing TCyclic types. */\nexport function CyclicDependencies(context, key, type) {\n const result = FromType(context, type, [key]);\n return result;\n}\n",
137
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Any } from '../../types/any.mjs';\nimport { Array, IsArray, ArrayOptions } from '../../types/array.mjs';\nimport { AsyncIterator, IsAsyncIterator } from '../../types/async-iterator.mjs';\nimport { Constructor, IsConstructor } from '../../types/constructor.mjs';\nimport { Function as _Function, IsFunction } from '../../types/function.mjs';\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Iterator, IsIterator } from '../../types/iterator.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { Promise, IsPromise } from '../../types/promise.mjs';\nimport { IsRecord, Record, RecordKey, RecordValue } from '../../types/record.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { Tuple, IsTuple } from '../../types/tuple.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Unknown } from '../../types/unknown.mjs';\nfunction FromRef(_ref) {\n return Any();\n}\nfunction FromProperties(properties) {\n return Guard.Keys(properties).reduce((result, key) => {\n return { ...result, [key]: FromType(properties[key]) };\n }, {});\n}\nfunction FromTypes(types) {\n return types.reduce((result, left) => {\n return [...result, FromType(left)];\n }, []);\n}\nfunction FromType(type) {\n return (IsRef(type) ? FromRef(type.$ref) :\n IsArray(type) ? Array(FromType(type.items), ArrayOptions(type)) :\n IsAsyncIterator(type) ? AsyncIterator(FromType(type.iteratorItems)) :\n IsConstructor(type) ? Constructor(FromTypes(type.parameters), FromType(type.instanceType)) :\n IsFunction(type) ? _Function(FromTypes(type.parameters), FromType(type.returnType)) :\n IsIntersect(type) ? Intersect(FromTypes(type.allOf)) :\n IsIterator(type) ? Iterator(FromType(type.iteratorItems)) :\n IsObject(type) ? Object(FromProperties(type.properties)) :\n IsPromise(type) ? Promise(FromType(type.item)) :\n IsRecord(type) ? Record(RecordKey(type), FromType(RecordValue(type))) :\n IsUnion(type) ? Union(FromTypes(type.anyOf)) :\n IsTuple(type) ? Tuple(FromTypes(type.items)) :\n type);\n}\nfunction CyclicAnyFromParameters(defs, ref) {\n return (ref in defs\n ? FromType(defs[ref])\n : Unknown());\n}\n/** Transforms TCyclic TRef's into TAny's. This function is used prior to TExtends checks to enable cyclics to be structurally checked and terminated (with TAny) at first point of recursion, what would otherwise be a recursive TRef.*/\nexport function CyclicExtends(type) {\n return CyclicAnyFromParameters(type.$defs, type.$ref);\n}\n",
138
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { CyclicDependencies } from '../cyclic/dependencies.mjs';\nimport { IsInterfaceDeferred } from '../../action/index.mjs';\nimport { InstantiateProperties } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nfunction CyclicInterface(context, heritage, properties) {\n const instantiatedHeritage = InstantiateTypes(context, { callstack: [] }, heritage);\n const instantiatedProperties = InstantiateProperties({}, { callstack: [] }, properties);\n const evaluatedInterface = EvaluateIntersect([...instantiatedHeritage, Object(instantiatedProperties)]);\n return evaluatedInterface;\n}\nfunction CyclicDefinitions(context, dependencies) {\n const keys = Guard.Keys(context).filter(key => dependencies.includes(key));\n return keys.reduce((result, key) => {\n const type = context[key];\n const instantiatedType = IsInterfaceDeferred(type) ? CyclicInterface(context, type.parameters[0], type.parameters[1]) : type;\n return { ...result, [key]: instantiatedType };\n }, {});\n}\nexport function InstantiateCyclic(context, ref, type) {\n const dependencies = CyclicDependencies(context, ref, type);\n const definitions = CyclicDefinitions(context, dependencies);\n const result = Cyclic(definitions, ref);\n return result;\n}\n",
139
+ "// deno-fmt-ignore-file\nimport { Never } from '../../types/never.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nfunction Resolve(defs, ref) {\n return (ref in defs\n ? IsRef(defs[ref])\n // @ts-ignore 5.0.4 - does not see $ref\n ? Resolve(defs, defs[ref].$ref)\n : defs[ref]\n : Never());\n}\n/** Returns the target Type from the Defs or Never if target is non-resolvable */\nexport function CyclicTarget(defs, ref) {\n const result = Resolve(defs, ref);\n return result;\n}\n",
140
+ "// deno-fmt-ignore-file\nimport { IsCyclic } from '../types/cyclic.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { CyclicExtends } from '../engine/cyclic/index.mjs';\nfunction Normal(type) {\n return (IsCyclic(type)\n ? CyclicExtends(type)\n : type);\n}\n/** Performs a structural extends check on left and right types and yields inferred types on right if specified. */\nexport function Extends(inferred, left, right) {\n const normalLeft = Normal(left);\n const normalRight = Normal(right);\n return ExtendsLeft(inferred, normalLeft, normalRight);\n}\n",
141
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { IsInfer } from '../../types/infer.mjs';\nimport { IsCall } from '../../types/call.mjs';\n// ------------------------------------------------------------------\n// AssertArgument\n// ------------------------------------------------------------------\nfunction AssertArgumentExtends(name, type, extends_) {\n if (IsInfer(type) || IsCall(type) || ExtendsResult.IsExtendsTrueLike(Extends({}, type, extends_)))\n return;\n const cause = { parameter: name, extends: extends_, received: type };\n // @ts-ignore - no definition for { cause } options \n throw new Error('Generic argument does not satify constraint', { cause });\n}\nfunction BindArgument(context, state, name, extends_, type) {\n const instantiatedArgument = InstantiateType(context, state, type);\n AssertArgumentExtends(name, instantiatedArgument, extends_);\n return Memory.Assign(context, { [name]: instantiatedArgument });\n}\nfunction BindArguments(context, state, parameterLeft, parameterRight, arguments_) {\n const instantiatedExtends = InstantiateType(context, state, parameterLeft.extends);\n const instantiatedEquals = InstantiateType(context, state, parameterLeft.equals);\n const [left, ...right] = arguments_;\n return (IsSchema(left)\n ? BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, left), state, parameterRight, right)\n : BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, instantiatedEquals), state, parameterRight, []));\n}\nfunction BindParameters(context, state, parameters, arguments_) {\n const [left, ...right] = parameters;\n return (IsSchema(left)\n ? BindArguments(context, state, left, right, arguments_)\n : context);\n}\nexport function ResolveArgumentsContext(context, state, parameters, arguments_) {\n return BindParameters(context, state, parameters, arguments_);\n}\n",
142
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { CallConstruct } from '../../types/call.mjs';\nimport { Ref } from '../../types/ref.mjs';\nimport { IsGeneric } from '../../types/generic.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\n// ----------------------------------------------------------------------------\n// Call: Infrastructure\n// ----------------------------------------------------------------------------\nimport { ResolveTarget } from './resolve-target.mjs';\nimport { ResolveArgumentsContext } from './resolve-arguments.mjs';\nfunction Peek(callstack) {\n return (Guard.IsGreaterThan(callstack.length, 0) ? callstack[0] : '');\n}\nfunction DeferredCall(context, state, target, arguments_) {\n const instantiatedArguments = InstantiateTypes(context, state, arguments_);\n const deferredCall = CallConstruct(target, instantiatedArguments);\n return deferredCall;\n}\nfunction TailCall(context, state, name, arguments_) {\n const deferredCall = DeferredCall(context, state, Ref(name), arguments_);\n return deferredCall;\n}\nfunction HeadCall(context, state, name, parameters, expression, arguments_) {\n const instantiatedArguments = InstantiateTypes(context, state, arguments_);\n const argumentsContext = ResolveArgumentsContext(context, state, parameters, instantiatedArguments);\n const returnType = InstantiateType(argumentsContext, { callstack: [...state.callstack, name] }, expression);\n return InstantiateType(context, state, returnType);\n}\nexport function CallInstantiate(context, state, target, arguments_) {\n const [name, type] = ResolveTarget(context, target, arguments_);\n return (IsGeneric(type)\n ? Guard.IsEqual(Peek(state.callstack), name)\n ? TailCall(context, state, name, arguments_)\n : HeadCall(context, state, name, type.parameters, type.expression, arguments_)\n : DeferredCall(context, state, target, arguments_));\n}\n",
143
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { CallInstantiate } from '../engine/call/instantiate.mjs';\nexport function CallConstruct(target, arguments_) {\n return Memory.Create({ ['~kind']: 'Call' }, { target, arguments: arguments_ }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Call type. */\nexport function Call(target, arguments_) {\n return CallInstantiate({}, { callstack: [] }, target, arguments_);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given type is a TCall. */\nexport function IsCall(value) {\n return IsKind(value, 'Call');\n}\n",
144
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsPromise } from '../../types/promise.mjs';\nimport { AwaitedDeferred } from '../../action/awaited.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction AwaitedAction(type) {\n return (IsPromise(type)\n ? AwaitedAction(type.item)\n : type);\n}\nfunction AwaitedImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(AwaitedAction(instantiatedType), {}, options);\n}\nexport function AwaitedInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? AwaitedImmediate(context, state, type, options)\n : AwaitedDeferred(type, options));\n}\n",
145
+ "// deno-fmt-ignore-file\nexport function ApplyMapping(mapping, value) {\n return mapping(value);\n}\n",
146
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal } from '../../types/literal.mjs';\nimport { ApplyMapping } from './mapping.mjs';\nexport function FromLiteral(mapping, value) {\n return (Guard.IsString(value)\n ? Literal(ApplyMapping(mapping, value))\n : Literal(value));\n}\n",
147
+ "// deno-fmt-ignore-file\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(mapping, pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(mapping, decoded);\n return result;\n}\n",
148
+ "// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(mapping, types) {\n const result = types.map(type => FromType(mapping, type));\n return Union(result);\n}\n",
149
+ "// deno-fmt-ignore-file\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromLiteral } from './from-literal.mjs';\nimport { FromTemplateLiteral } from './from-template-literal.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(mapping, type) {\n return (IsLiteral(type) ? FromLiteral(mapping, type.const) :\n IsTemplateLiteral(type) ? FromTemplateLiteral(mapping, type.pattern) :\n IsUnion(type) ? FromUnion(mapping, type.anyOf) :\n type);\n}\n",
150
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Capitalize action. */\nexport function CapitalizeDeferred(type, options = {}) {\n return Deferred('Capitalize', [type], options);\n}\n/** Applies a Capitalize action to the given type. */\nexport function Capitalize(type, options = {}) {\n return Instantiate({}, CapitalizeDeferred(type, options));\n}\n",
151
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Lowercase action. */\nexport function LowercaseDeferred(type, options = {}) {\n return Deferred('Lowercase', [type], options);\n}\n/** Applies a Lowercase action to the given type. */\nexport function Lowercase(type, options = {}) {\n return Instantiate({}, LowercaseDeferred(type, options));\n}\n",
152
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Uncapitalize action. */\nexport function UncapitalizeDeferred(type, options = {}) {\n return Deferred('Uncapitalize', [type], options);\n}\n/** Applies a Uncapitalize action to the given type. */\nexport function Uncapitalize(type, options = {}) {\n return Instantiate({}, UncapitalizeDeferred(type, options));\n}\n",
153
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Uppercase action. */\nexport function UppercaseDeferred(type, options = {}) {\n return Deferred('Uppercase', [type], options);\n}\n/** Applies a Uppercase action to the given type. */\nexport function Uppercase(type, options = {}) {\n return Instantiate({}, UppercaseDeferred(type, options));\n}\n",
154
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { CapitalizeDeferred } from '../../action/capitalize.mjs';\nimport { LowercaseDeferred } from '../../action/lowercase.mjs';\nimport { UncapitalizeDeferred } from '../../action/uncapitalize.mjs';\nimport { UppercaseDeferred } from '../../action/uppercase.mjs';\nconst CapitalizeMapping = (input) => input[0].toUpperCase() + input.slice(1);\nconst LowercaseMapping = (input) => input.toLowerCase();\nconst UncapitalizeMapping = (input) => input[0].toLowerCase() + input.slice(1);\nconst UppercaseMapping = (input) => input.toUpperCase();\nfunction CapitalizeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(CapitalizeMapping, instantiatedType), {}, options);\n}\nexport function CapitalizeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? CapitalizeImmediate(context, state, type, options)\n : CapitalizeDeferred(type, options));\n}\nfunction LowercaseImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(LowercaseMapping, instantiatedType), {}, options);\n}\nexport function LowercaseInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? LowercaseImmediate(context, state, type, options)\n : LowercaseDeferred(type, options));\n}\nfunction UncapitalizeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(UncapitalizeMapping, instantiatedType), {}, options);\n}\nexport function UncapitalizeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? UncapitalizeImmediate(context, state, type, options)\n : UncapitalizeDeferred(type, options));\n}\nfunction UppercaseImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(UppercaseMapping, instantiatedType), {}, options);\n}\nexport function UppercaseInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? UppercaseImmediate(context, state, type, options)\n : UppercaseDeferred(type, options));\n}\n",
155
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Conditional action. */\nexport function ConditionalDeferred(left, right, true_, false_, options = {}) {\n return Deferred('Conditional', [left, right, true_, false_], options);\n}\n/** Applies a Conditional action to the given types. */\nexport function Conditional(left, right, true_, false_, options = {}) {\n return Instantiate({}, ConditionalDeferred(left, right, true_, false_, options));\n}\n",
156
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ConditionalDeferred } from '../../action/conditional.mjs';\nfunction ConditionalImmediate(context, state, left, right, true_, false_, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n const extendsResult = Extends(context, instantiatedLeft, instantiatedRight);\n return Memory.Update((ExtendsResult.IsExtendsUnion(extendsResult) ? Union([InstantiateType(extendsResult.inferred, state, true_), InstantiateType(context, state, false_)]) :\n ExtendsResult.IsExtendsTrue(extendsResult) ? InstantiateType(extendsResult.inferred, state, true_) :\n InstantiateType(context, state, false_)), {}, options);\n}\nexport function ConditionalInstantiate(context, state, left, right, true_, false_, options) {\n return (CanInstantiate(context, [left, right])\n ? ConditionalImmediate(context, state, left, right, true_, false_, options)\n : ConditionalDeferred(left, right, true_, false_, options));\n}\n",
157
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred ConstructorParameters action. */\nexport function ConstructorParametersDeferred(type, options = {}) {\n return Deferred('ConstructorParameters', [type], options);\n}\n/** Applies a ConstructorParameters action to a type. */\nexport function ConstructorParameters(type, options = {}) {\n return Instantiate({}, ConstructorParametersDeferred(type, options));\n}\n",
158
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { Tuple } from '../../types/tuple.mjs';\nimport { ConstructorParametersDeferred } from '../../action/constructor-parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ConstructorParametersAction(type) {\n return (IsConstructor(type)\n ? InstantiateType({}, { callstack: [] }, Tuple(type.parameters))\n : Never());\n}\nfunction ConstructorParametersImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ConstructorParametersAction(instantiatedType), {}, options);\n}\nexport function ConstructorParametersInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ConstructorParametersImmediate(context, state, type, options)\n : ConstructorParametersDeferred(type, options));\n}\n",
159
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Exclude action. */\nexport function ExcludeDeferred(left, right, options = {}) {\n return Deferred('Exclude', [left, right], options);\n}\n/** Applies a Exclude action using the given types */\nexport function Exclude(left, right, options = {}) {\n return Instantiate({}, ExcludeDeferred(left, right, options));\n}\n",
160
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { EvaluateUnion, Flatten } from '../evaluate/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExcludeDeferred } from '../../action/exclude.mjs';\nfunction ExcludeUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExcludeType(head, right)];\n }, []);\n}\nfunction ExcludeType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [] : [left];\n return result;\n}\nfunction ExcludeAction(left, right) {\n const remaining = (IsEnum(left) ? ExcludeUnion(EnumValuesToVariants(left.enum), right) :\n IsUnion(left) ? ExcludeUnion(Flatten(left.anyOf), right) :\n ExcludeType(left, right));\n const result = EvaluateUnion(remaining);\n return result;\n}\nfunction ExcludeImmediate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return Memory.Update(ExcludeAction(instantiatedLeft, instantiatedRight), {}, options);\n}\nexport function ExcludeInstantiate(context, state, left, right, options) {\n return (CanInstantiate(context, [left, right])\n ? ExcludeImmediate(context, state, left, right, options)\n : ExcludeDeferred(left, right, options));\n}\n",
161
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Extract action. */\nexport function ExtractDeferred(left, right, options = {}) {\n return Deferred('Extract', [left, right], options);\n}\n/** Applies an Extract action using the given types. */\nexport function Extract(left, right, options = {}) {\n return Instantiate({}, ExtractDeferred(left, right, options));\n}\n",
162
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { EvaluateUnion, Flatten } from '../evaluate/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExtractDeferred } from '../../action/extract.mjs';\nfunction ExtractUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExtractType(head, right)];\n }, []);\n}\nfunction ExtractType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [left] : [];\n return result;\n}\nfunction ExtractAction(left, right) {\n const remaining = (IsEnum(left) ? ExtractUnion(EnumValuesToVariants(left.enum), right) :\n IsUnion(left) ? ExtractUnion(Flatten(left.anyOf), right) :\n ExtractType(left, right));\n const result = EvaluateUnion(remaining);\n return result;\n}\nfunction ExtractImmediate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return Memory.Update(ExtractAction(instantiatedLeft, instantiatedRight), {}, options);\n}\nexport function ExtractInstantiate(context, state, left, right, options) {\n return (CanInstantiate(context, [left, right])\n ? ExtractImmediate(context, state, left, right, options)\n : ExtractDeferred(left, right, options));\n}\n",
163
+ "// deno-fmt-ignore-file\nconst integerKeyPattern = new RegExp('^(?:0|[1-9][0-9]*)$');\nexport function ConvertToIntegerKey(value) {\n const normal = `${value}`;\n return (integerKeyPattern.test(normal)\n ? parseInt(normal)\n : value);\n}\n",
164
+ "// deno-fmt-ignore-file\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { Number } from '../../types/number.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nfunction NormalizeLiteral(value) {\n return Literal(ConvertToIntegerKey(value));\n}\nfunction NormalizeIndexerTypes(types) {\n return types.map(type => NormalizeIndexer(type));\n}\nexport function NormalizeIndexer(type) {\n return (IsIntersect(type) ? Intersect(NormalizeIndexerTypes(type.allOf)) :\n IsUnion(type) ? Union(NormalizeIndexerTypes(type.anyOf)) :\n IsLiteral(type) ? NormalizeLiteral(type.const) :\n type);\n}\nexport function FromArray(type, indexer) {\n const normalizedIndexer = NormalizeIndexer(indexer);\n const check = Extends({}, normalizedIndexer, Number());\n const result = ExtendsResult.IsExtendsTrueLike(check) ? type : Never();\n return result;\n}\n",
165
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const result = FromType(target);\n return result;\n}\n",
166
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\n",
167
+ "// deno-fmt-ignore-file\nimport { EnumValuesToVariants } from '../enum/enum-to-union.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromEnum(values) {\n const variants = EnumValuesToVariants(values);\n const result = FromUnion(variants);\n return result;\n}\n",
168
+ "// deno-fmt-ignore-file\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(types) {\n const evaluated = EvaluateIntersect(types);\n const result = FromType(evaluated);\n return result;\n}\n",
169
+ "// deno-fmt-ignore-file\nexport function FromLiteral(value) {\n const result = [`${value}`];\n return result;\n}\n",
170
+ "// deno-fmt-ignore-file\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(decoded);\n return result;\n}\n",
171
+ "// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromEnum } from './from-enum.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromLiteral } from './from-literal.mjs';\nimport { FromTemplateLiteral } from './from-template-literal.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsEnum(type) ? FromEnum(type.enum) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n []);\n}\n",
172
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\n/**\n * Transforms a type meant as an Indexer into string[] array which is used by Indexable types\n * like Index, Pick and Omit to select from property keys. This function should only be used\n * for Object key selection, and not for Array / Tuple key selection as Array-Like structures\n * require TNumber indexing support.\n */\nexport function ToIndexableKeys(type) {\n const result = FromType(type);\n return result;\n}\n",
173
+ "// deno-fmt-ignore-file\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { ToIndexableKeys } from '../indexable/to-indexable-keys.mjs';\nfunction SelectProperty(properties, indexer) {\n const result = indexer in properties ? [properties[indexer]] : [];\n return result;\n}\nfunction SelectProperties(properties, indexer) {\n return indexer.reduce((result, left) => {\n return [...result, ...SelectProperty(properties, left)];\n }, []);\n}\nexport function FromObject(properties, indexer) {\n const keys = ToIndexableKeys(indexer);\n const variants = SelectProperties(properties, keys);\n const result = EvaluateUnion(variants);\n return result;\n}\n",
174
+ "// deno-fmt-ignore-file\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nfunction ConvertLiteral(value) {\n return Literal(ConvertToIntegerKey(value));\n}\nfunction ArrayIndexerTypes(types) {\n return types.map(type => FormatArrayIndexer(type));\n}\n/** Formats embedded integer-like strings on an Indexer to be number values inline with TS indexing | coercion behaviors. */\nexport function FormatArrayIndexer(type) {\n return (IsIntersect(type) ? Intersect(ArrayIndexerTypes(type.allOf)) :\n IsUnion(type) ? Union(ArrayIndexerTypes(type.anyOf)) :\n IsLiteral(type) ? ConvertLiteral(type.const) :\n type);\n}\n",
175
+ "// deno-fmt-ignore-file\nimport { Literal } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { FormatArrayIndexer } from './array-indexer.mjs';\nfunction IndexElementsWithIndexer(types, indexer) {\n return types.reduceRight((result, right, index) => {\n const check = Extends({}, Literal(index), indexer);\n return ExtendsResult.IsExtendsTrueLike(check)\n ? [right, ...result]\n : result;\n }, []);\n}\nfunction FromTupleWithIndexer(types, indexer) {\n const formattedArrayIndexer = FormatArrayIndexer(indexer);\n const elements = IndexElementsWithIndexer(types, formattedArrayIndexer);\n return EvaluateUnion(elements);\n}\nfunction FromTupleWithoutIndexer(types) {\n return EvaluateUnion(types);\n}\nexport function FromTuple(types, indexer) {\n return (IsNumber(indexer) || IsInteger(indexer)\n ? FromTupleWithoutIndexer(types)\n : FromTupleWithIndexer(types, indexer));\n}\n",
176
+ "// deno-fmt-ignore-file\nimport { Literal, IsLiteralValue } from '../../types/literal.mjs';\nimport { Union } from '../../types/union.mjs';\nfunction KeysToLiterals(keys) {\n return keys.reduce((result, left) => {\n return IsLiteralValue(left)\n ? [...result, Literal(left)]\n : result;\n }, []);\n}\nexport function KeysToIndexer(keys) {\n const literals = KeysToLiterals(keys);\n const result = Union(literals);\n return result;\n}\n",
177
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys-to-indexer.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Index action. */\nexport function IndexDeferred(type, indexer, options = {}) {\n return Deferred('Index', [type, indexer], options);\n}\n/** Applies a Index action using the given types. */\nexport function Index(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return Instantiate({}, IndexDeferred(type, indexer, options));\n}\n",
178
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const result = FromType(target);\n return result;\n}\n",
179
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nfunction CollapseIntersectProperties(left, right) {\n const leftKeys = Guard.Keys(left).filter((key) => !Guard.HasPropertyKey(right, key));\n const rightKeys = Guard.Keys(right).filter((key) => !Guard.HasPropertyKey(left, key));\n const sharedKeys = Guard.Keys(left).filter((key) => Guard.HasPropertyKey(right, key));\n const leftProperties = leftKeys.reduce((result, key) => ({ ...result, [key]: left[key] }), {});\n const rightProperties = rightKeys.reduce((result, key) => ({ ...result, [key]: right[key] }), {});\n const sharedProperties = sharedKeys.reduce((result, key) => ({ ...result, [key]: EvaluateIntersect([left[key], right[key]]) }), {});\n const unique = Memory.Assign(leftProperties, rightProperties);\n const shared = Memory.Assign(unique, sharedProperties);\n return shared;\n}\nexport function FromIntersect(types) {\n return types.reduce((result, left) => {\n return CollapseIntersectProperties(result, FromType(left));\n }, {});\n}\n",
180
+ "// deno-fmt-ignore-file\nexport function FromObject(properties) {\n return properties;\n}\n",
181
+ "// deno-fmt-ignore-file\nimport { Tuple } from '../../types/tuple.mjs';\nimport { TupleToObject } from '../tuple/to-object.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(types) {\n const object = TupleToObject(Tuple(types));\n const result = FromType(object);\n return result;\n}\n",
182
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { FromType } from './from-type.mjs';\nfunction CollapseUnionProperties(left, right) {\n const sharedKeys = Guard.Keys(left).filter((key) => key in right);\n const result = sharedKeys.reduce((result, key) => {\n return { ...result, [key]: EvaluateUnion([left[key], right[key]]) };\n }, {});\n return result;\n}\nfunction ReduceVariants(types, result) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? ReduceVariants(right, CollapseUnionProperties(result, FromType(left)))\n : result);\n}\nexport function FromUnion(types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? ReduceVariants(right, FromType(left))\n : Unreachable());\n}\n// deno-coverage-ignore-stop\n",
183
+ "// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsTuple(type) ? FromTuple(type.items) :\n IsObject(type) ? FromObject(type.properties) :\n {});\n}\n",
184
+ "// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nimport { FromType } from './from-type.mjs';\n/**\n * Collapses a type into a TObject schema. This is a lossy fast path used to\n * normalize arbitrary TSchema types into a TObject structure. This function is\n * primarily used in indexing operations where a normalized object structure\n * is required. If the type cannot be collapsed, an empty object schema is returned.\n */\nexport function CollapseToObject(type) {\n const properties = FromType(type);\n const result = Object(properties);\n return result;\n}\n",
185
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { IndexDeferred } from '../../action/indexed.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) || IsIntersect(type) || IsUnion(type) ? CollapseToObject(type) :\n type);\n return result;\n}\nfunction IndexAction(type, indexer) {\n const normal = NormalizeType(type);\n return (IsArray(normal) ? FromArray(normal.items, indexer) :\n IsObject(normal) ? FromObject(normal.properties, indexer) :\n IsTuple(normal) ? FromTuple(normal.items, indexer) :\n Never());\n}\nfunction IndexImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(IndexAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function IndexInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? IndexImmediate(context, state, type, indexer, options)\n : IndexDeferred(type, indexer, options));\n}\n",
186
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred InstanceType action. */\nexport function InstanceTypeDeferred(type, options = {}) {\n return Deferred('InstanceType', [type], options);\n}\n/** Applies a InstanceType action to the given type. */\nexport function InstanceType(type, options = {}) {\n return Instantiate({}, InstanceTypeDeferred(type, options));\n}\n",
187
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { InstanceTypeDeferred } from '../../action/instance-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction InstanceTypeAction(type) {\n return (IsConstructor(type)\n ? type.instanceType\n : Never());\n}\nexport function InstanceTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(InstanceTypeAction(instantiatedType), {}, options);\n}\nexport function InstanceTypeInstantiate(context, state, type, options = {}) {\n return (CanInstantiate(context, [type])\n ? InstanceTypeImmediate(context, state, type, options)\n : InstanceTypeDeferred(type, options));\n}\n",
188
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { InterfaceDeferred } from '../../action/index.mjs';\nimport { CanInstantiate } from '../instantiate.mjs';\nimport { InstantiateProperties } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\nfunction InterfaceImmediate(context, state, heritage, properties, options) {\n const instantiatedHeritage = InstantiateTypes(context, { callstack: [] }, heritage);\n const instantiatedProperties = InstantiateProperties(context, { callstack: [] }, properties);\n const evaluatedInterface = EvaluateIntersect([...instantiatedHeritage, Object(instantiatedProperties)]);\n return Memory.Update(evaluatedInterface, {}, options);\n}\nexport function InterfaceInstantiate(context, state, heritage, properties, options) {\n return (CanInstantiate(context, heritage)\n ? InterfaceImmediate(context, state, heritage, properties, options)\n : InterfaceDeferred(heritage, properties, options));\n}\n",
189
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred KeyOf action. */\nexport function KeyOfDeferred(type, options = {}) {\n return Deferred('KeyOf', [type], options);\n}\n/** Applies a KeyOf action to the given type. */\nexport function KeyOf(type, options = {}) {\n return Instantiate({}, KeyOfDeferred(type, options));\n}\n",
190
+ "// deno-fmt-ignore-file\nimport { Number } from '../../types/number.mjs';\nimport { String } from '../../types/string.mjs';\nimport { Symbol } from '../../types/symbol.mjs';\nimport { Union } from '../../types/union.mjs';\nexport function FromAny() {\n return Union([Number(), String(), Symbol()]);\n}\n",
191
+ "// deno-fmt-ignore-file\nimport { Number } from '../../types/number.mjs';\nexport function FromArray(_type) {\n return Number();\n}\n",
192
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal, IsLiteralValue } from '../../types/literal.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nfunction FromPropertyKeys(keys) {\n const result = keys.reduce((result, left) => {\n return IsLiteralValue(left)\n ? [...result, Literal(ConvertToIntegerKey(left))]\n : Unreachable();\n }, []);\n return result;\n}\nexport function FromObject(properties) {\n const propertyKeys = Guard.Keys(properties);\n const variants = FromPropertyKeys(propertyKeys);\n const result = EvaluateUnion(variants);\n return result;\n}\n",
193
+ "// deno-fmt-ignore-file\nimport { RecordKey } from '../../types/record.mjs';\nexport function FromRecord(type) {\n return RecordKey(type);\n}\n",
194
+ "// deno-fmt-ignore-file\nimport { Literal } from '../../types/literal.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nexport function FromTuple(types) {\n const result = types.map((_, index) => Literal(index));\n return EvaluateUnion(result);\n}\n",
195
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsAny } from '../../types/any.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsRecord } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { KeyOfDeferred } from '../../action/keyof.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\n// ------------------------------------------------------------------\n// Computed\n// ------------------------------------------------------------------\nimport { FromAny } from './from-any.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) || IsIntersect(type) || IsUnion(type) ? CollapseToObject(type) :\n type);\n return result;\n}\nexport function KeyOfAction(type) {\n const normal = NormalizeType(type);\n return (IsAny(normal) ? FromAny() :\n IsArray(normal) ? FromArray(normal.items) :\n IsObject(normal) ? FromObject(normal.properties) :\n IsRecord(normal) ? FromRecord(normal) :\n IsTuple(normal) ? FromTuple(normal.items) :\n Never());\n}\nexport function KeyOfImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(KeyOfAction(instantiatedType), {}, options);\n}\nexport function KeyOfInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? KeyOfImmediate(context, state, type, options)\n : KeyOfDeferred(type, options));\n}\n",
196
+ "// deno-fmt-ignore-file\nimport { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nfunction FromTemplateLiteral(pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(decoded);\n return result;\n}\nfunction FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\nfunction FromType(type) {\n const result = (IsEnum(type) ? FromUnion(EnumValuesToVariants(type.enum)) :\n IsLiteralString(type) || IsLiteralNumber(type) ? [type] :\n IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n []);\n return result;\n}\nexport function MappedKeys(type) {\n const result = FromType(type);\n return result;\n}\n",
197
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Mapped action. */\nexport function MappedDeferred(identifier, key, as, property, options = {}) {\n return Deferred('Mapped', [identifier, key, as, property], options);\n}\n/** Applies a Mapped action using the given types. */\nexport function Mapped(identifier, key, as, property, options = {}) {\n return Instantiate({}, MappedDeferred(identifier, key, as, property, options));\n}\n",
198
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { MappedKeys } from './mapped-keys.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { MappedDeferred } from '../../action/mapped.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction InstantiateKeyAs(context, state, identifier, key, as) {\n const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });\n const instantiatedKeyAs = InstantiateType(contextWithKey, state, as);\n const result = IsTemplateLiteral(instantiatedKeyAs) ? TemplateLiteralDecode(instantiatedKeyAs.pattern) : instantiatedKeyAs;\n return result;\n}\nfunction InstantiateProperty(context, state, identifier, key, property) {\n const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });\n const instantiatedProperty = InstantiateType(contextWithKey, state, property);\n return instantiatedProperty;\n}\nfunction MappedProperty(context, state, identifier, key, as, property) {\n const instantiatedProperty = InstantiateProperty(context, state, identifier, key, property);\n const instantiatedKeyAs = InstantiateKeyAs(context, state, identifier, key, as);\n return (IsLiteralString(instantiatedKeyAs) || IsLiteralNumber(instantiatedKeyAs)\n ? { [instantiatedKeyAs.const]: instantiatedProperty }\n : {});\n}\nfunction MappedProperties(context, state, identifier, keys, as, type) {\n return keys.reduce((result, left) => {\n return { ...result, ...MappedProperty(context, state, identifier, left, as, type) };\n }, {});\n}\nfunction MappedAction(context, state, identifier, key, as, type) {\n const keys = MappedKeys(key);\n const mapped = MappedProperties(context, state, identifier, keys, as, type);\n const result = Object(mapped);\n return result;\n}\nfunction MappedImmediate(context, state, identifier, key, as, property, options) {\n const instantiatedKey = InstantiateType(context, state, key);\n return Memory.Update(MappedAction(context, state, identifier, instantiatedKey, as, property), {}, options);\n}\nexport function MappedInstantiate(context, state, identifier, key, as, property, options) {\n return (CanInstantiate(context, [key])\n ? MappedImmediate(context, state, identifier, key, as, property, options)\n : MappedDeferred(identifier, key, as, property, options));\n}\n",
199
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Memory } from '../../../system/memory/index.mjs';\n// ------------------------------------------------------------------\n// Module: Instantiation Infrastructure\n// ------------------------------------------------------------------\nimport { CyclicCandidates } from '../cyclic/candidates.mjs';\nimport { InstantiateCyclic } from '../cyclic/instantiate.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction InstantiateCyclics(context, cyclicKeys) {\n const keys = Guard.Keys(context).filter(key => cyclicKeys.includes(key));\n return keys.reduce((result, key) => {\n return { ...result, [key]: InstantiateCyclic(context, key, context[key]) };\n }, {});\n}\nfunction InstantiateNonCyclics(context, cyclicKeys) {\n const keys = Guard.Keys(context).filter(key => !cyclicKeys.includes(key));\n return keys.reduce((result, key) => {\n return { ...result, [key]: InstantiateType(context, { callstack: [] }, context[key]) };\n }, {});\n}\nfunction InstantiateModule(context, options) {\n const cyclicCandidates = CyclicCandidates(context);\n const instantiatedCyclics = InstantiateCyclics(context, cyclicCandidates);\n const instantiatedNonCyclics = InstantiateNonCyclics(context, cyclicCandidates);\n const instantiatedModule = { ...instantiatedCyclics, ...instantiatedNonCyclics };\n return Memory.Update(instantiatedModule, {}, options);\n}\nexport function ModuleInstantiate(context, _state, properties, options) {\n const moduleContext = Memory.Assign(context, properties);\n const instantiatedModule = InstantiateModule(moduleContext, options);\n return instantiatedModule;\n}\n",
200
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred NonNullable action. */\nexport function NonNullableDeferred(type, options = {}) {\n return Deferred('NonNullable', [type], options);\n}\n/** Applies a NonNullable action to the given type. */\nexport function NonNullable(type, options = {}) {\n return Instantiate({}, NonNullableDeferred(type, options));\n}\n",
201
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Null } from '../../types/null.mjs';\nimport { Undefined } from '../../types/undefined.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { ExcludeInstantiate } from '../exclude/instantiate.mjs';\nimport { NonNullableDeferred } from '../../action/non-nullable.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction NonNullableAction(type) {\n const excluded = Union([Null(), Undefined()]);\n return ExcludeInstantiate({}, { callstack: [] }, type, excluded, {});\n}\nfunction NonNullableImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(NonNullableAction(instantiatedType), {}, options);\n}\nexport function NonNullableInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? NonNullableImmediate(context, state, type, options)\n : NonNullableDeferred(type, options));\n}\n",
202
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\n// deno-coverage-ignore-start - symmetric unreachable\n/** Transforms a type into a TProperties used for indexing operations */\nexport function ToIndexable(type) {\n const collapsed = CollapseToObject(type);\n const result = IsObject(collapsed)\n ? collapsed.properties\n : Unreachable();\n return result;\n}\n// deno-coverage-ignore-stop\n",
203
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys-to-indexer.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Omit action. */\nexport function OmitDeferred(type, indexer, options = {}) {\n return Deferred('Omit', [type, indexer], options);\n}\n/** Applies a Omit action using the given types. */\nexport function Omit(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return Instantiate({}, OmitDeferred(type, indexer, options));\n}\n",
204
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { ToIndexableKeys } from '../indexable/to-indexable-keys.mjs';\nimport { ToIndexable } from '../indexable/to-indexable.mjs';\nimport { OmitDeferred } from '../../action/omit.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction FromKeys(properties, keys) {\n const result = Guard.Keys(properties).reduce((result, key) => {\n return keys.includes(key) ? result : { ...result, [key]: properties[key] };\n }, {});\n return result;\n}\nfunction OmitAction(type, indexer) {\n const indexable = ToIndexable(type);\n const indexableKeys = ToIndexableKeys(indexer);\n const omitted = FromKeys(indexable, indexableKeys);\n const result = Object(omitted);\n return result;\n}\nfunction OmitImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(OmitAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function OmitInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? OmitImmediate(context, state, type, indexer, options)\n : OmitDeferred(type, indexer, options));\n}\n",
205
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Options action. */\nexport function OptionsDeferred(type, options) {\n return Deferred('Options', [type, options], {});\n}\n/** Applies an Options action to the given type. */\nexport function Options(type, options) {\n return Instantiate({}, OptionsDeferred(type, options));\n}\n",
206
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { CanInstantiate, InstantiateType } from '../instantiate.mjs';\nimport { OptionsDeferred } from '../../action/options.mjs';\nfunction OptionsImmediate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return Memory.Update(instaniatedType, {}, options);\n}\nexport function OptionsInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? OptionsImmediate(context, state, type, options)\n : OptionsDeferred(type, options));\n}\n",
207
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Parameters action. */\nexport function ParametersDeferred(type, options = {}) {\n return Deferred('Parameters', [type], options);\n}\n/** Applies a Parameters action to the given type. */\nexport function Parameters(type, options = {}) {\n return Instantiate({}, ParametersDeferred(type, options));\n}\n",
208
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { Tuple } from '../../types/tuple.mjs';\nimport { ParametersDeferred } from '../../action/parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ParametersAction(type) {\n return (IsFunction(type)\n ? InstantiateType({}, { callstack: [] }, Tuple(type.parameters)) // spread-rest\n : Never());\n}\nfunction ParametersImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ParametersAction(instantiatedType), {}, options);\n}\nexport function ParametersInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ParametersImmediate(context, state, type, options)\n : ParametersDeferred(type, options));\n}\n",
209
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Partial action. */\nexport function PartialDeferred(type, options = {}) {\n return Deferred('Partial', [type], options);\n}\n/** Applies a Partial action to the given type. */\nexport function Partial(type, options = {}) {\n return Instantiate({}, PartialDeferred(type, options));\n}\n",
210
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n",
211
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(result);\n}\n",
212
+ "// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n",
213
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { Optional } from '../../types/_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: Optional(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n",
214
+ "// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromUnion } from './from-union.mjs';\nimport { FromObject } from './from-object.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsObject(type) ? FromObject(type.properties) :\n Object({}));\n}\n",
215
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { PartialDeferred } from '../../action/partial.mjs';\nimport { FromType } from './from-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction PartialImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instantiatedType), {}, options);\n}\nexport function PartialInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? PartialImmediate(context, state, type, options)\n : PartialDeferred(type, options));\n}\n",
216
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys-to-indexer.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Pick action. */\nexport function PickDeferred(type, indexer, options = {}) {\n return Deferred('Pick', [type, indexer], options);\n}\n/** Applies a Pick action using the given types. */\nexport function Pick(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return Instantiate({}, PickDeferred(type, indexer, options));\n}\n",
217
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { ToIndexableKeys } from '../indexable/to-indexable-keys.mjs';\nimport { ToIndexable } from '../indexable/to-indexable.mjs';\nimport { PickDeferred } from '../../action/pick.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction FromKeys(properties, keys) {\n const result = Guard.Keys(properties).reduce((result, key) => {\n return keys.includes(key) ? Memory.Assign(result, { [key]: properties[key] }) : result;\n }, {});\n return result;\n}\nfunction PickAction(type, indexer) {\n const indexable = ToIndexable(type);\n const keys = ToIndexableKeys(indexer);\n const applied = FromKeys(indexable, keys);\n const result = Object(applied);\n return result;\n}\nfunction PickImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(PickAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function PickInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? PickImmediate(context, state, type, indexer, options)\n : PickDeferred(type, indexer, options));\n}\n",
218
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred ReadonlyType action. */\nexport function ReadonlyTypeDeferred(type, options = {}) {\n return Deferred('ReadonlyType', [type], options);\n}\n/** This type is an alias for the TypeScript `Readonly<T>` utility type. */\nexport function ReadonlyType(type, options = {}) {\n return Instantiate({}, ReadonlyTypeDeferred(type, options));\n}\n",
219
+ "// deno-fmt-ignore-file\nimport { Array } from '../../types/array.mjs';\nimport { Immutable } from '../../types/_immutable.mjs';\nexport function FromArray(type) {\n const result = Immutable(Array(type));\n return result;\n}\n",
220
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n",
221
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(result);\n}\n",
222
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { Readonly } from '../../types/_readonly.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: Readonly(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n",
223
+ "// deno-fmt-ignore-file\nimport { Tuple } from '../../types/tuple.mjs';\nimport { Immutable } from '../../types/_immutable.mjs';\nexport function FromTuple(types) {\n const result = Immutable(Tuple(types));\n return result;\n}\n",
224
+ "// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n",
225
+ "// deno-fmt-ignore-file\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(type) {\n return (IsArray(type) ? FromArray(type.items) :\n IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsObject(type) ? FromObject(type.properties) :\n IsTuple(type) ? FromTuple(type.items) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n type);\n}\n",
226
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { ReadonlyTypeDeferred } from '../../action/readonly-type.mjs';\nimport { FromType } from './from-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ReadonlyTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instantiatedType), {}, options);\n}\nexport function ReadonlyTypeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ReadonlyTypeImmediate(context, state, type, options)\n : ReadonlyTypeDeferred(type, options));\n}\n",
227
+ "// deno-fmt-ignore-file\nimport { StringKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromAnyKey(value) {\n return CreateRecord(StringKey, value);\n}\n",
228
+ "// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nexport function FromBooleanKey(value) {\n return Object({ true: value, false: value });\n}\n",
229
+ "// deno-fmt-ignore-file\nimport { EnumValuesToUnion } from '../enum/enum-to-union.mjs';\nimport { FromKey } from './from-key.mjs';\nexport function FromEnumKey(values, value) {\n const unionKey = EnumValuesToUnion(values);\n const result = FromKey(unionKey, value);\n return result;\n}\n",
230
+ "// deno-fmt-ignore-file\nimport { IntegerKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromIntegerKey(key, value) {\n const result = CreateRecord(IntegerKey, value);\n return result;\n}\n",
231
+ "// deno-fmt-ignore-file\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { FromKey } from './from-key.mjs';\nexport function FromIntersectKey(types, value) {\n const evaluatedKey = EvaluateIntersect(types);\n const result = FromKey(evaluatedKey, value);\n return result;\n}\n",
232
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nexport function FromLiteralKey(key, value) {\n return (Guard.IsString(key) || Guard.IsNumber(key) ? Object({ [key]: value }) :\n Guard.IsEqual(key, false) ? Object({ false: value }) :\n Guard.IsEqual(key, true) ? Object({ true: value }) :\n Object({}));\n}\n",
233
+ "// deno-fmt-ignore-file\nimport { NumberKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromNumberKey(key, value) {\n const result = CreateRecord(NumberKey, value);\n return result;\n}\n",
234
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { StringKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromStringKey(key, value) {\n // special case: override for string with raw pattern. We do not observe inference for the\n // raw string patterns, but as a pattern (assuming non-never) is in the set of string, we\n // allow overriding. Callers will need to narrow to the pattern manually. TB legacy.\n return (Guard.HasPropertyKey(key, 'pattern') && (Guard.IsString(key.pattern) || key.pattern instanceof RegExp)\n ? CreateRecord(key.pattern.toString(), value)\n : CreateRecord(StringKey, value));\n}\n",
235
+ "// deno-fmt-ignore-file\nimport { FromKey } from './from-key.mjs';\nimport { ParsePatternIntoTypes } from '../patterns/pattern.mjs';\nimport { TemplateLiteralFinite } from '../template-literal/finite.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromTemplateKey(pattern, value) {\n const types = ParsePatternIntoTypes(pattern);\n const finite = TemplateLiteralFinite(types);\n const result = finite ? FromKey(TemplateLiteralDecode(pattern), value) : CreateRecord(pattern, value);\n return result;\n}\n",
236
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { IsString } from '../../types/string.mjs';\nimport { StringKey } from '../../types/record.mjs';\nimport { Flatten } from '../evaluate/flatten.mjs';\nimport { CreateRecord } from './record-create.mjs';\nfunction StringOrNumberCheck(types) {\n return types.some(type => IsString(type) || IsNumber(type) || IsInteger(type));\n}\nfunction TryBuildRecord(types, value) {\n return (Guard.IsEqual(StringOrNumberCheck(types), true)\n ? CreateRecord(StringKey, value)\n : undefined);\n}\nfunction CreateProperties(types, value) {\n return types.reduce((result, left) => {\n return IsLiteral(left) && (Guard.IsString(left.const) || Guard.IsNumber(left.const))\n ? { ...result, [left.const]: value }\n : result;\n }, {});\n}\nfunction CreateObject(types, value) {\n const properties = CreateProperties(types, value);\n const result = Object(properties);\n return result;\n}\nexport function FromUnionKey(types, value) {\n const flattened = Flatten(types);\n const record = TryBuildRecord(flattened, value);\n return (IsSchema(record) // maybe IsRecord?\n ? record\n : CreateObject(flattened, value));\n}\n",
237
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsAny } from '../../types/any.mjs';\nimport { IsBoolean } from '../../types/boolean.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { IsString } from '../../types/string.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\n// ------------------------------------------------------------------\n// Keys and Deferred\n// ------------------------------------------------------------------\nimport { FromAnyKey } from './from-key-any.mjs';\nimport { FromBooleanKey } from './from-key-boolean.mjs';\nimport { FromEnumKey } from './from-key-enum.mjs';\nimport { FromIntegerKey } from './from-key-integer.mjs';\nimport { FromIntersectKey } from './from-key-intersect.mjs';\nimport { FromLiteralKey } from './from-key-literal.mjs';\nimport { FromNumberKey } from './from-key-number.mjs';\nimport { FromStringKey } from './from-key-string.mjs';\nimport { FromTemplateKey } from './from-key-template-literal.mjs';\nimport { FromUnionKey } from './from-key-union.mjs';\nexport function FromKey(key, value) {\n const result = (IsAny(key) ? FromAnyKey(value) :\n IsBoolean(key) ? FromBooleanKey(value) :\n IsEnum(key) ? FromEnumKey(key.enum, value) :\n IsInteger(key) ? FromIntegerKey(key, value) :\n IsIntersect(key) ? FromIntersectKey(key.allOf, value) :\n IsLiteral(key) ? FromLiteralKey(key.const, value) :\n IsNumber(key) ? FromNumberKey(key, value) :\n IsUnion(key) ? FromUnionKey(key.anyOf, value) :\n IsString(key) ? FromStringKey(key, value) :\n IsTemplateLiteral(key) ? FromTemplateKey(key.pattern, value) :\n Object({}));\n return result;\n}\n",
238
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { RecordDeferred } from '../../types/record.mjs';\nimport { FromKey } from './from-key.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction RecordImmediate(context, state, key, value, options) {\n const instanstiatedKey = InstantiateType(context, state, key);\n const instantiatedValue = InstantiateType(context, state, value);\n return Memory.Update(FromKey(instanstiatedKey, instantiatedValue), {}, options);\n}\nexport function RecordInstantiate(context, state, key, value, options) {\n return (CanInstantiate(context, [key])\n ? RecordImmediate(context, state, key, value, options)\n : RecordDeferred(key, value, options));\n}\n",
239
+ "// deno-fmt-ignore-file\nimport { Ref } from '../../types/ref.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { CyclicCheck } from '../cyclic/check.mjs';\nexport function RefInstantiate(context, state, ref) {\n return (ref in context\n ? CyclicCheck([ref], context, context[ref])\n ? Ref(ref)\n : InstantiateType(context, state, context[ref])\n : Ref(ref));\n}\n",
240
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n",
241
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(result);\n}\n",
242
+ "// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n",
243
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { OptionalRemove } from '../../types/_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: OptionalRemove(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n",
244
+ "// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromUnion } from './from-union.mjs';\nimport { FromObject } from './from-object.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsObject(type) ? FromObject(type.properties) :\n Object({}));\n}\n",
245
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Required action. */\nexport function RequiredDeferred(type, options = {}) {\n return Deferred('Required', [type], options);\n}\n/** Applies a Required action to the given type. */\nexport function Required(type, options = {}) {\n return Instantiate({}, RequiredDeferred(type, options));\n}\n",
246
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { RequiredDeferred } from '../../action/required.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction RequiredImmediate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instaniatedType), {}, options);\n}\nexport function RequiredInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? RequiredImmediate(context, state, type, options)\n : RequiredDeferred(type, options));\n}\n",
247
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred ReturnType action. */\nexport function ReturnTypeDeferred(type, options = {}) {\n return Deferred('ReturnType', [type], options);\n}\n/** Applies a ReturnType action to the given type. */\nexport function ReturnType(type, options = {}) {\n return Instantiate({}, ReturnTypeDeferred(type, options));\n}\n",
248
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { ReturnTypeDeferred } from '../../action/return-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ReturnTypeAction(type) {\n return (IsFunction(type) ? type.returnType : Never());\n}\nfunction ReturnTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ReturnTypeAction(instantiatedType), {}, options);\n}\nexport function ReturnTypeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ReturnTypeImmediate(context, state, type, options)\n : ReturnTypeDeferred(type, options));\n}\n",
249
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nexport function TemplateLiteralCreate(pattern) {\n return Memory.Create({ ['~kind']: 'TemplateLiteral' }, { type: 'string', pattern }, {});\n}\n",
250
+ "// deno-fmt-ignore-file\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsBigInt, BigIntPattern } from '../../types/bigint.mjs';\nimport { IsString, StringPattern } from '../../types/string.mjs';\nimport { IsNumber, NumberPattern } from '../../types/number.mjs';\nimport { IsInteger, IntegerPattern } from '../../types/integer.mjs';\nimport { IsBoolean } from '../../types/boolean.mjs';\nimport { NeverPattern } from '../../types/never.mjs';\nimport { TemplateLiteralCreate } from './create.mjs';\nimport { EnumValuesToVariants } from '../enum/enum-to-union.mjs';\nfunction JoinString(input) {\n return input.join('|');\n}\nfunction UnwrapTemplateLiteralPattern(pattern) {\n return pattern.slice(1, pattern.length - 1);\n}\nfunction EncodeLiteral(value, right, pattern) {\n return EncodeTypes(right, `${pattern}${value}`);\n}\nfunction EncodeBigInt(right, pattern) {\n return EncodeTypes(right, `${pattern}${BigIntPattern}`);\n}\nfunction EncodeInteger(right, pattern) {\n return EncodeTypes(right, `${pattern}${IntegerPattern}`);\n}\nfunction EncodeNumber(right, pattern) {\n return EncodeTypes(right, `${pattern}${NumberPattern}`);\n}\nfunction EncodeBoolean(right, pattern) {\n return EncodeType(Union([Literal('false'), Literal('true')]), right, pattern);\n}\nfunction EncodeString(right, pattern) {\n return EncodeTypes(right, `${pattern}${StringPattern}`);\n}\nfunction EncodeTemplateLiteral(templatePattern, right, pattern) {\n return EncodeTypes(right, `${pattern}${UnwrapTemplateLiteralPattern(templatePattern)}`);\n}\nfunction EncodeEnum(types, right, pattern, result = []) {\n const variants = EnumValuesToVariants(types);\n return EncodeUnion(variants, right, pattern);\n}\nfunction EncodeUnion(types, right, pattern, result = []) {\n const [head, ...tail] = types;\n return (IsSchema(head)\n ? EncodeUnion(tail, right, pattern, [...result, EncodeType(head, [], '')])\n : EncodeTypes(right, `${pattern}(${JoinString(result)})`));\n}\nfunction EncodeType(type, right, pattern) {\n return (IsEnum(type) ? EncodeEnum(type.enum, right, pattern) :\n IsInteger(type) ? EncodeInteger(right, pattern) :\n IsLiteral(type) ? EncodeLiteral(type.const, right, pattern) :\n IsBigInt(type) ? EncodeBigInt(right, pattern) :\n IsBoolean(type) ? EncodeBoolean(right, pattern) :\n IsNumber(type) ? EncodeNumber(right, pattern) :\n IsString(type) ? EncodeString(right, pattern) :\n IsTemplateLiteral(type) ? EncodeTemplateLiteral(type.pattern, right, pattern) :\n IsUnion(type) ? EncodeUnion(type.anyOf, right, pattern) :\n NeverPattern);\n}\nfunction EncodeTypes(types, pattern) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? EncodeType(left, right, pattern)\n : pattern);\n}\nfunction EncodePattern(types) {\n const encoded = EncodeTypes(types, '');\n const result = `^${encoded}$`;\n return result;\n}\n/** Encodes a TemplateLiteral type sequence into a TemplateLiteral */\nexport function TemplateLiteralEncode(types) {\n const pattern = EncodePattern(types);\n const result = TemplateLiteralCreate(pattern);\n return result;\n}\n",
251
+ "// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { TemplateLiteralDeferred } from '../../types/template-literal.mjs';\nimport { TemplateLiteralEncode } from './encode.mjs';\nimport { InstantiateTypes, CanInstantiate } from '../instantiate.mjs';\nfunction TemplateLiteralImmediate(context, state, types, options) {\n const instaniatedTypes = InstantiateTypes(context, state, types);\n return Memory.Update(TemplateLiteralEncode(instaniatedTypes), {}, options);\n}\nexport function TemplateLiteralInstantiate(context, state, types, options) {\n return (CanInstantiate(context, types)\n ? TemplateLiteralImmediate(context, state, types, options)\n : TemplateLiteralDeferred(types, options));\n}\n",
252
+ "// deno-fmt-ignore-file\nimport { IsInfer } from '../../types/infer.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsRest } from '../../types/rest.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nfunction SpreadElement(type) {\n const result = (IsRest(type) ? (IsTuple(type.items) ? RestSpread(type.items.items) :\n IsInfer(type.items) ? [type] :\n IsRef(type.items) ? [type] :\n [Never()]) : [type]);\n return result;\n}\nexport function RestSpread(types) {\n const result = types.reduce((result, left) => {\n return [...result, ...SpreadElement(left)];\n }, []);\n return result;\n}\n",
253
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Modifiers\n// ------------------------------------------------------------------\nimport { IsImmutable, Immutable } from '../types/_immutable.mjs';\nimport { IsOptional, OptionalAdd, OptionalRemove } from '../types/_optional.mjs';\nimport { IsReadonly, ReadonlyAdd, ReadonlyRemove } from '../types/_readonly.mjs';\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nimport { IsSchema } from '../types/schema.mjs';\nimport { Array, IsArray, ArrayOptions } from '../types/array.mjs';\nimport { AsyncIterator, IsAsyncIterator, AsyncIteratorOptions } from '../types/async-iterator.mjs';\nimport { IsBase } from '../types/base.mjs';\nimport { Constructor, IsConstructor, ConstructorOptions } from '../types/constructor.mjs';\nimport { Deferred, IsDeferred } from '../types/deferred.mjs';\nimport { Function as _Function, IsFunction, FunctionOptions } from '../types/function.mjs';\nimport { IsCall } from '../types/call.mjs';\nimport { Intersect, IsIntersect, IntersectOptions } from '../types/intersect.mjs';\nimport { Iterator, IsIterator, IteratorOptions } from '../types/iterator.mjs';\nimport { Object, IsObject, ObjectOptions } from '../types/object.mjs';\nimport { Promise, IsPromise, PromiseOptions } from '../types/promise.mjs';\nimport { RecordFromPattern, IsRecord, RecordPattern, RecordValue } from '../types/record.mjs';\nimport { Tuple, IsTuple, TupleOptions } from '../types/tuple.mjs';\nimport { Union, IsUnion, UnionOptions } from '../types/union.mjs';\nimport { IsRef } from '../types/ref.mjs';\nimport { Rest, IsRest } from '../types/rest.mjs';\n// ------------------------------------------------------------------\n// Modifier Actions\n// ------------------------------------------------------------------\nimport { IsReadonlyAddAction, IsReadonlyRemoveAction } from '../action/_readonly.mjs';\nimport { IsOptionalAddAction, IsOptionalRemoveAction } from '../action/_optional.mjs';\n// ------------------------------------------------------------------\n// Instantiate\n// ------------------------------------------------------------------\nimport { AwaitedInstantiate } from './awaited/instantiate.mjs';\nimport { CallInstantiate } from './call/instantiate.mjs';\nimport { CapitalizeInstantiate } from './intrinsics/instantiate.mjs';\nimport { ConditionalInstantiate } from './conditional/index.mjs';\nimport { ConstructorParametersInstantiate } from './constructor-parameters/instantiate.mjs';\nimport { EvaluateInstantiate } from './evaluate/instantiate.mjs';\nimport { ExcludeInstantiate } from './exclude/instantiate.mjs';\nimport { ExtractInstantiate } from './extract/instantiate.mjs';\nimport { IndexInstantiate } from './indexed/instantiate.mjs';\nimport { InstanceTypeInstantiate } from './instance-type/instantiate.mjs';\nimport { InterfaceInstantiate } from './interface/instantiate.mjs';\nimport { KeyOfInstantiate } from './keyof/instantiate.mjs';\nimport { LowercaseInstantiate } from './intrinsics/instantiate.mjs';\nimport { MappedInstantiate } from './mapped/instantiate.mjs';\nimport { ModuleInstantiate } from './module/instantiate.mjs';\nimport { NonNullableInstantiate } from './non-nullable/instantiate.mjs';\nimport { OmitInstantiate } from './omit/instantiate.mjs';\nimport { OptionsInstantiate } from './options/instantiate.mjs';\nimport { ParametersInstantiate } from './parameters/instantiate.mjs';\nimport { PartialInstantiate } from './partial/instantiate.mjs';\nimport { PickInstantiate } from './pick/instantiate.mjs';\nimport { ReadonlyTypeInstantiate } from './readonly-type/instantiate.mjs';\nimport { RecordInstantiate } from './record/instantiate.mjs';\nimport { RefInstantiate } from './ref/instantiate.mjs';\nimport { RequiredInstantiate } from './required/instantiate.mjs';\nimport { ReturnTypeInstantiate } from './return-type/instantiate.mjs';\nimport { TemplateLiteralInstantiate } from './template-literal/instantiate.mjs';\nimport { UncapitalizeInstantiate } from './intrinsics/instantiate.mjs';\nimport { UppercaseInstantiate } from './intrinsics/instantiate.mjs';\nimport { RestSpread } from './rest/index.mjs';\nfunction CanInstantiateRef(context, ref) {\n return (ref in context);\n}\nfunction CanInstantiateType(context, type) {\n return (IsIntersect(type) ? CanInstantiate(context, type.allOf) :\n IsUnion(type) ? CanInstantiate(context, type.anyOf) :\n IsRef(type) ? CanInstantiateRef(context, type.$ref) :\n true);\n}\nexport function CanInstantiate(context, types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? CanInstantiateType(context, left)\n ? CanInstantiate(context, right)\n : false\n : true);\n}\nfunction ModifierActions(type, readonly, optional) {\n return (IsReadonlyRemoveAction(type) ? ModifierActions(type.type, 'remove', optional) :\n IsOptionalRemoveAction(type) ? ModifierActions(type.type, readonly, 'remove') :\n IsReadonlyAddAction(type) ? ModifierActions(type.type, 'add', optional) :\n IsOptionalAddAction(type) ? ModifierActions(type.type, readonly, 'add') :\n [type, readonly, optional]);\n}\nfunction ApplyReadonly(action, type) {\n return (Guard.IsEqual(action, 'remove') ? ReadonlyRemove(type) :\n Guard.IsEqual(action, 'add') ? ReadonlyAdd(type) :\n type);\n}\nfunction ApplyOptional(action, type) {\n return (Guard.IsEqual(action, 'remove') ? OptionalRemove(type) :\n Guard.IsEqual(action, 'add') ? OptionalAdd(type) :\n type);\n}\nexport function InstantiateProperties(context, state, properties) {\n return Guard.Keys(properties).reduce((result, key) => {\n return { ...result, [key]: InstantiateType(context, state, properties[key]) };\n }, {});\n}\nexport function InstantiateElements(context, state, types) {\n const elements = InstantiateTypes(context, state, types);\n const result = RestSpread(elements);\n return result;\n}\nexport function InstantiateTypes(context, state, types) {\n return types.map(type => InstantiateType(context, state, type));\n}\nfunction InstantiateDeferred(context, state, action, parameters, options) {\n return (Guard.IsEqual(action, 'Awaited') ? AwaitedInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Capitalize') ? CapitalizeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Conditional') ? ConditionalInstantiate(context, state, parameters[0], parameters[1], parameters[2], parameters[3], options) :\n Guard.IsEqual(action, 'ConstructorParameters') ? ConstructorParametersInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Evaluate') ? EvaluateInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Exclude') ? ExcludeInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Extract') ? ExtractInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Index') ? IndexInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'InstanceType') ? InstanceTypeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Interface') ? InterfaceInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'KeyOf') ? KeyOfInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Lowercase') ? LowercaseInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Mapped') ? MappedInstantiate(context, state, parameters[0], parameters[1], parameters[2], parameters[3], options) :\n Guard.IsEqual(action, 'Module') ? ModuleInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'NonNullable') ? NonNullableInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Pick') ? PickInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Options') ? OptionsInstantiate(context, state, parameters[0], parameters[1]) :\n Guard.IsEqual(action, 'Parameters') ? ParametersInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Partial') ? PartialInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Omit') ? OmitInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'ReadonlyType') ? ReadonlyTypeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Record') ? RecordInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Required') ? RequiredInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'ReturnType') ? ReturnTypeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'TemplateLiteral') ? TemplateLiteralInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Uncapitalize') ? UncapitalizeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Uppercase') ? UppercaseInstantiate(context, state, parameters[0], options) :\n Deferred(action, parameters, options));\n}\nexport function InstantiateType(context, state, input) {\n const immutable = IsImmutable(input);\n const modifiers = ModifierActions(input, IsReadonly(input) ? 'add' : 'none', IsOptional(input) ? 'add' : 'none');\n const type = IsBase(modifiers[0]) ? modifiers[0].Clone() : modifiers[0];\n const instantiated = (IsRef(type) ? RefInstantiate(context, state, type.$ref) :\n IsArray(type) ? Array(InstantiateType(context, state, type.items), ArrayOptions(type)) :\n IsAsyncIterator(type) ? AsyncIterator(InstantiateType(context, state, type.iteratorItems), AsyncIteratorOptions(type)) :\n IsCall(type) ? CallInstantiate(context, state, type.target, type.arguments) :\n IsConstructor(type) ? Constructor(InstantiateTypes(context, state, type.parameters), InstantiateType(context, state, type.instanceType), ConstructorOptions(type)) :\n IsDeferred(type) ? InstantiateDeferred(context, state, type.action, type.parameters, type.options) :\n IsFunction(type) ? _Function(InstantiateTypes(context, state, type.parameters), InstantiateType(context, state, type.returnType), FunctionOptions(type)) :\n IsIntersect(type) ? Intersect(InstantiateTypes(context, state, type.allOf), IntersectOptions(type)) :\n IsIterator(type) ? Iterator(InstantiateType(context, state, type.iteratorItems), IteratorOptions(type)) :\n IsObject(type) ? Object(InstantiateProperties(context, state, type.properties), ObjectOptions(type)) :\n IsPromise(type) ? Promise(InstantiateType(context, state, type.item), PromiseOptions(type)) :\n IsRecord(type) ? RecordFromPattern(RecordPattern(type), InstantiateType(context, state, RecordValue(type))) :\n IsRest(type) ? Rest(InstantiateType(context, state, type.items)) :\n IsTuple(type) ? Tuple(InstantiateElements(context, state, type.items), TupleOptions(type)) :\n IsUnion(type) ? Union(InstantiateTypes(context, state, type.anyOf), UnionOptions(type)) :\n type);\n const withImmutable = immutable ? Immutable(instantiated) : instantiated;\n const withModifiers = ApplyReadonly(modifiers[1], ApplyOptional(modifiers[2], withImmutable));\n return withModifiers;\n}\n/** Instantiates computed schematics using the given context and type. */\nexport function Instantiate(context, type) {\n return InstantiateType(context, { callstack: [] }, type);\n}\n",
254
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Awaited action. */\nexport function AwaitedDeferred(type, options = {}) {\n return Deferred('Awaited', [type], options);\n}\n/** Applies an Awaited action to a type. */\nexport function Awaited(type, options = {}) {\n return Instantiate({}, AwaitedDeferred(type, options));\n}\n",
255
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Evaluate action. */\nexport function EvaluateDeferred(type, options = {}) {\n return Deferred('Evaluate', [type], options);\n}\n/** Applies an Evaluate action to a type. */\nexport function Evaluate(type, options = {}) {\n return Instantiate({}, EvaluateDeferred(type, options));\n}\n",
256
+ "// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Module action. */\nexport function ModuleDeferred(context, options = {}) {\n return Deferred('Module', [context], options);\n}\n/** Applies a Module transformation action to the embedded property types. */\nexport function Module(context, options = {}) {\n return Instantiate({}, ModuleDeferred(context, options));\n}\n",
257
+ "// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { InstantiateType } from '../engine/instantiate.mjs';\nimport { Never } from '../types/index.mjs';\nimport * as Parser from './parser.mjs';\n/** Parses a type from a TypeScript type expression */\nexport function Script(...args) {\n const [context, input, options] = Arguments.Match(args, {\n 2: (script, options) => Guard.IsString(script) ? [{}, script, options] : [script, options, {}],\n 3: (context, script, options) => [context, script, options],\n 1: (script) => [{}, script, {}],\n });\n const result = Parser.Script(input);\n const parsed = Guard.IsArray(result) && Guard.IsEqual(result.length, 2)\n ? InstantiateType(context, { callstack: [] }, result[0])\n : Never();\n return Memory.Update(parsed, {}, options);\n}\n",
258
+ "// ------------------------------------------------------------------\n// Standard\n// ------------------------------------------------------------------\nexport * from './type/action/index.mjs';\nexport * from './type/engine/index.mjs';\nexport * from './type/extends/index.mjs';\nexport * from './type/script/index.mjs';\nexport * from './type/types/index.mjs';\n// ------------------------------------------------------------------\n// TypeBox\n// ------------------------------------------------------------------\nexport * as Type from './typebox.mjs';\nimport * as Type from './typebox.mjs';\nexport default Type;\n",
259
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsGuardInterface(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, 'check')\n && Guard.HasPropertyKey(value, 'errors')\n && Guard.IsFunction(value.check)\n && Guard.IsFunction(value.errors);\n}\nexport function IsGuard(value) {\n return Guard.HasPropertyKey(value, '~guard')\n && IsGuardInterface(value['~guard']);\n}\n",
260
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains an '~refine` keyword\n * @specification None\n */\nexport function IsRefine(value) {\n return Guard.HasPropertyKey(value, '~refine')\n && Guard.IsArray(value[\"~refine\"])\n && Guard.Every(value['~refine'], 0, value => Guard.IsObject(value)\n && Guard.HasPropertyKey(value, 'refine')\n && Guard.HasPropertyKey(value, 'message')\n && Guard.IsFunction(value.refine)\n && Guard.IsString(value.message));\n}\n",
261
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n/** Returns true if this value is object like */\nexport function IsSchemaObject(value) {\n return Guard.IsObject(value) && !Guard.IsArray(value);\n}\n/** Returns true if this value is a boolean */\nexport function IsBooleanSchema(value) {\n return Guard.IsBoolean(value);\n}\n/** Returns true if this value is schema like */\nexport function IsSchema(value) {\n return IsSchemaObject(value) || IsBooleanSchema(value);\n}\n",
262
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalItems property\n * @specification Json Schema 7\n */\nexport function IsAdditionalItems(schema) {\n return Guard.HasPropertyKey(schema, 'additionalItems')\n && IsSchema(schema.additionalItems);\n}\n",
263
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalProperties property\n * @specification Json Schema 7\n */\nexport function IsAdditionalProperties(schema) {\n return Guard.HasPropertyKey(schema, 'additionalProperties')\n && IsSchema(schema.additionalProperties);\n}\n",
264
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid allOf property\n * @specification Json Schema 7\n */\nexport function IsAllOf(schema) {\n return Guard.HasPropertyKey(schema, 'allOf')\n && Guard.IsArray(schema.allOf)\n && schema.allOf.every(value => IsSchema(value));\n}\n",
265
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $anchor property\n */\nexport function IsAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$anchor')\n && Guard.IsString(schema.$anchor);\n}\n",
266
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid anyOf property\n * @specification Json Schema 7\n */\nexport function IsAnyOf(schema) {\n return Guard.HasPropertyKey(schema, 'anyOf')\n && Guard.IsArray(schema.anyOf)\n && schema.anyOf.every(value => IsSchema(value));\n}\n",
267
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid const property\n * @specification Json Schema 7\n */\nexport function IsConst(value) {\n return Guard.HasPropertyKey(value, 'const');\n}\n",
268
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contains property\n * @specification Json Schema 7\n */\nexport function IsContains(schema) {\n return Guard.HasPropertyKey(schema, 'contains')\n && IsSchema(schema.contains);\n}\n",
269
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contentMediaType property\n * @specification Json Schema 7\n */\nexport function IsDefault(schema) {\n return Guard.HasPropertyKey(schema, 'default');\n}\n",
270
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependencies property\n * @specification Json Schema 7\n */\nexport function IsDependencies(schema) {\n return Guard.HasPropertyKey(schema, 'dependencies')\n && Guard.IsObject(schema.dependencies)\n && Object.values(schema.dependencies).every(value => IsSchema(value)\n || Guard.IsArray(value) && value.every(value => Guard.IsString(value)));\n}\n",
271
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentRequired(schema) {\n return Guard.HasPropertyKey(schema, 'dependentRequired')\n && Guard.IsObject(schema.dependentRequired)\n && Object.values(schema.dependentRequired).every(value => Guard.IsArray(value)\n && value.every(value => Guard.IsString(value)));\n}\n",
272
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentSchemas(schema) {\n return Guard.HasPropertyKey(schema, 'dependentSchemas')\n && Guard.IsObject(schema.dependentSchemas)\n && Object.values(schema.dependentSchemas).every(value => IsSchema(value));\n}\n",
273
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $dynamicAnchor property\n */\nexport function IsDynamicAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$dynamicAnchor')\n && Guard.IsString(schema.$dynamicAnchor);\n}\n",
274
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid else property\n * @specification Json Schema 7\n */\nexport function IsElse(schema) {\n return Guard.HasPropertyKey(schema, 'else')\n && IsSchema(schema.else);\n}\n",
275
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid enum property\n * @specification Json Schema 7\n */\nexport function IsEnum(schema) {\n return Guard.HasPropertyKey(schema, 'enum')\n && Guard.IsArray(schema.enum);\n}\n",
276
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMaximum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMaximum')\n && (Guard.IsNumber(schema.exclusiveMaximum) || Guard.IsBigInt(schema.exclusiveMaximum));\n}\n",
277
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMinimum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMinimum')\n && (Guard.IsNumber(schema.exclusiveMinimum) || Guard.IsBigInt(schema.exclusiveMinimum));\n}\n",
278
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid format property\n * @specification Json Schema 7\n */\nexport function IsFormat(schema) {\n return Guard.HasPropertyKey(schema, 'format')\n && Guard.IsString(schema.format);\n}\n",
279
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsId(schema) {\n return Guard.HasPropertyKey(schema, '$id')\n && Guard.IsString(schema.$id);\n}\n",
280
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsIf(schema) {\n return Guard.HasPropertyKey(schema, 'if')\n && IsSchema(schema.if);\n}\n",
281
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid items property\n * @specification Json Schema 7\n */\nexport function IsItems(schema) {\n return Guard.HasPropertyKey(schema, 'items')\n && (IsSchema(schema.items)\n || (Guard.IsArray(schema.items)\n && schema.items.every(value => {\n return IsSchema(value);\n })));\n}\n/** Returns true if this schema is a sized items variant */\nexport function IsItemsSized(schema) {\n return IsItems(schema) && Guard.IsArray(schema.items);\n}\n/** Returns true if this schema is a unsized items variant */\nexport function IsItemsUnsized(schema) {\n return IsItems(schema) && !Guard.IsArray(schema.items);\n}\n",
282
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maximum property\n * @specification Json Schema 7\n */\nexport function IsMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'maximum')\n && (Guard.IsNumber(schema.maximum) || Guard.IsBigInt(schema.maximum));\n}\n",
283
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMaxContains(schema) {\n return Guard.HasPropertyKey(schema, 'maxContains')\n && Guard.IsNumber(schema.maxContains);\n}\n",
284
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxItems property\n * @specification Json Schema 7\n */\nexport function IsMaxItems(schema) {\n return Guard.HasPropertyKey(schema, 'maxItems')\n && Guard.IsNumber(schema.maxItems);\n}\n",
285
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxLength property\n * @specification Json Schema 7\n */\nexport function IsMaxLength(schema) {\n return Guard.HasPropertyKey(schema, 'maxLength')\n && Guard.IsNumber(schema.maxLength);\n}\n",
286
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxProperties property\n * @specification Json Schema 7\n */\nexport function IsMaxProperties(schema) {\n return Guard.HasPropertyKey(schema, 'maxProperties')\n && Guard.IsNumber(schema.maxProperties);\n}\n",
287
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minimum property\n * @specification Json Schema 7\n */\nexport function IsMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'minimum')\n && (Guard.IsNumber(schema.minimum) || Guard.IsBigInt(schema.minimum));\n}\n",
288
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMinContains(schema) {\n return Guard.HasPropertyKey(schema, 'minContains')\n && Guard.IsNumber(schema.minContains);\n}\n",
289
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minItems property\n * @specification Json Schema 7\n */\nexport function IsMinItems(schema) {\n return Guard.HasPropertyKey(schema, 'minItems')\n && Guard.IsNumber(schema.minItems);\n}\n",
290
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minLength property\n * @specification Json Schema 7\n */\nexport function IsMinLength(schema) {\n return Guard.HasPropertyKey(schema, 'minLength')\n && Guard.IsNumber(schema.minLength);\n}\n",
291
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minProperties property\n * @specification Json Schema 7\n */\nexport function IsMinProperties(schema) {\n return Guard.HasPropertyKey(schema, 'minProperties')\n && Guard.IsNumber(schema.minProperties);\n}\n",
292
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid multipleOf property\n * @specification Json Schema 7\n */\nexport function IsMultipleOf(schema) {\n return Guard.HasPropertyKey(schema, 'multipleOf')\n && (Guard.IsNumber(schema.multipleOf) || Guard.IsBigInt(schema.multipleOf));\n}\n",
293
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid not property\n * @specification Json Schema 7\n */\nexport function IsNot(schema) {\n return Guard.HasPropertyKey(schema, 'not')\n && IsSchema(schema.not);\n}\n",
294
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid oneOf property\n * @specification Json Schema 7\n */\nexport function IsOneOf(schema) {\n return Guard.HasPropertyKey(schema, 'oneOf')\n && Guard.IsArray(schema.oneOf)\n && schema.oneOf.every(value => IsSchema(value));\n}\n",
295
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid pattern property\n * @specification Json Schema 7\n */\nexport function IsPattern(schema) {\n return Guard.HasPropertyKey(schema, 'pattern')\n && (Guard.IsString(schema.pattern)\n || schema.pattern instanceof RegExp);\n}\n",
296
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid patternProperties property\n * @specification Json Schema 7\n */\nexport function IsPatternProperties(schema) {\n return Guard.HasPropertyKey(schema, 'patternProperties')\n && Guard.IsObject(schema.patternProperties)\n && Object.values(schema.patternProperties).every(value => IsSchema(value));\n}\n",
297
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid prefixItems property\n */\nexport function IsPrefixItems(schema) {\n return Guard.HasPropertyKey(schema, 'prefixItems')\n && Guard.IsArray(schema.prefixItems)\n && schema.prefixItems.every(schema => IsSchema(schema));\n}\n",
298
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid properties property\n * @specification Json Schema 7\n */\nexport function IsProperties(schema) {\n return Guard.HasPropertyKey(schema, 'properties')\n && Guard.IsObject(schema.properties)\n && Object.values(schema.properties).every(value => IsSchema(value));\n}\n",
299
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid propertyNames property\n * @specification Json Schema 7\n */\nexport function IsPropertyNames(schema) {\n return Guard.HasPropertyKey(schema, 'propertyNames')\n && (Guard.IsObject(schema.propertyNames)\n || IsSchema(schema.propertyNames));\n}\n",
300
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property\n */\nexport function IsRecursiveAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveAnchor')\n && Guard.IsBoolean(schema.$recursiveAnchor);\n}\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property that is true\n */\nexport function IsRecursiveAnchorTrue(schema) {\n return IsRecursiveAnchor(schema)\n && Guard.IsEqual(schema.$recursiveAnchor, true);\n}\n",
301
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveRef property\n */\nexport function IsRecursiveRef(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveRef')\n && Guard.IsString(schema.$recursiveRef);\n}\n",
302
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $ref property\n * @specification Json Schema 7\n */\nexport function IsRef(schema) {\n return Guard.HasPropertyKey(schema, '$ref')\n && Guard.IsString(schema.$ref);\n}\n",
303
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid required property\n * @specification Json Schema 7\n */\nexport function IsRequired(schema) {\n return Guard.HasPropertyKey(schema, 'required')\n && Guard.IsArray(schema.required)\n && schema.required.every(value => Guard.IsString(value));\n}\n",
304
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid then property\n * @specification Json Schema 7\n */\nexport function IsThen(schema) {\n return Guard.HasPropertyKey(schema, 'then')\n && IsSchema(schema.then);\n}\n",
305
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid type property\n * @specification Json Schema 7\n */\nexport function IsType(schema) {\n return Guard.HasPropertyKey(schema, 'type')\n && (Guard.IsString(schema.type)\n || (Guard.IsArray(schema.type)\n && schema.type.every(value => Guard.IsString(value))));\n}\n",
306
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid uniqueItems property\n * @specification Json Schema 7\n */\nexport function IsUniqueItems(schema) {\n return Guard.HasPropertyKey(schema, 'uniqueItems')\n && Guard.IsBoolean(schema.uniqueItems);\n}\n",
307
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedItems property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedItems(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedItems')\n && IsSchema(schema.unevaluatedItems);\n}\n",
308
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedProperties property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedProperties(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedProperties')\n && IsSchema(schema.unevaluatedProperties);\n}\n",
309
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// HasUnevaluated\n// ------------------------------------------------------------------\nfunction HasUnevaluatedFromObject(value) {\n return (Schema.IsUnevaluatedItems(value)\n || Schema.IsUnevaluatedProperties(value)\n || G.Keys(value).some(key => HasUnevaluatedFromUnknown(value[key])));\n}\nfunction HasUnevaluatedFromArray(value) {\n return value.some(value => HasUnevaluatedFromUnknown(value));\n}\nfunction HasUnevaluatedFromUnknown(value) {\n return (G.IsArray(value) ? HasUnevaluatedFromArray(value) :\n G.IsObject(value) ? HasUnevaluatedFromObject(value) :\n false);\n}\nexport function HasUnevaluated(context, schema) {\n return HasUnevaluatedFromUnknown(schema) || G.Keys(context).some(key => HasUnevaluatedFromUnknown(context[key]));\n}\n// ------------------------------------------------------------------\n// BuildContext\n// ------------------------------------------------------------------\nexport class BuildContext {\n constructor(hasUnevaluated) {\n this.hasUnevaluated = hasUnevaluated;\n }\n UseUnevaluated() {\n return this.hasUnevaluated;\n }\n AddIndex(index) {\n return E.Call(E.Member('context', 'AddIndex'), [index]);\n }\n AddKey(key) {\n return E.Call(E.Member('context', 'AddKey'), [key]);\n }\n Merge(results) {\n return E.Call(E.Member('context', 'Merge'), [results]);\n }\n}\n// ------------------------------------------------------------------\n// CheckContext\n// ------------------------------------------------------------------\nexport class CheckContext {\n constructor() {\n this.indices = new Set();\n this.keys = new Set();\n }\n AddIndex(index) {\n this.indices.add(index);\n return true;\n }\n AddKey(key) {\n this.keys.add(key);\n return true;\n }\n GetIndices() {\n return this.indices;\n }\n GetKeys() {\n return this.keys;\n }\n Merge(results) {\n for (const context of results) {\n context.indices.forEach(value => this.indices.add(value));\n context.keys.forEach(value => this.keys.add(value));\n }\n return true;\n }\n}\nexport class ErrorContext extends CheckContext {\n constructor(callback) {\n super();\n this.callback = callback;\n }\n AddError(error) {\n this.callback(error);\n return false;\n }\n}\n// ------------------------------------------------------------------\n// AccumulatedErrorContext\n// ------------------------------------------------------------------\nexport class AccumulatedErrorContext extends ErrorContext {\n constructor() {\n super(error => this.errors.push(error));\n this.errors = [];\n }\n AddError(error) {\n this.errors.push(error);\n return false;\n }\n GetErrors() {\n return this.errors;\n }\n}\n",
310
+ "// deno-fmt-ignore-file\nconst identifier = 'external_';\nlet resetCount = 0;\nconst state = {\n identifier: `${identifier}${resetCount}`,\n variables: []\n};\n// ------------------------------------------------------------------\n// ResetExternals\n//\n// Each reset results in a new external group identifier. This is done \n// to prevent variable name overlap when generating and evaluating\n// multiple types in the same scope.\n//\n// ------------------------------------------------------------------\nexport function ResetExternal() {\n state.identifier = `${identifier}${resetCount}`;\n state.variables = [];\n resetCount += 1;\n}\n// ------------------------------------------------------------------\n// CreateVariable\n// ------------------------------------------------------------------\nexport function CreateVariable(value) {\n const call = `${state.identifier}[${state.variables.length}]`;\n state.variables.push(value);\n return call;\n}\n// ------------------------------------------------------------------\n// GetExternals\n// ------------------------------------------------------------------\nexport function GetExternal() {\n return state;\n}\n",
311
+ "// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildGuard(stack, context, schema, value) {\n return E.Call(E.Member(E.Member(Externals.CreateVariable(schema), '~guard'), 'check'), [value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckGuard(stack, context, schema, value) {\n return schema['~guard'].check(value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorGuard(stack, context, schemaPath, instancePath, schema, value) {\n return schema['~guard'].check(value) || context.AddError({\n keyword: '~guard',\n schemaPath,\n instancePath,\n params: { errors: schema['~guard'].errors(value) },\n });\n}\n",
312
+ "// deno-fmt-ignore-file\nimport * as V from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRefine(stack, context, schema, value) {\n const refinements = V.CreateVariable(schema['~refine'].map((refinement) => refinement));\n return E.Every(refinements, E.Constant(0), ['refinement', '_'], E.Call(E.Member('refinement', 'refine'), [value]));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRefine(stack, context, schema, value) {\n return G.Every(schema['~refine'], 0, (refinement, _) => refinement.refine(value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRefine(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema['~refine'], 0, (refinement, index) => {\n return refinement.refine(value) || context.AddError({\n keyword: '~refine',\n schemaPath,\n instancePath,\n params: { index, message: refinement.message },\n });\n });\n}\n",
313
+ "let index = 0;\n/** Returns a Unique Variable Name */\nexport function Unique() {\n return `var_${index++}`;\n}\n",
314
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsItems(schema) && G.IsArray(schema.items);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [item, index] = [Unique(), Unique()];\n const isSchema = BuildSchema(stack, context, schema.additionalItems, item);\n const isLength = E.IsLessThan(index, E.Constant(schema.items.length));\n const addIndex = context.AddIndex(index);\n const guarded = context.UseUnevaluated() ? E.Or(isLength, E.And(isSchema, addIndex)) : E.Or(isLength, isSchema);\n return E.Call(E.Member(value, 'every'), [E.ArrowFunction([item, index], guarded)]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = value.every((item, index) => {\n return G.IsLessThan(index, schema.items.length)\n || (CheckSchema(stack, context, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = value.every((item, index) => {\n const nextSchemaPath = `${schemaPath}/additionalItems`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessThan(index, schema.items.length) ||\n (ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n",
315
+ "// deno-fmt-ignore-file\nimport * as S from '../types/index.mjs';\nimport * as V from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Common: GetPropertiesPattern\n//\n// Constructs a regular expression that matches all property keys\n// and pattern properties defined in a schema. This approach unifies\n// handling of both property types, avoiding separate logic paths.\n//\n// If no keys or patterns are present, it returns a pattern that\n// matches nothing: '(?!)'.\n//\n// ------------------------------------------------------------------\nfunction GetPropertyKeyAsPattern(key) {\n const escaped = key.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return `^${escaped}$`;\n}\nfunction GetPropertiesPattern(schema) {\n const patterns = [];\n if (S.IsPatternProperties(schema))\n patterns.push(...G.Keys(schema.patternProperties));\n if (S.IsProperties(schema))\n patterns.push(...G.Keys(schema.properties).map(GetPropertyKeyAsPattern));\n return G.IsEqual(patterns.length, 0) ? '(?!)' : `(${patterns.join('|')})`;\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesFast\n//\n// Optimized logic for schemas with `additionalProperties: false`.\n//\n// This fast-path applies only when:\n// - `additionalProperties` is explicitly set to false,\n// - the schema uses only `properties` (no `patternProperties`),\n// - and all defined properties are required (i.e., no optional keys).\n//\n// This constraint is common when enforcing strict object shapes\n// with only known, fixed keys. When all these conditions are met,\n// we can generate a simplified and efficient runtime check.\n//\n// ------------------------------------------------------------------\nexport function CanAdditionalPropertiesFast(context, schema, value) {\n return S.IsRequired(schema)\n && S.IsProperties(schema)\n && !S.IsPatternProperties(schema)\n && G.IsEqual(schema.additionalProperties, false)\n && G.IsEqual(G.Keys(schema.properties).length, schema.required.length);\n}\nexport function BuildAdditionalPropertiesFast(context, schema, value) {\n return E.IsEqual(E.Member(E.Call(E.Member('Object', 'getOwnPropertyNames'), [value]), 'length'), E.Constant(schema.required.length));\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesStandard\n// ------------------------------------------------------------------\nexport function BuildAdditionalPropertiesStandard(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n const regexp = V.CreateVariable(new RegExp(GetPropertiesPattern(schema)));\n const isSchema = BuildSchema(stack, context, schema.additionalProperties, `${value}[${key}]`);\n const isKey = E.Call(E.Member(regexp, 'test'), [key]);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(isKey, E.And(isSchema, addKey)) : E.Or(isKey, isSchema);\n const result = E.Every(E.Keys(value), E.Constant(0), [key, _index], guarded);\n return result;\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildAdditionalProperties(stack, context, schema, value) {\n return CanAdditionalPropertiesFast(context, schema, value)\n ? BuildAdditionalPropertiesFast(context, schema, value)\n : BuildAdditionalPropertiesStandard(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalProperties(stack, context, schema, value) {\n const regexp = new RegExp(GetPropertiesPattern(schema));\n const isAdditionalProperties = G.Every(G.Keys(value), 0, (key, _index) => {\n return regexp.test(key) ||\n (CheckSchema(stack, context, schema.additionalProperties, value[key]) && context.AddKey(key));\n });\n return isAdditionalProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value) {\n const regexp = new RegExp(GetPropertiesPattern(schema));\n const additionalProperties = [];\n const isAdditionalProperties = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextSchemaPath = `${schemaPath}/additionalProperties`;\n const nextInstancePath = `${instancePath}/${key}`;\n const nextContext = new AccumulatedErrorContext();\n const isAdditionalProperty = regexp.test(key) ||\n (ErrorSchema(stack, nextContext, nextSchemaPath, nextInstancePath, schema.additionalProperties, value[key]) && context.AddKey(key));\n if (!isAdditionalProperty)\n additionalProperties.push(key);\n return isAdditionalProperty;\n });\n return isAdditionalProperties || context.AddError({\n keyword: 'additionalProperties',\n schemaPath,\n instancePath: instancePath,\n params: { additionalProperties },\n });\n}\n",
316
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Reducer\n//\n// This function is used to generate an reducer evaluation context \n// for the allOf, anyOf, oneOf and not keywords. The reducer mechansism\n// is required from 2019-09 onwards to gather evaluated keys and indices\n// for the unevaluatedItems and unevaluatedProperties keywords.\n//\n// ------------------------------------------------------------------\n//\n// const context = new Context() // exterior\n//\n// (() => {\n// const results = []\n//\n// const context_0 = context.Clone()\n// const context_1 = context.Clone()\n// const context_2 = context.Clone()\n// const context_3 = context.Clone()\n// \n// const condition_0 = ((context) => <subschema>)(context_0)\n// const condition_1 = ((context) => <subschema>)(context_1)\n// const condition_2 = ((context) => <subschema>)(context_2)\n// const condition_3 = ((context) => <subschema>)(context_3)\n// \n// if(condition_0) results.push(context_0)\n// if(condition_1) results.push(context_1)\n// if(condition_2) results.push(context_2)\n// if(condition_3) results.push(context_3)\n//\n// return <check> && context.Merge(results)\n// })()\n//\n// ------------------------------------------------------------------\nexport function Reducer(stack, context, schemas, value, check) {\n const results = E.ConstDeclaration('results', '[]');\n const context_n = schemas.map((_schema, index) => E.ConstDeclaration(`context_${index}`, E.New('CheckContext', [])));\n const condition_n = schemas.map((schema, index) => E.ConstDeclaration(`condition_${index}`, E.Call(E.ArrowFunction(['context'], BuildSchema(stack, context, schema, value)), [`context_${index}`])));\n const checks = schemas.map((_schema, index) => E.If(`condition_${index}`, E.Call(E.Member('results', 'push'), [`context_${index}`])));\n const returns = E.Return(E.And(check, context.Merge('results')));\n return E.Call(E.ArrowFunction([], E.Statements([results, ...context_n, ...condition_n, ...checks, returns])), []);\n}\n",
317
+ "// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAllOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.allOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(schema.allOf.length)));\n}\nfunction BuildAllOfFast(stack, context, schema, value) {\n return E.ReduceAnd(schema.allOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAllOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAllOfStandard(stack, context, schema, value)\n : BuildAllOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAllOf(stack, context, schema, value) {\n const results = schema.allOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAllOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.allOf.reduce((result, schema, index) => {\n const nextSchemaPath = `${schemaPath}/allOf/${index}`;\n const nextContext = new AccumulatedErrorContext();\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAllOf = G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n if (!isAllOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAllOf;\n}\n",
318
+ "// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAnyOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.anyOf, value, E.IsGreaterThan(E.Member('results', 'length'), E.Constant(0)));\n}\nfunction BuildAnyOfFast(stack, context, schema, value) {\n return E.ReduceOr(schema.anyOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAnyOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAnyOfStandard(stack, context, schema, value)\n : BuildAnyOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAnyOf(stack, context, schema, value) {\n const results = schema.anyOf.reduce((result, schema, index) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsGreaterThan(results.length, 0) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.anyOf.reduce((result, schema, index) => {\n const nextContext = new AccumulatedErrorContext();\n const nextSchemaPath = `${schemaPath}/anyOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAnyOf = G.IsGreaterThan(results.length, 0) && context.Merge(results);\n if (!isAnyOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAnyOf || context.AddError({\n keyword: 'anyOf',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n",
319
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildBooleanSchema(stack, context, schema, value) {\n return schema ? E.Constant(true) : E.Constant(false);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckBooleanSchema(stack, context, schema, value) {\n return schema;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorBooleanSchema(stack, context, schemaPath, instancePath, schema, value) {\n return CheckBooleanSchema(stack, context, schema, value) || context.AddError({\n keyword: 'boolean',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n",
320
+ "// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildConst(stack, context, schema, value) {\n return G.IsValueLike(schema.const)\n ? E.IsEqual(value, E.Constant(schema.const))\n : E.IsDeepEqual(value, Externals.CreateVariable(schema.const));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckConst(stack, context, schema, value) {\n return G.IsValueLike(schema.const)\n ? G.IsEqual(value, schema.const)\n : G.IsDeepEqual(value, schema.const);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorConst(stack, context, schemaPath, instancePath, schema, value) {\n return CheckConst(stack, context, schema, value) || context.AddError({\n keyword: 'const',\n schemaPath,\n instancePath,\n params: { allowedValue: schema.const },\n });\n}\n",
321
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Invalid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !(Schema.IsMinContains(schema) && G.IsEqual(schema.minContains, 0));\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const item = Unique();\n const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));\n const isSome = E.Call(E.Member(value, 'some'), [E.ArrowFunction([item], BuildSchema(stack, context, schema.contains, item))]);\n return E.And(isLength, isSome);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n return !G.IsEqual(value.length, 0) &&\n value.some((item) => CheckSchema(stack, context, schema.contains, item));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: 1 },\n });\n}\n",
322
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependencies(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEveryDependency = E.ReduceAnd(G.Entries(schema.dependencies).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n const isEveryKey = (schema) => E.ReduceAnd(schema.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, G.IsArray(schema) ? isEveryKey(schema) : isSchema);\n }));\n return E.Or(isLength, isEveryDependency);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependencies(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((key) => G.HasPropertyKey(value, key))\n : CheckSchema(stack, context, schema, value));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependencies(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependencies/${key}`;\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependencies',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: schema },\n })) : ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value));\n });\n return isLength || isEvery;\n}\n",
323
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentRequired(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentRequired).map(([key, keys]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const everyKey = E.ReduceAnd(keys.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, everyKey);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentRequired(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) ||\n keys.every((key) => G.HasPropertyKey(value, key));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentRequired(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEveryEntry = G.EveryAll(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) || G.EveryAll(keys, 0, (dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependentRequired',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: keys },\n }));\n });\n return isLength || isEveryEntry;\n}\n",
324
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentSchemas(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentSchemas).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n return E.Or(notKey, isSchema);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentSchemas(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) ||\n CheckSchema(stack, context, schema, value);\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependentSchemas/${key}`;\n return !G.HasPropertyKey(value, key) ||\n ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value);\n });\n return isLength || isEvery;\n}\n",
325
+ "// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildEnum(stack, context, schema, value) {\n return E.ReduceOr(schema.enum.map(option => {\n if (G.IsValueLike(option))\n return E.IsEqual(value, E.Constant(option));\n const variable = Externals.CreateVariable(option);\n return E.IsDeepEqual(value, variable);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckEnum(stack, context, schema, value) {\n return schema.enum.some(option => G.IsValueLike(option)\n ? G.IsEqual(value, option)\n : G.IsDeepEqual(value, option));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorEnum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckEnum(stack, context, schema, value) || context.AddError({\n keyword: 'enum',\n schemaPath,\n instancePath,\n params: { allowedValues: schema.enum }\n });\n}\n",
326
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMaximum(stack, context, schema, value) {\n return E.IsLessThan(value, E.Constant(schema.exclusiveMaximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMaximum(stack, context, schema, value) {\n return G.IsLessThan(value, schema.exclusiveMaximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMaximum',\n schemaPath,\n instancePath,\n params: { comparison: '<', limit: schema.exclusiveMaximum }\n });\n}\n",
327
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMinimum(stack, context, schema, value) {\n return E.IsGreaterThan(value, E.Constant(schema.exclusiveMinimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMinimum(stack, context, schema, value) {\n return G.IsGreaterThan(value, schema.exclusiveMinimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMinimum',\n schemaPath,\n instancePath,\n params: { comparison: '>', limit: schema.exclusiveMinimum }\n });\n}\n",
328
+ "const DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nfunction IsLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n/**\n * Returns true if the value is a ISO8601 Date component string\n * @source ajv-formats\n * @example `2020-12-12`\n */\nexport function IsDate(value) {\n const matches = DATE.exec(value);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && IsLeapYear(year) ? 29 : DAYS[month]);\n}\n",
329
+ "const TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(?:Z|([+-])(\\d\\d):(\\d\\d))?$/i;\n/**\n * Returns true if the value is a ISO time string\n * @specification\n */\nexport function IsTime(value, strictTimeZone = true) {\n const matches = TIME.exec(value);\n if (!matches)\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n const tzSign = matches[4] === '-' ? -1 : 1; // Use matches[4] for sign\n const tzH = +(matches[5] || 0); // tzH is now matches[5]\n const tzM = +(matches[6] || 0); // tzM is now matches[6]\n if (tzH > 23 || tzM > 59)\n return false; // Check for valid hour/minute range in offset\n if (strictTimeZone && !matches[4] && value.toLowerCase().indexOf('z') === -1) {\n // If strictTimeZone is true, and neither 'Z' nor a '+/-' offset was found\n return false;\n }\n if (hr <= 23 && min <= 59 && sec < 60)\n return true;\n const utcMin = min - tzM * tzSign;\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n}\n",
330
+ "import { IsDate } from './date.mjs';\nimport { IsTime } from './time.mjs';\n/**\n * Returns true if the value is a ISO8601 DateTime string\n * @source ajv-formats\n * @example `2020-12-12T20:20:40+00:00`\n */\nexport function IsDateTime(value, strictTimeZone = true) {\n const dateTime = value.split(/T/i);\n return dateTime.length === 2 && IsDate(dateTime[0]) && IsTime(dateTime[1], strictTimeZone);\n}\n",
331
+ "const Duration = /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/;\n/**\n * Returns true if the value is a Duration string\n * @source ajv-formats\n */\nexport function IsDuration(value) {\n return Duration.test(value);\n}\n",
332
+ "const Email = /^(?!.*\\.\\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n/** Returns true if the value is an Email */\nexport function IsEmail(value) {\n return Email.test(value);\n}\n",
333
+ "const Hostname = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\n/** Returns true if the value is a Hostname */\nexport function IsHostname(value) {\n return Hostname.test(value);\n}\n",
334
+ "const IdnEmail = /^(?!.*\\.\\.)[\\p{L}\\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}\\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?(?:\\.[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?)*$/iu;\n/** Returns true if the value is a Idn Email */\nexport function IsIdnEmail(value) {\n return IdnEmail.test(value);\n}\n",
335
+ "function IsValidAdjacentForKatakanaMiddleDot(char) {\n const codePoint = char.codePointAt(0);\n // deno-coverage-ignore - internal condition never reached\n if (codePoint === undefined)\n return false;\n return ((codePoint >= 0x3040 && codePoint <= 0x309F) || // Hiragana\n (codePoint >= 0x30A0 && codePoint <= 0x30FF && codePoint !== 0x30FB) || // Katakana (excluding U+30FB)\n (codePoint >= 0x4E00 && codePoint <= 0x9FFF) // Han (CJK Unified Ideographs)\n );\n}\n/**\n * Returns true if the value is a Hostname\n * @specification\n */\nexport function IsIdnHostname(value) {\n if (value.length === 0)\n return false;\n if (value.includes(' '))\n return false;\n // Allowed label separators per RFC3490: U+002E, U+3002, U+FF0E, U+FF61.\n const separators = /[\\u002E\\u3002\\uFF0E\\uFF61]/g;\n // Normalize (NFC) and replace allowed separators with a dot.\n const normalized = value.normalize('NFC').replace(separators, '.');\n if (normalized.length > 253)\n return false;\n // Split into labels; disallow empty labels.\n const labels = normalized.split('.');\n if (labels.some((label) => label.length === 0))\n return false;\n for (const label of labels) {\n // Each label must be ≤ 63 characters.\n if (label.length > 63)\n return false;\n // Labels must not begin or end with a hyphen.\n if (label.startsWith('-') || label.endsWith('-'))\n return false;\n // A-label (punycode) checks.\n if (/^xn--/i.test(label)) {\n const punycodePart = label.slice(4);\n if (punycodePart.length < 2)\n return false;\n if (punycodePart.includes('---'))\n return false;\n continue;\n }\n // U-label: Reject if any disallowed code points occur.\n // Disallowed: U+302E, U+302F, U+3031, U+3032, U+3033, U+3034, U+3035, U+303B, U+0640, U+07FA.\n if (/[\\u302E\\u302F\\u3031\\u3032\\u3033\\u3034\\u3035\\u303B\\u0640\\u07FA]/.test(label)) {\n return false;\n }\n // Disallow labels starting with certain combining marks.\n const firstChar = label.charAt(0);\n if (/[\\u0903\\u0300\\u0488]/.test(firstChar))\n return false;\n // Check each character within the label.\n for (let i = 0; i < label.length; i++) {\n const char = label.charAt(i);\n // --- MIDDLE DOT (U+00B7) ---\n // Must be flanked on both sides by \"l\" or \"L\".\n if (char === '\\u00B7') {\n if (i === 0 || i === label.length - 1)\n return false;\n const prev = label.charAt(i - 1);\n const next = label.charAt(i + 1);\n if (!/^[lL]$/.test(prev) || !/^[lL]$/.test(next))\n return false;\n }\n // --- KATAKANA MIDDLE DOT (U+30FB) ---\n if (char === '\\u30FB') {\n // If label is a single character, it's invalid.\n if (label.length === 1)\n return false;\n if (i === 0) {\n // At beginning: check following character.\n const next = label.charAt(i + 1);\n if (!IsValidAdjacentForKatakanaMiddleDot(next))\n return false;\n }\n else {\n // In the middle: check both adjacent characters.\n const prev = label.charAt(i - 1);\n const next = label.charAt(i + 1);\n if (!IsValidAdjacentForKatakanaMiddleDot(prev) || !IsValidAdjacentForKatakanaMiddleDot(next)) {\n return false;\n }\n }\n }\n // --- Greek Keraia (U+0375) ---\n if (char === '\\u0375') {\n if (i === label.length - 1)\n return false;\n const next = label.charAt(i + 1);\n if (!/[\\u0370-\\u03FF]/.test(next))\n return false;\n }\n // --- Hebrew GERESH (U+05F3) and GERSHAYIM (U+05F4) ---\n if (char === '\\u05F3' || char === '\\u05F4') {\n if (i === 0)\n return false;\n const prev = label.charAt(i - 1);\n if (!/[\\u05D0-\\u05EA]/.test(prev))\n return false;\n }\n // --- ZERO WIDTH JOINER (U+200D) ---\n if (char === '\\u200D') {\n if (i === 0)\n return false;\n const prev = label.charAt(i - 1);\n if (prev !== '\\u094D')\n return false;\n }\n // ZERO WIDTH NON-JOINER (U+200C) is allowed.\n }\n // --- Arabic-Indic digits vs. Extended Arabic-Indic digits ---\n let hasArabicIndic = false;\n let hasExtendedArabicIndic = false;\n for (let i = 0; i < label.length; i++) {\n const char = label.charAt(i);\n if (/[\\u0660-\\u0669]/.test(char))\n hasArabicIndic = true;\n if (/[\\u06F0-\\u06F9]/.test(char))\n hasExtendedArabicIndic = true;\n }\n if (hasArabicIndic && hasExtendedArabicIndic)\n return false;\n }\n return true;\n}\n",
336
+ "const IPv4 = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/;\n/**\n * Returns true if the value is a IPV4 address\n * @source ajv-formats\n * @specification http://tools.ietf.org/html/rfc2673#section-3.2\n */\nexport function IsIPv4(value) {\n return IPv4.test(value);\n}\n",
337
+ "const IPv6 = /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i;\n/**\n * Returns true if the value is a IPV6 address\n * @source ajv-formats\n * @specification http://tools.ietf.org/html/rfc2373#section-2.2\n */\nexport function IsIPv6(value) {\n return IPv6.test(value);\n}\n",
338
+ "// deno-coverage-ignore-start\nfunction TryUrl(value) {\n try {\n new URL(value, 'http://example.com'); // This handles relative paths correctly\n return true;\n }\n catch {\n return false;\n }\n}\n// deno-coverage-ignore-stop\n/**\n * Returns true if the value is a Iri reference\n * @specification\n */\nexport function IsIriReference(value) {\n // 1. Basic forbidden character checks (must be percent-encoded or not exist)\n // RFC 3987 excludes space, backslash, and control characters from being unencoded.\n if (value.includes(' ')) { // Unencoded space (U+0020)\n return false;\n }\n if (value.includes('\\\\')) { // Backslash (U+005C)\n return false;\n }\n // ASCII control characters (U+0000-U+001F and U+007F)\n if (/[\\x00-\\x1F\\x7F]/.test(value)) {\n return false;\n }\n // 2. Check for invalid percent-encoding\n // A percent sign '%' must always be followed by exactly two hexadecimal characters.\n // This regex finds a '%' that is NOT followed by two hexadecimal characters.\n // - `%` matches a literal percent sign.\n // - `(?!...)` is a negative lookahead, asserting that what follows is NOT.\n // - `[0-9a-fA-F]{2}` matches exactly two hexadecimal digits.\n // So, if a '%' is found that is not immediately followed by two hex digits, this regex will match.\n if (/%(?![0-9a-fA-F]{2})/.test(value)) {\n return false;\n }\n // 3. Handle empty string (valid relative reference to the current document)\n if (value === '') {\n return true;\n }\n // 4. Determine if it's attempting to be an absolute IRI or a relative IRI, and parse.\n const colonIndex = value.indexOf(':');\n const hasValidSchemePrefix = colonIndex > 0 && // Colon must not be at the very beginning (e.g., \":foo\")\n /^[a-zA-Z][a-zA-Z0-9+\\-.]*$/.test(value.substring(0, colonIndex));\n if (hasValidSchemePrefix) {\n return TryUrl(value);\n }\n else {\n // This handles cases like `httpx//example.com/path` which look like malformed absolute URIs.\n const looksLikeMalformedSchemeAndAuthority = value.match(/^([a-zA-Z][a-zA-Z0-9+\\-.]*)(\\/\\/)/);\n if (looksLikeMalformedSchemeAndAuthority && colonIndex === -1) {\n return false;\n }\n // Otherwise, it's a relative IRI reference.\n return TryUrl(value);\n }\n}\n",
339
+ "/**\n * Returns true if the value is a Iri\n * @specification\n */\nexport function IsIri(value) {\n try {\n new URL(value);\n return true;\n }\n catch {\n return false;\n }\n}\n",
340
+ "const JsonPointerUriFragment = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n/**\n * Returns true if the value is a json pointer uri fragment\n * @specification\n * @source ajv-formats\n */\nexport function IsJsonPointerUriFragment(value) {\n return JsonPointerUriFragment.test(value);\n}\n",
341
+ "const JsonPointer = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\n/**\n * Returns true if the value is a json pointer\n * @specification\n * @source ajv-formats\n */\nexport function IsJsonPointer(value) {\n return JsonPointer.test(value);\n}\n",
342
+ "/**\n * Returns true if the value is a regular expression string pattern\n * @specification\n * @source ajv-formats\n */\nexport function IsRegex(value) {\n if (value.length === 0) {\n return false;\n }\n try {\n new RegExp(value);\n return true;\n }\n catch {\n return false;\n }\n}\n",
343
+ "const RelativeJsonPointer = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n/**\n * Returns true if the value is a relative json pointer\n * @specification\n * @source ajv-formats\n */\nexport function IsRelativeJsonPointer(value) {\n return RelativeJsonPointer.test(value);\n}\n",
344
+ "const UriReference = /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i;\n/**\n * Returns true if the value is a uri reference\n * @specification\n * @source ajv-formats\n */\nexport function IsUriReference(value) {\n return UriReference.test(value);\n}\n",
345
+ "// deno-lint-ignore-file\nconst UriTemplate = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n/**\n * Returns true if the value is a uri template\n * @specification\n * @source ajv-formats\n */\nexport function IsUriTemplate(value) {\n return UriTemplate.test(value);\n}\n",
346
+ "const Uri = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i;\n/**\n * Returns true if the value is a uri\n * @specification\n * @source ajv-formats\n */\nexport function IsUri(value) {\n return Uri.test(value);\n}\n",
347
+ "const Url = /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n/**\n * Returns true if the value is a Url\n * @specification\n * @source ajv-formats\n */\nexport function IsUrl(value) {\n return Url.test(value);\n}\n",
348
+ "const Uuid = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n/**\n * Returns true if the value is a uuid\n * @specification\n * @source ajv-formats\n */\nexport function IsUuid(value) {\n return Uuid.test(value);\n}\n",
349
+ "import { IsDateTime } from './date-time.mjs';\nimport { IsDate } from './date.mjs';\nimport { IsDuration } from './duration.mjs';\nimport { IsEmail } from './email.mjs';\nimport { IsHostname } from './hostname.mjs';\nimport { IsIdnEmail } from './idn-email.mjs';\nimport { IsIdnHostname } from './idn-hostname.mjs';\nimport { IsIPv4 } from './ipv4.mjs';\nimport { IsIPv6 } from './ipv6.mjs';\nimport { IsIriReference } from './iri-reference.mjs';\nimport { IsIri } from './iri.mjs';\nimport { IsJsonPointerUriFragment } from './json-pointer-uri-fragment.mjs';\nimport { IsJsonPointer } from './json-pointer.mjs';\nimport { IsRegex } from './regex.mjs';\nimport { IsRelativeJsonPointer } from './relative-json-pointer.mjs';\nimport { IsTime } from './time.mjs';\nimport { IsUriReference } from './uri-reference.mjs';\nimport { IsUriTemplate } from './uri-template.mjs';\nimport { IsUri } from './uri.mjs';\nimport { IsUrl } from './url.mjs';\nimport { IsUuid } from './uuid.mjs';\n// ------------------------------------------------------------------\n// Formats\n// ------------------------------------------------------------------\nconst formats = new Map();\n// ------------------------------------------------------------------\n// Clear\n// ------------------------------------------------------------------\n/** Clears all entries */\nexport function Clear() {\n formats.clear();\n}\n// ------------------------------------------------------------------\n// Entries\n// ------------------------------------------------------------------\n/** Returns format entries in this registry */\nexport function Entries() {\n return [...formats.entries()];\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a format */\nexport function Set(format, check) {\n formats.set(format, check);\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if the registry has this format */\nexport function Has(format) {\n return formats.has(format);\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a format or undefined if not exists */\nexport function Get(format) {\n return formats.get(format);\n}\n// ------------------------------------------------------------------\n// Test\n// ------------------------------------------------------------------\n/** Tests a value against a format, if the format is not registered, true */\nexport function Test(format, value) {\n return formats.get(format)?.(value) ?? true;\n}\n// ------------------------------------------------------------------\n// Reset\n// ------------------------------------------------------------------\n/** Resets all formats to defaults */\nexport function Reset() {\n Clear();\n formats.set('date-time', IsDateTime);\n formats.set('date', IsDate);\n formats.set('duration', IsDuration);\n formats.set('email', IsEmail);\n formats.set('hostname', IsHostname);\n formats.set('idn-email', IsIdnEmail);\n formats.set('idn-hostname', IsIdnHostname);\n formats.set('ipv4', IsIPv4);\n formats.set('ipv6', IsIPv6);\n formats.set('iri-reference', IsIriReference);\n formats.set('iri', IsIri);\n formats.set('json-pointer-uri-fragment', IsJsonPointerUriFragment);\n formats.set('json-pointer', IsJsonPointer);\n formats.set('regex', IsRegex);\n formats.set('relative-json-pointer', IsRelativeJsonPointer);\n formats.set('time', IsTime);\n formats.set('uri-reference', IsUriReference);\n formats.set('uri-template', IsUriTemplate);\n formats.set('uri', IsUri);\n formats.set('url', IsUrl);\n formats.set('uuid', IsUuid);\n}\nReset();\n",
350
+ "// deno-fmt-ignore-file\nimport { Format } from '../../format/index.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildFormat(stack, context, schema, value) {\n return E.Call(E.Member('Format', 'Test'), [E.Constant(schema.format), value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckFormat(stack, context, schema, value) {\n return Format.Test(schema.format, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorFormat(stack, context, schemaPath, instancePath, schema, value) {\n return CheckFormat(stack, context, schema, value) || context.AddError({\n keyword: 'format',\n schemaPath,\n instancePath,\n params: { format: schema.format },\n });\n}\n",
351
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return E.Ternary(BuildSchema(stack, context, schema.if, value), BuildSchema(stack, context, thenSchema, value), BuildSchema(stack, context, elseSchema, value));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return CheckSchema(stack, context, schema.if, value)\n ? CheckSchema(stack, context, thenSchema, value)\n : CheckSchema(stack, context, elseSchema, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorIf(stack, context, schemaPath, instancePath, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n const trueContext = new AccumulatedErrorContext();\n const isIf = ErrorSchema(stack, trueContext, `${schemaPath}/if`, instancePath, schema.if, value)\n ? ErrorSchema(stack, trueContext, `${schemaPath}/then`, instancePath, thenSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'then' },\n })\n : ErrorSchema(stack, context, `${schemaPath}/else`, instancePath, elseSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'else' },\n });\n if (isIf)\n context.Merge([trueContext]);\n return isIf;\n}\n",
352
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// ItemsSized\n// ------------------------------------------------------------------\nfunction BuildItemsSized(stack, context, schema, value) {\n return E.ReduceAnd(schema.items.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchema(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Or(isLength, guarded);\n }));\n}\nfunction CheckItemsSized(stack, context, schema, value) {\n return G.Every(schema.items, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchema(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\nfunction ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema.items, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/items/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// ItemsUnsized\n// ------------------------------------------------------------------\nfunction BuildItemsUnsized(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n const isSchema = BuildSchema(stack, context, schema.items, 'element');\n const addIndex = context.AddIndex('index');\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Every(value, E.Constant(offset), ['element', 'index'], guarded);\n}\nfunction CheckItemsUnsized(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.Every(value, offset, (element, index) => {\n return CheckSchema(stack, context, schema.items, element)\n && context.AddIndex(index);\n });\n}\nfunction ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.EveryAll(value, offset, (element, index) => {\n const nextSchemaPath = `${schemaPath}/items`;\n const nextInstancePath = `${instancePath}/${index}`;\n return ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema.items, element)\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Items\n// ------------------------------------------------------------------\nexport function BuildItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? BuildItemsSized(stack, context, schema, value) : BuildItemsUnsized(stack, context, schema, value);\n}\nexport function CheckItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? CheckItemsSized(stack, context, schema, value) : CheckItemsUnsized(stack, context, schema, value);\n}\nexport function ErrorItems(stack, context, schemaPath, instancePath, schema, value) {\n return Schema.IsItemsSized(schema) ? ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) : ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value);\n}\n",
353
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [result, item] = [Unique(), Unique()];\n const count = E.Call(E.Member(value, 'reduce'), [E.ArrowFunction([result, item], E.Ternary(BuildSchema(stack, context, schema.contains, item), E.PrefixIncrement(result), result)), E.Constant(0)]);\n return E.IsLessEqualThan(count, E.Constant(schema.maxContains));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = value.reduce((result, item) => CheckSchema(stack, context, schema.contains, item) ? ++result : result, 0);\n return G.IsLessEqualThan(count, schema.maxContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value) {\n const minContains = Schema.IsMinContains(schema) ? schema.minContains : 1;\n return CheckMaxContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains, maxContains: schema.maxContains },\n });\n}\n",
354
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaximum(stack, context, schema, value) {\n return E.IsLessEqualThan(value, E.Constant(schema.maximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaximum(stack, context, schema, value) {\n return G.IsLessEqualThan(value, schema.maximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'maximum',\n schemaPath,\n instancePath,\n params: { comparison: '<=', limit: schema.maximum }\n });\n}\n",
355
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxItems(stack, context, schema, value) {\n return E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(schema.maxItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxItems(stack, context, schema, value) {\n return G.IsLessEqualThan(value.length, schema.maxItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxItems(stack, context, schema, value) || context.AddError({\n keyword: 'maxItems',\n schemaPath,\n instancePath,\n params: { limit: schema.maxItems }\n });\n}\n",
356
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxLength(stack, context, schema, value) {\n return E.IsLessEqualThan(E.StringGraphemeCount(value), E.Constant(schema.maxLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxLength(stack, context, schema, value) {\n return G.IsLessEqualThan(G.StringGraphemeCount(value), schema.maxLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxLength(stack, context, schema, value) || context.AddError({\n keyword: 'maxLength',\n schemaPath,\n instancePath,\n params: { limit: schema.maxLength }\n });\n}\n",
357
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxProperties(stack, context, schema, value) {\n return E.IsLessEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.maxProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxProperties(stack, context, schema, value) {\n return G.IsLessEqualThan(G.Keys(value).length, schema.maxProperties);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxProperties(stack, context, schema, value) || context.AddError({\n keyword: 'maxProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.maxProperties },\n });\n}\n",
358
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [result, item] = [Unique(), Unique()];\n const count = E.Call(E.Member(value, 'reduce'), [E.ArrowFunction([result, item], E.Ternary(BuildSchema(stack, context, schema.contains, item), E.PrefixIncrement(result), result)), E.Constant(0)]);\n return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = value.reduce((result, item) => CheckSchema(stack, context, schema.contains, item) ? ++result : result, 0);\n return G.IsGreaterEqualThan(count, schema.minContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: schema.minContains }\n });\n}\n",
359
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinimum(stack, context, schema, value) {\n return E.IsGreaterEqualThan(value, E.Constant(schema.minimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinimum(stack, context, schema, value) {\n return G.IsGreaterEqualThan(value, schema.minimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'minimum',\n schemaPath,\n instancePath,\n params: { comparison: '>=', limit: schema.minimum }\n });\n}\n",
360
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinItems(stack, context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(value, 'length'), E.Constant(schema.minItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinItems(stack, context, schema, value) {\n return G.IsGreaterEqualThan(value.length, schema.minItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinItems(stack, context, schema, value) || context.AddError({\n keyword: 'minItems',\n schemaPath,\n instancePath,\n params: { limit: schema.minItems }\n });\n}\n",
361
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinLength(stack, context, schema, value) {\n return E.IsGreaterEqualThan(E.StringGraphemeCount(value), E.Constant(schema.minLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinLength(stack, context, schema, value) {\n return G.IsGreaterEqualThan(G.StringGraphemeCount(value), schema.minLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinLength(stack, context, schema, value) || context.AddError({\n keyword: 'minLength',\n schemaPath,\n instancePath,\n params: { limit: schema.minLength }\n });\n}\n",
362
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinProperties(stack, context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.minProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinProperties(stack, context, schema, value) {\n return G.IsGreaterEqualThan(G.Keys(value).length, schema.minProperties);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinProperties(stack, context, schema, value) || context.AddError({\n keyword: 'minProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.minProperties },\n });\n}\n",
363
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMultipleOf(stack, context, schema, value) {\n return E.MultipleOf(value, E.Constant(schema.multipleOf));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMultipleOf(stack, context, schema, value) {\n return G.IsMultipleOf(value, schema.multipleOf);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMultipleOf(stack, context, schema, value) || context.AddError({\n keyword: 'multipleOf',\n schemaPath,\n instancePath,\n params: { multipleOf: schema.multipleOf }\n });\n}\n",
364
+ "// deno-fmt-ignore-file\nimport { CheckContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildNotUnevaluated(stack, context, schema, value) {\n return Reducer(stack, context, [schema.not], value, E.Not(E.IsEqual(E.Member('results', 'length'), E.Constant(1))));\n}\nfunction BuildNotFast(stack, context, schema, value) {\n return E.Not(BuildSchema(stack, context, schema.not, value));\n}\nexport function BuildNot(stack, context, schema, value) {\n return context.UseUnevaluated() ? BuildNotUnevaluated(stack, context, schema, value) : BuildNotFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckNot(stack, context, schema, value) {\n const nextContext = new CheckContext();\n const isSchema = !CheckSchema(stack, nextContext, schema.not, value);\n const isNot = isSchema && context.Merge([nextContext]);\n return isNot;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorNot(stack, context, schemaPath, instancePath, schema, value) {\n return CheckNot(stack, context, schema, value) || context.AddError({\n keyword: 'not',\n schemaPath,\n instancePath,\n params: {},\n });\n}\n",
365
+ "// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildOneOfUnevaluated(stack, context, schema, value) {\n return Reducer(stack, context, schema.oneOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(1)));\n}\nfunction BuildOneOfFast(stack, context, schema, value) {\n const results = E.ArrayLiteral(schema.oneOf.map((schema) => BuildSchema(stack, context, schema, value)));\n const count = E.Call(E.Member(results, 'reduce'), [\n E.ArrowFunction(['count', 'result'], E.Ternary(E.IsEqual('result', E.Constant(true)), E.PrefixIncrement('count'), 'count')),\n E.Constant(0),\n ]);\n return E.IsEqual(count, E.Constant(1));\n}\nexport function BuildOneOf(stack, context, schema, value) {\n return context.UseUnevaluated() ? BuildOneOfUnevaluated(stack, context, schema, value) : BuildOneOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckOneOf(stack, context, schema, value) {\n const passedContexts = schema.oneOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorOneOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const passingSchemas = [];\n const passedContexts = schema.oneOf.reduce((result, schema, index) => {\n const nextContext = new AccumulatedErrorContext();\n const nextSchemaPath = `${schemaPath}/oneOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (isSchema)\n passingSchemas.push(index);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isOneOf = G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n if (!isOneOf && G.IsEqual(passingSchemas.length, 0))\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isOneOf || context.AddError({\n keyword: 'oneOf',\n schemaPath,\n instancePath,\n params: { passingSchemas },\n });\n}\n",
366
+ "// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPattern(stack, context, schema, value) {\n const regexp = Externals.CreateVariable(G.IsString(schema.pattern) ? new RegExp(schema.pattern) : schema.pattern);\n return E.Call(E.Member(regexp, 'test'), [value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPattern(stack, context, schema, value) {\n const regexp = G.IsString(schema.pattern) ? new RegExp(schema.pattern) : schema.pattern;\n return regexp.test(value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPattern(stack, context, schemaPath, instancePath, schema, value) {\n return CheckPattern(stack, context, schema, value) || context.AddError({\n keyword: 'pattern',\n schemaPath,\n instancePath,\n params: { pattern: schema.pattern }\n });\n}\n",
367
+ "// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPatternProperties(stack, context, schema, value) {\n return E.ReduceAnd(G.Entries(schema.patternProperties).map(([pattern, schema]) => {\n const [key, prop] = [Unique(), Unique()];\n const regexp = Externals.CreateVariable(new RegExp(pattern));\n const notKey = E.Not(E.Call(E.Member(regexp, 'test'), [key]));\n const isSchema = BuildSchema(stack, context, schema, prop);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(notKey, E.And(isSchema, addKey)) : E.Or(notKey, isSchema);\n return E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPatternProperties(stack, context, schema, value) {\n return G.Every(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const regexp = new RegExp(pattern);\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return !regexp.test(key) || CheckSchema(stack, context, schema, prop) && context.AddKey(key);\n });\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const nextSchemaPath = `${schemaPath}/patternProperties/${pattern}`;\n const regexp = new RegExp(pattern);\n return G.EveryAll(G.Entries(value), 0, ([key, value]) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const notKey = !regexp.test(key);\n return notKey || ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema, value) && context.AddKey(key);\n });\n });\n}\n",
368
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPrefixItems(stack, context, schema, value) {\n return E.ReduceAnd(schema.prefixItems.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchema(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Or(isLength, guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPrefixItems(stack, context, schema, value) {\n return G.IsEqual(value.length, 0) || G.Every(schema.prefixItems, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchema(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value) {\n return G.IsEqual(value.length, 0) || G.EveryAll(schema.prefixItems, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/prefixItems/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n",
369
+ "import { Settings } from '../../system/settings/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// IsExactOptional\n// ------------------------------------------------------------------\nexport function IsExactOptional(required, key) {\n return required.includes(key) || Settings.Get().exactOptionalPropertyTypes;\n}\n// ------------------------------------------------------------------\n// ExactOptionalBuild\n// ------------------------------------------------------------------\nexport function InexactOptionalBuild(value, key) {\n return E.IsUndefined(E.Member(value, key));\n}\n// ------------------------------------------------------------------\n// ExactOptionalCheck\n// ------------------------------------------------------------------\nexport function InexactOptionalCheck(value, key) {\n return G.IsUndefined(value[key]);\n}\n",
370
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\nimport { InexactOptionalCheck, InexactOptionalBuild, IsExactOptional } from './_exact_optional.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const everyKey = G.Entries(schema.properties).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, E.Member(value, key));\n const addKey = context.AddKey(E.Constant(key));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addKey) : isSchema;\n // --------------------------------------------------------------\n // Optimization\n //\n // If a key is required, we can skip the `notKey` check since this\n // condition is already enforced by Required. This optimization is\n // only valid when Required is evaluated before Properties.\n //\n // --------------------------------------------------------------\n const isProperty = required.includes(key) ? guarded : E.Or(notKey, guarded);\n // --------------------------------------------------------------\n // ExactOptionalProperties\n //\n // By default, TypeScript allows optional properties to be assigned\n // undefined. This is a bit misleading, since 'optional' is usually\n // understood to mean 'the key may be absent', not 'the key may be\n // present with an undefined value'.\n //\n // The 'IsExactOptional' check returns false by default, matching\n // TypeScript's behavior. When exactOptionalPropertyTypes is enabled\n // in tsconfig.json, TypeBox can be configured to use the stricter \n // semantics via System settings:\n //\n // Settings.Set({ exactOptionalPropertyTypes: true })\n //\n // --------------------------------------------------------------\n return IsExactOptional(required, key)\n ? isProperty\n : E.Or(InexactOptionalBuild(value, key), isProperty);\n });\n return E.ReduceAnd(everyKey);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.Every(G.Entries(schema.properties), 0, ([key, schema]) => {\n const isProperty = !G.HasPropertyKey(value, key) || (CheckSchema(stack, context, schema, value[key]) && context.AddKey(key));\n return IsExactOptional(required, key)\n ? isProperty\n : InexactOptionalCheck(value, key) || isProperty;\n });\n return isProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorProperties(stack, context, schemaPath, instancePath, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.EveryAll(G.Entries(schema.properties), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/properties/${key}`;\n const nextInstancePath = `${instancePath}/${key}`;\n // Defer error generation for IsExactOptional\n const isProperty = () => (!G.HasPropertyKey(value, key) || (ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema, value[key]) && context.AddKey(key)));\n return IsExactOptional(required, key)\n ? isProperty()\n : InexactOptionalCheck(value, key) || isProperty();\n });\n return isProperties;\n}\n",
371
+ "// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPropertyNames(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n return E.Every(E.Keys(value), E.Constant(0), [key, _index], BuildSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPropertyNames(stack, context, schema, value) {\n return G.Every(G.Keys(value), 0, (key, _index) => CheckSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value) {\n const propertyNames = [];\n const isPropertyNames = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const nextSchemaPath = `${schemaPath}/propertyNames`;\n const nextContext = new AccumulatedErrorContext();\n const isPropertyName = ErrorSchema(stack, nextContext, nextSchemaPath, nextInstancePath, schema.propertyNames, key);\n if (!isPropertyName)\n propertyNames.push(key);\n return isPropertyName;\n });\n return isPropertyNames || context.AddError({\n keyword: 'propertyNames',\n schemaPath,\n instancePath,\n params: { propertyNames }\n });\n}\n",
372
+ "// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema.$recursiveRef) ?? false;\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema.$recursiveRef) ?? false;\n return (Schema.IsSchema(target) && CheckSchema(stack, context, target, value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value) {\n const target = stack.RecursiveRef(schema.$recursiveRef) ?? false;\n return (Schema.IsSchema(target) && ErrorSchema(stack, context, '#', instancePath, target, value));\n}\n",
373
+ "// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// BuildRefStandard\n// ------------------------------------------------------------------\nfunction BuildRefStandard(stack, context, target, value) {\n const interior = E.ArrowFunction(['context', 'value'], Functions.CreateFunction(stack, context, target, 'value'));\n const exterior = E.ArrowFunction(['context', 'value'], E.Statements([\n E.ConstDeclaration('nextContext', E.New('CheckContext', [])),\n E.ConstDeclaration('result', E.Call(interior, ['nextContext', 'value'])),\n E.If('result', context.Merge('[nextContext]')),\n E.Return('result')\n ]));\n return E.Call(exterior, ['context', value]);\n}\n// ------------------------------------------------------------------\n// BuildRefStandard\n// ------------------------------------------------------------------\nfunction BuildRefFast(stack, context, target, value) {\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// BuildRef\n// ------------------------------------------------------------------\nexport function BuildRef(stack, context, schema, value) {\n const target = stack.Ref(schema.$ref) ?? false;\n return context.UseUnevaluated()\n ? BuildRefStandard(stack, context, target, value)\n : BuildRefFast(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRef(stack, context, schema, value) {\n const target = stack.Ref(schema.$ref) ?? false;\n const nextContext = new CheckContext();\n const result = (Schema.IsSchema(target) && CheckSchema(stack, nextContext, target, value));\n if (result)\n context.Merge([nextContext]);\n return result;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRef(stack, context, schemaPath, instancePath, schema, value) {\n const target = stack.Ref(schema.$ref) ?? false;\n const nextContext = new AccumulatedErrorContext();\n const result = (Schema.IsSchema(target) && ErrorSchema(stack, nextContext, '#', instancePath, target, value));\n if (result)\n context.Merge([nextContext]);\n if (!result)\n nextContext.GetErrors().forEach(error => context.AddError(error));\n return result;\n}\n",
374
+ "// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRequired(stack, context, schema, value) {\n return E.ReduceAnd(schema.required.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRequired(stack, context, schema, value) {\n return G.Every(schema.required, 0, (key) => G.HasPropertyKey(value, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRequired(stack, context, schemaPath, instancePath, schema, value) {\n const requiredProperties = [];\n const isRequired = G.EveryAll(schema.required, 0, (key) => {\n const hasKey = G.HasPropertyKey(value, key);\n if (!hasKey)\n requiredProperties.push(key);\n return hasKey;\n });\n return isRequired || context.AddError({\n keyword: 'required',\n schemaPath,\n instancePath,\n params: { requiredProperties }\n });\n}\n",
375
+ "// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeName\n// ------------------------------------------------------------------\nfunction BuildTypeName(stack, context, type, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? E.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? E.IsArray(value) :\n G.IsEqual(type, 'boolean') ? E.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? E.IsInteger(value) :\n G.IsEqual(type, 'number') ? E.IsNumber(value) :\n G.IsEqual(type, 'null') ? E.IsNull(value) :\n G.IsEqual(type, 'string') ? E.IsString(value) :\n // xschema\n G.IsEqual(type, 'asyncIterator') ? E.IsAsyncIterator(value) :\n G.IsEqual(type, 'bigint') ? E.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? E.IsConstructor(value) :\n G.IsEqual(type, 'function') ? E.IsFunction(value) :\n G.IsEqual(type, 'iterator') ? E.IsIterator(value) :\n G.IsEqual(type, 'symbol') ? E.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? E.IsUndefined(value) :\n G.IsEqual(type, 'void') ? E.IsUndefined(value) :\n E.Constant(true));\n}\nfunction CheckTypeName(stack, context, type, schema, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? G.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? G.IsArray(value) :\n G.IsEqual(type, 'boolean') ? G.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? G.IsInteger(value) :\n G.IsEqual(type, 'number') ? G.IsNumber(value) :\n G.IsEqual(type, 'null') ? G.IsNull(value) :\n G.IsEqual(type, 'string') ? G.IsString(value) :\n // xschema\n G.IsEqual(type, 'asyncIterator') ? G.IsAsyncIterator(value) :\n G.IsEqual(type, 'bigint') ? G.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? G.IsConstructor(value) :\n G.IsEqual(type, 'function') ? G.IsFunction(value) :\n G.IsEqual(type, 'iterator') ? G.IsIterator(value) :\n G.IsEqual(type, 'symbol') ? G.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? G.IsUndefined(value) :\n G.IsEqual(type, 'void') ? G.IsUndefined(value) :\n true);\n}\n// ------------------------------------------------------------------\n// TypeNames\n// ------------------------------------------------------------------\nfunction BuildTypeNames(stack, context, typenames, value) {\n return E.ReduceOr(typenames.map(type => BuildTypeName(stack, context, type, value)));\n}\nfunction CheckTypeNames(stack, context, types, schema, value) {\n return types.some(type => CheckTypeName(stack, context, type, schema, value));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nexport function BuildType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? BuildTypeNames(stack, context, schema.type, value) : BuildTypeName(stack, context, schema.type, value);\n}\nexport function CheckType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n}\nexport function ErrorType(stack, context, schemaPath, instancePath, schema, value) {\n const isType = G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n return isType || context.AddError({\n keyword: 'type',\n schemaPath,\n instancePath,\n params: { type: schema.type }\n });\n}\n",
376
+ "// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedItems(stack, context, schema, value) {\n const [index, item] = [Unique(), Unique()];\n const indices = E.Call(E.Member('context', 'GetIndices'), []);\n const hasIndex = E.Call(E.Member('indices', 'has'), [index]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedItems, item);\n const addIndex = E.Call(E.Member('context', 'AddIndex'), [index]);\n const isEvery = E.Every(value, E.Constant(0), [item, index], E.And(E.Or(hasIndex, isSchema), addIndex));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('indices', indices),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedItems(stack, context, schema, value) {\n const indices = context.GetIndices();\n return G.Every(value, 0, (item, index) => {\n return (indices.has(index) || CheckSchema(stack, context, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value) {\n const indices = context.GetIndices();\n const unevaluatedItems = [];\n const isUnevaluatedItems = G.EveryAll(value, 0, (item, index) => {\n const nextContext = new AccumulatedErrorContext();\n const isEvaluatedItem = (indices.has(index) || ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n if (!isEvaluatedItem)\n unevaluatedItems.push(index);\n return isEvaluatedItem;\n });\n return isUnevaluatedItems || context.AddError({\n keyword: 'unevaluatedItems',\n schemaPath,\n instancePath,\n params: { unevaluatedItems }\n });\n}\n",
377
+ "// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedProperties(stack, context, schema, value) {\n const [key, prop] = [Unique(), Unique()];\n const keys = E.Call(E.Member('context', 'GetKeys'), []);\n const hasKey = E.Call(E.Member('keys', 'has'), [key]);\n const addKey = E.Call(E.Member('context', 'AddKey'), [key]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedProperties, prop);\n const isEvery = E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], E.Or(hasKey, E.And(isSchema, addKey)));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('keys', keys),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedProperties(stack, context, schema, value) {\n const keys = context.GetKeys();\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return keys.has(key)\n || (CheckSchema(stack, context, schema.unevaluatedProperties, prop) && context.AddKey(key));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value) {\n const keys = context.GetKeys();\n const unevaluatedProperties = [];\n const isUnevaluatedProperties = G.EveryAll(G.Entries(value), 0, ([key, prop]) => {\n const nextContext = new AccumulatedErrorContext();\n const isEvaluatedProperty = keys.has(key)\n || (ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedProperties, prop) && context.AddKey(key));\n if (!isEvaluatedProperty)\n unevaluatedProperties.push(key);\n return isEvaluatedProperty;\n });\n return isUnevaluatedProperties || context.AddError({\n keyword: 'unevaluatedProperties',\n schemaPath,\n instancePath,\n params: { unevaluatedProperties }\n });\n}\n",
378
+ "// deno-fmt-ignore-file\nimport { Hashing } from '../../system/hashing/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !G.IsEqual(schema.uniqueItems, false);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUniqueItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const set = E.Member(E.New('Set', [E.Call(E.Member(value, 'map'), [E.Member('Hashing', 'Hash')])]), 'size');\n const isLength = E.Member(value, 'length');\n return E.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUniqueItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set(value.map(Hashing.Hash)).size;\n const isLength = value.length;\n return G.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUniqueItems(stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set();\n const duplicateItems = value.reduce((result, value, index) => {\n const hash = Hashing.Hash(value);\n if (set.has(hash))\n return [...result, index];\n set.add(hash);\n return result;\n }, []);\n const isUniqueItems = G.IsEqual(duplicateItems.length, 0);\n return isUniqueItems || context.AddError({\n keyword: 'uniqueItems',\n schemaPath,\n instancePath,\n params: { duplicateItems },\n });\n}\n",
379
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { BuildRefine, CheckRefine, ErrorRefine } from './_refine.mjs';\nimport { BuildGuard, CheckGuard, ErrorGuard } from './_guard.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildAdditionalItems, CheckAdditionalItems, ErrorAdditionalItems } from './additionalItems.mjs';\nimport { BuildAdditionalProperties, CheckAdditionalProperties, ErrorAdditionalProperties } from './additionalProperties.mjs';\nimport { BuildAllOf, CheckAllOf, ErrorAllOf } from './allOf.mjs';\nimport { BuildAnyOf, CheckAnyOf, ErrorAnyOf } from './anyOf.mjs';\nimport { BuildBooleanSchema, CheckBooleanSchema, ErrorBooleanSchema } from './boolean.mjs';\nimport { BuildConst, CheckConst, ErrorConst } from './const.mjs';\nimport { BuildContains, CheckContains, ErrorContains } from './contains.mjs';\nimport { BuildDependencies, CheckDependencies, ErrorDependencies } from './dependencies.mjs';\nimport { BuildDependentRequired, CheckDependentRequired, ErrorDependentRequired } from './dependentRequired.mjs';\nimport { BuildDependentSchemas, CheckDependentSchemas, ErrorDependentSchemas } from './dependentSchemas.mjs';\nimport { BuildEnum, CheckEnum, ErrorEnum } from './enum.mjs';\nimport { BuildExclusiveMaximum, CheckExclusiveMaximum, ErrorExclusiveMaximum } from './exclusiveMaximum.mjs';\nimport { BuildExclusiveMinimum, CheckExclusiveMinimum, ErrorExclusiveMinimum } from './exclusiveMinimum.mjs';\nimport { BuildFormat, CheckFormat, ErrorFormat } from './format.mjs';\nimport { BuildIf, CheckIf, ErrorIf } from './if.mjs';\nimport { BuildItems, CheckItems, ErrorItems } from './items.mjs';\nimport { BuildMaxContains, CheckMaxContains, ErrorMaxContains } from './maxContains.mjs';\nimport { BuildMaximum, CheckMaximum, ErrorMaximum } from './maximum.mjs';\nimport { BuildMaxItems, CheckMaxItems, ErrorMaxItems } from './maxItems.mjs';\nimport { BuildMaxLength, CheckMaxLength, ErrorMaxLength } from './maxLength.mjs';\nimport { BuildMaxProperties, CheckMaxProperties, ErrorMaxProperties } from './maxProperties.mjs';\nimport { BuildMinContains, CheckMinContains, ErrorMinContains } from './minContains.mjs';\nimport { BuildMinimum, CheckMinimum, ErrorMinimum } from './minimum.mjs';\nimport { BuildMinItems, CheckMinItems, ErrorMinItems } from './minItems.mjs';\nimport { BuildMinLength, CheckMinLength, ErrorMinLength } from './minLength.mjs';\nimport { BuildMinProperties, CheckMinProperties, ErrorMinProperties } from './minProperties.mjs';\nimport { BuildMultipleOf, CheckMultipleOf, ErrorMultipleOf } from './multipleOf.mjs';\nimport { BuildNot, CheckNot, ErrorNot } from './not.mjs';\nimport { BuildOneOf, CheckOneOf, ErrorOneOf } from './oneOf.mjs';\nimport { BuildPattern, CheckPattern, ErrorPattern } from './pattern.mjs';\nimport { BuildPatternProperties, CheckPatternProperties, ErrorPatternProperties } from './patternProperties.mjs';\nimport { BuildPrefixItems, CheckPrefixItems, ErrorPrefixItems } from './prefixItems.mjs';\nimport { BuildProperties, CheckProperties, ErrorProperties } from './properties.mjs';\nimport { BuildPropertyNames, CheckPropertyNames, ErrorPropertyNames } from './propertyNames.mjs';\nimport { BuildRecursiveRef, CheckRecursiveRef, ErrorRecursiveRef } from './recursiveRef.mjs';\nimport { BuildRef, CheckRef, ErrorRef } from './ref.mjs';\nimport { BuildRequired, CheckRequired, ErrorRequired } from './required.mjs';\nimport { BuildType, CheckType, ErrorType } from './type.mjs';\nimport { BuildUnevaluatedItems, CheckUnevaluatedItems, ErrorUnevaluatedItems } from './unevaluatedItems.mjs';\nimport { BuildUnevaluatedProperties, CheckUnevaluatedProperties, ErrorUnevaluatedProperties } from './unevaluatedProperties.mjs';\nimport { BuildUniqueItems, CheckUniqueItems, ErrorUniqueItems } from './uniqueItems.mjs';\n// ----------------------------------------------------------------\n// HasTypeName\n// ----------------------------------------------------------------\nfunction HasTypeName(schema, typename) {\n return Schema.IsType(schema) &&\n (G.IsArray(schema.type) && schema.type.includes(typename) ||\n G.IsEqual(schema.type, typename));\n}\n// ----------------------------------------------------------------\n// HasObject\n// ----------------------------------------------------------------\nfunction HasObjectType(schema) {\n return HasTypeName(schema, 'object');\n}\nfunction HasObjectKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalProperties(schema) ||\n Schema.IsDependencies(schema) ||\n Schema.IsDependentRequired(schema) ||\n Schema.IsDependentSchemas(schema) ||\n Schema.IsProperties(schema) ||\n Schema.IsPatternProperties(schema) ||\n Schema.IsPropertyNames(schema) ||\n Schema.IsMinProperties(schema) ||\n Schema.IsMaxProperties(schema) ||\n Schema.IsRequired(schema) ||\n Schema.IsUnevaluatedProperties(schema));\n}\n// ----------------------------------------------------------------\n// HasArray\n// ----------------------------------------------------------------\nfunction HasArrayType(schema) {\n return HasTypeName(schema, 'array');\n}\nfunction HasArrayKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalItems(schema) ||\n Schema.IsItems(schema) ||\n Schema.IsContains(schema) ||\n Schema.IsMaxContains(schema) ||\n Schema.IsMaxItems(schema) ||\n Schema.IsMinContains(schema) ||\n Schema.IsMinItems(schema) ||\n Schema.IsPrefixItems(schema) ||\n Schema.IsUnevaluatedItems(schema) ||\n Schema.IsUniqueItems(schema));\n}\n// ----------------------------------------------------------------\n// HasString\n// ----------------------------------------------------------------\nfunction HasStringType(schema) {\n return HasTypeName(schema, 'string');\n}\nfunction HasStringKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinLength(schema) ||\n Schema.IsMaxLength(schema) ||\n Schema.IsFormat(schema) ||\n Schema.IsPattern(schema));\n}\n// ----------------------------------------------------------------\n// HasNumber\n// ----------------------------------------------------------------\nfunction HasNumberType(schema) {\n return HasTypeName(schema, 'number') || HasTypeName(schema, 'bigint');\n}\nfunction HasNumberKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinimum(schema) ||\n Schema.IsMaximum(schema) ||\n Schema.IsExclusiveMaximum(schema) ||\n Schema.IsExclusiveMinimum(schema) ||\n Schema.IsMultipleOf(schema));\n}\n// ----------------------------------------------------------------\n// Build\n// ----------------------------------------------------------------\nexport function BuildSchema(stack, context, schema, value) {\n stack.Push(schema);\n const conditions = [];\n if (Schema.IsBooleanSchema(schema))\n return BuildBooleanSchema(stack, context, schema, value);\n if (Schema.IsType(schema))\n conditions.push(BuildType(stack, context, schema, value));\n if (HasObjectKeywords(schema)) {\n const constraints = [];\n if (Schema.IsRequired(schema))\n constraints.push(BuildRequired(stack, context, schema, value));\n if (Schema.IsAdditionalProperties(schema))\n constraints.push(BuildAdditionalProperties(stack, context, schema, value));\n if (Schema.IsDependencies(schema))\n constraints.push(BuildDependencies(stack, context, schema, value));\n if (Schema.IsDependentRequired(schema))\n constraints.push(BuildDependentRequired(stack, context, schema, value));\n if (Schema.IsDependentSchemas(schema))\n constraints.push(BuildDependentSchemas(stack, context, schema, value));\n if (Schema.IsPatternProperties(schema))\n constraints.push(BuildPatternProperties(stack, context, schema, value));\n if (Schema.IsProperties(schema))\n constraints.push(BuildProperties(stack, context, schema, value));\n if (Schema.IsPropertyNames(schema))\n constraints.push(BuildPropertyNames(stack, context, schema, value));\n if (Schema.IsMinProperties(schema))\n constraints.push(BuildMinProperties(stack, context, schema, value));\n if (Schema.IsMaxProperties(schema))\n constraints.push(BuildMaxProperties(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsObjectNotArray(value)), reduced);\n conditions.push(HasObjectType(schema) ? reduced : guarded);\n }\n if (HasArrayKeywords(schema)) {\n const constraints = [];\n if (Schema.IsAdditionalItems(schema))\n constraints.push(BuildAdditionalItems(stack, context, schema, value));\n if (Schema.IsContains(schema))\n constraints.push(BuildContains(stack, context, schema, value));\n if (Schema.IsItems(schema))\n constraints.push(BuildItems(stack, context, schema, value));\n if (Schema.IsMaxContains(schema))\n constraints.push(BuildMaxContains(stack, context, schema, value));\n if (Schema.IsMaxItems(schema))\n constraints.push(BuildMaxItems(stack, context, schema, value));\n if (Schema.IsMinContains(schema))\n constraints.push(BuildMinContains(stack, context, schema, value));\n if (Schema.IsMinItems(schema))\n constraints.push(BuildMinItems(stack, context, schema, value));\n if (Schema.IsPrefixItems(schema))\n constraints.push(BuildPrefixItems(stack, context, schema, value));\n if (Schema.IsUniqueItems(schema))\n constraints.push(BuildUniqueItems(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsArray(value)), reduced);\n conditions.push(HasArrayType(schema) ? reduced : guarded);\n }\n if (HasStringKeywords(schema)) {\n const constraints = [];\n if (Schema.IsFormat(schema))\n constraints.push(BuildFormat(stack, context, schema, value));\n if (Schema.IsMaxLength(schema))\n constraints.push(BuildMaxLength(stack, context, schema, value));\n if (Schema.IsMinLength(schema))\n constraints.push(BuildMinLength(stack, context, schema, value));\n if (Schema.IsPattern(schema))\n constraints.push(BuildPattern(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsString(value)), reduced);\n conditions.push(HasStringType(schema) ? reduced : guarded);\n }\n if (HasNumberKeywords(schema)) {\n const constraints = [];\n if (Schema.IsExclusiveMaximum(schema))\n constraints.push(BuildExclusiveMaximum(stack, context, schema, value));\n if (Schema.IsExclusiveMinimum(schema))\n constraints.push(BuildExclusiveMinimum(stack, context, schema, value));\n if (Schema.IsMaximum(schema))\n constraints.push(BuildMaximum(stack, context, schema, value));\n if (Schema.IsMinimum(schema))\n constraints.push(BuildMinimum(stack, context, schema, value));\n if (Schema.IsMultipleOf(schema))\n constraints.push(BuildMultipleOf(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.Or(E.IsNumber(value), E.IsBigInt(value))), reduced);\n conditions.push(HasNumberType(schema) ? reduced : guarded);\n }\n if (Schema.IsRecursiveRef(schema))\n conditions.push(BuildRecursiveRef(stack, context, schema, value));\n if (Schema.IsRef(schema))\n conditions.push(BuildRef(stack, context, schema, value));\n if (Schema.IsGuard(schema))\n conditions.push(BuildGuard(stack, context, schema, value));\n if (Schema.IsConst(schema))\n conditions.push(BuildConst(stack, context, schema, value));\n if (Schema.IsEnum(schema))\n conditions.push(BuildEnum(stack, context, schema, value));\n if (Schema.IsIf(schema))\n conditions.push(BuildIf(stack, context, schema, value));\n if (Schema.IsNot(schema))\n conditions.push(BuildNot(stack, context, schema, value));\n if (Schema.IsAllOf(schema))\n conditions.push(BuildAllOf(stack, context, schema, value));\n if (Schema.IsAnyOf(schema))\n conditions.push(BuildAnyOf(stack, context, schema, value));\n if (Schema.IsOneOf(schema))\n conditions.push(BuildOneOf(stack, context, schema, value));\n if (Schema.IsUnevaluatedItems(schema))\n conditions.push(E.Or(E.Not(E.IsArray(value)), BuildUnevaluatedItems(stack, context, schema, value)));\n if (Schema.IsUnevaluatedProperties(schema))\n conditions.push(E.Or(E.Not(E.IsObject(value)), BuildUnevaluatedProperties(stack, context, schema, value)));\n if (Schema.IsRefine(schema))\n conditions.push(BuildRefine(stack, context, schema, value));\n const result = E.ReduceAnd(conditions);\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Check\n// ----------------------------------------------------------------\nexport function CheckSchema(stack, context, schema, value) {\n stack.Push(schema);\n const result = Schema.IsBooleanSchema(schema) ? CheckBooleanSchema(stack, context, schema, value) : ((!Schema.IsType(schema) || CheckType(stack, context, schema, value)) &&\n (!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(stack, context, schema, value)) &&\n (!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(stack, context, schema, value)) &&\n (!Schema.IsDependencies(schema) || CheckDependencies(stack, context, schema, value)) &&\n (!Schema.IsDependentRequired(schema) || CheckDependentRequired(stack, context, schema, value)) &&\n (!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(stack, context, schema, value)) &&\n (!Schema.IsPatternProperties(schema) || CheckPatternProperties(stack, context, schema, value)) &&\n (!Schema.IsProperties(schema) || CheckProperties(stack, context, schema, value)) &&\n (!Schema.IsPropertyNames(schema) || CheckPropertyNames(stack, context, schema, value)) &&\n (!Schema.IsMinProperties(schema) || CheckMinProperties(stack, context, schema, value)) &&\n (!Schema.IsMaxProperties(schema) || CheckMaxProperties(stack, context, schema, value)))) &&\n (!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(stack, context, schema, value)) &&\n (!Schema.IsContains(schema) || CheckContains(stack, context, schema, value)) &&\n (!Schema.IsItems(schema) || CheckItems(stack, context, schema, value)) &&\n (!Schema.IsMaxContains(schema) || CheckMaxContains(stack, context, schema, value)) &&\n (!Schema.IsMaxItems(schema) || CheckMaxItems(stack, context, schema, value)) &&\n (!Schema.IsMinContains(schema) || CheckMinContains(stack, context, schema, value)) &&\n (!Schema.IsMinItems(schema) || CheckMinItems(stack, context, schema, value)) &&\n (!Schema.IsPrefixItems(schema) || CheckPrefixItems(stack, context, schema, value)) &&\n (!Schema.IsUniqueItems(schema) || CheckUniqueItems(stack, context, schema, value)))) &&\n (!G.IsString(value) || ((!Schema.IsFormat(schema) || CheckFormat(stack, context, schema, value)) &&\n (!Schema.IsMaxLength(schema) || CheckMaxLength(stack, context, schema, value)) &&\n (!Schema.IsMinLength(schema) || CheckMinLength(stack, context, schema, value)) &&\n (!Schema.IsPattern(schema) || CheckPattern(stack, context, schema, value)))) &&\n (!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(stack, context, schema, value)) &&\n (!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(stack, context, schema, value)) &&\n (!Schema.IsMaximum(schema) || CheckMaximum(stack, context, schema, value)) &&\n (!Schema.IsMinimum(schema) || CheckMinimum(stack, context, schema, value)) &&\n (!Schema.IsMultipleOf(schema) || CheckMultipleOf(stack, context, schema, value)))) &&\n (!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(stack, context, schema, value)) &&\n (!Schema.IsRef(schema) || CheckRef(stack, context, schema, value)) &&\n (!Schema.IsGuard(schema) || CheckGuard(stack, context, schema, value)) &&\n (!Schema.IsConst(schema) || CheckConst(stack, context, schema, value)) &&\n (!Schema.IsEnum(schema) || CheckEnum(stack, context, schema, value)) &&\n (!Schema.IsIf(schema) || CheckIf(stack, context, schema, value)) &&\n (!Schema.IsNot(schema) || CheckNot(stack, context, schema, value)) &&\n (!Schema.IsAllOf(schema) || CheckAllOf(stack, context, schema, value)) &&\n (!Schema.IsAnyOf(schema) || CheckAnyOf(stack, context, schema, value)) &&\n (!Schema.IsOneOf(schema) || CheckOneOf(stack, context, schema, value)) &&\n (!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(stack, context, schema, value))) &&\n (!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(stack, context, schema, value))) &&\n (!Schema.IsRefine(schema) || CheckRefine(stack, context, schema, value)));\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Error\n// ----------------------------------------------------------------\nexport function ErrorSchema(stack, context, schemaPath, instancePath, schema, value) {\n stack.Push(schema);\n const result = (Schema.IsBooleanSchema(schema)) ? ErrorBooleanSchema(stack, context, schemaPath, instancePath, schema, value) : (!!(+(!Schema.IsType(schema) || ErrorType(stack, context, schemaPath, instancePath, schema, value)) &\n +(!(G.IsObject(value) && !G.IsArray(value)) || !!(+(!Schema.IsRequired(schema) || ErrorRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAdditionalProperties(schema) || ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependencies(schema) || ErrorDependencies(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentRequired(schema) || ErrorDependentRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentSchemas(schema) || ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPatternProperties(schema) || ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsProperties(schema) || ErrorProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPropertyNames(schema) || ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinProperties(schema) || ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxProperties(schema) || ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsArray(value) || !!(+(!Schema.IsAdditionalItems(schema) || ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsContains(schema) || ErrorContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsItems(schema) || ErrorItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxContains(schema) || ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxItems(schema) || ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinContains(schema) || ErrorMinContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinItems(schema) || ErrorMinItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPrefixItems(schema) || ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUniqueItems(schema) || ErrorUniqueItems(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsString(value) || !!(+(!Schema.IsFormat(schema) || ErrorFormat(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxLength(schema) || ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinLength(schema) || ErrorMinLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPattern(schema) || ErrorPattern(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!(G.IsNumber(value) || G.IsBigInt(value)) || !!(+(!Schema.IsExclusiveMaximum(schema) || ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsExclusiveMinimum(schema) || ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaximum(schema) || ErrorMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinimum(schema) || ErrorMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMultipleOf(schema) || ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!Schema.IsRecursiveRef(schema) || ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsRef(schema) || ErrorRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsGuard(schema) || ErrorGuard(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsConst(schema) || ErrorConst(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsEnum(schema) || ErrorEnum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsIf(schema) || ErrorIf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsNot(schema) || ErrorNot(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAllOf(schema) || ErrorAllOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAnyOf(schema) || ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsOneOf(schema) || ErrorOneOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value))) &\n +(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value)))) &&\n (!Schema.IsRefine(schema) || ErrorRefine(stack, context, schemaPath, instancePath, schema, value)));\n stack.Pop(schema);\n return result;\n}\n",
380
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Hashing } from '../../system/hashing/index.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\nconst functions = new Map();\n// ------------------------------------------------------------------\n// CreateCallExpression\n// ------------------------------------------------------------------\nfunction CreateCallExpression(context, schema, hash, value) {\n return context.UseUnevaluated()\n ? E.Call(`check_${hash}`, ['context', value])\n : E.Call(`check_${hash}`, [value]);\n}\n// ------------------------------------------------------------------\n// CreateFunctionExpression\n// ------------------------------------------------------------------\nfunction CreateFunctionExpression(stack, context, schema, hash) {\n const expression = BuildSchema(stack, context, schema, 'value');\n return context.UseUnevaluated()\n ? E.ConstDeclaration(`check_${hash}`, E.ArrowFunction(['context', 'value'], expression))\n : E.ConstDeclaration(`check_${hash}`, E.ArrowFunction(['value'], expression));\n}\n// ------------------------------------------------------------------\n// ResetFunctions\n// ------------------------------------------------------------------\nexport function ResetFunctions() {\n functions.clear();\n}\n// ------------------------------------------------------------------\n// GetFunctions\n// ------------------------------------------------------------------\nexport function GetFunctions() {\n return [...functions.values()];\n}\n// ------------------------------------------------------------------\n// CreateFunction\n// ------------------------------------------------------------------\nexport function CreateFunction(stack, context, schema, value) {\n const hash = Schema.IsSchemaObject(schema) ? Hashing.Hash({ __baseURL: stack.BaseURL().href, ...schema }) : Hashing.Hash(schema);\n const call = CreateCallExpression(context, schema, hash, value);\n if (functions.has(hash))\n return call;\n functions.set(hash, '');\n functions.set(hash, CreateFunctionExpression(stack, context, schema, hash));\n return call;\n}\n",
381
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Asserts\n// ------------------------------------------------------------------\nfunction AssertNotRoot(indices) {\n if (indices.length === 0)\n throw Error('Cannot set root');\n}\nfunction AssertCanSet(value) {\n if (!Guard.IsObject(value))\n throw Error('Cannot set value');\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\nfunction IsNumericIndex(index) {\n return /^(0|[1-9]\\d*)$/.test(index);\n}\nfunction TakeIndexRight(indices) {\n return [\n indices.slice(0, indices.length - 1),\n indices.slice(indices.length - 1)[0]\n ];\n}\nfunction HasIndex(index, value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, index);\n}\nfunction GetIndex(index, value) {\n return Guard.IsObject(value) ? value[index] : undefined;\n}\nfunction GetIndices(indices, value) {\n return indices.reduce((value, index) => GetIndex(index, value), value);\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\n/** Returns an array of path indices for the given pointer */\nexport function Indices(pointer) {\n if (Guard.IsEqual(pointer.length, 0))\n return [];\n const indices = pointer.split(\"/\").map(index => index.replace(/~1/g, \"/\").replace(/~0/g, \"~\"));\n return (indices.length > 0 && indices[0] === '') ? indices.slice(1) : indices;\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if a value exists at the current pointer */\nexport function Has(value, pointer) {\n let current = value;\n return Indices(pointer).every(index => {\n if (!HasIndex(index, current))\n return false;\n current = current[index];\n return true;\n });\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a value at the pointer, or undefined if not exists */\nexport function Get(value, pointer) {\n const indices = Indices(pointer);\n return GetIndices(indices, value);\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a value at the given pointer. May throw if the target value is not indexable */\nexport function Set(value, pointer, next) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n parent[index] = next;\n return value;\n}\n// ------------------------------------------------------------------\n// Delete\n// ------------------------------------------------------------------\n/** Deletes the value at the given pointer. May throw if the target value is not indexable */\nexport function Delete(value, pointer) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n if (Guard.IsArray(parent) && IsNumericIndex(index)) {\n parent.splice(+index, 1);\n }\n else {\n delete parent[index];\n }\n return value;\n}\n",
382
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Pointer } from '../pointer/index.mjs';\nimport * as Schema from '../types/index.mjs';\n// ------------------------------------------------------------------\n// Match: Id\n// ------------------------------------------------------------------\nfunction MatchId(schema, base, ref) {\n if (schema.$id === ref.hash)\n return schema;\n const absoluteId = new URL(schema.$id, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n if (Guard.IsEqual(absoluteId.pathname, absoluteRef.pathname)) {\n return ref.hash.startsWith('#') ? MatchHash(schema, base, ref) : schema;\n }\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: Anchor\n// ------------------------------------------------------------------\nfunction MatchAnchor(schema, base, ref) {\n const absoluteAnchor = new URL(`#${schema.$anchor}`, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n if (Guard.IsEqual(absoluteAnchor.href, absoluteRef.href))\n return schema;\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: Hash\n// ------------------------------------------------------------------\nfunction MatchHash(schema, base, ref) {\n if (ref.href.endsWith('#'))\n return schema;\n return ref.hash.startsWith('#')\n ? Pointer.Get(schema, decodeURIComponent(ref.hash.slice(1)))\n : undefined;\n}\n// ------------------------------------------------------------------\n// Match\n// ------------------------------------------------------------------\nfunction Match(schema, base, ref) {\n if (Schema.IsId(schema)) {\n const result = MatchId(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Schema.IsAnchor(schema)) {\n const result = MatchAnchor(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n return MatchHash(schema, base, ref);\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nfunction FromArray(schema, base, ref) {\n return schema.reduce((result, item) => {\n const match = FromValue(item, base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nfunction FromObject(schema, base, ref) {\n return Guard.Keys(schema).reduce((result, key) => {\n const match = FromValue(schema[key], base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromValue\n// ------------------------------------------------------------------\nfunction FromValue(schema, base, ref) {\n base = Schema.IsSchemaObject(schema) && Schema.IsId(schema) ? new URL(schema.$id, base.href) : base;\n if (Schema.IsSchemaObject(schema)) {\n const result = Match(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Guard.IsArray(schema))\n return FromArray(schema, base, ref);\n if (Guard.IsObject(schema))\n return FromObject(schema, base, ref);\n return undefined;\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nexport function Ref(schema, ref) {\n const defaultBase = new URL('http://unknown');\n const initialBase = Schema.IsId(schema) ? new URL(schema.$id, defaultBase.href) : defaultBase;\n const initialRef = new URL(ref, initialBase.href);\n return FromValue(schema, initialBase, initialRef);\n}\n",
383
+ "// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G } from '../../guard/index.mjs';\nimport { Resolve } from '../resolve/index.mjs';\nexport class Stack {\n constructor(context, schema) {\n this.context = context;\n this.schema = schema;\n this.ids = [];\n this.anchors = [];\n this.recursiveAnchors = [];\n this.dynamicAnchors = [];\n }\n // ----------------------------------------------------------------\n // Base\n // ----------------------------------------------------------------\n BaseURL() {\n return this.ids.reduce((result, schema) => new URL(schema.$id, result), new URL('http://unknown'));\n }\n Base() {\n return this.ids[this.ids.length - 1] ?? this.schema;\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema))\n this.ids.push(schema);\n if (Schema.IsAnchor(schema))\n this.anchors.push(schema);\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.push(schema);\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.push(schema);\n }\n Pop(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema))\n this.ids.pop();\n if (Schema.IsAnchor(schema))\n this.anchors.pop();\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.pop();\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.pop();\n }\n // ----------------------------------------------------------------\n // Ref\n // ----------------------------------------------------------------\n FromContext(ref) {\n return G.HasPropertyKey(this.context, ref) ? this.context[ref] : undefined;\n }\n FromRef(ref) {\n return !ref.startsWith('#')\n ? Resolve.Ref(this.schema, ref)\n : Resolve.Ref(this.Base(), ref);\n }\n Ref(ref) {\n return this.FromContext(ref) ?? this.FromRef(ref);\n }\n // ----------------------------------------------------------------\n // RecursiveRef\n // ----------------------------------------------------------------\n RecursiveRef(recursiveRef) {\n if (Schema.IsRecursiveAnchorTrue(this.Base())) {\n return Resolve.Ref(this.recursiveAnchors[0], recursiveRef);\n }\n return Resolve.Ref(this.Base(), recursiveRef);\n }\n}\n",
384
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Environment } from '../system/environment/index.mjs';\nimport { Hashing } from '../system/hashing/index.mjs';\nimport { Guard } from '../guard/index.mjs';\nimport { Format } from '../format/index.mjs';\nimport * as Engine from './engine/index.mjs';\n// ------------------------------------------------------------------\n// CreateCode\n// ------------------------------------------------------------------\nfunction CreateCode(build) {\n const functions = build.Functions().join(';\\n');\n const statements = build.UseUnevaluated()\n ? ['const context = new CheckContext({}, {})', `return ${build.Call()}`]\n : [`return ${build.Call()}`];\n return `${functions}; return (value) => { ${statements.join('; ')} }`;\n}\n// ------------------------------------------------------------------\n// CreateEvaluatedCheck\n// ------------------------------------------------------------------\nfunction CreateEvaluatedCheck(build, code) {\n const factory = new globalThis.Function('CheckContext', 'Guard', 'Format', 'Hashing', build.External().identifier, code);\n return factory(Engine.CheckContext, Guard, Format, Hashing, build.External().variables);\n}\n// ------------------------------------------------------------------\n// CreateDynamicCheck\n// ------------------------------------------------------------------\nfunction CreateDynamicCheck(build) {\n const stack = new Engine.Stack(build.Context(), build.Schema());\n const context = new Engine.CheckContext();\n return (value) => Engine.CheckSchema(stack, context, build.Schema(), value);\n}\n// ------------------------------------------------------------------\n// CreateCheck\n// ------------------------------------------------------------------\nfunction CreateCheck(build, code) {\n return Environment.CanEvaluate()\n ? CreateEvaluatedCheck(build, code)\n : CreateDynamicCheck(build);\n}\n// ------------------------------------------------------------------\n// BuildResult\n// ------------------------------------------------------------------\nexport class BuildResult {\n constructor(context, schema, external, functions, call, useUnevaluated) {\n this.context = context;\n this.schema = schema;\n this.external = external;\n this.functions = functions;\n this.call = call;\n this.useUnevaluated = useUnevaluated;\n }\n /** Returns the Context used for this build */\n Context() {\n return this.context;\n }\n /** Returns the Schema used for this build */\n Schema() {\n return this.schema;\n }\n /** Returns true if this build requires a Unevaluated context */\n UseUnevaluated() {\n return this.useUnevaluated;\n }\n /** Returns external variables */\n External() {\n return this.external;\n }\n /** Returns check functions */\n Functions() {\n return this.functions;\n }\n /** Return entry function call. */\n Call() {\n return this.call;\n }\n /** Evaluates the build into a validation function */\n Evaluate() {\n const Code = CreateCode(this);\n const Check = CreateCheck(this, Code);\n return { IsEvaluated: Environment.CanEvaluate(), Code, Check };\n }\n}\n/** Builds a schema into a optimized runtime validator */\nexport function Build(...args) {\n const [context, schema] = Arguments.Match(args, {\n 2: (context, schema) => [context, schema],\n 1: (schema) => [{}, schema]\n });\n Engine.ResetExternal();\n Engine.ResetFunctions();\n const stack = new Engine.Stack(context, schema);\n const build = new Engine.BuildContext(Engine.HasUnevaluated(context, schema));\n const call = Engine.CreateFunction(stack, build, schema, 'value');\n const functions = Engine.GetFunctions();\n const externals = Engine.GetExternal();\n return new BuildResult(context, schema, externals, functions, call, build.UseUnevaluated());\n}\n",
385
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Checks a value against the provided schema */\nexport function Check(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const stack = new Engine.Stack(context, schema);\n const checkContext = new Engine.CheckContext();\n return Engine.CheckSchema(stack, checkContext, schema, value);\n}\n",
386
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Settings } from '../system/settings/index.mjs';\nimport { Get as LocaleGet } from '../system/locale/_config.mjs';\nimport { Guard } from '../guard/index.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Checks a value and returns validation errors */\nexport function Errors(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const settings = Settings.Get();\n const locale = LocaleGet();\n const errors = [];\n const stack = new Engine.Stack(context, schema);\n const errorContext = new Engine.ErrorContext(error => {\n if (Guard.IsGreaterEqualThan(errors.length, settings.maxErrors))\n return;\n return errors.push({ ...error, message: locale(error) });\n });\n const result = Engine.ErrorSchema(stack, errorContext, '#', '', schema, value);\n return [result, errors];\n}\n",
387
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Check as SchemaCheck } from '../../schema/index.mjs';\n/** Checks a value matches the provided type. */\nexport function Check(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n return SchemaCheck(context, type, value);\n}\n",
388
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Errors as SchemaErrors, } from '../../schema/index.mjs';\n/**\n * Performs an exhaustive Check on the specified value and reports any errors found.\n * If no errors are found, an empty array is returned. Unlike Check, this function\n * does not terminate at the first occurance of an error. For best performance, call\n * Check first and call Errors only if Check returns false.\n */\nexport function Errors(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const [_, errors] = SchemaErrors(context, type, value);\n return errors;\n}\n",
389
+ "import { Arguments } from '../../system/arguments/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\n// ------------------------------------------------------------------\n// AssertError\n// ------------------------------------------------------------------\nexport class AssertError extends Error {\n constructor(source, value, errors) {\n super(source);\n Object.defineProperty(this, 'cause', {\n value: { source, errors, value },\n writable: false,\n configurable: false,\n enumerable: false\n });\n }\n}\n/** Asserts the a value matches the given type. This function returns a TypeScript type asserts predicate and will throw AssertError if value does not match. */\nexport function Assert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n const check = Check(context, type, value);\n if (!check)\n throw new AssertError('Assert', value, Errors(context, type, value));\n}\n",
390
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n return value.map((value) => FromType(context, type.items, value));\n}\n",
391
+ "// deno-fmt-ignore-file\nexport function FromBase(context, type, value) {\n return type.Clean(value);\n}\n",
392
+ "// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n",
393
+ "// deno-fmt-ignore-file\nimport { Evaluate, IsObject, Options } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\n// ------------------------------------------------------------------\n// EvaluateIntersection\n// ------------------------------------------------------------------\nfunction EvaluateIntersection(type) {\n // Note: reinterpret unevaluatedProperties as additionalProperties\n const additionalProperties = Guard.HasPropertyKey(type, 'unevaluatedProperties')\n ? { additionalProperties: type.unevaluatedProperties }\n : {};\n const evaluated = Evaluate(type);\n return IsObject(evaluated)\n ? Options(evaluated, additionalProperties)\n : evaluated;\n}\n// ------------------------------------------------------------------\n// FromIntersection\n// ------------------------------------------------------------------\nexport function FromIntersect(context, type, value) {\n // Note: Evaluate and route back to FromType in evaluated form (likely an Object)\n const evaluated = EvaluateIntersection(type);\n return FromType(context, evaluated, value);\n}\n",
394
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nexport function GetAdditionalProperties(type) {\n const additionalProperties = Guard.HasPropertyKey(type, 'additionalProperties') ? type.additionalProperties : undefined;\n return additionalProperties;\n}\n",
395
+ "// deno-fmt-ignore-file\nimport { IsSchema } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value) || Guard.IsArray(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n for (const key of Guard.Keys(value)) {\n if (Guard.HasPropertyKey(type.properties, key)) {\n value[key] = FromType(context, type.properties[key], value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n",
396
+ "// deno-fmt-ignore-file\nimport { IsSchema, RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromRecord\n// ------------------------------------------------------------------\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n const [recordPattern, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (recordPattern.test(key)) {\n value[key] = FromType(context, recordValue, value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n",
397
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n",
398
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const length = Math.min(value.length, schema.items.length);\n for (let index = 0; index < length; index++) {\n value[index] = FromType(context, schema.items[index], value[index]);\n }\n return Guard.IsGreaterThan(value.length, length)\n ? value.slice(0, length)\n : value;\n}\n",
399
+ "// deno-fmt-ignore-file\nimport { Guard, GlobalsGuard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// ClassInstance\n//\n// TypeBox does not support cloning arbitrary class instances. It treats\n// class instances as atomic values, similar to number, boolean, and\n// string. In the future, an implementation could detect the presence of\n// a .clone() method, but no formal specification for this behavior\n// exists, so we don't.\n//\n// ------------------------------------------------------------------\nfunction FromClassInstance(value) {\n return value; // atomic\n}\n// ------------------------------------------------------------------\n// ObjectInstance\n// ------------------------------------------------------------------\nfunction FromObjectInstance(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Clone(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Clone(value[key]);\n }\n return result;\n}\nObject.create({});\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n return (Guard.IsClassInstance(value)\n ? FromClassInstance(value)\n : FromObjectInstance(value));\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n return value.map((element) => Clone(element));\n}\n// ------------------------------------------------------------------\n// TypeArray\n// ------------------------------------------------------------------\nfunction FromTypedArray(value) {\n return value.slice();\n}\n// ------------------------------------------------------------------\n// Map\n// ------------------------------------------------------------------\nfunction FromMap(value) {\n return new Map(Clone([...value.entries()]));\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\nfunction FromSet(value) {\n return new Set(Clone([...value.values()]));\n}\n// ------------------------------------------------------------------\n// Value\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/**\n * Returns a Clone of the given value. This function is similar to structuredClone()\n * but also supports deep cloning instances of Map, Set and TypeArray.\n */\nexport function Clone(value) {\n return (GlobalsGuard.IsTypeArray(value) ? FromTypedArray(value) :\n GlobalsGuard.IsMap(value) ? FromMap(value) :\n GlobalsGuard.IsSet(value) ? FromSet(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsObject(value) ? FromObject(value) :\n FromValue(value));\n}\n",
400
+ "// deno-fmt-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(context, type, value) {\n for (const schema of type.anyOf) {\n const clean = FromType(context, schema, Clone(value));\n if (Check(context, schema, clean))\n return clean;\n }\n return value;\n}\n",
401
+ "// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromBase } from './from-base.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(context, type, value) {\n return (T.IsArray(type) ? FromArray(context, type, value) :\n T.IsBase(type) ? FromBase(context, type, value) :\n T.IsCyclic(type) ? FromCyclic(context, type, value) :\n T.IsIntersect(type) ? FromIntersect(context, type, value) :\n T.IsObject(type) ? FromObject(context, type, value) :\n T.IsRecord(type) ? FromRecord(context, type, value) :\n T.IsRef(type) ? FromRef(context, type, value) :\n T.IsTuple(type) ? FromTuple(context, type, value) :\n T.IsUnion(type) ? FromUnion(context, type, value) :\n value);\n}\n",
402
+ "import { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.mjs';\n/**\n * Cleans a value by removing non-evaluated properties and elements as derived from the provided type.\n * This function returns unknown so callers should Check the return value before use. This function\n * mutates the provided value. If mutation is not wanted, you should Clone the value before passing\n * to this function.\n */\nexport function Clean(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n return FromType(context, type, value);\n}\n",
403
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { Guard } from '../../guard/index.mjs';\nexport function FromArray(context, type, value) {\n return Guard.IsArray(value)\n ? value.map(value => FromType(context, type.items, value))\n : value;\n}\n",
404
+ "// deno-fmt-ignore-file\nexport function FromBase(context, type, value) {\n return type.Convert(value);\n}\n",
405
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsOk(value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, 'value');\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\nexport function Ok(value) {\n return { value };\n}\nexport function Fail() {\n return undefined;\n}\n",
406
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromBigInt(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, true) ? Ok(BigInt(1)) : Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Ok(BigInt(Math.trunc(value)));\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nconst bigintPattern = /^-?(0|[1-9]\\d*)n$/;\nconst decimalPattern = /^-?(0|[1-9]\\d*)\\.\\d+$/;\nconst integerPattern = /^-?(0|[1-9]\\d*)$/;\nfunction IsStringBigIntLike(value) {\n return bigintPattern.test(value);\n}\nfunction IsStringDecimalLike(value) {\n return decimalPattern.test(value);\n}\nfunction IsStringIntegerLike(value) {\n return integerPattern.test(value);\n}\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n return (IsStringBigIntLike(value) ? Ok(BigInt(value.slice(0, value.length - 1))) :\n IsStringDecimalLike(value) ? Ok(BigInt(value.split('.')[0])) :\n IsStringIntegerLike(value) ? Ok(BigInt(value)) :\n Guard.IsEqual(lowercase, 'false') ? Ok(BigInt(0)) :\n Guard.IsEqual(lowercase, 'true') ? Ok(BigInt(1)) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryBigInt(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
407
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return (Guard.IsEqual(value, BigInt(0)) ? Ok(false) :\n Guard.IsEqual(value, BigInt(1)) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromBoolean(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return (Guard.IsEqual(value, 0) ? Ok(false) :\n Guard.IsEqual(value, 1) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(false);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n return (Guard.IsEqual(value.toLowerCase(), 'false') ? Ok(false) :\n Guard.IsEqual(value.toLowerCase(), 'true') ? Ok(true) :\n Guard.IsEqual(value, '0') ? Ok(false) :\n Guard.IsEqual(value, '1') ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(false);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryBoolean(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
408
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromNull(value) {\n return Ok(null);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(null);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryNull(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
409
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail, IsOk } from './try-result.mjs';\n// ------------------------------------------------------------------\n// Two-Phase\n// ------------------------------------------------------------------\nimport { TryBigInt } from './try-bigint.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nconst maxBigInt = BigInt(Number.MAX_SAFE_INTEGER);\nconst minBigInt = BigInt(Number.MIN_SAFE_INTEGER);\nfunction CanBigIntDowncast(value) {\n return (value <= maxBigInt && value >= minBigInt);\n}\nfunction FromBigInt(value) {\n return CanBigIntDowncast(value) ? Ok(Number(value)) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return value ? Ok(1) : Ok(0);\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromNumber(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(0);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const coerced = +value;\n if (Guard.IsNumber(coerced))\n return Ok(coerced);\n const lowercase = value.toLowerCase();\n if (Guard.IsEqual(lowercase, 'false'))\n return Ok(0);\n if (Guard.IsEqual(lowercase, 'true'))\n return Ok(1);\n const result = TryBigInt(value);\n if (IsOk(result))\n return FromBigInt(result.value);\n return Fail();\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(0);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryNumber(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
410
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok('null');\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromString(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok('');\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryString(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
411
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(undefined);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromUndefined(value) {\n return Ok(undefined);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryUndefined(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n",
412
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromBigInt(context, type, value) {\n if (Guard.IsBigInt(value))\n return value;\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
413
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromBoolean(context, type, value) {\n if (Guard.IsBoolean(value))\n return value;\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
414
+ "// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n",
415
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(context, type, value) {\n const matched = type.anyOf.some(type => Check(context, type, value));\n if (matched)\n return value;\n const candidates = type.anyOf.map(type => FromType(context, type, Clone(value)));\n const selected = candidates.find(value => Check(context, type, value));\n return Guard.IsUndefined(selected) ? value : selected;\n}\n",
416
+ "// deno-fmt-ignore-file\nimport { EnumToUnion } from '../../type/engine/enum/index.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromEnum(context, type, value) {\n const union = EnumToUnion(type);\n return FromUnion(context, union, value);\n}\n",
417
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromInteger(context, type, value) {\n if (Guard.IsInteger(value))\n return value;\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? Math.trunc(result.value) : value;\n}\n",
418
+ "// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type, value) {\n const evaluatedType = Evaluate(type);\n return FromType(context, evaluatedType, value);\n}\n",
419
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsLiteralBigInt, IsLiteralBoolean, IsLiteralNumber, IsLiteralString } from '../../type/index.mjs';\nimport { Try } from './try/index.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromLiteralBigInt(context, type, value) {\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromLiteralBoolean(context, type, value) {\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromLiteralNumber(context, type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromLiteralString(context, type, value) {\n const result = Try.TryString(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// deno-coverage-ignore-start - unreachable | guarded\nexport function FromLiteral(context, type, value) {\n if (Guard.IsEqual(type.const, value))\n return value;\n return (IsLiteralBigInt(type) ? FromLiteralBigInt(context, type, value) :\n IsLiteralBoolean(type) ? FromLiteralBoolean(context, type, value) :\n IsLiteralNumber(type) ? FromLiteralNumber(context, type, value) :\n IsLiteralString(type) ? FromLiteralString(context, type, value) :\n Unreachable());\n}\n// deno-coverage-ignore-stop\n",
420
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromNull(context, type, value) {\n if (Guard.IsNull(value))\n return value;\n const result = Try.TryNull(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
421
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromNumber(context, type, value) {\n if (Guard.IsNumber(value))\n return value;\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
422
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\n/**\n * Used by Object and Record Types. The entries are derived from the known\n * properties obtained from 'properties' and 'patternProperties' respectively.\n */\nexport function FromAdditionalProperties(context, entries, additionalProperties, value) {\n const keys = Guard.Keys(value);\n for (const [regexp, _] of entries) {\n for (const key of keys) {\n if (!regexp.test(key)) {\n value[key] = FromType(context, additionalProperties, value[key]);\n }\n }\n }\n return value;\n}\n",
423
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// IsOptionalUndefined\n//\n// Indicates whether a key should be excluded from processing when it is \n// defined as optional in the schema and its corresponding value is undefined. \n// This case cannot be reliably distinguished from an omitted key, and therefore \n// introduces ambiguity between a key that is not provided and one that is \n// explicitly assigned an undefined value.\n// ------------------------------------------------------------------\nexport function IsOptionalUndefined(property, key, value) {\n return IsOptional(property) && Guard.IsUndefined(value[key]);\n}\n",
424
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { FromAdditionalProperties } from './from-additional.mjs';\nimport { IsOptionalUndefined } from '../shared/index.mjs';\n// ------------------------------------------------------------------\n// FromProperties\n// ------------------------------------------------------------------\nfunction FromProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.properties);\n const keys = Guard.Keys(value);\n for (const [regexp, property] of entries) {\n for (const key of keys) {\n // Ignore for non-present or optional-undefined\n if (!regexp.test(key) || IsOptionalUndefined(property, key, value))\n continue;\n value[key] = FromType(context, property, value[key]);\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromObject(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromProperties(context, type, value)\n : value;\n}\n",
425
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { FromAdditionalProperties } from './from-additional.mjs';\nfunction FromPatternProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.patternProperties);\n const keys = Guard.Keys(value);\n for (const [regexp, schema] of entries) {\n for (const key of keys) {\n if (regexp.test(key)) {\n value[key] = FromType(context, schema, value[key]);\n }\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromRecord(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromPatternProperties(context, type, value)\n : value;\n}\n",
426
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { Guard } from '../../guard/index.mjs';\nexport function FromRef(context, type, value) {\n return (Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value);\n}\n",
427
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromString(context, type, value) {\n if (Guard.IsString(value))\n return value;\n const result = Try.TryString(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
428
+ "// deno-fmt-ignore-file\nimport { TemplateLiteralDecode } from '../../type/engine/template-literal/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(context, type, value) {\n const decoded = TemplateLiteralDecode(type.pattern);\n return FromType(context, decoded, value);\n}\n",
429
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let index = 0; index < Math.min(type.items.length, value.length); index++) {\n value[index] = FromType(context, type.items[index], value[index]);\n }\n return value;\n}\n",
430
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromUndefined(context, type, value) {\n if (Guard.IsUndefined(value))\n return value;\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? result.value : value;\n}\n",
431
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromVoid(context, type, value) {\n if (Guard.IsUndefined(value))\n return value;\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? (void 0) : value;\n}\n",
432
+ "// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromBase } from './from-base.mjs';\nimport { FromBigInt } from './from-bigint.mjs';\nimport { FromBoolean } from './from-boolean.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromEnum } from './from-enum.mjs';\nimport { FromInteger } from './from-integer.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromLiteral } from './from-literal.mjs';\nimport { FromNull } from './from-null.mjs';\nimport { FromNumber } from './from-number.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromString } from './from-string.mjs';\nimport { FromTemplateLiteral } from './from-template-literal.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUndefined } from './from-undefined.mjs';\nimport { FromUnion } from './from-union.mjs';\nimport { FromVoid } from './from-void.mjs';\nexport function FromType(context, type, value) {\n return (T.IsArray(type) ? FromArray(context, type, value) :\n T.IsBase(type) ? FromBase(context, type, value) :\n T.IsBigInt(type) ? FromBigInt(context, type, value) :\n T.IsBoolean(type) ? FromBoolean(context, type, value) :\n T.IsCyclic(type) ? FromCyclic(context, type, value) :\n T.IsEnum(type) ? FromEnum(context, type, value) :\n T.IsInteger(type) ? FromInteger(context, type, value) :\n T.IsIntersect(type) ? FromIntersect(context, type, value) :\n T.IsLiteral(type) ? FromLiteral(context, type, value) :\n T.IsNull(type) ? FromNull(context, type, value) :\n T.IsNumber(type) ? FromNumber(context, type, value) :\n T.IsObject(type) ? FromObject(context, type, value) :\n T.IsRecord(type) ? FromRecord(context, type, value) :\n T.IsRef(type) ? FromRef(context, type, value) :\n T.IsString(type) ? FromString(context, type, value) :\n T.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type, value) :\n T.IsTuple(type) ? FromTuple(context, type, value) :\n T.IsUndefined(type) ? FromUndefined(context, type, value) :\n T.IsUnion(type) ? FromUnion(context, type, value) :\n T.IsVoid(type) ? FromVoid(context, type, value) :\n value);\n}\n",
433
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.mjs';\n/**\n * Converts a value to the given type, coercing interior values if a reasonable conversion is possible. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Convert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n",
434
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(context, type.items, value[i]);\n }\n return value;\n}\n",
435
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file \nexport function FromBase(context, type, value) {\n return type.Default(value);\n}\n",
436
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n",
437
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\n// ------------------------------------------------------------------\n// FromDefault\n// ------------------------------------------------------------------\nexport function FromDefault(type, value) {\n // we only use defaults when values are undefined, exit early\n if (!Guard.IsUndefined(value))\n return value;\n return Guard.IsFunction(type.default) ? type.default() : Clone(type.default);\n}\n",
438
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type, value) {\n const evaluted = Evaluate(type);\n return FromType(context, evaluted, value);\n}\n",
439
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { IsAdditionalProperties } from '../../schema/types/index.mjs';\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const knownPropertyKeys = Guard.Keys(type.properties);\n // Properties\n for (const key of knownPropertyKeys) {\n // note: we need to traverse into the object and test if the return value\n // yielded a non undefined result. Here we interpret an undefined result as\n // a non assignable property and continue.\n const propertyValue = FromType(context, type.properties[key], value[key]);\n if (Guard.IsUndefined(propertyValue))\n continue;\n value[key] = FromType(context, type.properties[key], value[key]);\n }\n // return if not additional properties\n if (!IsAdditionalProperties(type))\n return value;\n // AdditionalProperties\n for (const key of Guard.Keys(value)) {\n if (knownPropertyKeys.includes(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n",
440
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { IsAdditionalProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n // PatternProperties\n const [recordKey, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (!(recordKey.test(key) && IsDefault(recordValue)))\n continue;\n value[key] = FromType(context, recordValue, value[key]);\n }\n // AdditionalProperties\n if (!IsAdditionalProperties(type))\n return value;\n for (const key of Guard.Keys(value)) {\n if (recordKey.test(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n",
441
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n",
442
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const [items, max] = [schema.items, Math.max(schema.items.length, value.length)];\n for (let i = 0; i < max; i++) {\n if (i < items.length)\n value[i] = FromType(context, items[i], value[i]);\n }\n return value;\n}\n",
443
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(context, schema, value) {\n for (const inner of schema.anyOf) {\n const result = FromType(context, inner, Clone(value));\n if (Check(context, inner, result)) {\n return result;\n }\n }\n return value;\n}\n",
444
+ "// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsDefault } from '../../schema/index.mjs';\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromBase } from './from-base.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromDefault } from './from-default.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromType(context, type, value) {\n const defaulted = IsDefault(type) ? FromDefault(type, value) : value;\n return (T.IsArray(type) ? FromArray(context, type, defaulted) :\n T.IsBase(type) ? FromBase(context, type, defaulted) :\n T.IsCyclic(type) ? FromCyclic(context, type, defaulted) :\n T.IsIntersect(type) ? FromIntersect(context, type, defaulted) :\n T.IsObject(type) ? FromObject(context, type, defaulted) :\n T.IsRecord(type) ? FromRecord(context, type, defaulted) :\n T.IsRef(type) ? FromRef(context, type, defaulted) :\n T.IsTuple(type) ? FromTuple(context, type, defaulted) :\n T.IsUnion(type) ? FromUnion(context, type, defaulted) :\n defaulted);\n}\n",
445
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.mjs';\n/**\n * Patches missing properties on the value using default annotations specified on the provided type. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Default(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n",
446
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\n// ------------------------------------------------------------------\n// Pipeline\n// ------------------------------------------------------------------\n/** Creates a value processing pipeline. */\nexport function Pipeline(pipeline) {\n return (...args) => {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return pipeline.reduce((result, func) => func(context, type, result), value);\n };\n}\n",
447
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(context, type, value) {\n return type['~codec'].decode(value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(context, type, value) {\n return type['~codec'].encode(value);\n}\n// ------------------------------------------------------------------\n// Callback\n// ------------------------------------------------------------------\nexport function Callback(direction, context, type, value) {\n if (!IsCodec(type))\n return value;\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(context, type, value)\n : Encode(context, type, value);\n}\n",
448
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(direction, context, type.items, value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return exterior;\n for (let i = 0; i < exterior.length; i++) {\n exterior[i] = FromType(direction, context, type.items, exterior[i]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nexport function FromArray(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
449
+ "// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromCyclic(direction, context, type, value) {\n value = FromType(direction, { ...context, ...type.$defs }, Ref(type.$ref), value);\n return Callback(direction, context, type, value);\n}\n",
450
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n for (const schema of type.allOf) {\n value = FromType(direction, context, schema, value);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n let exterior = Callback(direction, context, type, value);\n for (const schema of type.allOf) {\n exterior = FromType(direction, context, schema, exterior);\n }\n return exterior;\n}\nexport function FromIntersect(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
451
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\nimport { IsOptionalUndefined } from '../shared/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsObjectNotArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(value, key) || IsOptionalUndefined(type.properties[key], key, value))\n continue;\n value[key] = FromType(direction, context, type.properties[key], value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(exterior, key) || IsOptionalUndefined(type.properties[key], key, exterior))\n continue;\n exterior[key] = FromType(direction, context, type.properties[key], exterior[key]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
452
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsObjectNotArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(value)) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!regexp.test(key))\n Unreachable();\n // deno-coverage-ignore-stop\n value[key] = FromType(direction, context, RecordValue(type), value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(exterior)) {\n if (!regexp.test(key))\n continue;\n exterior[key] = FromType(direction, context, RecordValue(type), exterior[key]);\n }\n return exterior;\n}\nexport function FromRecord(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
453
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromRef(direction, context, type, value) {\n value = Guard.HasPropertyKey(context, type.$ref)\n ? FromType(direction, context, context[type.$ref], value)\n : value;\n return Callback(direction, context, type, value);\n}\n",
454
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\n for (let i = 0; i < Math.min(type.items.length, value.length); i++) {\n value[i] = FromType(direction, context, type.items[i], value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return value;\n for (let i = 0; i < Math.min(type.items.length, exterior.length); i++) {\n exterior[i] = FromType(direction, context, type.items[i], exterior[i]);\n }\n return exterior;\n}\nexport function FromTuple(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
455
+ "// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { Callback } from './callback.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Check } from '../check/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | checked\nfunction Decode(direction, context, type, value) {\n for (const schema of type.anyOf) {\n if (!Check(context, schema, value))\n continue;\n const variant = FromType(direction, context, schema, value);\n return Callback(direction, context, type, variant);\n }\n return Unreachable();\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n let exterior = Callback(direction, context, type, value);\n for (const schema of type.anyOf) {\n const variant = FromType(direction, context, schema, Clone(exterior));\n if (!Check(context, schema, variant))\n continue;\n return variant;\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromUnion\n// ------------------------------------------------------------------\nexport function FromUnion(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n",
456
+ "// deno-fmt-ignore-file\nimport * as Type from '../../type/index.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUnion } from './from-union.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromType(direction, context, type, value) {\n return (Type.IsArray(type) ? FromArray(direction, context, type, value) :\n Type.IsCyclic(type) ? FromCyclic(direction, context, type, value) :\n Type.IsIntersect(type) ? FromIntersect(direction, context, type, value) :\n Type.IsObject(type) ? FromObject(direction, context, type, value) :\n Type.IsRecord(type) ? FromRecord(direction, context, type, value) :\n Type.IsRef(type) ? FromRef(direction, context, type, value) :\n Type.IsTuple(type) ? FromTuple(direction, context, type, value) :\n Type.IsUnion(type) ? FromUnion(direction, context, type, value) :\n Callback(direction, context, type, value));\n}\n",
457
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from-type.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class DecodeError extends AssertError {\n constructor(value, errors) {\n super('Decode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new DecodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// DecodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Decode callbacks only */\nexport function DecodeUnsafe(context, type, value) {\n return FromType('Decode', context, type, value);\n}\n// ------------------------------------------------------------------\n// Decoder\n// ------------------------------------------------------------------\nconst Decoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n (context, type, value) => DecodeUnsafe(context, type, value)\n]);\n/**\n * Decodes a value against the given type by applying a sequence of Clone,\n * Default, Convert, and Clone operations, then executing any embedded Decode\n * callbacks. If the processing sequence fails to produce a value matching the\n * provided type, a DecodeError is thrown.\n */\nexport function Decode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Decoder(context, type, value);\n}\n",
458
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from-type.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class EncodeError extends AssertError {\n constructor(value, errors) {\n super('Encode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new EncodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// EncodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Encode callbacks only */\nexport function EncodeUnsafe(context, type, value) {\n return FromType('Encode', context, type, value);\n}\n// ------------------------------------------------------------------\n// Encoder\n// ------------------------------------------------------------------\nconst Encoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => EncodeUnsafe(context, type, value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n]);\n/** Encodes a value. */\nexport function Encode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Encoder(context, type, value);\n}\n",
459
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\nimport { IsArray } from '../../type/index.mjs';\nimport { IsCyclic } from '../../type/index.mjs';\nimport { IsIntersect } from '../../type/index.mjs';\nimport { IsObject } from '../../type/index.mjs';\nimport { IsRecord, RecordValue } from '../../type/index.mjs';\nimport { IsRef, Ref } from '../../type/index.mjs';\nimport { IsTuple } from '../../type/index.mjs';\nimport { IsUnion } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(context, type) {\n return IsCodec(type) || FromType(context, type.items);\n}\n// ------------------------------------------------------------------\n// Cyclic\n// ------------------------------------------------------------------\nfunction FromCyclic(context, type) {\n return IsCodec(type) || FromRef({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\nfunction FromIntersect(context, type) {\n return IsCodec(type) || type.allOf.some((type) => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(context, type) {\n return IsCodec(type) || Guard.Keys(type.properties).some(key => {\n return FromType(context, type.properties[key]);\n });\n}\n// ------------------------------------------------------------------\n// Record\n// ------------------------------------------------------------------\nfunction FromRecord(context, type) {\n return IsCodec(type) || FromType(context, RecordValue(type));\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nfunction FromRef(context, type) {\n if (visited.has(type.$ref))\n return false;\n visited.add(type.$ref);\n return IsCodec(type) || (Guard.HasPropertyKey(context, type.$ref)\n && FromType(context, context[type.$ref]));\n}\n// ------------------------------------------------------------------\n// Tuple\n// ------------------------------------------------------------------\nfunction FromTuple(context, type) {\n return IsCodec(type) || type.items.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Union\n// ------------------------------------------------------------------\nfunction FromUnion(context, type) {\n return IsCodec(type) || type.anyOf.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nfunction FromType(context, type) {\n return (IsArray(type) ? FromArray(context, type) :\n IsCyclic(type) ? FromCyclic(context, type) :\n IsIntersect(type) ? FromIntersect(context, type) :\n IsObject(type) ? FromObject(context, type) :\n IsRecord(type) ? FromRecord(context, type) :\n IsRef(type) ? FromRef(context, type) :\n IsTuple(type) ? FromTuple(context, type) :\n IsUnion(type) ? FromUnion(context, type) :\n IsCodec(type));\n}\n// ------------------------------------------------------------------\n// Visited\n// ------------------------------------------------------------------\nconst visited = new Set();\n/** Returns true if this type contains a Codec */\nexport function HasCodec(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n visited.clear();\n return FromType(context, type);\n}\n",
460
+ "// deno-fmt-ignore-file\nexport class CreateError extends Error {\n constructor(type, message) {\n super(message);\n this.type = type;\n }\n}\n",
461
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nexport function FromDefault(context, schema) {\n return Guard.IsFunction(schema.default)\n ? schema.default(schema)\n : Guard.IsObject(schema.default)\n ? Clone(schema.default)\n : schema.default;\n}\n",
462
+ "// deno-fmt-ignore-file\nimport { IsUniqueItems, IsDefault, IsMinItems } from '../../schema/types/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromArray(context, type) {\n if (IsUniqueItems(type) && !IsDefault(type))\n throw new CreateError(type, 'Arrays with uniqueItems constraints must specify a default annotation');\n const length = IsMinItems(type) ? type.minItems : 0;\n return Array.from({ length }, () => FromType(context, type.items));\n}\n",
463
+ "// deno-fmt-ignore-file\nasync function* CreateAsyncIterator() { }\nexport function FromAsyncIterator(context, type) {\n return CreateAsyncIterator();\n}\n",
464
+ "// deno-fmt-ignore-file\nexport function FromBase(context, type) {\n return type.Create();\n}\n",
465
+ "// deno-fmt-ignore-file\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromBigInt(context, type) {\n return (IsExclusiveMinimum(type) ? BigInt(type.exclusiveMinimum) + BigInt(1) :\n IsMinimum(type) ? BigInt(type.minimum) :\n BigInt(0));\n}\n",
466
+ "// deno-fmt-ignore-file\nexport function FromBoolean(context, type) {\n return false;\n}\n",
467
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromConstructor(context, type) {\n const instanceType = FromType(context, type.instanceType);\n return class {\n constructor() {\n Object.assign(this, instanceType);\n }\n };\n}\n",
468
+ "// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromCyclic(context, type) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n",
469
+ "// deno-fmt-ignore-file\nimport { EnumToUnion } from '../../type/engine/enum/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromEnum(context, type) {\n return FromType(context, EnumToUnion(type));\n}\n",
470
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromFunction(context, type) {\n const returnType = FromType(context, type.returnType);\n return () => returnType;\n}\n",
471
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromInteger(context, type) {\n return ((IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum)) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n",
472
+ "// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type) {\n return FromType(context, Evaluate(type));\n}\n",
473
+ "// deno-fmt-ignore-file\nfunction* CreateIterator() { }\nexport function FromIterator(context, type) {\n return CreateIterator();\n}\n",
474
+ "// deno-fmt-ignore-file\nexport function FromLiteral(context, type) {\n return type.const;\n}\n",
475
+ "// deno-fmt-ignore-file\nimport { CreateError } from './error.mjs';\nexport function FromNever(context, type) {\n throw new CreateError(type, 'Cannot create TNever types');\n}\n",
476
+ "// deno-fmt-ignore-file\nexport function FromNull(context, type) {\n return null;\n}\n",
477
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromNumber(context, type) {\n return (IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n",
478
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromObject(context, type) {\n const required = Guard.IsUndefined(type.required) ? [] : type.required;\n return required.reduce((result, key) => {\n return { ...result, [key]: FromType(context, type.properties[key]) };\n }, {});\n}\n",
479
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromPromise(context, type) {\n return Promise.resolve(FromType(context, type.item));\n}\n",
480
+ "// deno-fmt-ignore-file\nimport { IsMinProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRecord(context, type) {\n if (IsMinProperties(type) && !IsDefault(type))\n throw new CreateError(type, 'Record with the minProperties constraint must have a default annotation');\n return {};\n}\n",
481
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRef(context, type) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref])\n : (() => { throw new CreateError(type, 'Unable to deref Ref'); })();\n}\n",
482
+ "// deno-fmt-ignore-file\nimport { IsPattern, IsFormat, IsDefault, IsMinLength } from '../../schema/types/index.mjs';\nexport function FromString(context, type) {\n const needsDefault = (IsPattern(type) || IsFormat(type)) && !IsDefault(type);\n if (needsDefault)\n throw Error('Strings with format or pattern constraints must specify default');\n const minLength = IsMinLength(type) ? type.minLength : 0;\n return ''.padEnd(minLength);\n}\n",
483
+ "// deno-fmt-ignore-file\nexport function FromSymbol(context, type) {\n return Symbol();\n}\n",
484
+ "// deno-fmt-ignore-file\nimport { IsString } from '../../type/index.mjs';\nimport { TemplateLiteralDecode } from '../../type/engine/template-literal/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromTemplateLiteral(context, type) {\n const decoded = TemplateLiteralDecode(type.pattern);\n if (IsString(decoded))\n throw new CreateError(type, 'Unable to create TemplateLiteral due to infinite type expansion');\n return FromType(context, decoded);\n}\n",
485
+ "// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(context, type) {\n return Array.from({ length: type.minItems }, (_, i) => FromType(context, type.items[i]));\n}\n",
486
+ "// deno-fmt-ignore-file\nexport function FromUndefined(context, type) {\n return undefined;\n}\n",
487
+ "// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(context, type) {\n if (Guard.IsEqual(type.anyOf.length, 0)) {\n throw Error('Unable to create Union with no variants');\n }\n return FromType(context, type.anyOf[0]);\n}\n",
488
+ "// deno-fmt-ignore-file\nexport function FromVoid(context, type) {\n return void 0;\n}\n",
489
+ "// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport * as S from '../../schema/types/index.mjs';\nimport { FromDefault } from './from-default.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromAsyncIterator } from './from-async-iterator.mjs';\nimport { FromBase } from './from-base.mjs';\nimport { FromBigInt } from './from-bigint.mjs';\nimport { FromBoolean } from './from-boolean.mjs';\nimport { FromConstructor } from './from-constructor.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromEnum } from './from-enum.mjs';\nimport { FromFunction } from './from-function.mjs';\nimport { FromInteger } from './from-integer.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromIterator } from './from-iterator.mjs';\nimport { FromLiteral } from \"./from-literal.mjs\";\nimport { FromNever } from './from-never.mjs';\nimport { FromNull } from './from-null.mjs';\nimport { FromNumber } from './from-number.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromPromise } from './from-promise.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromString } from './from-string.mjs';\nimport { FromSymbol } from './from-symbol.mjs';\nimport { FromTemplateLiteral } from './from-template-literal.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { FromUndefined } from './from-undefined.mjs';\nimport { FromUnion } from './from-union.mjs';\nimport { FromVoid } from './from-void.mjs';\nexport function FromType(context, type) {\n return (\n // -----------------------------------------------------\n // Default\n // -----------------------------------------------------\n S.IsDefault(type) ? FromDefault(context, type) :\n // -----------------------------------------------------\n // Types\n // -----------------------------------------------------\n T.IsArray(type) ? FromArray(context, type) :\n T.IsAsyncIterator(type) ? FromAsyncIterator(context, type) :\n T.IsBase(type) ? FromBase(context, type) :\n T.IsBigInt(type) ? FromBigInt(context, type) :\n T.IsBoolean(type) ? FromBoolean(context, type) :\n T.IsConstructor(type) ? FromConstructor(context, type) :\n T.IsCyclic(type) ? FromCyclic(context, type) :\n T.IsEnum(type) ? FromEnum(context, type) :\n T.IsFunction(type) ? FromFunction(context, type) :\n T.IsInteger(type) ? FromInteger(context, type) :\n T.IsIntersect(type) ? FromIntersect(context, type) :\n T.IsIterator(type) ? FromIterator(context, type) :\n T.IsLiteral(type) ? FromLiteral(context, type) :\n T.IsNever(type) ? FromNever(context, type) :\n T.IsNull(type) ? FromNull(context, type) :\n T.IsNumber(type) ? FromNumber(context, type) :\n T.IsObject(type) ? FromObject(context, type) :\n T.IsPromise(type) ? FromPromise(context, type) :\n T.IsRecord(type) ? FromRecord(context, type) :\n T.IsRef(type) ? FromRef(context, type) :\n T.IsString(type) ? FromString(context, type) :\n T.IsSymbol(type) ? FromSymbol(context, type) :\n T.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type) :\n T.IsTuple(type) ? FromTuple(context, type) :\n T.IsUndefined(type) ? FromUndefined(context, type) :\n T.IsUnion(type) ? FromUnion(context, type) :\n T.IsVoid(type) ? FromVoid(context, type) :\n undefined);\n}\n",
490
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.mjs';\n/** Creates a value from the provided type. This function will use `default` annotations if present. */\nexport function Create(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type],\n });\n return FromType(context, type);\n}\n",
491
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class ParseError extends AssertError {\n constructor(value, errors) {\n super('Parse', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new ParseError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// Parser\n// ------------------------------------------------------------------\nexport const Parser = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value)\n]);\n/**\n * Parses a value with the given type. The function will Check the value and return\n * early if it matches the provided type. If the value does not match, it is processed\n * through a sequence of Clone, Default, Convert, and Clean operations and checked again.\n * A `ParseError` is thrown if the value fails to match after the processing sequence.\n */\nexport function Parse(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const result = Check(context, type, value) ? value : Parser(context, type, value);\n return result;\n}\n",
492
+ "// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nexport const Insert = T.Object({\n type: T.Literal('insert'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Update = Object({\n type: T.Literal('update'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Delete = T.Object({\n type: T.Literal('delete'),\n path: T.String(),\n});\nexport const Edit = T.Union([Insert, Update, Delete]);\n",
493
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Environment } from '../system/environment/index.mjs';\nimport { Base } from '../type/index.mjs';\nimport { Errors, Clean, Convert, Create, Default, Decode, Encode, HasCodec, Parser } from '../value/index.mjs';\nimport { Build } from '../schema/index.mjs';\n// ------------------------------------------------------------------\n// Validator<...>\n// ------------------------------------------------------------------\nexport class Validator extends Base {\n /** Constructs a Validator. */\n constructor(...args) {\n super();\n const matched = Arguments.Match(args, {\n 6: (context, type, isEvalulated, hasCodec, code, check) => [context, type, isEvalulated, hasCodec, code, check],\n 2: (context, type) => [context, type]\n });\n if (matched.length === 6) {\n const [context, type, isEvaluated, hasCodec, code, check] = matched;\n this.context = context;\n this.type = type;\n this.isEvaluated = isEvaluated;\n this.hasCodec = hasCodec;\n this.code = code;\n this.check = check;\n }\n else {\n const [context, type] = matched;\n const result = Build(context, type).Evaluate();\n this.hasCodec = HasCodec(context, type);\n this.context = context;\n this.type = type;\n this.isEvaluated = result.IsEvaluated;\n this.code = result.Code;\n this.check = result.Check;\n }\n }\n // ----------------------------------------------------------------\n // IsEvaluated\n // ----------------------------------------------------------------\n /** Returns true if this validator is using runtime eval optimizations. */\n IsEvaluated() {\n return this.isEvaluated;\n }\n // ----------------------------------------------------------------\n // Context | Type\n // ----------------------------------------------------------------\n /** Returns the Context for this validator. */\n Context() {\n return this.context;\n }\n /** Returns the Type for this validator. */\n Type() {\n return this.type;\n }\n // ----------------------------------------------------------------\n // Code\n // ----------------------------------------------------------------\n /** Returns the generated code for this validator. */\n Code() {\n return this.code;\n }\n // ----------------------------------------------------------------\n // Base<...>\n // ----------------------------------------------------------------\n /** Checks a value matches the Validator type. */\n Check(value) {\n return this.check(value);\n }\n /** Returns errors for the given value. */\n Errors(value) {\n if (Environment.CanEvaluate() && this.check(value))\n return [];\n return Errors(this.context, this.type, value);\n }\n /** Cleans a value using the Validator type. */\n Clean(value) {\n return Clean(this.context, this.type, value);\n }\n /** Converts a value using the Validator type. */\n Convert(value) {\n return Convert(this.context, this.type, value);\n }\n /** Creates a value using the Validator type. */\n Create() {\n return Create(this.context, this.type);\n }\n /** Creates defaults using the Validator type. */\n Default(value) {\n return Default(this.context, this.type, value);\n }\n /** Clones this validator. */\n Clone() {\n return new Validator(this.context, this.type, this.isEvaluated, this.hasCodec, this.code, this.check);\n }\n // ----------------------------------------------------------------\n // Parse | Decode | Encode\n // ----------------------------------------------------------------\n /** Parses a value */\n Parse(value) {\n const result = this.Check(value) ? value : Parser(this.context, this.type, value);\n return result;\n }\n /** Decodes a value */\n Decode(value) {\n const result = this.hasCodec ? Decode(this.context, this.type, value) : this.Parse(value);\n return result;\n }\n /** Encodes a value */\n Encode(value) {\n const result = this.hasCodec ? Encode(this.context, this.type, value) : this.Parse(value);\n return result;\n }\n}\n",
494
+ "// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Validator } from './validator.mjs';\n/** Compiles a type into a high performance Validator */\nexport function Compile(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n return new Validator(context, type);\n}\n",
495
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { TSESLint } from \"@typescript-eslint/utils\";\n\ntype MessageIds = \"banReactFC\";\n\ninterface RuleDocsWithRecommended extends TSESLint.RuleMetaDataDocs {\n\treadonly recommended?: boolean;\n}\n\nconst BANNED_FC_NAMES = new Set([\"FC\", \"FunctionComponent\", \"VFC\", \"VoidFunctionComponent\"]);\n\nconst banReactFC: TSESLint.RuleModuleWithMetaDocs<MessageIds, [], RuleDocsWithRecommended> = {\n\tcreate(context) {\n\t\treturn {\n\t\t\tVariableDeclarator(node: TSESTree.VariableDeclarator) {\n\t\t\t\tconst { typeAnnotation } = node.id;\n\t\t\t\tif (!typeAnnotation) return;\n\n\t\t\t\tconst inner = typeAnnotation.typeAnnotation;\n\t\t\t\tif (inner.type !== TSESTree.AST_NODE_TYPES.TSTypeReference) return;\n\n\t\t\t\tconst { typeName } = inner;\n\n\t\t\t\tlet isBannedFc = false;\n\t\t\t\tif (typeName.type === TSESTree.AST_NODE_TYPES.Identifier)\n\t\t\t\t\tisBannedFc = BANNED_FC_NAMES.has(typeName.name);\n\t\t\t\telse if (typeName.type === TSESTree.AST_NODE_TYPES.TSQualifiedName)\n\t\t\t\t\tisBannedFc = BANNED_FC_NAMES.has(typeName.right.name);\n\n\t\t\t\tif (!isBannedFc || node.init?.type !== TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) return;\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tmessageId: \"banReactFC\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [],\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Ban React.FC and similar component type annotations. Use explicit function declarations instead.\",\n\t\t\trecommended: true,\n\t\t},\n\t\tmessages: {\n\t\t\tbanReactFC:\n\t\t\t\t\"Avoid React.FC/FunctionComponent/VFC/VoidFunctionComponent types. They break debug information and profiling. Use explicit function declarations instead: `function Component(props: Props) { ... }`\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default banReactFC;\n",
496
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport { ESLintUtils, type TSESLint } from \"@typescript-eslint/utils\";\n\nexport interface ComplexityConfiguration {\n\treadonly baseThreshold: number;\n\treadonly warnThreshold: number;\n\treadonly errorThreshold: number;\n\treadonly interfacePenalty: number;\n\treadonly performanceMode: boolean;\n}\n\ninterface ComplexityCache {\n\treadonly nodeCache: WeakMap<object, number>;\n\treadonly visitedNodes: WeakSet<object>;\n}\n\nconst DEFAULT_CONFIGURATION: ComplexityConfiguration = {\n\tbaseThreshold: 10,\n\terrorThreshold: 25,\n\tinterfacePenalty: 20,\n\tperformanceMode: true,\n\twarnThreshold: 15,\n};\n\nconst SHOULD_NOT_NOT_RETURN_TYPE = new Set<string>([\n\tTSESTree.AST_NODE_TYPES.FunctionDeclaration,\n\tTSESTree.AST_NODE_TYPES.FunctionExpression,\n]);\n\nfunction hasTypeAnnotationProperty(node: object): node is { typeAnnotation: unknown } {\n\treturn \"typeAnnotation\" in node;\n}\n\nfunction hasTypeAnnotation(node: { type: string; id?: unknown; returnType?: unknown }): boolean {\n\tif (\n\t\tnode.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&\n\t\tnode.id &&\n\t\ttypeof node.id === \"object\" &&\n\t\thasTypeAnnotationProperty(node.id)\n\t)\n\t\treturn !!node.id.typeAnnotation;\n\n\tif (SHOULD_NOT_NOT_RETURN_TYPE.has(node.type)) return !!node.returnType;\n\treturn false;\n}\n\nfunction getTypeName(node: TSESTree.Node): string | undefined {\n\treturn node.type === TSESTree.AST_NODE_TYPES.TSInterfaceDeclaration ||\n\t\tnode.type === TSESTree.AST_NODE_TYPES.TSTypeAliasDeclaration\n\t\t? node.id.name\n\t\t: undefined;\n}\n\nfunction isIanitorValidator(node: {\n\ttype: string;\n\tcallee?: { type: string; object?: { type: string; name?: string } };\n}): boolean {\n\treturn (\n\t\tnode.type === TSESTree.AST_NODE_TYPES.CallExpression &&\n\t\tnode.callee?.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tnode.callee.object?.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\tnode.callee.object.name === \"Ianitor\"\n\t);\n}\n\nfunction extractIanitorStaticVariable(typeAnnotation: TSESTree.TypeNode): string | undefined {\n\tlet currentType = typeAnnotation;\n\n\tif (\n\t\tcurrentType.type === TSESTree.AST_NODE_TYPES.TSTypeReference &&\n\t\tcurrentType.typeName.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\tcurrentType.typeName.name === \"Readonly\" &&\n\t\tcurrentType.typeArguments?.params[0]\n\t)\n\t\tcurrentType = currentType.typeArguments.params[0];\n\n\tif (currentType.type !== TSESTree.AST_NODE_TYPES.TSTypeReference) return undefined;\n\n\tconst { typeName, typeArguments } = currentType;\n\tconst firstParam = typeArguments?.params[0];\n\n\tif (\n\t\ttypeName.type === TSESTree.AST_NODE_TYPES.TSQualifiedName &&\n\t\ttypeName.left.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\ttypeName.left.name === \"Ianitor\" &&\n\t\ttypeName.right.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\ttypeName.right.name === \"Static\" &&\n\t\tfirstParam?.type === TSESTree.AST_NODE_TYPES.TSTypeQuery &&\n\t\tfirstParam.exprName.type === TSESTree.AST_NODE_TYPES.Identifier\n\t)\n\t\treturn firstParam.exprName.name;\n\n\treturn undefined;\n}\n\nfunction hasIanitorStaticType(typeAnnotation: TSESTree.TypeNode): boolean {\n\tlet currentType = typeAnnotation;\n\n\tif (\n\t\tcurrentType.type === TSESTree.AST_NODE_TYPES.TSTypeReference &&\n\t\tcurrentType.typeName.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\tcurrentType.typeName.name === \"Readonly\" &&\n\t\tcurrentType.typeArguments?.params[0]\n\t)\n\t\tcurrentType = currentType.typeArguments.params[0];\n\n\tif (currentType.type !== TSESTree.AST_NODE_TYPES.TSTypeReference) return false;\n\n\tconst { typeName, typeArguments } = currentType;\n\n\treturn (\n\t\ttypeName.type === TSESTree.AST_NODE_TYPES.TSQualifiedName &&\n\t\ttypeName.left.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\ttypeName.left.name === \"Ianitor\" &&\n\t\ttypeName.right.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\ttypeName.right.name === \"Static\" &&\n\t\ttypeArguments?.params[0]?.type === TSESTree.AST_NODE_TYPES.TSTypeQuery\n\t);\n}\n\nfunction calculateIanitorComplexity(node: {\n\treadonly callee?: {\n\t\treadonly type: string;\n\t\treadonly property?: { type: string; name?: string };\n\t};\n\treadonly arguments?: ReadonlyArray<{ type?: string; properties?: Array<unknown> }>;\n}): number {\n\tconst callee = node.callee;\n\tif (\n\t\tcallee?.type !== TSESTree.AST_NODE_TYPES.MemberExpression ||\n\t\tcallee.property?.type !== TSESTree.AST_NODE_TYPES.Identifier\n\t)\n\t\treturn 0;\n\n\tconst method = callee.property.name;\n\tswitch (method) {\n\t\tcase \"interface\":\n\t\tcase \"strictInterface\": {\n\t\t\tconst properties = node.arguments?.[0];\n\t\t\treturn properties?.type === TSESTree.AST_NODE_TYPES.ObjectExpression\n\t\t\t\t? 10 + (properties.properties?.length || 0) * 3\n\t\t\t\t: 0;\n\t\t}\n\n\t\tcase \"optional\":\n\t\tcase \"array\":\n\t\tcase \"instanceIsA\":\n\t\tcase \"instanceOf\":\n\t\t\treturn 2;\n\n\t\tcase \"record\":\n\t\tcase \"map\":\n\t\t\treturn 3;\n\n\t\tcase \"union\":\n\t\tcase \"intersection\":\n\t\t\treturn (node.arguments?.length || 0) * 2;\n\n\t\tcase \"string\":\n\t\tcase \"number\":\n\t\tcase \"boolean\":\n\t\t\treturn 1;\n\n\t\tdefault:\n\t\t\treturn 1;\n\t}\n}\n\ntype MessageIds = \"complexInterfaceNeedsCheck\" | \"missingIanitorCheckType\";\ntype Options = [Partial<ComplexityConfiguration>];\n\nconst createRule = ESLintUtils.RuleCreator(\n\t(name) => `https://github.com/howmanysmall/eslint-cease-nonsense-rules/blob/main/docs/rules/${name}.md`,\n);\n\nconst enforceIanitorCheckType = createRule<Options, MessageIds>({\n\tcreate(context) {\n\t\tconst config: ComplexityConfiguration = { ...DEFAULT_CONFIGURATION, ...context.options[0] };\n\t\tconst cache: ComplexityCache = {\n\t\t\tnodeCache: new WeakMap(),\n\t\t\tvisitedNodes: new WeakSet(),\n\t\t};\n\t\tconst ianitorStaticVariables = new Set<string>();\n\t\tconst depthMultiplierCache = new Map<number, number>();\n\t\tconst complexityCeiling = config.errorThreshold * 2;\n\n\t\tfunction getDepthMultiplier(depth: number): number {\n\t\t\tconst cached = depthMultiplierCache.get(depth);\n\t\t\tif (cached !== undefined) return cached;\n\t\t\tconst computed = Math.log2(depth + 1);\n\t\t\tdepthMultiplierCache.set(depth, computed);\n\t\t\treturn computed;\n\t\t}\n\n\t\tfunction addScore(current: number, addition: number): number {\n\t\t\tconst nextScore = current + addition;\n\t\t\tif (!config.performanceMode) return nextScore;\n\t\t\treturn nextScore > complexityCeiling ? complexityCeiling : nextScore;\n\t\t}\n\n\t\tfunction calculateStructuralComplexity(node: TSESTree.Node, depth = 0): number {\n\t\t\tconst cached = cache.nodeCache.get(node);\n\t\t\tif (cached !== undefined) return cached;\n\n\t\t\tif (cache.visitedNodes.has(node)) return 50;\n\n\t\t\tcache.visitedNodes.add(node);\n\n\t\t\tlet score = 0;\n\t\t\tconst nextDepth = depth + 1;\n\n\t\t\tswitch (node.type) {\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSStringKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSNumberKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSBooleanKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSNullKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSUndefinedKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSVoidKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSSymbolKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSBigIntKeyword:\n\t\t\t\t\tscore = 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSNeverKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSUnknownKeyword:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSAnyKeyword:\n\t\t\t\t\tscore = 0;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSInterfaceDeclaration: {\n\t\t\t\t\tconst iface = node;\n\t\t\t\t\tscore = config.interfacePenalty;\n\t\t\t\t\tconst extendsLength = iface.extends?.length;\n\t\t\t\t\tif (extendsLength) score = addScore(score, extendsLength * 5);\n\n\t\t\t\t\tconst { body } = iface.body;\n\t\t\t\t\tscore = addScore(score, body.length * 2);\n\t\t\t\t\tfor (const member of body) {\n\t\t\t\t\t\tconst typeAnnotation = \"typeAnnotation\" in member ? member.typeAnnotation : undefined;\n\t\t\t\t\t\tif (typeAnnotation)\n\t\t\t\t\t\t\tscore = addScore(\n\t\t\t\t\t\t\t\tscore,\n\t\t\t\t\t\t\t\tcalculateStructuralComplexity(typeAnnotation.typeAnnotation, nextDepth),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSTypeLiteral: {\n\t\t\t\t\tconst { members } = node;\n\t\t\t\t\tscore = 2 + members.length * 0.5;\n\t\t\t\t\tfor (const member of members) {\n\t\t\t\t\t\tconst typeAnnotation = \"typeAnnotation\" in member ? member.typeAnnotation : undefined;\n\t\t\t\t\t\tif (typeAnnotation)\n\t\t\t\t\t\t\tscore = addScore(\n\t\t\t\t\t\t\t\tscore,\n\t\t\t\t\t\t\t\tcalculateStructuralComplexity(typeAnnotation.typeAnnotation, nextDepth),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSUnionType: {\n\t\t\t\t\tconst { types } = node;\n\t\t\t\t\tfor (const type of types) score = addScore(score, calculateStructuralComplexity(type, nextDepth));\n\t\t\t\t\tscore = addScore(score, 2 * (types.length - 1));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSIntersectionType: {\n\t\t\t\t\tconst { types } = node;\n\t\t\t\t\tfor (const type of types) score = addScore(score, calculateStructuralComplexity(type, nextDepth));\n\t\t\t\t\tscore = addScore(score, 3 * types.length);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSArrayType:\n\t\t\t\t\tscore = addScore(calculateStructuralComplexity(node.elementType, nextDepth), 1);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSTupleType: {\n\t\t\t\t\tconst { elementTypes } = node;\n\t\t\t\t\tscore = 1;\n\t\t\t\t\tfor (const element of elementTypes) {\n\t\t\t\t\t\tconst elementType = element.type;\n\t\t\t\t\t\tif (elementType !== \"TSRestType\" && elementType !== \"TSOptionalType\")\n\t\t\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(element, nextDepth));\n\t\t\t\t\t}\n\t\t\t\t\tscore = addScore(score, 1.5 * elementTypes.length);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSTypeReference: {\n\t\t\t\t\tscore = 2;\n\t\t\t\t\tconst { typeArguments } = node;\n\t\t\t\t\tif (typeArguments) {\n\t\t\t\t\t\tfor (const param of typeArguments.params)\n\t\t\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(param, nextDepth) + 2);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSConditionalType: {\n\t\t\t\t\tscore = 3;\n\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.checkType, nextDepth));\n\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.extendsType, nextDepth));\n\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.trueType, nextDepth));\n\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.falseType, nextDepth));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSMappedType: {\n\t\t\t\t\tscore = 5;\n\t\t\t\t\tif (node.constraint)\n\t\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.constraint, nextDepth));\n\t\t\t\t\tif (node.typeAnnotation)\n\t\t\t\t\t\tscore = addScore(score, calculateStructuralComplexity(node.typeAnnotation, nextDepth));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSFunctionType:\n\t\t\t\tcase TSESTree.AST_NODE_TYPES.TSMethodSignature: {\n\t\t\t\t\tconst func = node as TSESTree.TSFunctionType | TSESTree.TSMethodSignature;\n\t\t\t\t\tscore = 2;\n\t\t\t\t\tfor (const param of func.params) {\n\t\t\t\t\t\tconst typeAnnotation = \"typeAnnotation\" in param ? param.typeAnnotation : undefined;\n\t\t\t\t\t\tif (typeAnnotation)\n\t\t\t\t\t\t\tscore = addScore(\n\t\t\t\t\t\t\t\tscore,\n\t\t\t\t\t\t\t\tcalculateStructuralComplexity(typeAnnotation.typeAnnotation, nextDepth),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (func.returnType)\n\t\t\t\t\t\tscore = addScore(\n\t\t\t\t\t\t\tscore,\n\t\t\t\t\t\t\tcalculateStructuralComplexity(func.returnType.typeAnnotation, nextDepth),\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tscore = 1;\n\t\t\t}\n\n\t\t\tscore *= getDepthMultiplier(depth);\n\n\t\t\tcache.nodeCache.set(node, score);\n\t\t\tcache.visitedNodes.delete(node);\n\t\t\treturn score;\n\t\t}\n\n\t\tconst variableDeclaratorsToCheck = new Map<unknown, { complexity: number }>();\n\n\t\treturn {\n\t\t\t\"Program:exit\"(): void {\n\t\t\t\tfor (const [nodeKey, data] of variableDeclaratorsToCheck.entries()) {\n\t\t\t\t\tconst node = nodeKey as TSESTree.VariableDeclarator;\n\n\t\t\t\t\tif (node.id.type === TSESTree.AST_NODE_TYPES.Identifier && ianitorStaticVariables.has(node.id.name))\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: { score: data.complexity.toFixed(1) },\n\t\t\t\t\t\tmessageId: \"missingIanitorCheckType\",\n\t\t\t\t\t\tnode: node.id,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tTSInterfaceDeclaration(node): void {\n\t\t\t\tconst complexity = calculateStructuralComplexity(node);\n\t\t\t\tconst name = getTypeName(node);\n\n\t\t\t\tif (complexity >= config.interfacePenalty) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: { name: name || \"unknown\" },\n\t\t\t\t\t\tmessageId: \"complexInterfaceNeedsCheck\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tTSTypeAliasDeclaration(node): void {\n\t\t\t\tconst variableName = extractIanitorStaticVariable(node.typeAnnotation);\n\t\t\t\tif (variableName) ianitorStaticVariables.add(variableName);\n\t\t\t\tif (hasIanitorStaticType(node.typeAnnotation)) return;\n\n\t\t\t\tconst complexity = calculateStructuralComplexity(node.typeAnnotation);\n\t\t\t\tif (complexity < config.baseThreshold) return;\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { score: complexity.toFixed(1) },\n\t\t\t\t\tmessageId: \"missingIanitorCheckType\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tVariableDeclarator(node): void {\n\t\t\t\tif (!node.init || node.init.type !== TSESTree.AST_NODE_TYPES.CallExpression) return;\n\t\t\t\tif (!isIanitorValidator(node.init)) return;\n\t\t\t\tif (hasTypeAnnotation(node)) return;\n\n\t\t\t\tconst complexity = calculateIanitorComplexity(node.init);\n\t\t\t\tif (complexity < config.baseThreshold) return;\n\n\t\t\t\tvariableDeclaratorsToCheck.set(node as unknown, { complexity });\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [DEFAULT_CONFIGURATION],\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription: \"Enforce Ianitor.Check<T> type annotations on complex TypeScript types\",\n\t\t},\n\t\tmessages: {\n\t\t\tcomplexInterfaceNeedsCheck:\n\t\t\t\t\"Interface '{{name}}' requires Ianitor.Check<T> annotation (interfaces always need explicit checking)\",\n\t\t\tmissingIanitorCheckType:\n\t\t\t\t\"Complex type (score: {{score}}) requires Ianitor.Check<T> annotation for type safety\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tbaseThreshold: { minimum: 1, type: \"number\" },\n\t\t\t\t\terrorThreshold: { minimum: 1, type: \"number\" },\n\t\t\t\t\tinterfacePenalty: { minimum: 1, type: \"number\" },\n\t\t\t\t\tperformanceMode: { type: \"boolean\" },\n\t\t\t\t\twarnThreshold: { minimum: 1, type: \"number\" },\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n\tname: \"enforce-ianitor-check-type\",\n});\n\nexport default enforceIanitorCheckType as unknown as TSESLint.AnyRuleModuleWithMetaDocs;\n",
497
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule } from \"eslint\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nconst isNumericLiteralNode = Compile(\n\tType.Object({\n\t\ttype: Type.Literal(TSESTree.AST_NODE_TYPES.Literal),\n\t\tvalue: Type.Number(),\n\t}),\n);\n\nfunction mapComponentToRgbRange(value: number): number {\n\treturn Math.round(value > 1 ? value : value * 255);\n}\n\ninterface NumericComponentCollection {\n\treadonly components: ReadonlyArray<number>;\n\treadonly allZero: boolean;\n}\n\nfunction collectNumericComponents(parameters: ReadonlyArray<unknown>): NumericComponentCollection | undefined {\n\tconst components = new Array<number>();\n\tlet size = 0;\n\tlet allZero = true;\n\n\tfor (const parameter of parameters) {\n\t\tif (!isNumericLiteralNode.Check(parameter)) return undefined;\n\n\t\tconst mapped = mapComponentToRgbRange(parameter.value);\n\t\tcomponents[size++] = mapped;\n\t\tif (mapped !== 0) allZero = false;\n\t}\n\n\treturn { allZero, components };\n}\n\nconst noColor3Constructor: Rule.RuleModule = {\n\tcreate(context) {\n\t\treturn {\n\t\t\tNewExpression(node) {\n\t\t\t\tif (node.callee.type !== TSESTree.AST_NODE_TYPES.Identifier || node.callee.name !== \"Color3\") return;\n\n\t\t\t\tconst parameters = node.arguments;\n\t\t\t\tif (parameters.length === 0) return;\n\n\t\t\t\tconst collected = collectNumericComponents(parameters);\n\t\t\t\tif (!collected) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: parameters.length < 3 ? \"useFromRGB\" : \"onlyZeroArgs\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (parameters.length < 3) {\n\t\t\t\t\tconst [red, green = 0] = collected.components;\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tfix: (fixer) => fixer.replaceText(node, `Color3.fromRGB(${red}, ${green}, 0)`),\n\t\t\t\t\t\tmessageId: \"useFromRGB\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!collected.allZero) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tfix: (fixer) => fixer.replaceText(node, `Color3.fromRGB(${collected.components.join(\", \")})`),\n\t\t\t\t\t\tmessageId: \"onlyZeroArgs\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Ban new Color3(...) except new Color3() or new Color3(0, 0, 0). Use Color3.fromRGB() instead.\",\n\t\t\trecommended: true,\n\t\t},\n\t\tfixable: \"code\",\n\t\tmessages: {\n\t\t\tonlyZeroArgs:\n\t\t\t\t\"Use Color3.fromRGB() instead of new Color3(). new Color3() uses floats [0-1] and performs worse than Color3.fromRGB() which uses [0-255]. Only 'new Color3()' or 'new Color3(0, 0, 0)' are allowed.\",\n\t\t\tuseFromRGB:\n\t\t\t\t\"Use Color3.fromRGB() instead of new Color3(). new Color3() uses floats [0-1] and performs worse than Color3.fromRGB() which uses [0-255].\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default noColor3Constructor;\n",
498
+ "import { AST_NODE_TYPES } from \"@typescript-eslint/types\";\nimport type { TSESLint, TSESTree } from \"@typescript-eslint/utils\";\n\ntype MessageIds = \"noInstanceMethodWithoutThis\";\n\nexport interface NoInstanceMethodsOptions {\n\tcheckPrivate?: boolean;\n\tcheckProtected?: boolean;\n\tcheckPublic?: boolean;\n}\n\ntype NormalizedOptions = Readonly<Required<NoInstanceMethodsOptions>>;\n\ninterface RuleDocsWithRecommended extends TSESLint.RuleMetaDataDocs {\n\treadonly recommended?: boolean;\n}\n\nconst DEFAULT_OPTIONS: Required<NoInstanceMethodsOptions> = {\n\tcheckPrivate: true,\n\tcheckProtected: true,\n\tcheckPublic: true,\n};\n\nfunction normalizeOptions(rawOptions: NoInstanceMethodsOptions | undefined): NormalizedOptions {\n\tconst mergedOptions: Required<NoInstanceMethodsOptions> = { ...DEFAULT_OPTIONS };\n\tif (rawOptions?.checkPrivate !== undefined) mergedOptions.checkPrivate = rawOptions.checkPrivate;\n\tif (rawOptions?.checkProtected !== undefined) mergedOptions.checkProtected = rawOptions.checkProtected;\n\tif (rawOptions?.checkPublic !== undefined) mergedOptions.checkPublic = rawOptions.checkPublic;\n\n\treturn mergedOptions;\n}\n\nfunction shouldCheckMethod(node: TSESTree.MethodDefinition, options: NormalizedOptions): boolean {\n\tif (node.static) return false;\n\tif (node.kind !== \"method\") return false;\n\n\tconst accessibility = node.accessibility ?? \"public\";\n\tif (accessibility === \"private\" && !options.checkPrivate) return false;\n\tif (accessibility === \"protected\" && !options.checkProtected) return false;\n\tif (accessibility === \"public\" && !options.checkPublic) return false;\n\n\treturn true;\n}\n\nfunction isNode(value: unknown): value is TSESTree.Node {\n\treturn typeof value === \"object\" && value !== null && \"type\" in value;\n}\n\n// Widen node to allow safe enumeration without producing implicit any values\nfunction hasDynamicProperties(_node: TSESTree.Node): _node is TSESTree.Node & { readonly [key: string]: unknown } {\n\treturn true;\n}\n\nfunction traverseForThis(currentNode: TSESTree.Node, visited: WeakSet<TSESTree.Node>): boolean {\n\tif (visited.has(currentNode)) return false;\n\tvisited.add(currentNode);\n\tif (currentNode.type === AST_NODE_TYPES.ThisExpression || currentNode.type === AST_NODE_TYPES.Super) return true;\n\n\tif (!hasDynamicProperties(currentNode)) return false;\n\n\tfor (const key in currentNode) {\n\t\tconst childValue = currentNode[key];\n\t\tif (childValue === null || childValue === undefined) continue;\n\n\t\tif (Array.isArray(childValue)) {\n\t\t\tfor (const item of childValue) if (isNode(item) && traverseForThis(item, visited)) return true;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isNode(childValue) && traverseForThis(childValue, visited)) return true;\n\t}\n\n\treturn false;\n}\n\nfunction methodUsesThis(node: TSESTree.MethodDefinition): boolean {\n\tconst value = node.value;\n\tif (value === undefined || value.type !== AST_NODE_TYPES.FunctionExpression) return false;\n\treturn traverseForThis(value, new WeakSet());\n}\n\nconst noInstanceMethodsWithoutThis: TSESLint.RuleModuleWithMetaDocs<\n\tMessageIds,\n\t[NoInstanceMethodsOptions | undefined],\n\tRuleDocsWithRecommended\n> = {\n\tcreate(context) {\n\t\tconst rawOptions = context.options[0];\n\t\tconst options = normalizeOptions(rawOptions);\n\n\t\treturn {\n\t\t\tMethodDefinition(node: TSESTree.MethodDefinition) {\n\t\t\t\tif (!shouldCheckMethod(node, options)) return;\n\t\t\t\tif (methodUsesThis(node)) return;\n\n\t\t\t\tconst methodName = node.key.type === AST_NODE_TYPES.Identifier ? node.key.name : \"unknown\";\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { methodName },\n\t\t\t\t\tmessageId: \"noInstanceMethodWithoutThis\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [DEFAULT_OPTIONS],\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Detect instance methods that do not use 'this' and suggest converting them to standalone functions for better performance in roblox-ts.\",\n\t\t\trecommended: true,\n\t\t},\n\t\tmessages: {\n\t\t\tnoInstanceMethodWithoutThis:\n\t\t\t\t\"Method '{{methodName}}' does not use 'this' and creates unnecessary metatable overhead in roblox-ts. Convert it to a standalone function for better performance.\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tcheckPrivate: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\tdescription: \"Check private methods (default: true)\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\tcheckProtected: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\tdescription: \"Check protected methods (default: true)\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\tcheckPublic: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\tdescription: \"Check public methods (default: true)\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default noInstanceMethodsWithoutThis;\n",
499
+ "import type { Rule } from \"eslint\";\n\nconst noPrint: Rule.RuleModule = {\n\tcreate(context) {\n\t\treturn {\n\t\t\t'CallExpression[callee.type=\"Identifier\"][callee.name=\"print\"]'(node: Rule.Node) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tmessageId: \"useLog\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription: \"Ban print() function calls. Use Log instead.\",\n\t\t\trecommended: false,\n\t\t},\n\t\tmessages: {\n\t\t\tuseLog: \"Use Log instead of print()\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default noPrint;\n",
500
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule } from \"eslint\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nexport interface NoShorthandOptions {\n\treadonly allowPropertyAccess?: ReadonlyArray<string>;\n\treadonly shorthands?: Record<string, string>;\n}\n\nconst isRuleOptions = Compile(\n\tType.Object({\n\t\tallowPropertyAccess: Type.Optional(Type.Array(Type.String())),\n\t\tshorthands: Type.Optional(Type.Record(Type.String(), Type.String())),\n\t}),\n);\nconst isUnknownRecord = Compile(Type.Record(Type.String(), Type.Unknown()));\n\ninterface NormalizedOptions {\n\treadonly shorthands: ReadonlyMap<string, string>;\n\treadonly allowPropertyAccess: ReadonlySet<string>;\n\treadonly selector: string;\n}\n\nconst DEFAULT_OPTIONS: Required<NoShorthandOptions> = {\n\tallowPropertyAccess: [\"char\"],\n\tshorthands: {\n\t\targs: \"parameters\",\n\t\tchar: \"character\",\n\t\tdt: \"deltaTime\",\n\t\tplr: \"player\",\n\t},\n};\n\nconst ESCAPE_REGEXP = /[.*+?^${}()|[\\]\\\\]/g;\nconst ESCAPE_WITH = String.raw`\\$&`;\n\nfunction normalizeOptions(rawOptions: NoShorthandOptions | undefined): NormalizedOptions {\n\tconst mergedShorthands: Record<string, string> = { ...DEFAULT_OPTIONS.shorthands };\n\tif (rawOptions?.shorthands)\n\t\tfor (const [key, value] of Object.entries(rawOptions.shorthands)) mergedShorthands[key] = value;\n\n\tconst shorthandsMap = new Map(Object.entries(mergedShorthands));\n\tconst allowPropertyAccessSource = rawOptions?.allowPropertyAccess ?? DEFAULT_OPTIONS.allowPropertyAccess;\n\n\tconst escapedKeys = new Array<string>();\n\tlet length = 0;\n\tfor (const key of shorthandsMap.keys()) escapedKeys[length++] = key.replaceAll(ESCAPE_REGEXP, ESCAPE_WITH);\n\n\tconst selector = `Identifier[name=/^(${escapedKeys.join(\"|\")})$/]`;\n\n\treturn {\n\t\tallowPropertyAccess: new Set(allowPropertyAccessSource),\n\t\tselector,\n\t\tshorthands: shorthandsMap,\n\t};\n}\n\nconst noShorthandNames: Rule.RuleModule = {\n\tcreate(context) {\n\t\tconst validatedOptions = isRuleOptions.Check(context.options[0]) ? context.options[0] : undefined;\n\t\tconst { shorthands, allowPropertyAccess, selector } = normalizeOptions(validatedOptions);\n\n\t\treturn {\n\t\t\t[selector](node: Rule.Node & { name: string; parent?: unknown }) {\n\t\t\t\tconst shorthandName = node.name;\n\t\t\t\tconst replacement = shorthands.get(shorthandName);\n\t\t\t\tif (replacement === undefined || replacement === \"\") return;\n\n\t\t\t\tconst { parent } = node;\n\n\t\t\t\tif (\n\t\t\t\t\tallowPropertyAccess.has(shorthandName) &&\n\t\t\t\t\tparent !== undefined &&\n\t\t\t\t\tisUnknownRecord.Check(parent) &&\n\t\t\t\t\tparent.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\t\tparent.property === node\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tif (\n\t\t\t\t\tshorthandName === \"plr\" &&\n\t\t\t\t\tparent?.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&\n\t\t\t\t\tparent.id === node\n\t\t\t\t) {\n\t\t\t\t\tconst { init } = parent;\n\t\t\t\t\tif (\n\t\t\t\t\t\tinit &&\n\t\t\t\t\t\tisUnknownRecord.Check(init) &&\n\t\t\t\t\t\tinit.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\t\t\tinit.object !== undefined &&\n\t\t\t\t\t\tisUnknownRecord.Check(init.object) &&\n\t\t\t\t\t\tinit.object.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\t\t\tinit.object.name === \"Players\" &&\n\t\t\t\t\t\tinit.property !== undefined &&\n\t\t\t\t\t\tisUnknownRecord.Check(init.property) &&\n\t\t\t\t\t\tinit.property.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\t\t\tinit.property.name === \"LocalPlayer\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { replacement: \"localPlayer\", shorthand: shorthandName },\n\t\t\t\t\t\t\tmessageId: \"useReplacement\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { replacement, shorthand: shorthandName },\n\t\t\t\t\tmessageId: \"useReplacement\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription: \"Ban shorthand variable names. Use descriptive full names instead.\",\n\t\t\trecommended: true,\n\t\t},\n\t\tmessages: {\n\t\t\tuseReplacement: \"Use '{{replacement}}' instead of '{{shorthand}}' shorthand\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tallowPropertyAccess: {\n\t\t\t\t\t\tdescription: \"Shorthand names that are allowed as property access\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t\tshorthands: {\n\t\t\t\t\t\tadditionalProperties: { type: \"string\" },\n\t\t\t\t\t\tdescription: \"Map of shorthand names to their full replacements\",\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"suggestion\",\n\t},\n};\n\nexport default noShorthandNames;\n",
501
+ "import type { Rule } from \"eslint\";\n\nconst noWarn: Rule.RuleModule = {\n\tcreate(context) {\n\t\treturn {\n\t\t\t'CallExpression[callee.type=\"Identifier\"][callee.name=\"warn\"]'(node: Rule.Node) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tmessageId: \"useLog\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription: \"Ban warn() function calls. Use Log instead.\",\n\t\t\trecommended: false,\n\t\t},\n\t\tmessages: {\n\t\t\tuseLog: \"Use Log instead of warn()\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default noWarn;\n",
502
+ "import { AST_NODE_TYPES } from \"@typescript-eslint/types\";\nimport type { TSESLint, TSESTree } from \"@typescript-eslint/utils\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\ninterface SequenceDescriptor {\n\treadonly sequenceName: \"ColorSequence\" | \"NumberSequence\";\n\treadonly keypointName: \"ColorSequenceKeypoint\" | \"NumberSequenceKeypoint\";\n}\n\ninterface KeypointData {\n\treadonly time: number;\n\treadonly value: TSESTree.Expression;\n}\n\nconst sequenceDescriptors: ReadonlyArray<SequenceDescriptor> = [\n\t{ keypointName: \"ColorSequenceKeypoint\", sequenceName: \"ColorSequence\" },\n\t{ keypointName: \"NumberSequenceKeypoint\", sequenceName: \"NumberSequence\" },\n];\n\nfunction isSequenceIdentifier(\n\tnode: TSESTree.Expression | TSESTree.Super,\n): node is TSESTree.Identifier & { readonly name: SequenceDescriptor[\"sequenceName\"] } {\n\tif (node.type !== AST_NODE_TYPES.Identifier) return false;\n\n\tfor (const { sequenceName } of sequenceDescriptors) if (sequenceName === node.name) return true;\n\treturn false;\n}\n\nfunction findDescriptor(sequenceName: SequenceDescriptor[\"sequenceName\"]): SequenceDescriptor | undefined {\n\tfor (const descriptor of sequenceDescriptors) if (descriptor.sequenceName === sequenceName) return descriptor;\n\treturn undefined;\n}\n\nconst isNumericLiteral = Compile(\n\tType.Object({\n\t\ttype: Type.Literal(AST_NODE_TYPES.Literal),\n\t\tvalue: Type.Number(),\n\t}),\n);\n\nfunction isExpressionArgument(argument: TSESTree.CallExpressionArgument | undefined): argument is TSESTree.Expression {\n\treturn argument !== undefined && argument.type !== AST_NODE_TYPES.SpreadElement;\n}\n\nfunction extractKeypoint(\n\telement: TSESTree.Expression | TSESTree.SpreadElement | undefined,\n\tdescriptor: SequenceDescriptor,\n): KeypointData | undefined {\n\tif (element === undefined || element.type !== AST_NODE_TYPES.NewExpression) return undefined;\n\tif (element.callee.type !== AST_NODE_TYPES.Identifier || element.callee.name !== descriptor.keypointName)\n\t\treturn undefined;\n\n\tif (element.arguments.length !== 2) return undefined;\n\n\tconst [timeArgument, valueArgument] = element.arguments;\n\tif (!isNumericLiteral.Check(timeArgument)) return undefined;\n\tif (!isExpressionArgument(valueArgument)) return undefined;\n\n\treturn {\n\t\ttime: timeArgument.value,\n\t\tvalue: valueArgument,\n\t};\n}\n\ninterface RuleDocsWithRecommended extends TSESLint.RuleMetaDataDocs {\n\treadonly recommended?: boolean;\n}\n\nconst docs: RuleDocsWithRecommended = {\n\tdescription:\n\t\t\"Prefer the optimized ColorSequence and NumberSequence constructor overloads over passing ColorSequenceKeypoint or NumberSequenceKeypoint arrays when only using endpoints 0 and 1.\",\n\trecommended: true,\n};\n\nconst preferSequenceOverloads: TSESLint.RuleModuleWithMetaDocs<\n\t\"preferSingleOverload\" | \"preferTwoPointOverload\",\n\t[],\n\tRuleDocsWithRecommended\n> = {\n\tcreate(context) {\n\t\tconst { sourceCode } = context;\n\n\t\treturn {\n\t\t\tNewExpression(node) {\n\t\t\t\tconst { callee } = node;\n\t\t\t\tif (!isSequenceIdentifier(callee)) return;\n\n\t\t\t\tconst descriptor = findDescriptor(callee.name);\n\t\t\t\tif (descriptor === undefined || node.arguments.length !== 1) return;\n\n\t\t\t\tconst [argument] = node.arguments;\n\t\t\t\tif (\n\t\t\t\t\targument === undefined ||\n\t\t\t\t\targument.type !== AST_NODE_TYPES.ArrayExpression ||\n\t\t\t\t\targument.elements.length !== 2\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tconst firstElement = argument.elements[0] ?? undefined;\n\t\t\t\tconst secondElement = argument.elements[1] ?? undefined;\n\n\t\t\t\tconst firstKeypoint = extractKeypoint(firstElement, descriptor);\n\t\t\t\tconst secondKeypoint = extractKeypoint(secondElement, descriptor);\n\n\t\t\t\tif (firstKeypoint === undefined || secondKeypoint === undefined) return;\n\t\t\t\tif (firstKeypoint.time !== 0 || secondKeypoint.time !== 1) return;\n\n\t\t\t\tconst firstValueText = sourceCode.getText(firstKeypoint.value);\n\t\t\t\tconst secondValueText = sourceCode.getText(secondKeypoint.value);\n\t\t\t\tconst normalizedFirstValue = firstValueText.trim();\n\t\t\t\tconst normalizedSecondValue = secondValueText.trim();\n\n\t\t\t\tif (normalizedFirstValue === normalizedSecondValue) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: { sequenceName: descriptor.sequenceName },\n\t\t\t\t\t\tfix: (fixer) => fixer.replaceText(node, `new ${descriptor.sequenceName}(${firstValueText})`),\n\t\t\t\t\t\tmessageId: \"preferSingleOverload\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { sequenceName: descriptor.sequenceName },\n\t\t\t\t\tfix: (fixer) =>\n\t\t\t\t\t\tfixer.replaceText(\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t`new ${descriptor.sequenceName}(${firstValueText}, ${secondValueText})`,\n\t\t\t\t\t\t),\n\t\t\t\t\tmessageId: \"preferTwoPointOverload\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [],\n\tmeta: {\n\t\tdocs,\n\t\tfixable: \"code\",\n\t\tmessages: {\n\t\t\tpreferSingleOverload:\n\t\t\t\t\"Use the single-argument {{sequenceName}} constructor overload instead of redundant keypoints when both endpoints share the same value.\",\n\t\t\tpreferTwoPointOverload:\n\t\t\t\t\"Use the two-argument {{sequenceName}} constructor overload instead of allocating an array of keypoints for endpoints 0 and 1.\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default preferSequenceOverloads;\n",
503
+ "import { TSESTree } from \"@typescript-eslint/utils\";\nimport type { Rule } from \"eslint\";\n\ninterface ArgumentsCollection {\n\treadonly scaleXText: string;\n\treadonly offsetXText: string;\n\treadonly scaleYText: string;\n\treadonly offsetYText: string;\n}\n\ntype RuleContext = Rule.RuleContext;\n\nfunction isNumber(value: unknown): value is number {\n\treturn typeof value === \"number\" && !Number.isNaN(value);\n}\n\nfunction isRecord(node: unknown): node is Record<PropertyKey, unknown> {\n\treturn typeof node === \"object\" && node !== null;\n}\nfunction hasTypeProperty(\n\tobject: Record<PropertyKey, unknown>,\n): object is Record<PropertyKey, unknown> & { type: unknown } {\n\treturn \"type\" in object;\n}\n\nconst OPERATORS = new Set([\"+\", \"-\", \"*\", \"/\", \"%\"]);\n\nfunction reconstructText(node: Record<PropertyKey, unknown>): string | undefined {\n\tconst nodeType = node.type;\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.Literal) {\n\t\tconst { value } = node;\n\t\treturn isNumber(value) ? String(value) : undefined;\n\t}\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.Identifier) {\n\t\tconst { name } = node;\n\t\treturn typeof name === \"string\" ? name : undefined;\n\t}\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.UnaryExpression) {\n\t\tconst { operator } = node;\n\t\tif (typeof operator !== \"string\") return undefined;\n\n\t\tconst { argument } = node;\n\t\tif (!isRecord(argument)) return undefined;\n\n\t\tconst text = reconstructText(argument);\n\t\treturn text === undefined ? undefined : `${operator}${text}`;\n\t}\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.BinaryExpression) {\n\t\tconst { operator } = node;\n\t\tif (typeof operator !== \"string\" || !OPERATORS.has(operator)) return undefined;\n\n\t\tconst { left, right } = node;\n\t\tif (!isRecord(left) || !isRecord(right)) return undefined;\n\n\t\tconst leftText = reconstructText(left);\n\t\tconst rightText = reconstructText(right);\n\t\treturn leftText === undefined || rightText === undefined ? undefined : `${leftText} ${operator} ${rightText}`;\n\t}\n\n\treturn undefined;\n}\n\nfunction evaluateExpression(node: unknown): number | undefined {\n\tif (!isRecord(node)) return undefined;\n\n\tconst nodeType = node.type;\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.Literal) {\n\t\tconst { value } = node;\n\t\treturn isNumber(value) ? value : undefined;\n\t}\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.UnaryExpression) {\n\t\tconst { argument, operator } = node;\n\n\t\tif (typeof argument === \"object\" && argument !== null) {\n\t\t\tconst value = evaluateExpression(argument);\n\t\t\tif (value === undefined) return undefined;\n\t\t\tif (operator === \"-\") return -value;\n\t\t\tif (operator === \"+\") return value;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tif (nodeType === TSESTree.AST_NODE_TYPES.BinaryExpression) {\n\t\tconst { right, left, operator } = node;\n\n\t\tif (typeof left === \"object\" && left !== null && typeof right === \"object\" && right !== null) {\n\t\t\tconst leftValue = evaluateExpression(left);\n\t\t\tconst rightValue = evaluateExpression(right);\n\t\t\tif (leftValue === undefined || rightValue === undefined) return undefined;\n\n\t\t\tswitch (operator) {\n\t\t\t\tcase \"+\":\n\t\t\t\t\treturn leftValue + rightValue;\n\n\t\t\t\tcase \"-\":\n\t\t\t\t\treturn leftValue - rightValue;\n\n\t\t\t\tcase \"*\":\n\t\t\t\t\treturn leftValue * rightValue;\n\n\t\t\t\tcase \"/\":\n\t\t\t\t\treturn rightValue === 0 ? undefined : leftValue / rightValue;\n\n\t\t\t\tcase \"%\":\n\t\t\t\t\treturn rightValue === 0 ? undefined : leftValue % rightValue;\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\treturn undefined;\n}\n\nfunction collectArguments(_context: RuleContext, parameters: ReadonlyArray<unknown>): ArgumentsCollection | undefined {\n\tif (parameters.length !== 4) return undefined;\n\n\tconst texts: Array<string | undefined> = [undefined, undefined, undefined, undefined];\n\n\tfor (let index = 0; index < 4; index++) {\n\t\tconst parameter = parameters[index];\n\t\tif (!isRecord(parameter) || !hasTypeProperty(parameter)) return undefined;\n\n\t\tif (parameter.type === TSESTree.AST_NODE_TYPES.SpreadElement) return undefined;\n\n\t\tconst text = reconstructText(parameter);\n\t\tif (text === undefined) return undefined;\n\t\ttexts[index] = text;\n\t}\n\n\tconst [scaleXText, offsetXText, scaleYText, offsetYText] = texts;\n\n\tif (scaleXText === undefined || offsetXText === undefined || scaleYText === undefined || offsetYText === undefined)\n\t\treturn undefined;\n\n\treturn { offsetXText, offsetYText, scaleXText, scaleYText };\n}\n\nconst preferUDim2Shorthand: Rule.RuleModule = {\n\tcreate(context) {\n\t\treturn {\n\t\t\tNewExpression(node) {\n\t\t\t\tif (node.callee.type !== TSESTree.AST_NODE_TYPES.Identifier || node.callee.name !== \"UDim2\") return;\n\n\t\t\t\tconst collected = collectArguments(context, node.arguments);\n\t\t\t\tif (!collected) return;\n\n\t\t\t\tconst { offsetXText, offsetYText, scaleXText, scaleYText } = collected;\n\n\t\t\t\tconst scaleX = evaluateExpression(node.arguments[0]);\n\t\t\t\tconst offsetX = evaluateExpression(node.arguments[1]);\n\t\t\t\tconst scaleY = evaluateExpression(node.arguments[2]);\n\t\t\t\tconst offsetY = evaluateExpression(node.arguments[3]);\n\n\t\t\t\tif (scaleX === 0 && offsetX === 0 && scaleY === 0 && offsetY === 0) return;\n\n\t\t\t\tif (offsetX === 0 && offsetY === 0) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tfix: (fixer) => fixer.replaceText(node, `UDim2.fromScale(${scaleXText}, ${scaleYText})`),\n\t\t\t\t\t\tmessageId: \"preferFromScale\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (scaleX === 0 && scaleY === 0) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tfix: (fixer) => fixer.replaceText(node, `UDim2.fromOffset(${offsetXText}, ${offsetYText})`),\n\t\t\t\t\t\tmessageId: \"preferFromOffset\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Prefer UDim2.fromScale() or UDim2.fromOffset() over new UDim2() when all offsets or all scales are zero.\",\n\t\t\trecommended: true,\n\t\t},\n\t\tfixable: \"code\",\n\t\tmessages: {\n\t\t\tpreferFromOffset:\n\t\t\t\t\"Use UDim2.fromOffset() instead of new UDim2(). When all scales are zero, use UDim2.fromOffset() for clarity.\",\n\t\t\tpreferFromScale:\n\t\t\t\t\"Use UDim2.fromScale() instead of new UDim2(). When all offsets are zero, use UDim2.fromScale() for clarity.\",\n\t\t},\n\t\tschema: [],\n\t\ttype: \"suggestion\",\n\t},\n};\n\nexport default preferUDim2Shorthand;\n",
504
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule } from \"eslint\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nexport interface HookConfiguration {\n\treadonly allowAsync: boolean;\n\treadonly name: string;\n}\n\nconst DEFAULT_HOOKS: ReadonlyArray<HookConfiguration> = [\n\t{ allowAsync: false, name: \"useEffect\" },\n\t{ allowAsync: false, name: \"useLayoutEffect\" },\n\t{ allowAsync: false, name: \"useInsertionEffect\" },\n] as const;\n\nconst isEnvironmentMode = Type.Union([Type.Literal(\"roblox-ts\"), Type.Literal(\"standard\")]);\nexport type EnvironmentMode = Type.Static<typeof isEnvironmentMode>;\n\nexport interface EffectFunctionOptions {\n\treadonly environment: EnvironmentMode;\n\treadonly hooks: ReadonlyArray<HookConfiguration>;\n}\nconst isHookConfiguration = Type.Object({\n\tallowAsync: Type.Boolean(),\n\tname: Type.String(),\n});\n\nconst isRuleOptions = Compile(\n\tType.Object(\n\t\t{\n\t\t\tenvironment: isEnvironmentMode,\n\t\t\thooks: Type.Array(isHookConfiguration),\n\t\t},\n\t\t{ additionalProperties: true },\n\t),\n);\n\nfunction parseOptions(options: unknown): EffectFunctionOptions {\n\tif (options === undefined) {\n\t\treturn {\n\t\t\tenvironment: \"roblox-ts\",\n\t\t\thooks: DEFAULT_HOOKS,\n\t\t};\n\t}\n\n\tif (!isRuleOptions.Check(options)) {\n\t\treturn {\n\t\t\tenvironment: \"roblox-ts\",\n\t\t\thooks: DEFAULT_HOOKS,\n\t\t};\n\t}\n\n\treturn {\n\t\tenvironment: options.environment === \"standard\" ? \"standard\" : \"roblox-ts\",\n\t\thooks: options.hooks,\n\t};\n}\n\ninterface Callee {\n\treadonly name?: string;\n\treadonly property?: { readonly name?: string; readonly type: string };\n\treadonly type: string;\n}\ninterface CallExpression {\n\treadonly callee: Callee;\n}\n\nfunction getHookName(callExpression: CallExpression): string | undefined {\n\tconst { callee } = callExpression;\n\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier && typeof callee.name === \"string\" && callee.name.length > 0)\n\t\treturn callee.name;\n\n\tif (\n\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tcallee.property?.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\ttypeof callee.property.name === \"string\" &&\n\t\tcallee.property.name.length > 0\n\t)\n\t\treturn callee.property.name;\n\n\treturn undefined;\n}\n\ninterface ResolvedFunction {\n\treadonly node: TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression | TSESTree.FunctionDeclaration;\n\treadonly type: \"arrow\" | \"function-expression\" | \"function-declaration\";\n\treadonly isAsync: boolean;\n}\n\nfunction resolveIdentifierToFunction(\n\tidentifier: TSESTree.Identifier,\n\tcontext: Rule.RuleContext,\n): ResolvedFunction | undefined {\n\ttry {\n\t\tconst scope = context.sourceCode.getScope?.(identifier) as unknown;\n\t\tif (typeof scope !== \"object\" || scope === null) return undefined;\n\n\t\tconst scopeObj = scope as { set: Map<string, unknown>; upper?: unknown };\n\t\tconst setVal = scopeObj.set;\n\t\tif (!(setVal instanceof Map)) return undefined;\n\n\t\tlet variable: unknown;\n\t\tlet currentScope: unknown = scope;\n\n\t\twhile (typeof currentScope === \"object\" && currentScope !== null) {\n\t\t\tconst current = currentScope as { set: Map<string, unknown>; upper?: unknown };\n\t\t\tvariable = current.set.get(identifier.name);\n\t\t\tif (typeof variable === \"object\" && variable !== null) break;\n\t\t\tcurrentScope = current.upper;\n\t\t}\n\n\t\tif (typeof variable !== \"object\" || variable === null) return undefined;\n\n\t\tconst castVariable = variable as { defs: Array<unknown> };\n\t\tif (!Array.isArray(castVariable.defs) || castVariable.defs.length === 0) return undefined;\n\n\t\tfor (const definition of castVariable.defs) {\n\t\t\tif (typeof definition !== \"object\" || definition === null) continue;\n\n\t\t\tconst castDefinition = definition as { node?: unknown };\n\t\t\tconst node = castDefinition.node;\n\t\t\tif (typeof node !== \"object\" || node === null) continue;\n\n\t\t\tconst castNode = node as { type?: string; init?: unknown; async?: boolean };\n\t\t\tif (castNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration) {\n\t\t\t\treturn {\n\t\t\t\t\tisAsync: Boolean(castNode.async),\n\t\t\t\t\tnode: node as unknown as TSESTree.FunctionDeclaration,\n\t\t\t\t\ttype: \"function-declaration\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcastNode.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&\n\t\t\t\ttypeof castNode.init === \"object\" &&\n\t\t\t\tcastNode.init !== null\n\t\t\t) {\n\t\t\t\tconst castInit = castNode.init as { type?: string; async?: boolean };\n\t\t\t\tif (castInit.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {\n\t\t\t\t\tconst arrowNode = castNode.init as unknown as TSESTree.ArrowFunctionExpression;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tisAsync: Boolean(arrowNode.async),\n\t\t\t\t\t\tnode: arrowNode,\n\t\t\t\t\t\ttype: \"arrow\",\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (castInit.type === TSESTree.AST_NODE_TYPES.FunctionExpression) {\n\t\t\t\t\tconst castInitNode = castNode.init as unknown as TSESTree.FunctionExpression;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tisAsync: Boolean(castInitNode.async),\n\t\t\t\t\t\tnode: castInitNode,\n\t\t\t\t\t\ttype: \"function-expression\",\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isCallbackHookResult(identifier: TSESTree.Identifier, context: Rule.RuleContext): boolean {\n\ttry {\n\t\tconst scope = context.sourceCode.getScope?.(identifier) as unknown;\n\t\tif (typeof scope !== \"object\" || scope === null) return false;\n\n\t\tconst scopeObj = scope as { set: Map<string, unknown>; upper?: unknown };\n\t\tconst setVal = scopeObj.set;\n\t\tif (!(setVal instanceof Map)) return false;\n\n\t\tlet variable: unknown;\n\t\tlet currentScope: unknown = scope;\n\n\t\twhile (typeof currentScope === \"object\" && currentScope !== null) {\n\t\t\tconst current = currentScope as { set: Map<string, unknown>; upper?: unknown };\n\t\t\tvariable = current.set.get(identifier.name);\n\t\t\tif (typeof variable === \"object\" && variable !== null) break;\n\t\t\tcurrentScope = current.upper;\n\t\t}\n\n\t\tif (typeof variable !== \"object\" || variable === null) return false;\n\n\t\tconst castVariable = variable as { defs: Array<unknown> };\n\t\tif (!Array.isArray(castVariable.defs) || castVariable.defs.length === 0) return false;\n\n\t\tfor (const definition of castVariable.defs) {\n\t\t\tif (typeof definition !== \"object\" || definition === null) continue;\n\n\t\t\tconst castDefinition = definition as { node?: unknown };\n\t\t\tconst node = castDefinition.node;\n\t\t\tif (typeof node !== \"object\" || node === null) continue;\n\n\t\t\tconst castNode = node as { type?: string; init?: unknown };\n\t\t\tif (castNode.type !== TSESTree.AST_NODE_TYPES.VariableDeclarator) continue;\n\t\t\tif (typeof castNode.init !== \"object\" || castNode.init === null) continue;\n\n\t\t\tconst init = castNode.init as { type?: string; callee?: unknown };\n\t\t\tif (init.type !== TSESTree.AST_NODE_TYPES.CallExpression) continue;\n\n\t\t\tconst calleeHookName = getHookName(init as Parameters<typeof getHookName>[0]);\n\t\t\tif (calleeHookName === \"useCallback\" || calleeHookName === \"useMemo\") return true;\n\t\t}\n\n\t\treturn false;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nconst requireNamedEffectFunctions: Rule.RuleModule = {\n\tcreate(context) {\n\t\tconst { hooks, environment } = parseOptions(context.options[0]);\n\t\tconst hookAsyncConfig = new Map(hooks.map((hookConfig) => [hookConfig.name, hookConfig.allowAsync]));\n\t\tconst effectHooks = new Set(hookAsyncConfig.keys());\n\t\tconst isRobloxTsMode = environment === \"roblox-ts\";\n\n\t\tfunction isAsyncAllowed(hookName: string): boolean {\n\t\t\tconst result = hookAsyncConfig.get(hookName);\n\t\t\treturn typeof result === \"boolean\" ? result : false;\n\t\t}\n\n\t\treturn {\n\t\t\tCallExpression(node: Rule.Node) {\n\t\t\t\tconst callExpression = node as unknown as { arguments: ReadonlyArray<unknown>; callee: unknown };\n\n\t\t\t\tconst hookName = getHookName(callExpression as Parameters<typeof getHookName>[0]);\n\t\t\t\tif (typeof hookName !== \"string\" || !effectHooks.has(hookName)) return;\n\n\t\t\t\tconst firstArgument = callExpression.arguments?.[0];\n\t\t\t\tif (firstArgument === undefined) return;\n\n\t\t\t\tconst argumentNode = firstArgument as { id?: unknown; type: string; async?: boolean };\n\t\t\t\tif (argumentNode.type === TSESTree.AST_NODE_TYPES.Identifier) {\n\t\t\t\t\tconst identifier = argumentNode as unknown as TSESTree.Identifier;\n\t\t\t\t\tconst resolved = resolveIdentifierToFunction(identifier, context);\n\n\t\t\t\t\tif (resolved === undefined) {\n\t\t\t\t\t\tif (isCallbackHookResult(identifier, context)) {\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\t\tmessageId: \"identifierReferencesCallback\",\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resolved.type === \"arrow\") {\n\t\t\t\t\t\tif (resolved.isAsync) {\n\t\t\t\t\t\t\tif (!isAsyncAllowed(hookName)) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\t\t\tmessageId: \"identifierReferencesAsyncArrow\",\n\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\t\tmessageId: \"identifierReferencesArrow\",\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (resolved.type === \"function-expression\") {\n\t\t\t\t\t\tconst castNode = resolved.node as unknown as { id?: unknown };\n\t\t\t\t\t\tif (castNode.id === undefined) {\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\t\tmessageId: \"anonymousFunction\",\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (isRobloxTsMode) {\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\t\tmessageId: \"functionExpression\",\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tresolved.type === \"function-declaration\" &&\n\t\t\t\t\t\tresolved.isAsync &&\n\t\t\t\t\t\t!isAsyncAllowed(hookName)\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"identifierReferencesAsyncFunction\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (argumentNode.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {\n\t\t\t\t\tif (argumentNode.async) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"asyncArrowFunction\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"arrowFunction\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (argumentNode.type === TSESTree.AST_NODE_TYPES.FunctionExpression) {\n\t\t\t\t\tconst functionExpressionNode = argumentNode as unknown as { id?: unknown; async?: boolean };\n\t\t\t\t\t// oxlint-disable-next-line typescript-eslint/strict-boolean-expressions\n\t\t\t\t\tconst functionHasId = Boolean(functionExpressionNode.id);\n\n\t\t\t\t\tif (functionHasId && argumentNode.async) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"asyncFunctionExpression\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (functionHasId && isRobloxTsMode) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"functionExpression\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (!functionHasId && argumentNode.async) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"asyncAnonymousFunction\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (!functionHasId) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { hook: hookName },\n\t\t\t\t\t\t\tmessageId: \"anonymousFunction\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Enforce named effect functions for better debuggability. Prevents inline arrow functions in useEffect and similar hooks.\",\n\t\t\trecommended: false,\n\t\t},\n\t\tmessages: {\n\t\t\tanonymousFunction: \"Use a named function instead of an anonymous function for better debuggability\",\n\t\t\tarrowFunction: \"Use a named function instead of an arrow function for better debuggability\",\n\t\t\tasyncAnonymousFunction:\n\t\t\t\t\"Async anonymous functions are not allowed in {{ hook }}. Use an async function declaration instead\",\n\t\t\tasyncArrowFunction:\n\t\t\t\t\"Async arrow functions are not allowed in {{ hook }}. Use an async function declaration instead\",\n\t\t\tasyncFunctionDeclaration:\n\t\t\t\t\"Async function declarations are not allowed in {{ hook }}. Set allowAsync: true for this hook to enable\",\n\t\t\tasyncFunctionExpression:\n\t\t\t\t\"Async function expressions are not allowed in {{ hook }}. Use an async function declaration instead\",\n\t\t\tfunctionExpression:\n\t\t\t\t\"Use a named function reference instead of a function expression for better debuggability\",\n\t\t\tidentifierReferencesArrow:\n\t\t\t\t\"{{ hook }} called with identifier that references an arrow function. Use a named function declaration instead\",\n\t\t\tidentifierReferencesAsyncArrow:\n\t\t\t\t\"{{ hook }} called with identifier that references an async arrow function. Set allowAsync: true for this hook to enable\",\n\t\t\tidentifierReferencesAsyncFunction:\n\t\t\t\t\"{{ hook }} called with identifier that references an async function. Set allowAsync: true for this hook to enable\",\n\t\t\tidentifierReferencesCallback:\n\t\t\t\t\"{{ hook }} called with identifier that references a useCallback/useMemo result. Use a named function declaration instead\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tenvironment: {\n\t\t\t\t\t\tdefault: \"roblox-ts\",\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Environment mode: 'roblox-ts' only allows identifiers, 'standard' allows both identifiers and named function expressions\",\n\t\t\t\t\t\tenum: [\"roblox-ts\", \"standard\"],\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t},\n\t\t\t\t\thooks: {\n\t\t\t\t\t\tdefault: DEFAULT_HOOKS,\n\t\t\t\t\t\tdescription: \"Array of hook configuration objects with name and allowAsync settings\",\n\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tallowAsync: {\n\t\t\t\t\t\t\t\t\tdescription: \"Whether async functions are allowed for this hook\",\n\t\t\t\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\tdescription: \"Hook name to check\",\n\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequired: [\"name\", \"allowAsync\"],\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default requireNamedEffectFunctions;\n",
505
+ "import { AST_NODE_TYPES, type TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule } from \"eslint\";\nimport type { Writable } from \"type-fest\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nconst isStringArray = Compile(Type.Readonly(Type.Array(Type.String())));\n\n/**\n * Configuration for a single opener/closer pair\n */\nexport interface PairConfiguration {\n\t/** Opener function name (e.g., \"debug.profilebegin\") */\n\treadonly opener: string;\n\t/** Additional opener names that share this closer */\n\treadonly openerAlternatives?: ReadonlyArray<string>;\n\t/** Closer function name(s) - single or alternatives */\n\treadonly closer: string | ReadonlyArray<string>;\n\t/** Alternative closers (any one satisfies) */\n\treadonly alternatives?: ReadonlyArray<string>;\n\t/** Disallow await/yield between opener and closer */\n\treadonly requireSync?: boolean;\n\t/** Platform-specific behavior */\n\treadonly platform?: \"roblox\";\n\t/** Custom yielding function patterns (for Roblox) */\n\treadonly yieldingFunctions?: ReadonlyArray<string>;\n}\nconst isPairConfiguration = Compile(\n\tType.Readonly(\n\t\tType.Object({\n\t\t\talternatives: Type.Optional(isStringArray),\n\t\t\tcloser: Type.Union([Type.String(), isStringArray]),\n\t\t\topener: Type.String(),\n\t\t\topenerAlternatives: Type.Optional(isStringArray),\n\t\t\tplatform: Type.Optional(Type.Literal(\"roblox\")),\n\t\t\trequireSync: Type.Optional(Type.Boolean()),\n\t\t\tyieldingFunctions: Type.Optional(isStringArray),\n\t\t}),\n\t),\n);\n\n/**\n * Rule options schema\n */\nexport interface RequirePairedCallsOptions {\n\t/** Array of paired function configurations */\n\treadonly pairs: ReadonlyArray<PairConfiguration>;\n\t/** Allow conditional closers */\n\treadonly allowConditionalClosers?: boolean;\n\t/** Allow multiple consecutive openers */\n\treadonly allowMultipleOpeners?: boolean;\n\t/** Maximum nesting depth (0 = unlimited) */\n\treadonly maxNestingDepth?: number;\n}\n\nconst isRuleOptions = Compile(\n\tType.Partial(\n\t\tType.Readonly(\n\t\t\tType.Object({\n\t\t\t\tallowConditionalClosers: Type.Optional(Type.Boolean()),\n\t\t\t\tallowMultipleOpeners: Type.Optional(Type.Boolean()),\n\t\t\t\tmaxNestingDepth: Type.Optional(Type.Number()),\n\t\t\t\tpairs: Type.Readonly(Type.Array(isPairConfiguration)),\n\t\t\t}),\n\t\t),\n\t),\n);\n\n/**\n * Entry in the opener stack\n */\ninterface OpenerStackEntry {\n\t/** Opener function name */\n\treadonly opener: string;\n\t/** Source location */\n\treadonly location: TSESTree.SourceLocation;\n\t/** AST node */\n\treadonly node: TSESTree.Node;\n\t/** Active loops when opener was called */\n\treadonly loopAncestors: ReadonlyArray<LoopLikeStatement>;\n\t/** Configuration for this pair */\n\treadonly config: PairConfiguration;\n\t/** Index in stack (for LIFO validation) */\n\treadonly index: number;\n}\n\ntype LoopLikeStatement =\n\t| TSESTree.DoWhileStatement\n\t| TSESTree.ForInStatement\n\t| TSESTree.ForOfStatement\n\t| TSESTree.ForStatement\n\t| TSESTree.WhileStatement;\n\nconst LOOP_NODE_TYPES = new Set([\n\tAST_NODE_TYPES.DoWhileStatement,\n\tAST_NODE_TYPES.ForInStatement,\n\tAST_NODE_TYPES.ForOfStatement,\n\tAST_NODE_TYPES.ForStatement,\n\tAST_NODE_TYPES.WhileStatement,\n]);\n\n/**\n * Control flow context tracking\n */\ninterface ControlFlowContext {\n\t/** Inside a conditional branch (if/else/switch) */\n\treadonly inConditional: boolean;\n\t/** Inside a loop (for/while/do-while) */\n\treadonly inLoop: boolean;\n\t/** Inside try block */\n\treadonly inTry: boolean;\n\t/** Inside catch block */\n\treadonly inCatch: boolean;\n\t/** Inside finally block */\n\treadonly inFinally: boolean;\n\t/** Has early exit (return/throw/break/continue) */\n\treadonly hasEarlyExit: boolean;\n\t/** Inside async context */\n\treadonly asyncContext: boolean;\n\t/** Current function node */\n\treadonly currentFunction: TSESTree.Node | undefined;\n}\n\nexport const DEFAULT_ROBLOX_YIELDING_FUNCTIONS = [\"task.wait\", \"wait\", \"*.WaitForChild\", \"*.*Async\"] as const;\n\nfunction getCallName(node: TSESTree.CallExpression): string | undefined {\n\tconst { callee } = node;\n\n\tif (callee.type === AST_NODE_TYPES.Identifier) return callee.name;\n\n\tif (callee.type === AST_NODE_TYPES.MemberExpression) {\n\t\tconst object = callee.object.type === AST_NODE_TYPES.Identifier ? callee.object.name : undefined;\n\t\tconst property = callee.property.type === AST_NODE_TYPES.Identifier ? callee.property.name : undefined;\n\n\t\tif (object !== undefined && property !== undefined) return `${object}.${property}`;\n\t}\n\n\treturn undefined;\n}\n\nfunction getValidClosers(configuration: PairConfiguration): ReadonlyArray<string> {\n\tconst result = new Array<string>();\n\n\tif (isStringArray.Check(configuration.closer)) result.push(...configuration.closer);\n\telse if (typeof configuration.closer === \"string\") result.push(configuration.closer);\n\n\tif (configuration.alternatives) for (const alternative of configuration.alternatives) result.push(alternative);\n\n\treturn result;\n}\n\nfunction getAllOpeners(configuration: PairConfiguration): ReadonlyArray<string> {\n\tconst openers = [configuration.opener];\n\tif (configuration.openerAlternatives) openers.push(...configuration.openerAlternatives);\n\treturn openers;\n}\n\nfunction formatOpenerList(openers: ReadonlyArray<string>): string {\n\tif (openers.length === 0) return \"configured opener\";\n\tif (openers.length === 1) return openers[0] ?? \"configured opener\";\n\treturn openers.join(\"' or '\");\n}\n\nfunction isLoopLikeStatement(node: TSESTree.Node | undefined): node is LoopLikeStatement {\n\tif (!node) return false;\n\n\treturn LOOP_NODE_TYPES.has(node.type);\n}\n\nfunction isSwitchStatement(node: TSESTree.Node | undefined): node is TSESTree.SwitchStatement {\n\treturn node?.type === AST_NODE_TYPES.SwitchStatement;\n}\n\nfunction findLabeledStatementBody(\n\tlabel: TSESTree.Identifier,\n\tstartingNode: TSESTree.Node | undefined,\n): TSESTree.Statement | undefined {\n\tlet current: TSESTree.Node | undefined = startingNode;\n\n\twhile (current) {\n\t\tif (current.type === AST_NODE_TYPES.LabeledStatement && current.label.name === label.name) return current.body;\n\t\tcurrent = current.parent ?? undefined;\n\t}\n\n\treturn undefined;\n}\n\nfunction resolveBreakTargetLoop(statement: TSESTree.BreakStatement): LoopLikeStatement | undefined {\n\tconst labeledBody = statement.label\n\t\t? findLabeledStatementBody(statement.label, statement.parent ?? undefined)\n\t\t: undefined;\n\n\tif (labeledBody) return isLoopLikeStatement(labeledBody) ? labeledBody : undefined;\n\n\tlet current: TSESTree.Node | undefined = statement.parent ?? undefined;\n\twhile (current) {\n\t\tif (isLoopLikeStatement(current)) return current;\n\t\tif (isSwitchStatement(current)) return undefined;\n\t\tcurrent = current.parent ?? undefined;\n\t}\n\n\treturn undefined;\n}\n\nfunction resolveContinueTargetLoop(statement: TSESTree.ContinueStatement): LoopLikeStatement | undefined {\n\tconst labeledBody = statement.label\n\t\t? findLabeledStatementBody(statement.label, statement.parent ?? undefined)\n\t\t: undefined;\n\n\tif (labeledBody) return isLoopLikeStatement(labeledBody) ? labeledBody : undefined;\n\n\tlet current: TSESTree.Node | undefined = statement.parent ?? undefined;\n\twhile (current) {\n\t\tif (isLoopLikeStatement(current)) return current;\n\t\tcurrent = current.parent ?? undefined;\n\t}\n\n\treturn undefined;\n}\n\nfunction cloneEntry(value: OpenerStackEntry): OpenerStackEntry {\n\treturn { ...value, loopAncestors: [...value.loopAncestors] };\n}\n\nconst rule: Rule.RuleModule = {\n\tcreate(context): Rule.RuleListener {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- ESLint context.options is typed as any[]\n\t\tconst rawOptions = context.options[0];\n\t\tconst baseOptions = isRuleOptions.Check(rawOptions) ? rawOptions : {};\n\n\t\tconst options: Writable<RequirePairedCallsOptions> = {\n\t\t\tallowConditionalClosers: baseOptions.allowConditionalClosers ?? false,\n\t\t\tallowMultipleOpeners: baseOptions.allowMultipleOpeners ?? true,\n\t\t\tmaxNestingDepth: baseOptions.maxNestingDepth ?? 0,\n\t\t\tpairs: baseOptions.pairs ?? [],\n\t\t};\n\n\t\tif (options.pairs.length === 0) {\n\t\t\toptions.pairs = [\n\t\t\t\t{\n\t\t\t\t\tcloser: \"debug.profileend\",\n\t\t\t\t\topener: \"debug.profilebegin\",\n\t\t\t\t\tplatform: \"roblox\",\n\t\t\t\t\trequireSync: true,\n\t\t\t\t\tyieldingFunctions: [...DEFAULT_ROBLOX_YIELDING_FUNCTIONS],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tconst openerStack = new Array<OpenerStackEntry>();\n\t\tconst loopStack = new Array<LoopLikeStatement>();\n\t\tlet stackIndexCounter = 0;\n\t\tconst functionStacks = new Array<Array<OpenerStackEntry>>();\n\n\t\tlet yieldingAutoClosed = false;\n\t\tlet yieldingReportedFirst = false;\n\n\t\tconst contextStack = new Array<ControlFlowContext>();\n\t\tconst stackSnapshots = new Map<TSESTree.Node, Array<OpenerStackEntry>>();\n\t\tconst branchStacks = new Map<TSESTree.Node, Array<Array<OpenerStackEntry>>>();\n\t\tconst closerToOpenersCache = new Map<string, ReadonlyArray<string>>();\n\t\tconst openerToClosersCache = new Map<string, ReadonlyArray<string>>();\n\n\t\tfunction getConfiguredOpenersForCloser(closer: string): ReadonlyArray<string> {\n\t\t\tif (closerToOpenersCache.has(closer)) return closerToOpenersCache.get(closer) ?? [];\n\n\t\t\tconst names = new Array<string>();\n\t\t\tfor (const pair of options.pairs) {\n\t\t\t\tif (!getValidClosers(pair).includes(closer)) continue;\n\n\t\t\t\tfor (const openerName of getAllOpeners(pair)) if (!names.includes(openerName)) names.push(openerName);\n\t\t\t}\n\n\t\t\tcloserToOpenersCache.set(closer, names);\n\t\t\treturn names;\n\t\t}\n\n\t\tfunction getExpectedClosersForOpener(opener: string): ReadonlyArray<string> {\n\t\t\tif (openerToClosersCache.has(opener)) return openerToClosersCache.get(opener) ?? [];\n\n\t\t\tconst closers = new Array<string>();\n\t\t\tfor (const pair of options.pairs) {\n\t\t\t\tconst allOpeners = getAllOpeners(pair);\n\t\t\t\tif (!allOpeners.includes(opener)) continue;\n\n\t\t\t\tconst validClosers = getValidClosers(pair);\n\t\t\t\tfor (const closer of validClosers) if (!closers.includes(closer)) closers.push(closer);\n\t\t\t}\n\n\t\t\topenerToClosersCache.set(opener, closers);\n\t\t\treturn closers;\n\t\t}\n\n\t\tfunction getCurrentContext(): ControlFlowContext {\n\t\t\treturn contextStack.length > 0\n\t\t\t\t? // oxlint-disable-next-line no-non-null-assertion -- this is fine! we checked already!\n\t\t\t\t\tcontextStack.at(-1)!\n\t\t\t\t: {\n\t\t\t\t\t\tasyncContext: false,\n\t\t\t\t\t\tcurrentFunction: undefined,\n\t\t\t\t\t\thasEarlyExit: false,\n\t\t\t\t\t\tinCatch: false,\n\t\t\t\t\t\tinConditional: false,\n\t\t\t\t\t\tinFinally: false,\n\t\t\t\t\t\tinLoop: false,\n\t\t\t\t\t\tinTry: false,\n\t\t\t\t\t};\n\t\t}\n\n\t\tfunction pushContext(newContext: Partial<ControlFlowContext>): void {\n\t\t\tconst currentContext = getCurrentContext();\n\t\t\tcontextStack.push({ ...currentContext, ...newContext });\n\t\t}\n\n\t\tfunction popContext(): void {\n\t\t\tcontextStack.pop();\n\t\t}\n\n\t\tfunction updateContext(updates: Partial<ControlFlowContext>): void {\n\t\t\tconst last = contextStack.at(-1);\n\t\t\tif (!last) return;\n\t\t\tcontextStack[contextStack.length - 1] = { ...last, ...updates };\n\t\t}\n\n\t\tfunction cloneStack(): Array<OpenerStackEntry> {\n\t\t\t// oxlint-disable-next-line no-array-callback-reference -- this is fine. leave it alone.\n\t\t\treturn openerStack.map(cloneEntry);\n\t\t}\n\n\t\tfunction saveSnapshot(node: TSESTree.Node): void {\n\t\t\tstackSnapshots.set(node, cloneStack());\n\t\t}\n\n\t\tfunction findPairConfig(functionName: string, isOpener: boolean): PairConfiguration | undefined {\n\t\t\treturn options.pairs.find((pair) => {\n\t\t\t\tif (isOpener) return getAllOpeners(pair).includes(functionName);\n\n\t\t\t\t// Check if it matches closer or alternatives\n\t\t\t\tconst validClosers = getValidClosers(pair);\n\t\t\t\treturn validClosers.includes(functionName);\n\t\t\t});\n\t\t}\n\n\t\tfunction isRobloxYieldingFunction(functionName: string, configuration: PairConfiguration): boolean {\n\t\t\tif (configuration.platform !== \"roblox\") return false;\n\n\t\t\tconst yieldingFunctions = configuration.yieldingFunctions ?? DEFAULT_ROBLOX_YIELDING_FUNCTIONS;\n\t\t\treturn yieldingFunctions.some((pattern) => {\n\t\t\t\tif (pattern.startsWith(\"*.\")) {\n\t\t\t\t\t// Match any method call with this name\n\t\t\t\t\tconst methodName = pattern.slice(2);\n\t\t\t\t\treturn functionName.endsWith(`.${methodName}`);\n\t\t\t\t}\n\t\t\t\treturn functionName === pattern;\n\t\t\t});\n\t\t}\n\n\t\tfunction onFunctionEnter(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor functions receive unknown, we know the type from selector\n\t\t\tconst functionNode = node as\n\t\t\t\t| TSESTree.FunctionDeclaration\n\t\t\t\t| TSESTree.FunctionExpression\n\t\t\t\t| TSESTree.ArrowFunctionExpression;\n\n\t\t\tfunctionStacks.push([...openerStack]);\n\t\t\topenerStack.length = 0;\n\n\t\t\tyieldingAutoClosed = false;\n\t\t\tyieldingReportedFirst = false;\n\n\t\t\tpushContext({\n\t\t\t\tasyncContext: functionNode.async ?? false,\n\t\t\t\tcurrentFunction: functionNode,\n\t\t\t\thasEarlyExit: false,\n\t\t\t\tinCatch: false,\n\t\t\t\tinConditional: false,\n\t\t\t\tinFinally: false,\n\t\t\t\tinLoop: false,\n\t\t\t\tinTry: false,\n\t\t\t});\n\t\t}\n\n\t\tfunction onFunctionExit(): void {\n\t\t\tif (openerStack.length > 0) {\n\t\t\t\tfor (const entry of openerStack) {\n\t\t\t\t\tconst validClosers = getValidClosers(entry.config);\n\t\t\t\t\tconst closer =\n\t\t\t\t\t\tvalidClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\topener: entry.opener,\n\t\t\t\t\t\t\tpaths: \"function exit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\t\tnode: entry.node,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst parentStack = functionStacks.pop();\n\t\t\tif (parentStack) {\n\t\t\t\topenerStack.length = 0;\n\t\t\t\topenerStack.push(...parentStack);\n\t\t\t} else openerStack.length = 0;\n\n\t\t\tpopContext();\n\t\t}\n\n\t\tfunction onIfStatementEnter(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst ifNode = node as TSESTree.IfStatement;\n\t\t\tpushContext({ inConditional: true });\n\t\t\tsaveSnapshot(ifNode);\n\t\t}\n\n\t\tfunction onIfStatementExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst ifNode = node as TSESTree.IfStatement;\n\t\t\tpopContext();\n\n\t\t\tconst originalStack = stackSnapshots.get(ifNode);\n\t\t\tconst branches = branchStacks.get(ifNode);\n\n\t\t\tif (originalStack && branches && branches.length > 0) {\n\t\t\t\tconst hasCompleteElse = ifNode.alternate !== undefined && ifNode.alternate !== null;\n\n\t\t\t\t// Check for openers added in branches that weren't closed\n\t\t\t\tfor (const branchStack of branches) {\n\t\t\t\t\tfor (const entry of branchStack) {\n\t\t\t\t\t\tconst wasInOriginal = originalStack.some((o) => o.index === entry.index);\n\t\t\t\t\t\tif (!wasInOriginal) {\n\t\t\t\t\t\t\t// This opener was added in a branch and not closed\n\t\t\t\t\t\t\tconst validClosers = getValidClosers(entry.config);\n\t\t\t\t\t\t\tconst closer =\n\t\t\t\t\t\t\t\tvalidClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\t\topener: entry.opener,\n\t\t\t\t\t\t\t\t\tpaths: \"conditional branch\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\t\t\t\tnode: entry.node,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (hasCompleteElse) {\n\t\t\t\t\tfor (const { index, config, opener, node } of originalStack) {\n\t\t\t\t\t\tconst branchesWithOpener = branches.filter((branchStack) =>\n\t\t\t\t\t\t\tbranchStack.some((branch) => branch.index === index),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (branchesWithOpener.length <= 0 || branchesWithOpener.length >= branches.length) continue;\n\t\t\t\t\t\tif (options.allowConditionalClosers !== false) continue;\n\n\t\t\t\t\t\tconst validClosers = getValidClosers(config);\n\t\t\t\t\t\tconst closer =\n\t\t\t\t\t\t\tvalidClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\topener,\n\t\t\t\t\t\t\t\tpaths: \"not all execution paths\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tconst commonOpeners = originalStack.filter((opener) =>\n\t\t\t\t\t\tbranches.every((branchStack) => branchStack.some(({ index }) => index === opener.index)),\n\t\t\t\t\t);\n\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\topenerStack.push(...commonOpeners);\n\t\t\t\t} else {\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstackSnapshots.delete(ifNode);\n\t\t\tbranchStacks.delete(ifNode);\n\t\t}\n\n\t\tfunction onIfConsequentExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst consequentNode = node as TSESTree.Statement;\n\t\t\tconst parent = consequentNode.parent;\n\n\t\t\tif (parent?.type === AST_NODE_TYPES.IfStatement) {\n\t\t\t\tconst branches = branchStacks.get(parent) ?? [];\n\t\t\t\tbranches.push(cloneStack());\n\t\t\t\tbranchStacks.set(parent, branches);\n\n\t\t\t\tconst originalStack = stackSnapshots.get(parent);\n\t\t\t\tif (!originalStack) return;\n\n\t\t\t\topenerStack.length = 0;\n\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t}\n\t\t}\n\n\t\tfunction onIfAlternateExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst alternateNode = node as TSESTree.Statement;\n\t\t\tconst parent = alternateNode.parent;\n\n\t\t\tif (parent?.type === AST_NODE_TYPES.IfStatement) {\n\t\t\t\tconst branches = branchStacks.get(parent) ?? [];\n\t\t\t\tbranches.push(cloneStack());\n\t\t\t\tbranchStacks.set(parent, branches);\n\t\t\t}\n\t\t}\n\n\t\tfunction onTryStatementEnter(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst tryNode = node as TSESTree.TryStatement;\n\t\t\tsaveSnapshot(tryNode);\n\t\t}\n\n\t\tfunction onTryStatementExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst tryNode = node as TSESTree.TryStatement;\n\t\t\tconst originalStack = stackSnapshots.get(tryNode);\n\t\t\tconst branches = branchStacks.get(tryNode);\n\n\t\t\tif (tryNode.finalizer) {\n\t\t\t\tstackSnapshots.delete(tryNode);\n\t\t\t\tbranchStacks.delete(tryNode);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (originalStack && branches && branches.length > 0) {\n\t\t\t\tfor (const opener of originalStack) {\n\t\t\t\t\tconst branchesWithOpener = branches.filter((branchStack) =>\n\t\t\t\t\t\tbranchStack.some((entry) => entry.index === opener.index),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tbranchesWithOpener.length > 0 &&\n\t\t\t\t\t\tbranchesWithOpener.length < branches.length &&\n\t\t\t\t\t\toptions.allowConditionalClosers === false\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst validClosers = getValidClosers(opener.config);\n\t\t\t\t\t\tconst closer =\n\t\t\t\t\t\t\tvalidClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\topener: opener.opener,\n\t\t\t\t\t\t\t\tpaths: \"not all execution paths\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\t\t\tnode: opener.node,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst commonOpeners = originalStack.filter((opener) =>\n\t\t\t\t\tbranches.every((branchStack) => branchStack.some((entry) => entry.index === opener.index)),\n\t\t\t\t);\n\n\t\t\t\topenerStack.length = 0;\n\t\t\t\topenerStack.push(...commonOpeners);\n\t\t\t}\n\n\t\t\tstackSnapshots.delete(tryNode);\n\t\t\tbranchStacks.delete(tryNode);\n\t\t}\n\n\t\tfunction onTryBlockEnter(): void {\n\t\t\tpushContext({ inTry: true });\n\t\t}\n\n\t\tfunction onTryBlockExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst blockNode = node as TSESTree.BlockStatement;\n\t\t\tconst { parent } = blockNode;\n\n\t\t\tif (parent?.type === AST_NODE_TYPES.TryStatement) {\n\t\t\t\tconst branches = branchStacks.get(parent) ?? [];\n\t\t\t\tbranches.push(cloneStack());\n\t\t\t\tbranchStacks.set(parent, branches);\n\n\t\t\t\tconst originalStack = stackSnapshots.get(parent);\n\t\t\t\tif (originalStack) {\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpopContext();\n\t\t}\n\n\t\tfunction onCatchClauseEnter(): void {\n\t\t\tpushContext({ inCatch: true });\n\t\t}\n\n\t\tfunction onCatchClauseExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst catchNode = node as TSESTree.CatchClause;\n\t\t\tconst { parent } = catchNode;\n\n\t\t\tif (parent?.type === AST_NODE_TYPES.TryStatement) {\n\t\t\t\tconst branches = branchStacks.get(parent) ?? [];\n\t\t\t\tbranches.push(cloneStack());\n\t\t\t\tbranchStacks.set(parent, branches);\n\n\t\t\t\tconst originalStack = stackSnapshots.get(parent);\n\t\t\t\tif (originalStack) {\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpopContext();\n\t\t}\n\n\t\tfunction onFinallyBlockEnter(): void {\n\t\t\tpushContext({ inFinally: true });\n\t\t}\n\n\t\tfunction onFinallyBlockExit(): void {\n\t\t\tpopContext();\n\t\t}\n\n\t\tfunction onSwitchStatementEnter(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst switchNode = node as TSESTree.SwitchStatement;\n\t\t\tpushContext({ inConditional: true });\n\t\t\tsaveSnapshot(switchNode);\n\t\t}\n\n\t\tfunction onSwitchStatementExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst switchNode = node as TSESTree.SwitchStatement;\n\t\t\tpopContext();\n\n\t\t\tconst originalStack = stackSnapshots.get(switchNode);\n\t\t\tconst branches = branchStacks.get(switchNode);\n\n\t\t\tif (originalStack && branches && branches.length > 0) {\n\t\t\t\tconst hasDefault = switchNode.cases.some((caseNode) => caseNode.test === null);\n\n\t\t\t\tif (hasDefault && branches.length === switchNode.cases.length) {\n\t\t\t\t\tfor (const opener of originalStack) {\n\t\t\t\t\t\tconst branchesWithOpener = branches.filter((branchStack) =>\n\t\t\t\t\t\t\tbranchStack.some((entry) => entry.index === opener.index),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tbranchesWithOpener.length > 0 &&\n\t\t\t\t\t\t\tbranchesWithOpener.length < branches.length &&\n\t\t\t\t\t\t\toptions.allowConditionalClosers === false\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst validClosers = getValidClosers(opener.config);\n\t\t\t\t\t\t\tconst closer =\n\t\t\t\t\t\t\t\tvalidClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\t\topener: opener.opener,\n\t\t\t\t\t\t\t\t\tpaths: \"not all execution paths\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\t\t\t\tnode: opener.node,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst commonOpeners = originalStack.filter((opener) =>\n\t\t\t\t\t\tbranches.every((branchStack) => branchStack.some((entry) => entry.index === opener.index)),\n\t\t\t\t\t);\n\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\topenerStack.push(...commonOpeners);\n\t\t\t\t} else {\n\t\t\t\t\topenerStack.length = 0;\n\t\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstackSnapshots.delete(switchNode);\n\t\t\tbranchStacks.delete(switchNode);\n\t\t}\n\n\t\tfunction onSwitchCaseExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst caseNode = node as TSESTree.SwitchCase;\n\t\t\tconst { parent } = caseNode;\n\n\t\t\tif (parent?.type === AST_NODE_TYPES.SwitchStatement) {\n\t\t\t\tconst branches = branchStacks.get(parent) ?? [];\n\t\t\t\tbranches.push(cloneStack());\n\t\t\t\tbranchStacks.set(parent, branches);\n\n\t\t\t\tconst originalStack = stackSnapshots.get(parent);\n\t\t\t\tif (!originalStack) return;\n\n\t\t\t\topenerStack.length = 0;\n\t\t\t\tfor (const entry of originalStack) openerStack.push({ ...entry });\n\t\t\t}\n\t\t}\n\n\t\tfunction onLoopEnter(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst loopNode = node as LoopLikeStatement;\n\t\t\tloopStack.push(loopNode);\n\t\t\tpushContext({ inLoop: true });\n\t\t}\n\n\t\tfunction onLoopExit(): void {\n\t\t\tif (loopStack.length > 0) loopStack.pop();\n\t\t\tpopContext();\n\t\t}\n\n\t\tfunction onEarlyExit(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst statementNode = node as TSESTree.ReturnStatement | TSESTree.ThrowStatement;\n\t\t\tupdateContext({ hasEarlyExit: true });\n\n\t\t\tconst currentContext = getCurrentContext();\n\t\t\tif (currentContext.inFinally || openerStack.length === 0) return;\n\n\t\t\tfor (const { opener, config, node } of openerStack) {\n\t\t\t\tconst validClosers = getValidClosers(config);\n\t\t\t\tconst closer = validClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\tconst statementType = statementNode.type === AST_NODE_TYPES.ReturnStatement ? \"return\" : \"throw\";\n\t\t\t\tconst lineNumber = statementNode.loc?.start.line ?? 0;\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcloser,\n\t\t\t\t\t\topener,\n\t\t\t\t\t\tpaths: `${statementType} at line ${lineNumber}`,\n\t\t\t\t\t},\n\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\tnode: node,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction onBreakContinue(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst statementNode = node as TSESTree.BreakStatement | TSESTree.ContinueStatement;\n\t\t\tif (openerStack.length === 0) return;\n\n\t\t\tconst targetLoop =\n\t\t\t\tstatementNode.type === AST_NODE_TYPES.ContinueStatement\n\t\t\t\t\t? resolveContinueTargetLoop(statementNode)\n\t\t\t\t\t: resolveBreakTargetLoop(statementNode);\n\n\t\t\tif (!targetLoop) return;\n\n\t\t\tfor (const { node: openerNode, config, opener, loopAncestors } of openerStack) {\n\t\t\t\tif (!loopAncestors.some((loopNode) => loopNode === targetLoop)) continue;\n\n\t\t\t\tconst validClosers = getValidClosers(config);\n\t\t\t\tconst closer = validClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\tconst statementType = statementNode.type === AST_NODE_TYPES.BreakStatement ? \"break\" : \"continue\";\n\t\t\t\tconst lineNumber = statementNode.loc?.start.line ?? 0;\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcloser,\n\t\t\t\t\t\topener,\n\t\t\t\t\t\tpaths: `${statementType} at line ${lineNumber}`,\n\t\t\t\t\t},\n\t\t\t\t\tmessageId: \"unpairedOpener\",\n\t\t\t\t\tnode: openerNode,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction onCallExpression(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst callNode = node as TSESTree.CallExpression;\n\t\t\tconst callName = getCallName(callNode);\n\t\t\tif (callName === undefined || callName === \"\") return;\n\n\t\t\tconst openerConfig = findPairConfig(callName, true);\n\t\t\tif (openerConfig) {\n\t\t\t\thandleOpener(callNode, callName, openerConfig);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (findPairConfig(callName, false)) {\n\t\t\t\thandleCloser(callNode, callName);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (const entry of openerStack) {\n\t\t\t\tif (!isRobloxYieldingFunction(callName, entry.config)) continue;\n\n\t\t\t\thandleRobloxYield(callNode, callName, entry);\n\t\t\t\t// Roblox auto-closes ALL profiles\n\t\t\t\topenerStack.length = 0;\n\t\t\t\tyieldingAutoClosed = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction handleOpener(node: TSESTree.CallExpression, opener: string, config: PairConfiguration): void {\n\t\t\tconst maxDepth = options.maxNestingDepth ?? 0;\n\t\t\tif (maxDepth > 0 && openerStack.length >= maxDepth) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { max: String(maxDepth) },\n\t\t\t\t\tmessageId: \"maxNestingExceeded\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\toptions.allowMultipleOpeners === false &&\n\t\t\t\topenerStack.length > 0 &&\n\t\t\t\topenerStack.at(-1)?.opener === opener\n\t\t\t) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { opener },\n\t\t\t\t\tmessageId: \"multipleOpeners\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst entry: OpenerStackEntry = {\n\t\t\t\tconfig,\n\t\t\t\tindex: stackIndexCounter++,\n\t\t\t\tlocation: node.loc,\n\t\t\t\tloopAncestors: [...loopStack],\n\t\t\t\tnode,\n\t\t\t\topener,\n\t\t\t};\n\n\t\t\topenerStack.push(entry);\n\t\t}\n\n\t\tfunction handleCloser(node: TSESTree.CallExpression, closer: string): void {\n\t\t\tconst matchingIndex = openerStack.findLastIndex((entry) => getValidClosers(entry.config).includes(closer));\n\n\t\t\tif (matchingIndex === -1) {\n\t\t\t\tif (yieldingAutoClosed && !yieldingReportedFirst) {\n\t\t\t\t\tyieldingReportedFirst = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Contextual error messages based on stack state\n\t\t\t\tif (openerStack.length === 0) {\n\t\t\t\t\t// Stack is empty - no opener to close\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: { closer },\n\t\t\t\t\t\tmessageId: \"unpairedCloser\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Stack has openers, but this closer doesn't match any\n\t\t\t\t\t// Show what closer was expected for the top opener\n\t\t\t\t\tconst topEntry = openerStack.at(-1);\n\t\t\t\t\tif (topEntry) {\n\t\t\t\t\t\tconst expectedClosers = getExpectedClosersForOpener(topEntry.opener);\n\t\t\t\t\t\tconst closerDescription = formatOpenerList(expectedClosers);\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\texpected: closerDescription,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessageId: \"unexpectedCloser\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback to old behavior if somehow no top entry\n\t\t\t\t\t\tconst openerCandidates = getConfiguredOpenersForCloser(closer);\n\t\t\t\t\t\tconst openerDescription = formatOpenerList(openerCandidates);\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\t\topener: openerDescription,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessageId: \"unpairedCloser\",\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst matchingEntry = openerStack[matchingIndex];\n\t\t\tif (!matchingEntry) return;\n\n\t\t\tif (matchingIndex !== openerStack.length - 1) {\n\t\t\t\tconst topEntry = openerStack.at(-1);\n\t\t\t\tif (topEntry) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tactual: topEntry.opener,\n\t\t\t\t\t\t\tcloser,\n\t\t\t\t\t\t\texpected: matchingEntry.opener,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmessageId: \"wrongOrder\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\topenerStack.splice(matchingIndex, 1);\n\t\t}\n\n\t\tfunction handleRobloxYield(\n\t\t\tnode: TSESTree.CallExpression,\n\t\t\tyieldingFunction: string,\n\t\t\topenerEntry: OpenerStackEntry,\n\t\t): void {\n\t\t\tconst validClosers = getValidClosers(openerEntry.config);\n\t\t\tconst closer = validClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\tcontext.report({\n\t\t\t\tdata: { closer, yieldingFunction },\n\t\t\t\tmessageId: \"robloxYieldViolation\",\n\t\t\t\tnode,\n\t\t\t});\n\t\t}\n\n\t\tfunction onAsyncYield(node: unknown): void {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\tconst asyncNode = node as TSESTree.AwaitExpression | TSESTree.YieldExpression;\n\t\t\tfor (const { opener, config } of openerStack) {\n\t\t\t\tif (config.requireSync !== true) continue;\n\n\t\t\t\tconst validClosers = getValidClosers(config);\n\t\t\t\tconst closer = validClosers.length === 1 ? (validClosers[0] ?? \"closer\") : validClosers.join(\"' or '\");\n\n\t\t\t\tconst asyncType = asyncNode.type === AST_NODE_TYPES.AwaitExpression ? \"await\" : \"yield\";\n\n\t\t\t\tcontext.report({\n\t\t\t\t\tdata: { asyncType, closer, opener },\n\t\t\t\t\tmessageId: \"asyncViolation\",\n\t\t\t\t\tnode: asyncNode,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tArrowFunctionExpression: onFunctionEnter,\n\t\t\t\"ArrowFunctionExpression:exit\": onFunctionExit,\n\n\t\t\tAwaitExpression: onAsyncYield,\n\t\t\tBreakStatement: onBreakContinue,\n\n\t\t\tCallExpression: onCallExpression,\n\t\t\tCatchClause: onCatchClauseEnter,\n\t\t\t\"CatchClause:exit\": onCatchClauseExit,\n\t\t\tContinueStatement: onBreakContinue,\n\t\t\tDoWhileStatement: onLoopEnter,\n\t\t\t\"DoWhileStatement:exit\": onLoopExit,\n\t\t\tForInStatement: onLoopEnter,\n\t\t\t\"ForInStatement:exit\": onLoopExit,\n\t\t\tForOfStatement: (node) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ESLint visitor type from selector\n\t\t\t\tconst forOfNode = node as TSESTree.ForOfStatement;\n\t\t\t\tif (forOfNode.await) onAsyncYield(forOfNode);\n\t\t\t\tonLoopEnter(forOfNode);\n\t\t\t},\n\t\t\t\"ForOfStatement:exit\": onLoopExit,\n\n\t\t\tForStatement: onLoopEnter,\n\t\t\t\"ForStatement:exit\": onLoopExit,\n\t\t\tFunctionDeclaration: onFunctionEnter,\n\t\t\t\"FunctionDeclaration:exit\": onFunctionExit,\n\t\t\tFunctionExpression: onFunctionEnter,\n\t\t\t\"FunctionExpression:exit\": onFunctionExit,\n\n\t\t\tIfStatement: onIfStatementEnter,\n\t\t\t\"IfStatement > .alternate:exit\": onIfAlternateExit,\n\t\t\t\"IfStatement > .consequent:exit\": onIfConsequentExit,\n\t\t\t\"IfStatement:exit\": onIfStatementExit,\n\n\t\t\tReturnStatement: onEarlyExit,\n\t\t\t\"SwitchCase:exit\": onSwitchCaseExit,\n\n\t\t\tSwitchStatement: onSwitchStatementEnter,\n\t\t\t\"SwitchStatement:exit\": onSwitchStatementExit,\n\t\t\tThrowStatement: onEarlyExit,\n\n\t\t\tTryStatement: onTryStatementEnter,\n\t\t\t\"TryStatement > .block\": onTryBlockEnter,\n\t\t\t\"TryStatement > .block:exit\": onTryBlockExit,\n\t\t\t\"TryStatement > .finalizer\": onFinallyBlockEnter,\n\t\t\t\"TryStatement > .finalizer:exit\": onFinallyBlockExit,\n\t\t\t\"TryStatement:exit\": onTryStatementExit,\n\t\t\tWhileStatement: onLoopEnter,\n\t\t\t\"WhileStatement:exit\": onLoopExit,\n\t\t\tYieldExpression: onAsyncYield,\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription: \"Enforces balanced opener/closer function calls across all execution paths\",\n\t\t\trecommended: false,\n\t\t\turl: \"https://github.com/howmanysmall/eslint-idiot-lint/tree/main/docs/rules/require-paired-calls.md\",\n\t\t},\n\t\tfixable: \"code\",\n\t\tmessages: {\n\t\t\tasyncViolation: \"Cannot use {{asyncType}} between '{{opener}}' and '{{closer}}' (requireSync: true)\",\n\t\t\tconditionalOpener:\n\t\t\t\t\"Conditional opener '{{opener}}' at {{location}} may not have matching closer on all paths\",\n\t\t\tmaxNestingExceeded: \"Maximum nesting depth of {{max}} exceeded for paired calls\",\n\t\t\tmultipleOpeners:\n\t\t\t\t\"Multiple consecutive calls to '{{opener}}' without matching closers (allowMultipleOpeners: false)\",\n\t\t\trobloxYieldViolation:\n\t\t\t\t\"Yielding function '{{yieldingFunction}}' auto-closes all profiles - subsequent '{{closer}}' will error\",\n\t\t\tunexpectedCloser: \"Unexpected call to '{{closer}}' - expected one of: {{expected}}\",\n\t\t\tunpairedCloser: \"Unexpected call to '{{closer}}' - no matching opener on stack\",\n\t\t\tunpairedOpener: \"Unpaired call to '{{opener}}' - missing '{{closer}}' on {{paths}}\",\n\t\t\twrongOrder:\n\t\t\t\t\"Closer '{{closer}}' called out of order - expected to close '{{expected}}' but '{{actual}}' is still open\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tallowConditionalClosers: {\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\tallowMultipleOpeners: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\tmaxNestingDepth: {\n\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\tminimum: 0,\n\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t},\n\t\t\t\t\tpairs: {\n\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\talternatives: {\n\t\t\t\t\t\t\t\t\titems: { minLength: 1, type: \"string\" },\n\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcloser: {\n\t\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t\t{ minLength: 1, type: \"string\" },\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\titems: { minLength: 1, type: \"string\" },\n\t\t\t\t\t\t\t\t\t\t\tminItems: 1,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\topener: {\n\t\t\t\t\t\t\t\t\tminLength: 1,\n\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\topenerAlternatives: {\n\t\t\t\t\t\t\t\t\titems: { minLength: 1, type: \"string\" },\n\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tplatform: {\n\t\t\t\t\t\t\t\t\tenum: [\"roblox\"],\n\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trequireSync: {\n\t\t\t\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tyieldingFunctions: {\n\t\t\t\t\t\t\t\t\titems: { minLength: 1, type: \"string\" },\n\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequired: [\"opener\", \"closer\"],\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tminItems: 1,\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: [\"pairs\"],\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default rule;\n",
506
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { TSESLint } from \"@typescript-eslint/utils\";\n\nexport interface ReactKeysOptions {\n\treadonly allowRootKeys?: boolean;\n\treadonly ignoreCallExpressions?: ReadonlyArray<string>;\n\treadonly iterationMethods?: ReadonlyArray<string>;\n\treadonly memoizationHooks?: ReadonlyArray<string>;\n}\n\ntype Options = [ReactKeysOptions?];\ntype MessageIds = \"missingKey\" | \"rootComponentWithKey\";\n\nconst DEFAULT_OPTIONS: Required<ReactKeysOptions> = {\n\tallowRootKeys: false,\n\tignoreCallExpressions: [\"ReactTree.mount\", \"CreateReactStory\"],\n\titerationMethods: [\n\t\t\"map\",\n\t\t\"filter\",\n\t\t\"forEach\",\n\t\t\"flatMap\",\n\t\t\"reduce\",\n\t\t\"reduceRight\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"find\",\n\t\t\"findIndex\",\n\t],\n\tmemoizationHooks: [\"useCallback\", \"useMemo\"],\n};\n\nconst WRAPPER_PARENT_TYPES = new Set([\n\t\"ParenthesizedExpression\",\n\t\"TSAsExpression\",\n\t\"TSSatisfiesExpression\",\n\t\"TSTypeAssertion\",\n\t\"TSNonNullExpression\",\n\t\"TSInstantiationExpression\",\n\t\"ChainExpression\",\n]);\n\nconst ARGUMENT_WRAPPER_TYPES = new Set([\n\t...WRAPPER_PARENT_TYPES,\n\t\"AwaitExpression\",\n\t\"ConditionalExpression\",\n\t\"LogicalExpression\",\n\t\"SequenceExpression\",\n\t\"SpreadElement\",\n]);\n\ntype FunctionLike = TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression | TSESTree.FunctionDeclaration;\n\ninterface RuleDocsWithRecommended extends TSESLint.RuleMetaDataDocs {\n\treadonly recommended?: boolean;\n}\n\nfunction ascendPastWrappers(node: TSESTree.Node | undefined): TSESTree.Node | undefined {\n\tlet current = node;\n\twhile (current && WRAPPER_PARENT_TYPES.has(current.type)) current = current.parent;\n\treturn current;\n}\n\nfunction hasKeyAttribute(node: TSESTree.JSXElement): boolean {\n\tfor (const attribute of node.openingElement.attributes)\n\t\tif (attribute.type === TSESTree.AST_NODE_TYPES.JSXAttribute && attribute.name.name === \"key\") return true;\n\n\treturn false;\n}\n\nfunction isReactComponentHOC(callExpr: TSESTree.CallExpression): boolean {\n\tconst { callee } = callExpr;\n\n\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier)\n\t\treturn callee.name === \"forwardRef\" || callee.name === \"memo\";\n\n\tif (\n\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tcallee.object.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\tcallee.object.name === \"React\" &&\n\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t)\n\t\treturn callee.property.name === \"forwardRef\" || callee.property.name === \"memo\";\n\n\treturn false;\n}\n\nfunction getEnclosingFunctionLike(node: TSESTree.Node): FunctionLike | undefined {\n\tlet current: TSESTree.Node | undefined = node.parent;\n\n\twhile (current) {\n\t\tif (\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.FunctionExpression ||\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration\n\t\t)\n\t\t\treturn current;\n\n\t\tcurrent = current.parent;\n\t}\n\n\treturn undefined;\n}\n\nfunction isIterationOrMemoCallback(\n\tcallExpr: TSESTree.CallExpression,\n\titerationMethods: Set<string>,\n\tmemoizationHooks: Set<string>,\n): boolean {\n\tconst { callee } = callExpr;\n\n\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier && memoizationHooks.has(callee.name)) return true;\n\n\tif (\n\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t) {\n\t\tconst methodName = callee.property.name;\n\n\t\tif (iterationMethods.has(methodName)) return true;\n\n\t\tif (\n\t\t\tmethodName === \"from\" &&\n\t\t\tcallee.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\tcallee.object.object.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\tcallee.object.object.name === \"Array\" &&\n\t\t\tcallExpr.arguments.length >= 2\n\t\t)\n\t\t\treturn true;\n\n\t\tif (\n\t\t\tmethodName === \"call\" &&\n\t\t\tcallee.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\tcallee.object.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\tcallee.object.object.property.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\titerationMethods.has(callee.object.object.property.name)\n\t\t)\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction findEnclosingCallExpression(node: TSESTree.Node): TSESTree.CallExpression | undefined {\n\tlet current: TSESTree.Node = node;\n\tlet { parent } = node;\n\n\twhile (parent) {\n\t\tif (parent.type === TSESTree.AST_NODE_TYPES.CallExpression) {\n\t\t\tfor (const argument of parent.arguments) {\n\t\t\t\tif (argument === current) return parent;\n\t\t\t\tif (argument.type === TSESTree.AST_NODE_TYPES.SpreadElement && argument.argument === current)\n\t\t\t\t\treturn parent;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ARGUMENT_WRAPPER_TYPES.has(parent.type)) {\n\t\t\tcurrent = parent;\n\t\t\tparent = parent.parent;\n\t\t\tcontinue;\n\t\t}\n\n\t\tbreak;\n\t}\n\n\treturn undefined;\n}\n\nfunction getVariableForFunction(\n\tcontext: TSESLint.RuleContext<MessageIds, Options>,\n\tfunctionLike: FunctionLike,\n): TSESLint.Scope.Variable | undefined {\n\tif (functionLike.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration) {\n\t\tconst declared = context.sourceCode.getDeclaredVariables(functionLike);\n\t\tif (declared.length > 0) return declared[0];\n\t\treturn undefined;\n\t}\n\n\tconst { parent } = functionLike;\n\tif (!parent) return undefined;\n\n\tif (\n\t\tparent.type === TSESTree.AST_NODE_TYPES.VariableDeclarator ||\n\t\tparent.type === TSESTree.AST_NODE_TYPES.AssignmentExpression\n\t) {\n\t\tconst declared = context.sourceCode.getDeclaredVariables(parent);\n\t\tif (declared.length > 0) return declared[0];\n\t}\n\n\treturn undefined;\n}\n\nfunction referenceActsAsCallback(\n\treference: TSESLint.Scope.Reference,\n\titerationMethods: Set<string>,\n\tmemoizationHooks: Set<string>,\n): boolean {\n\tif (!reference.isRead()) return false;\n\n\tconst callExpression = findEnclosingCallExpression(reference.identifier);\n\tif (!callExpression) return false;\n\n\tif (isReactComponentHOC(callExpression)) return false;\n\n\treturn isIterationOrMemoCallback(callExpression, iterationMethods, memoizationHooks);\n}\n\nfunction isFunctionUsedAsCallback(\n\tcontext: TSESLint.RuleContext<MessageIds, Options>,\n\tfunctionLike: FunctionLike,\n\titerationMethods: Set<string>,\n\tmemoizationHooks: Set<string>,\n): boolean {\n\tconst inlineCall = findEnclosingCallExpression(functionLike);\n\tif (inlineCall) {\n\t\tif (isReactComponentHOC(inlineCall)) return false;\n\t\treturn isIterationOrMemoCallback(inlineCall, iterationMethods, memoizationHooks);\n\t}\n\n\tconst variable = getVariableForFunction(context, functionLike);\n\tif (!variable) return false;\n\n\tfor (const reference of variable.references)\n\t\tif (referenceActsAsCallback(reference, iterationMethods, memoizationHooks)) return true;\n\n\treturn false;\n}\n\nconst SHOULD_ASCEND_TYPES = new Set<TSESTree.AST_NODE_TYPES>([\n\tTSESTree.AST_NODE_TYPES.ConditionalExpression,\n\tTSESTree.AST_NODE_TYPES.LogicalExpression,\n]);\nconst IS_FUNCTION_EXPRESSION = new Set<TSESTree.AST_NODE_TYPES>([\n\tTSESTree.AST_NODE_TYPES.FunctionExpression,\n\tTSESTree.AST_NODE_TYPES.ArrowFunctionExpression,\n]);\n\nfunction isTopLevelReturn(node: TSESTree.JSXElement | TSESTree.JSXFragment): boolean {\n\tlet parent = ascendPastWrappers(node.parent);\n\tif (!parent) return false;\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) parent = ascendPastWrappers(parent.parent);\n\tif (!parent) return false;\n\n\twhile (parent && SHOULD_ASCEND_TYPES.has(parent.type)) parent = ascendPastWrappers(parent.parent);\n\tif (!parent) return false;\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) parent = ascendPastWrappers(parent.parent);\n\tif (!parent) return false;\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.ReturnStatement) {\n\t\tlet currentNode: TSESTree.Node | undefined = ascendPastWrappers(parent.parent);\n\t\tif (currentNode?.type === TSESTree.AST_NODE_TYPES.BlockStatement)\n\t\t\tcurrentNode = ascendPastWrappers(currentNode.parent);\n\t\tif (!currentNode) return false;\n\n\t\tif (IS_FUNCTION_EXPRESSION.has(currentNode.type)) {\n\t\t\tconst functionParent = ascendPastWrappers(currentNode.parent);\n\t\t\tif (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)\n\t\t\t\treturn isReactComponentHOC(functionParent);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn currentNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration;\n\t}\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {\n\t\tconst functionParent = ascendPastWrappers(parent.parent);\n\t\tif (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression) return isReactComponentHOC(functionParent);\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction isIgnoredCallExpression(\n\tnode: TSESTree.JSXElement | TSESTree.JSXFragment,\n\tignoreList: ReadonlyArray<string>,\n): boolean {\n\tlet parent: TSESTree.Node | undefined = node.parent;\n\tif (!parent) return false;\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {\n\t\tparent = parent.parent;\n\t\tif (!parent) return false;\n\t}\n\n\tconst maxDepth = 20;\n\tfor (let depth = 0; depth < maxDepth && parent; depth += 1) {\n\t\tconst { type } = parent;\n\n\t\tif (type === TSESTree.AST_NODE_TYPES.CallExpression) {\n\t\t\tconst { callee } = parent;\n\t\t\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier) return ignoreList.includes(callee.name);\n\n\t\t\tif (\n\t\t\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\tcallee.object.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t\t)\n\t\t\t\treturn ignoreList.includes(`${callee.object.name}.${callee.property.name}`);\n\n\t\t\treturn false;\n\t\t}\n\n\t\tparent = parent.parent;\n\t}\n\n\treturn false;\n}\n\nfunction isJSXPropValue(node: TSESTree.JSXElement | TSESTree.JSXFragment): boolean {\n\tlet { parent } = node;\n\tif (!parent) return false;\n\n\twhile (\n\t\tparent &&\n\t\t(parent.type === TSESTree.AST_NODE_TYPES.ConditionalExpression ||\n\t\t\tparent.type === TSESTree.AST_NODE_TYPES.LogicalExpression)\n\t)\n\t\tparent = parent.parent;\n\n\tif (!parent) return false;\n\n\tif (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {\n\t\tparent = parent.parent;\n\t\tif (!parent) return false;\n\t}\n\n\treturn parent.type === TSESTree.AST_NODE_TYPES.JSXAttribute;\n}\n\nconst docs: RuleDocsWithRecommended = {\n\tdescription: \"Enforce key props on all React elements except top-level returns\",\n\trecommended: true,\n};\n\nconst requireReactComponentKeys: TSESLint.RuleModuleWithMetaDocs<MessageIds, Options, RuleDocsWithRecommended> = {\n\tcreate(context) {\n\t\tconst options: Required<ReactKeysOptions> = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...context.options[0],\n\t\t};\n\n\t\tconst iterationMethods = new Set(options.iterationMethods);\n\t\tconst memoizationHooks = new Set(options.memoizationHooks);\n\n\t\tfunction checkElement(node: TSESTree.JSXElement | TSESTree.JSXFragment): void {\n\t\t\tconst functionLike = getEnclosingFunctionLike(node);\n\t\t\tconst isCallback = functionLike\n\t\t\t\t? isFunctionUsedAsCallback(context, functionLike, iterationMethods, memoizationHooks)\n\t\t\t\t: false;\n\t\t\tconst isRoot = isTopLevelReturn(node);\n\n\t\t\tif (isRoot && !isCallback) {\n\t\t\t\tif (\n\t\t\t\t\t!options.allowRootKeys &&\n\t\t\t\t\tnode.type === TSESTree.AST_NODE_TYPES.JSXElement &&\n\t\t\t\t\thasKeyAttribute(node)\n\t\t\t\t) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"rootComponentWithKey\",\n\t\t\t\t\t\tnode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isIgnoredCallExpression(node, options.ignoreCallExpressions)) return;\n\t\t\tif (isJSXPropValue(node)) return;\n\n\t\t\tif (node.type === TSESTree.AST_NODE_TYPES.JSXFragment) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tmessageId: \"missingKey\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!hasKeyAttribute(node)) {\n\t\t\t\tcontext.report({\n\t\t\t\t\tmessageId: \"missingKey\",\n\t\t\t\t\tnode,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tJSXElement(node) {\n\t\t\t\tcheckElement(node);\n\t\t\t},\n\n\t\t\tJSXFragment(node) {\n\t\t\t\tcheckElement(node);\n\t\t\t},\n\t\t};\n\t},\n\tdefaultOptions: [DEFAULT_OPTIONS],\n\tmeta: {\n\t\tdocs,\n\t\tmessages: {\n\t\t\tmissingKey: \"All React elements except top-level returns require a key prop\",\n\t\t\trootComponentWithKey: \"Root component returns should not have key props\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tallowRootKeys: {\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t\tdescription: \"Allow key props on root component returns\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\tignoreCallExpressions: {\n\t\t\t\t\t\tdefault: [\"ReactTree.mount\"],\n\t\t\t\t\t\tdescription: \"Function calls where JSX arguments don't need keys\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t\titerationMethods: {\n\t\t\t\t\t\tdefault: [\n\t\t\t\t\t\t\t\"map\",\n\t\t\t\t\t\t\t\"filter\",\n\t\t\t\t\t\t\t\"forEach\",\n\t\t\t\t\t\t\t\"flatMap\",\n\t\t\t\t\t\t\t\"reduce\",\n\t\t\t\t\t\t\t\"reduceRight\",\n\t\t\t\t\t\t\t\"some\",\n\t\t\t\t\t\t\t\"every\",\n\t\t\t\t\t\t\t\"find\",\n\t\t\t\t\t\t\t\"findIndex\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdescription: \"Array method names that indicate iteration contexts where keys are required\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t\tmemoizationHooks: {\n\t\t\t\t\t\tdefault: [\"useCallback\", \"useMemo\"],\n\t\t\t\t\t\tdescription: \"Hook names that indicate memoization contexts where keys are required\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default requireReactComponentKeys;\n",
507
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule, Scope } from \"eslint\";\nimport Type from \"typebox\";\nimport { Compile } from \"typebox/compile\";\n\nconst FUNCTION_DECLARATIONS = new Set<TSESTree.AST_NODE_TYPES>([\n\tTSESTree.AST_NODE_TYPES.FunctionExpression,\n\tTSESTree.AST_NODE_TYPES.ArrowFunctionExpression,\n\tTSESTree.AST_NODE_TYPES.FunctionDeclaration,\n]);\n\nconst UNSTABLE_VALUES = new Set<TSESTree.AST_NODE_TYPES>([\n\t...FUNCTION_DECLARATIONS,\n\tTSESTree.AST_NODE_TYPES.ObjectExpression,\n\tTSESTree.AST_NODE_TYPES.ArrayExpression,\n]);\n\nexport interface HookEntry {\n\treadonly name: string;\n\treadonly closureIndex?: number;\n\treadonly dependenciesIndex?: number;\n\treadonly stableResult?: boolean | number | ReadonlyArray<number> | ReadonlyArray<string>;\n}\n\nexport interface UseExhaustiveDependenciesOptions {\n\treadonly hooks?: ReadonlyArray<HookEntry>;\n\treadonly reportMissingDependenciesArray?: boolean;\n\treadonly reportUnnecessaryDependencies?: boolean;\n}\n\nexport interface HookConfig {\n\treadonly closureIndex: number;\n\treadonly dependenciesIndex: number;\n}\n\nexport type StableResult = boolean | ReadonlySet<number> | ReadonlySet<string>;\n\nconst testingMetrics = {\n\tmoduleLevelStableConst: 0,\n\touterScopeSkip: 0,\n};\n\nfunction resetTestingMetrics(): void {\n\ttestingMetrics.moduleLevelStableConst = 0;\n\ttestingMetrics.outerScopeSkip = 0;\n}\n\ninterface VariableDefinitionLike {\n\treadonly node: TSESTree.Node | Rule.Node;\n\treadonly type: string;\n}\n\ninterface VariableLike {\n\treadonly defs: ReadonlyArray<VariableDefinitionLike>;\n}\n\ninterface DependencyInfo {\n\treadonly name: string;\n\treadonly node: TSESTree.Node;\n\treadonly depth: number;\n}\n\ninterface CaptureInfo {\n\treadonly name: string;\n\treadonly node: TSESTree.Node;\n\treadonly usagePath: string;\n\treadonly variable: VariableLike | undefined;\n\treadonly depth: number;\n}\n\nconst DEFAULT_HOOKS = new Map<string, HookConfig>([\n\t[\"useEffect\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useLayoutEffect\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useInsertionEffect\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useCallback\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useMemo\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useImperativeHandle\", { closureIndex: 1, dependenciesIndex: 2 }],\n\t[\"useSpring\", { closureIndex: 0, dependenciesIndex: 1 }],\n\t[\"useSprings\", { closureIndex: 1, dependenciesIndex: 2 }],\n\t[\"useTrail\", { closureIndex: 1, dependenciesIndex: 2 }],\n]);\n\nconst STABLE_HOOKS = new Map<string, StableResult>([\n\t[\"useState\", new Set([1])],\n\t[\"useReducer\", new Set([1])],\n\t[\"useTransition\", new Set([1])],\n\t[\"useRef\", true],\n\t[\"useBinding\", true],\n]);\n\nconst STABLE_VALUE_TYPES = new Set([\"ImportBinding\", \"FunctionDeclaration\", \"ClassDeclaration\", \"FunctionName\"]);\n\nconst GLOBAL_BUILTINS = new Set([\n\t\"undefined\",\n\t\"null\",\n\t\"Infinity\",\n\t\"NaN\",\n\n\t\"Array\",\n\t\"Object\",\n\t\"String\",\n\t\"Number\",\n\t\"Boolean\",\n\t\"Symbol\",\n\t\"BigInt\",\n\t\"Function\",\n\n\t\"Map\",\n\t\"Set\",\n\t\"WeakMap\",\n\t\"WeakSet\",\n\n\t\"Promise\",\n\n\t\"Date\",\n\t\"RegExp\",\n\t\"Error\",\n\t\"Math\",\n\t\"JSON\",\n\n\t\"parseInt\",\n\t\"parseFloat\",\n\t\"isNaN\",\n\t\"isFinite\",\n\t\"encodeURI\",\n\t\"encodeURIComponent\",\n\t\"decodeURI\",\n\t\"decodeURIComponent\",\n\n\t\"ReadonlyArray\",\n\t\"ReadonlyMap\",\n\t\"ReadonlySet\",\n\t\"Partial\",\n\t\"Required\",\n\t\"Readonly\",\n\t\"Pick\",\n\t\"Omit\",\n\t\"Exclude\",\n\t\"Extract\",\n\t\"Record\",\n\t\"NonNullable\",\n\t\"ReturnType\",\n\t\"InstanceType\",\n\t\"Parameters\",\n\n\t\"console\",\n\t\"setTimeout\",\n\t\"setInterval\",\n\t\"clearTimeout\",\n\t\"clearInterval\",\n\n\t\"Element\",\n\t\"Node\",\n\t\"Document\",\n\t\"Window\",\n\t\"Event\",\n]);\n\nfunction getHookName(node: TSESTree.CallExpression): string | undefined {\n\tconst { callee } = node;\n\n\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier) return callee.name;\n\n\tif (\n\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t)\n\t\treturn callee.property.name;\n\n\treturn undefined;\n}\n\nfunction getMemberExpressionDepth(node: TSESTree.Node): number {\n\tlet depth = 0;\n\tlet current: TSESTree.Node = node;\n\n\twhile (current.type === TSESTree.AST_NODE_TYPES.MemberExpression) {\n\t\tdepth += 1;\n\t\tcurrent = current.object;\n\t}\n\n\treturn depth;\n}\n\nfunction getRootIdentifier(node: TSESTree.Node): TSESTree.Identifier | undefined {\n\tlet current: TSESTree.Node = node;\n\twhile (current.type === TSESTree.AST_NODE_TYPES.MemberExpression) current = current.object;\n\treturn current.type === TSESTree.AST_NODE_TYPES.Identifier ? current : undefined;\n}\n\nfunction nodeToDependencyString(node: TSESTree.Node, sourceCode: Rule.RuleContext[\"sourceCode\"]): string {\n\treturn sourceCode.getText(node as unknown as Rule.Node);\n}\n\nfunction isStableArrayIndex(\n\tstableResult: StableResult | undefined,\n\tnode: Scope.Definition[\"node\"],\n\tidentifierName: string,\n): boolean {\n\tif (!stableResult) return false;\n\tif (\n\t\t!(stableResult instanceof Set) ||\n\t\tnode.type !== TSESTree.AST_NODE_TYPES.VariableDeclarator ||\n\t\tnode.id.type !== TSESTree.AST_NODE_TYPES.ArrayPattern\n\t)\n\t\treturn false;\n\n\tconst elements = node.id.elements;\n\tlet index = 0;\n\tfor (const element of elements) {\n\t\tif (element.type === TSESTree.AST_NODE_TYPES.Identifier && element.name === identifierName)\n\t\t\treturn (stableResult as Set<number>).has(index);\n\t\tindex += 1;\n\t}\n\n\treturn false;\n}\n\nfunction isStableHookValue(\n\tinit: TSESTree.Expression | Rule.Node,\n\tnode: Scope.Definition[\"node\"],\n\tidentifierName: string,\n\tstableHooks: Map<string, StableResult>,\n): boolean {\n\tconst castInit = init as TSESTree.Expression;\n\tif (castInit.type !== TSESTree.AST_NODE_TYPES.CallExpression) return false;\n\n\tconst hookName = getHookName(castInit);\n\tif (!hookName) return false;\n\n\tconst stableResult = stableHooks.get(hookName);\n\tif (stableResult === true) return true;\n\n\treturn isStableArrayIndex(stableResult, node, identifierName);\n}\n\nfunction isStableValue(\n\tvariable: VariableLike | undefined,\n\tidentifierName: string,\n\tstableHooks: Map<string, StableResult>,\n): boolean {\n\tif (!variable) return false;\n\n\tconst definitions = variable.defs;\n\tif (definitions.length === 0) return false;\n\n\tfor (const definition of definitions) {\n\t\tconst { node, type } = definition;\n\n\t\tif (STABLE_VALUE_TYPES.has(type)) return true;\n\n\t\tif (type === \"Variable\" && node.type === TSESTree.AST_NODE_TYPES.VariableDeclarator) {\n\t\t\tconst parent = (node as TSESTree.VariableDeclarator).parent;\n\t\t\tif (!parent || parent.type !== TSESTree.AST_NODE_TYPES.VariableDeclaration || parent.kind !== \"const\")\n\t\t\t\tcontinue;\n\n\t\t\tconst init = node.init as TSESTree.Expression | Rule.Node | undefined | null;\n\t\t\tif (init && isStableHookValue(init, node, identifierName, stableHooks)) return true;\n\n\t\t\tif (init?.type === TSESTree.AST_NODE_TYPES.CallExpression) {\n\t\t\t\tconst { callee } = init;\n\n\t\t\t\tif (\n\t\t\t\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\t\tcallee.object.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\t\tcallee.object.name === \"React\" &&\n\t\t\t\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\t\tcallee.property.name === \"joinBindings\"\n\t\t\t\t)\n\t\t\t\t\treturn true;\n\n\t\t\t\tif (\n\t\t\t\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier &&\n\t\t\t\t\tcallee.property.name === \"map\"\n\t\t\t\t)\n\t\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (init) {\n\t\t\t\tif (\n\t\t\t\t\tinit.type === TSESTree.AST_NODE_TYPES.Literal ||\n\t\t\t\t\tinit.type === TSESTree.AST_NODE_TYPES.TemplateLiteral\n\t\t\t\t)\n\t\t\t\t\treturn true;\n\t\t\t\tif (\n\t\t\t\t\tinit.type === TSESTree.AST_NODE_TYPES.UnaryExpression &&\n\t\t\t\t\tinit.argument.type === TSESTree.AST_NODE_TYPES.Literal\n\t\t\t\t)\n\t\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst variableDefinition = variable.defs.find((definition) => definition.node === node);\n\t\t\tif (variableDefinition && variableDefinition.node.type === TSESTree.AST_NODE_TYPES.VariableDeclarator) {\n\t\t\t\tconst declarationParent = (variableDefinition.node as TSESTree.VariableDeclarator).parent?.parent;\n\t\t\t\tif (\n\t\t\t\t\tdeclarationParent &&\n\t\t\t\t\t(declarationParent.type === TSESTree.AST_NODE_TYPES.Program ||\n\t\t\t\t\t\tdeclarationParent.type === TSESTree.AST_NODE_TYPES.ExportNamedDeclaration)\n\t\t\t\t) {\n\t\t\t\t\ttestingMetrics.moduleLevelStableConst += 1;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction findTopmostMemberExpression(node: TSESTree.Node): TSESTree.Node {\n\tlet current: TSESTree.Node = node;\n\tlet { parent } = node;\n\n\twhile (parent?.type === TSESTree.AST_NODE_TYPES.MemberExpression && parent.object === current) {\n\t\tcurrent = parent;\n\t\tparent = parent.parent;\n\t}\n\n\treturn current;\n}\n\nconst IS_CEASE_BOUNDARY = new Set<TSESTree.AST_NODE_TYPES>([\n\tTSESTree.AST_NODE_TYPES.FunctionDeclaration,\n\tTSESTree.AST_NODE_TYPES.FunctionExpression,\n\tTSESTree.AST_NODE_TYPES.ArrowFunctionExpression,\n\tTSESTree.AST_NODE_TYPES.VariableDeclarator,\n]);\n\nfunction isInTypePosition(identifier: TSESTree.Identifier): boolean {\n\tlet parent: TSESTree.Node | undefined = identifier.parent;\n\n\twhile (parent) {\n\t\tif (parent.type.startsWith(\"TS\")) return true;\n\t\tif (IS_CEASE_BOUNDARY.has(parent.type)) return false;\n\t\tparent = parent.parent;\n\t}\n\n\treturn false;\n}\n\nfunction isDeclaredInComponentBody(variable: VariableLike, closureNode: TSESTree.Node): boolean {\n\tlet parent: TSESTree.Node | undefined = closureNode.parent;\n\n\twhile (parent) {\n\t\tconst isFunction = FUNCTION_DECLARATIONS.has(parent.type);\n\n\t\tif (isFunction) {\n\t\t\tconst functionParent = parent;\n\n\t\t\tconst isParameter = variable.defs.some((definition) => {\n\t\t\t\tif (definition.type !== \"Parameter\") return false;\n\t\t\t\treturn definition.node === functionParent;\n\t\t\t});\n\n\t\t\tif (isParameter) return true;\n\n\t\t\treturn variable.defs.some((definition) => {\n\t\t\t\tlet node: TSESTree.Node | undefined = definition.node.parent as TSESTree.Node | undefined;\n\t\t\t\twhile (node && node !== functionParent) node = node.parent;\n\t\t\t\treturn node === functionParent;\n\t\t\t});\n\t\t}\n\n\t\tparent = parent.parent;\n\t}\n\n\treturn false;\n}\n\nfunction resolveFunctionReference(\n\tidentifier: TSESTree.Identifier,\n\tscope: Scope.Scope,\n): TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression | undefined {\n\tlet variable: Scope.Variable | undefined;\n\tlet currentScope: Scope.Scope | null = scope;\n\n\twhile (currentScope) {\n\t\tvariable = currentScope.set.get(identifier.name);\n\t\tif (variable) break;\n\t\tcurrentScope = currentScope.upper;\n\t}\n\n\tif (!variable || variable.defs.length === 0) return undefined;\n\n\tfor (const definition of variable.defs) {\n\t\tconst { node } = definition;\n\n\t\tif (node.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration)\n\t\t\treturn node as unknown as TSESTree.FunctionExpression;\n\n\t\tif (\n\t\t\tnode.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&\n\t\t\tnode.init &&\n\t\t\t(node.init.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||\n\t\t\t\tnode.init.type === TSESTree.AST_NODE_TYPES.FunctionExpression)\n\t\t)\n\t\t\treturn node.init as TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression;\n\t}\n\n\treturn undefined;\n}\n\nfunction collectCaptures(node: TSESTree.Node, sourceCode: Rule.RuleContext[\"sourceCode\"]): ReadonlyArray<CaptureInfo> {\n\tconst captures = new Array<CaptureInfo>();\n\tconst captureSet = new Set<string>();\n\n\tfunction visit(current: TSESTree.Node): void {\n\t\tif (current.type === TSESTree.AST_NODE_TYPES.Identifier) {\n\t\t\tconst { name } = current;\n\n\t\t\tif (captureSet.has(name) || GLOBAL_BUILTINS.has(name) || isInTypePosition(current)) return;\n\n\t\t\tlet variable: Scope.Variable | undefined;\n\t\t\tlet currentScope: Scope.Scope | null = sourceCode.getScope(current as unknown as Rule.Node);\n\n\t\t\twhile (currentScope) {\n\t\t\t\tvariable = currentScope.set.get(name);\n\t\t\t\tif (variable) break;\n\t\t\t\tcurrentScope = currentScope.upper;\n\t\t\t}\n\n\t\t\tif (variable) {\n\t\t\t\tconst isDefinedInClosure = variable.defs.some((definition) => {\n\t\t\t\t\tlet definitionNode: TSESTree.Node | undefined = definition.node;\n\t\t\t\t\twhile (definitionNode) {\n\t\t\t\t\t\tif (definitionNode === node) return true;\n\t\t\t\t\t\tdefinitionNode = definitionNode.parent;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\t\tif (!isDefinedInClosure) {\n\t\t\t\t\tif (!isDeclaredInComponentBody(variable as VariableLike, node)) {\n\t\t\t\t\t\ttestingMetrics.outerScopeSkip += 1;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcaptureSet.add(name);\n\t\t\t\t\tconst depthNode = findTopmostMemberExpression(current);\n\t\t\t\t\tconst usagePath = sourceCode.getText(depthNode as unknown as Rule.Node);\n\t\t\t\t\tcaptures.push({\n\t\t\t\t\t\tdepth: getMemberExpressionDepth(depthNode),\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnode: depthNode,\n\t\t\t\t\t\tusagePath,\n\t\t\t\t\t\tvariable: variable as VariableLike,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.TSSatisfiesExpression ||\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.TSAsExpression ||\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.TSTypeAssertion ||\n\t\t\tcurrent.type === TSESTree.AST_NODE_TYPES.TSNonNullExpression\n\t\t) {\n\t\t\tvisit(current.expression);\n\t\t\treturn;\n\t\t}\n\n\t\tif (current.type === TSESTree.AST_NODE_TYPES.MemberExpression) {\n\t\t\tvisit(current.object);\n\t\t\tif (current.computed) visit(current.property);\n\t\t\treturn;\n\t\t}\n\n\t\tconst keys = sourceCode.visitorKeys?.[current.type] ?? [];\n\t\tfor (const key of keys) {\n\t\t\tconst value = (current as unknown as Record<string, unknown>)[key];\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const item of value)\n\t\t\t\t\tif (item && typeof item === \"object\" && \"type\" in item) visit(item as TSESTree.Node);\n\t\t\t} else if (value && typeof value === \"object\" && \"type\" in value) visit(value as TSESTree.Node);\n\t\t}\n\t}\n\n\tvisit(node);\n\treturn captures;\n}\n\nfunction parseDependencies(\n\tnode: TSESTree.ArrayExpression,\n\tsourceCode: Rule.RuleContext[\"sourceCode\"],\n): ReadonlyArray<DependencyInfo> {\n\tconst dependencies = new Array<DependencyInfo>();\n\n\tfor (const element of node.elements) {\n\t\tif (!element || element.type === TSESTree.AST_NODE_TYPES.SpreadElement) continue;\n\n\t\tconst name = nodeToDependencyString(element, sourceCode);\n\t\tconst depth = getMemberExpressionDepth(element);\n\n\t\tdependencies.push({\n\t\t\tdepth,\n\t\t\tname,\n\t\t\tnode: element,\n\t\t});\n\t}\n\n\treturn dependencies;\n}\n\nfunction returnName({ name }: { readonly name: string }): string {\n\treturn name;\n}\n\nfunction isUnstableValue(node: TSESTree.Node | undefined): boolean {\n\treturn node ? UNSTABLE_VALUES.has(node.type) : false;\n}\n\nconst isNumberArray = Compile(Type.Array(Type.Number(), { minItems: 1, readOnly: true }));\nconst isStringArray = Compile(Type.Array(Type.String(), { minItems: 1, readOnly: true }));\n\nfunction convertStableResult(\n\tstableResult: boolean | number | ReadonlyArray<number> | ReadonlyArray<string>,\n): StableResult {\n\tif (typeof stableResult === \"boolean\") return stableResult;\n\tif (typeof stableResult === \"number\") return new Set([stableResult]);\n\n\tif (isNumberArray.Check(stableResult)) return new Set(stableResult);\n\tif (isStringArray.Check(stableResult)) return new Set(stableResult);\n\n\treturn false;\n}\n\nconst useExhaustiveDependencies: Rule.RuleModule = {\n\tcreate(context) {\n\t\tconst options: Required<UseExhaustiveDependenciesOptions> = {\n\t\t\thooks: [],\n\t\t\treportMissingDependenciesArray: true,\n\t\t\treportUnnecessaryDependencies: true,\n\t\t\t...context.options[0],\n\t\t};\n\n\t\tconst hookConfigs = new Map<string, HookConfig>(DEFAULT_HOOKS);\n\t\tfor (const customHook of options.hooks) {\n\t\t\tif (customHook.closureIndex === undefined || customHook.dependenciesIndex === undefined) continue;\n\t\t\thookConfigs.set(customHook.name, {\n\t\t\t\tclosureIndex: customHook.closureIndex,\n\t\t\t\tdependenciesIndex: customHook.dependenciesIndex,\n\t\t\t});\n\t\t}\n\n\t\tconst stableHooks = new Map<string, StableResult>(STABLE_HOOKS);\n\t\tfor (const customHook of options.hooks) {\n\t\t\tif (customHook.stableResult === undefined) continue;\n\t\t\tstableHooks.set(customHook.name, convertStableResult(customHook.stableResult));\n\t\t}\n\n\t\tconst scopeCache = new WeakMap<TSESTree.Node, Scope.Scope>();\n\n\t\tfunction getScope(node: TSESTree.Node): Scope.Scope {\n\t\t\tconst cached = scopeCache.get(node);\n\t\t\tif (cached) return cached;\n\n\t\t\tconst scope = context.sourceCode.getScope(node as unknown as Rule.Node);\n\t\t\tscopeCache.set(node, scope);\n\t\t\treturn scope;\n\t\t}\n\n\t\treturn {\n\t\t\tCallExpression(node) {\n\t\t\t\tconst callNode = node as unknown as TSESTree.CallExpression;\n\n\t\t\t\tconst hookName = getHookName(callNode);\n\t\t\t\tif (hookName === undefined || hookName === \"\") return;\n\n\t\t\t\tconst hookConfig = hookConfigs.get(hookName);\n\t\t\t\tif (!hookConfig) return;\n\n\t\t\t\tconst { closureIndex, dependenciesIndex } = hookConfig;\n\t\t\t\tconst parameters = callNode.arguments;\n\n\t\t\t\tconst closureArgument = parameters[closureIndex];\n\t\t\t\tif (closureArgument === undefined) return;\n\n\t\t\t\tlet closureFunction: TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression | undefined;\n\n\t\t\t\tif (\n\t\t\t\t\tclosureArgument.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||\n\t\t\t\t\tclosureArgument.type === TSESTree.AST_NODE_TYPES.FunctionExpression\n\t\t\t\t)\n\t\t\t\t\tclosureFunction = closureArgument;\n\t\t\t\telse if (closureArgument.type === TSESTree.AST_NODE_TYPES.Identifier) {\n\t\t\t\t\tconst scope = getScope(callNode);\n\t\t\t\t\tclosureFunction = resolveFunctionReference(closureArgument, scope);\n\t\t\t\t}\n\n\t\t\t\tif (!closureFunction) return;\n\n\t\t\t\tconst dependenciesArgument = parameters[dependenciesIndex];\n\t\t\t\tif (!dependenciesArgument && options.reportMissingDependenciesArray) {\n\t\t\t\t\t// const _scope = getScope(closureFunction);\n\t\t\t\t\tconst captures = collectCaptures(closureFunction, context.sourceCode);\n\n\t\t\t\t\tconst requiredCaptures = captures.filter(\n\t\t\t\t\t\t(capture) => !isStableValue(capture.variable, capture.name, stableHooks),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (requiredCaptures.length > 0) {\n\t\t\t\t\t\t// oxlint-disable-next-line no-array-callback-reference\n\t\t\t\t\t\tconst missingNames = [...new Set(requiredCaptures.map(returnName))].join(\", \");\n\n\t\t\t\t\t\tconst usagePaths = requiredCaptures.map(({ usagePath }) => usagePath);\n\t\t\t\t\t\tconst uniqueDependencies = [...new Set(usagePaths)].toSorted();\n\t\t\t\t\t\tconst dependenciesString = `[${uniqueDependencies.join(\", \")}]`;\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { deps: missingNames },\n\t\t\t\t\t\t\tmessageId: \"missingDependenciesArray\",\n\t\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t\t\tsuggest: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdesc: `Add dependencies array: ${dependenciesString}`,\n\t\t\t\t\t\t\t\t\tfix(fixer): Rule.Fix | null {\n\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\tconst closureArgumentNode = parameters[closureIndex] as unknown as Rule.Node;\n\t\t\t\t\t\t\t\t\t\treturn fixer.insertTextAfter(closureArgumentNode, `, ${dependenciesString}`);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!dependenciesArgument) return;\n\n\t\t\t\tif (dependenciesArgument.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) return;\n\n\t\t\t\tconst dependenciesArray = dependenciesArgument;\n\n\t\t\t\t// const _scope = getScope(closureFunction);\n\t\t\t\tconst captures = collectCaptures(closureFunction, context.sourceCode);\n\n\t\t\t\tconst dependencies = parseDependencies(dependenciesArray, context.sourceCode);\n\n\t\t\t\tfor (const dependency of dependencies) {\n\t\t\t\t\tconst dependencyRootIdentifier = getRootIdentifier(dependency.node);\n\t\t\t\t\tif (!dependencyRootIdentifier) continue;\n\n\t\t\t\t\tconst dependencyName = dependencyRootIdentifier.name;\n\n\t\t\t\t\tconst matchingCaptures = captures.filter(\n\t\t\t\t\t\t({ node }) => getRootIdentifier(node)?.name === dependencyName,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (matchingCaptures.length === 0) {\n\t\t\t\t\t\tif (options.reportUnnecessaryDependencies) {\n\t\t\t\t\t\t\tconst newDependencies = dependencies\n\t\t\t\t\t\t\t\t.filter((value) => value.name !== dependency.name)\n\t\t\t\t\t\t\t\t// oxlint-disable-next-line no-array-callback-reference\n\t\t\t\t\t\t\t\t.map(returnName);\n\t\t\t\t\t\t\tconst dependenciesString = `[${newDependencies.join(\", \")}]`;\n\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tdata: { name: dependency.name },\n\t\t\t\t\t\t\t\tmessageId: \"unnecessaryDependency\",\n\t\t\t\t\t\t\t\tnode: dependency.node,\n\t\t\t\t\t\t\t\tsuggest: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdesc: `Remove '${dependency.name}' from dependencies array`,\n\t\t\t\t\t\t\t\t\t\tfix(fixer): Rule.Fix | null {\n\t\t\t\t\t\t\t\t\t\t\treturn fixer.replaceText(\n\t\t\t\t\t\t\t\t\t\t\t\tdependenciesArray as unknown as Rule.Node,\n\t\t\t\t\t\t\t\t\t\t\t\tdependenciesString,\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst maxCaptureDepth = Math.max(...matchingCaptures.map(({ depth }) => depth));\n\t\t\t\t\tif (dependency.depth > maxCaptureDepth && options.reportUnnecessaryDependencies) {\n\t\t\t\t\t\tconst newDependencies = dependencies\n\t\t\t\t\t\t\t.filter(({ name }) => name !== dependency.name)\n\t\t\t\t\t\t\t// oxlint-disable-next-line no-array-callback-reference\n\t\t\t\t\t\t\t.map(returnName);\n\t\t\t\t\t\tconst dependencyString = `[${newDependencies.join(\", \")}]`;\n\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { name: dependency.name },\n\t\t\t\t\t\t\tmessageId: \"unnecessaryDependency\",\n\t\t\t\t\t\t\tnode: dependency.node,\n\t\t\t\t\t\t\tsuggest: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdesc: `Remove '${dependency.name}' from dependencies array`,\n\t\t\t\t\t\t\t\t\tfix(fixer): Rule.Fix | null {\n\t\t\t\t\t\t\t\t\t\treturn fixer.replaceText(\n\t\t\t\t\t\t\t\t\t\t\tdependenciesArray as unknown as Rule.Node,\n\t\t\t\t\t\t\t\t\t\t\tdependencyString,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst missingCaptures = new Array<CaptureInfo>();\n\t\t\t\tfor (const capture of captures) {\n\t\t\t\t\tif (isStableValue(capture.variable, capture.name, stableHooks)) continue;\n\n\t\t\t\t\tconst rootIdentifier = getRootIdentifier(capture.node);\n\t\t\t\t\tif (!rootIdentifier) continue;\n\n\t\t\t\t\tconst captureName = rootIdentifier.name;\n\t\t\t\t\tlet isInDependencies = false;\n\n\t\t\t\t\tfor (const dependency of dependencies) {\n\t\t\t\t\t\tconst dependencyRootIdentifier = getRootIdentifier(dependency.node);\n\n\t\t\t\t\t\tif (dependencyRootIdentifier?.name === captureName && dependency.depth <= capture.depth) {\n\t\t\t\t\t\t\tisInDependencies = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!isInDependencies) missingCaptures.push(capture);\n\t\t\t\t}\n\n\t\t\t\tif (missingCaptures.length > 0) {\n\t\t\t\t\tconst dependencyNames = dependencies.map(({ name }) => name);\n\t\t\t\t\tconst missingPaths = missingCaptures.map(({ usagePath }) => usagePath);\n\t\t\t\t\tconst newDependencies = [...dependencyNames, ...missingPaths].toSorted();\n\t\t\t\t\tconst newDependenciesString = `[${newDependencies.join(\", \")}]`;\n\t\t\t\t\tconst lastDependency = dependencies.at(-1);\n\t\t\t\t\tconst firstMissing = missingCaptures.at(0);\n\n\t\t\t\t\tif (missingCaptures.length === 1 && firstMissing) {\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { name: firstMissing.usagePath },\n\t\t\t\t\t\t\tmessageId: \"missingDependency\",\n\t\t\t\t\t\t\tnode: lastDependency?.node || dependenciesArray,\n\t\t\t\t\t\t\tsuggest: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdesc: `Add '${firstMissing.usagePath}' to dependencies array`,\n\t\t\t\t\t\t\t\t\tfix(fixer): Rule.Fix | null {\n\t\t\t\t\t\t\t\t\t\treturn fixer.replaceText(\n\t\t\t\t\t\t\t\t\t\t\tdependenciesArray as unknown as Rule.Node,\n\t\t\t\t\t\t\t\t\t\t\tnewDependenciesString,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst missingNames = missingPaths.join(\", \");\n\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\tdata: { names: missingNames },\n\t\t\t\t\t\t\tmessageId: \"missingDependencies\",\n\t\t\t\t\t\t\tnode: lastDependency?.node || dependenciesArray,\n\t\t\t\t\t\t\tsuggest: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdesc: \"Add missing dependencies to array\",\n\t\t\t\t\t\t\t\t\tfix(fixer): Rule.Fix | null {\n\t\t\t\t\t\t\t\t\t\treturn fixer.replaceText(\n\t\t\t\t\t\t\t\t\t\t\tdependenciesArray as unknown as Rule.Node,\n\t\t\t\t\t\t\t\t\t\t\tnewDependenciesString,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const capture of captures) {\n\t\t\t\t\tif (isStableValue(capture.variable, capture.name, stableHooks)) continue;\n\n\t\t\t\t\tconst rootIdentifier = getRootIdentifier(capture.node);\n\t\t\t\t\tif (!rootIdentifier) continue;\n\n\t\t\t\t\tconst captureName = rootIdentifier.name;\n\n\t\t\t\t\tfor (const dependency of dependencies) {\n\t\t\t\t\t\tconst dependencyRootIdentifier = getRootIdentifier(dependency.node);\n\t\t\t\t\t\tconst isMatch =\n\t\t\t\t\t\t\tdependencyRootIdentifier?.name === captureName && dependency.depth === capture.depth;\n\t\t\t\t\t\tconst isDirectIdentifier = dependency.depth === 0;\n\n\t\t\t\t\t\tif (isMatch && isDirectIdentifier) {\n\t\t\t\t\t\t\tconst variableDefinition = capture.variable?.defs[0];\n\t\t\t\t\t\t\tconst initialNode: TSESTree.Node | undefined =\n\t\t\t\t\t\t\t\tvariableDefinition?.node.type === \"VariableDeclarator\"\n\t\t\t\t\t\t\t\t\t? ((variableDefinition.node.init ?? undefined) as TSESTree.Expression | undefined)\n\t\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t\tif (isUnstableValue(initialNode)) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tdata: { name: capture.usagePath },\n\t\t\t\t\t\t\t\t\tmessageId: \"unstableDependency\",\n\t\t\t\t\t\t\t\t\tnode: dependency.node,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isMatch) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Enforce exhaustive and correct dependency specification in React hooks to prevent stale closures and unnecessary re-renders\",\n\t\t\trecommended: true,\n\t\t\turl: \"https://biomejs.dev/linter/rules/use-exhaustive-dependencies/\",\n\t\t},\n\t\tfixable: \"code\",\n\t\thasSuggestions: true,\n\t\tmessages: {\n\t\t\tmissingDependencies: \"This hook does not specify all its dependencies. Missing: {{names}}\",\n\t\t\tmissingDependenciesArray: \"This hook does not specify its dependencies array. Missing: {{deps}}\",\n\t\t\tmissingDependency: \"This hook does not specify its dependency on {{name}}.\",\n\t\t\tunnecessaryDependency: \"This dependency {{name}} can be removed from the list.\",\n\t\t\tunstableDependency:\n\t\t\t\t\"{{name}} changes on every re-render. Wrap the definition in useCallback() or useMemo() to stabilize it.\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\thooks: {\n\t\t\t\t\t\tdescription: \"Array of custom hook entries to check for exhaustive dependencies\",\n\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tclosureIndex: {\n\t\t\t\t\t\t\t\t\tdescription: \"Index of the closure argument for dependency validation\",\n\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdependenciesIndex: {\n\t\t\t\t\t\t\t\t\tdescription: \"Index of the dependencies array for validation\",\n\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\tdescription: \"The name of the hook\",\n\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstableResult: {\n\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\"Specify stable results: true (whole result), number (array index), number[] (multiple indices), or string[] (object properties)\",\n\t\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t\t{ type: \"boolean\" },\n\t\t\t\t\t\t\t\t\t\t{ type: \"number\" },\n\t\t\t\t\t\t\t\t\t\t{ items: { type: \"number\" }, type: \"array\" },\n\t\t\t\t\t\t\t\t\t\t{ items: { type: \"string\" }, type: \"array\" },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequired: [\"name\"],\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t\treportMissingDependenciesArray: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\tdescription: \"Report when the dependencies array is completely missing\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t\treportUnnecessaryDependencies: {\n\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\tdescription: \"Report when unnecessary dependencies are specified\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport const __testing = {\n\tcollectCaptures,\n\tconvertStableResult,\n\tisDeclaredInComponentBody,\n\tisInTypePosition,\n\tisStableArrayIndex,\n\tisStableValue,\n\tmetrics: testingMetrics,\n\tresetMetrics: resetTestingMetrics,\n};\n\nexport default useExhaustiveDependencies;\n",
508
+ "import { TSESTree } from \"@typescript-eslint/types\";\nimport type { Rule } from \"eslint\";\n\n/*\n * Rule: use-hook-at-top-level\n * Tracks a small control-flow context stack for component/hook functions\n * to detect hooks used conditionally, inside loops, nested functions, try\n * blocks, or after early returns. Finally blocks are allowed (they always run),\n * and recursion is treated as a violation because it implies conditional\n * termination and non-deterministic hook ordering.\n */\n\ninterface ControlFlowContext {\n\treadonly inConditional: boolean;\n\treadonly afterEarlyReturn: boolean;\n\treadonly inLoop: boolean;\n\treadonly inNestedFunction: boolean;\n\treadonly inTryBlock: boolean;\n\treadonly functionDepth: number;\n\treadonly isComponentOrHook: boolean;\n}\n\nexport interface UseHookAtTopLevelOptions {\n\t/**\n\t * Strategy 1: Simple name-based filtering\n\t * Hooks to completely ignore (both React and ECS hooks with these names)\n\t */\n\treadonly ignoreHooks?: ReadonlyArray<string>;\n\n\t/**\n\t * Strategy 2: Smart import source control\n\t * Control which import sources should be checked\n\t * true = check hooks from this source, false = ignore hooks from this source\n\t */\n\treadonly importSources?: Record<string, boolean>;\n\n\t/**\n\t * Strategy 3: Whitelist mode\n\t * Only check hooks that match these exact names\n\t * If provided, ignoreHooks and importSources are ignored\n\t */\n\treadonly onlyHooks?: ReadonlyArray<string>;\n}\n\nconst HOOK_NAME_PATTERN = /^use[A-Z]/;\nconst COMPONENT_NAME_PATTERN = /^[A-Z]/;\nfunction isReactHook(name: string): boolean {\n\treturn HOOK_NAME_PATTERN.test(name);\n}\n\nfunction isComponent(name: string): boolean {\n\treturn COMPONENT_NAME_PATTERN.test(name);\n}\n\nfunction isComponentOrHook(\n\tnode: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression,\n): boolean {\n\tif (node.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration && node.id) {\n\t\tconst { name } = node.id;\n\t\treturn isComponent(name) || isReactHook(name);\n\t}\n\n\tif (\n\t\tnode.type === TSESTree.AST_NODE_TYPES.FunctionExpression ||\n\t\tnode.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression\n\t) {\n\t\tconst { parent } = node;\n\t\tif (!parent) return false;\n\n\t\tif (\n\t\t\tparent.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&\n\t\t\tparent.id.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t) {\n\t\t\tconst { name } = parent.id;\n\t\t\treturn isComponent(name) || isReactHook(name);\n\t\t}\n\n\t\tif (\n\t\t\tparent.type === TSESTree.AST_NODE_TYPES.Property &&\n\t\t\tparent.key.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t) {\n\t\t\tconst { name } = parent.key;\n\t\t\treturn isComponent(name) || isReactHook(name);\n\t\t}\n\n\t\tif (\n\t\t\tparent.type === TSESTree.AST_NODE_TYPES.MethodDefinition &&\n\t\t\tparent.key.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t) {\n\t\t\tconst { name } = parent.key;\n\t\t\treturn isComponent(name) || isReactHook(name);\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction isHookCall(node: TSESTree.CallExpression): boolean {\n\tconst { callee } = node;\n\n\tif (callee.type === TSESTree.AST_NODE_TYPES.Identifier) return isReactHook(callee.name);\n\n\tif (\n\t\tcallee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\tcallee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t)\n\t\treturn isReactHook(callee.property.name);\n\n\treturn false;\n}\n\nconst FUNCTION_BOUNDARIES = new Set<TSESTree.AST_NODE_TYPES>([\n\tTSESTree.AST_NODE_TYPES.FunctionDeclaration,\n\tTSESTree.AST_NODE_TYPES.FunctionExpression,\n\tTSESTree.AST_NODE_TYPES.ArrowFunctionExpression,\n]);\n\nfunction isInFinallyBlock(node: TSESTree.Node): boolean {\n\tlet current: TSESTree.Node | undefined = node.parent;\n\tconst maxDepth = 20;\n\n\tfor (let depth = 0; depth < maxDepth && current; depth += 1) {\n\t\tif (FUNCTION_BOUNDARIES.has(current.type)) return false;\n\n\t\tif (current.type === TSESTree.AST_NODE_TYPES.TryStatement) {\n\t\t\tlet checkNode: TSESTree.Node | undefined = node;\n\t\t\twhile (checkNode && checkNode !== current) {\n\t\t\t\tif (checkNode === current.finalizer) return true;\n\t\t\t\tcheckNode = checkNode.parent;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tcurrent = current.parent;\n\t}\n\n\treturn false;\n}\n\nfunction isRecursiveCall(node: TSESTree.CallExpression, functionName: string | undefined): boolean {\n\tif (!functionName) return false;\n\n\tconst { callee } = node;\n\tif (callee.type === \"Identifier\") return callee.name === functionName;\n\n\treturn false;\n}\n\nconst useHookAtTopLevel: Rule.RuleModule = {\n\tcreate(context) {\n\t\tconst configuration = (context.options[0] || {}) as UseHookAtTopLevelOptions;\n\t\tconst contextStack = new Array<ControlFlowContext>();\n\t\tlet currentFunctionName: string | undefined;\n\n\t\tconst importSourceMap = new Map<string, string>();\n\n\t\tfunction getCurrentContext(): ControlFlowContext | undefined {\n\t\t\treturn contextStack.length > 0 ? contextStack.at(-1) : undefined;\n\t\t}\n\t\tfunction pushContext(newContext: ControlFlowContext): void {\n\t\t\tcontextStack.push(newContext);\n\t\t}\n\t\tfunction popContext(): void {\n\t\t\tcontextStack.pop();\n\t\t}\n\t\tfunction updateContext(updates: Partial<ControlFlowContext>): void {\n\t\t\tconst current = getCurrentContext();\n\t\t\tif (current) contextStack[contextStack.length - 1] = { ...current, ...updates };\n\t\t}\n\n\t\tfunction shouldIgnoreHook(hookName: string, node: TSESTree.CallExpression): boolean {\n\t\t\tconst { onlyHooks, ignoreHooks, importSources } = configuration;\n\t\t\tif (onlyHooks && onlyHooks.length > 0) return !onlyHooks.includes(hookName);\n\n\t\t\tif (ignoreHooks?.includes(hookName)) return true;\n\n\t\t\tif (importSources && Object.keys(importSources).length > 0) {\n\t\t\t\tif (node.callee.type === TSESTree.AST_NODE_TYPES.MemberExpression) {\n\t\t\t\t\tconst objectName =\n\t\t\t\t\t\tnode.callee.object.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t\t\t\t\t\t? node.callee.object.name\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\tif (objectName && importSources[objectName] === false) return true;\n\t\t\t\t\tif (objectName && importSources[objectName] === true) return false;\n\t\t\t\t}\n\n\t\t\t\tif (node.callee.type === TSESTree.AST_NODE_TYPES.Identifier) {\n\t\t\t\t\tconst importSource = importSourceMap.get(hookName);\n\t\t\t\t\tif (importSource && importSources[importSource] === false) return true;\n\t\t\t\t\tif (importSource && importSources[importSource] === true) return false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction handleFunctionEnter(node: unknown): void {\n\t\t\tconst functionNode = node as\n\t\t\t\t| TSESTree.FunctionDeclaration\n\t\t\t\t| TSESTree.FunctionExpression\n\t\t\t\t| TSESTree.ArrowFunctionExpression;\n\t\t\tconst current = getCurrentContext();\n\t\t\tconst depth = current ? current.functionDepth + 1 : 0;\n\n\t\t\tconst isComponentOrHookFlag = isComponentOrHook(functionNode);\n\t\t\tif (functionNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration && functionNode.id)\n\t\t\t\tcurrentFunctionName = functionNode.id.name;\n\n\t\t\tif (current?.isComponentOrHook) {\n\t\t\t\tpushContext({\n\t\t\t\t\tafterEarlyReturn: false,\n\t\t\t\t\tfunctionDepth: depth,\n\t\t\t\t\tinConditional: false,\n\t\t\t\t\tinLoop: false,\n\t\t\t\t\tinNestedFunction: true,\n\t\t\t\t\tinTryBlock: false,\n\t\t\t\t\tisComponentOrHook: false,\n\t\t\t\t});\n\t\t\t} else if (isComponentOrHookFlag) {\n\t\t\t\tpushContext({\n\t\t\t\t\tafterEarlyReturn: false,\n\t\t\t\t\tfunctionDepth: depth,\n\t\t\t\t\tinConditional: false,\n\t\t\t\t\tinLoop: false,\n\t\t\t\t\tinNestedFunction: false,\n\t\t\t\t\tinTryBlock: false,\n\t\t\t\t\tisComponentOrHook: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfunction handleFunctionExit(): void {\n\t\t\tconst current = getCurrentContext();\n\t\t\tif (current) popContext();\n\t\t\tcurrentFunctionName = undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tArrowFunctionExpression: handleFunctionEnter,\n\t\t\t\"ArrowFunctionExpression:exit\": handleFunctionExit,\n\n\t\t\tCallExpression(node) {\n\t\t\t\tconst callNode = node as unknown as TSESTree.CallExpression;\n\n\t\t\t\tif (!isHookCall(callNode)) return;\n\n\t\t\t\tconst { callee } = callNode;\n\t\t\t\tconst hookName =\n\t\t\t\t\tcallee.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t\t\t\t\t? callee.name\n\t\t\t\t\t\t: callee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&\n\t\t\t\t\t\t\t callee.property.type === TSESTree.AST_NODE_TYPES.Identifier\n\t\t\t\t\t\t\t? callee.property.name\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\tif (!hookName || shouldIgnoreHook(hookName, callNode)) return;\n\n\t\t\t\tconst current = getCurrentContext();\n\t\t\t\tif (!current) return;\n\t\t\t\tif (!current.isComponentOrHook && !current.inNestedFunction) return;\n\t\t\t\tif (isInFinallyBlock(callNode)) return;\n\n\t\t\t\tif (isRecursiveCall(callNode, currentFunctionName)) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"recursiveHookCall\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (current.inNestedFunction) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"nestedFunction\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (current.inConditional) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"conditionalHook\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (current.inLoop) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"loopHook\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (current.inTryBlock) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"tryBlockHook\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (current.afterEarlyReturn) {\n\t\t\t\t\tcontext.report({\n\t\t\t\t\t\tmessageId: \"afterEarlyReturn\",\n\t\t\t\t\t\tnode: callNode,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tConditionalExpression() {\n\t\t\t\tupdateContext({ inConditional: true });\n\t\t\t},\n\t\t\t\"ConditionalExpression:exit\"() {\n\t\t\t\tupdateContext({ inConditional: false });\n\t\t\t},\n\n\t\t\tDoWhileStatement() {\n\t\t\t\tupdateContext({ inLoop: true });\n\t\t\t},\n\t\t\t\"DoWhileStatement:exit\"() {\n\t\t\t\tupdateContext({ inLoop: false });\n\t\t\t},\n\n\t\t\tForInStatement() {\n\t\t\t\tupdateContext({ inLoop: true });\n\t\t\t},\n\t\t\t\"ForInStatement:exit\"() {\n\t\t\t\tupdateContext({ inLoop: false });\n\t\t\t},\n\n\t\t\tForOfStatement() {\n\t\t\t\tupdateContext({ inLoop: true });\n\t\t\t},\n\t\t\t\"ForOfStatement:exit\"() {\n\t\t\t\tupdateContext({ inLoop: false });\n\t\t\t},\n\n\t\t\tForStatement() {\n\t\t\t\tupdateContext({ inLoop: true });\n\t\t\t},\n\t\t\t\"ForStatement:exit\"() {\n\t\t\t\tupdateContext({ inLoop: false });\n\t\t\t},\n\t\t\tFunctionDeclaration: handleFunctionEnter,\n\n\t\t\t\"FunctionDeclaration:exit\": handleFunctionExit,\n\t\t\tFunctionExpression: handleFunctionEnter,\n\t\t\t\"FunctionExpression:exit\": handleFunctionExit,\n\n\t\t\tIfStatement() {\n\t\t\t\tupdateContext({ inConditional: true });\n\t\t\t},\n\t\t\t\"IfStatement:exit\"() {\n\t\t\t\tupdateContext({ inConditional: false });\n\t\t\t},\n\n\t\t\tImportDeclaration(node) {\n\t\t\t\tconst importNode = node as unknown as TSESTree.ImportDeclaration;\n\t\t\t\tconst source = importNode.source.value;\n\n\t\t\t\tif (!configuration.importSources || Object.keys(configuration.importSources).length === 0) return;\n\n\t\t\t\tfor (const specifier of importNode.specifiers) {\n\t\t\t\t\tif (specifier.type !== TSESTree.AST_NODE_TYPES.ImportSpecifier) continue;\n\n\t\t\t\t\tconst { imported } = specifier;\n\t\t\t\t\tif (imported.type !== TSESTree.AST_NODE_TYPES.Identifier) continue;\n\n\t\t\t\t\tif (isReactHook(imported.name)) importSourceMap.set(specifier.local.name, source);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tLogicalExpression() {\n\t\t\t\tupdateContext({ inConditional: true });\n\t\t\t},\n\t\t\t\"LogicalExpression:exit\"() {\n\t\t\t\tupdateContext({ inConditional: false });\n\t\t\t},\n\n\t\t\t\"ReturnStatement:exit\"() {\n\t\t\t\tupdateContext({ afterEarlyReturn: true });\n\t\t\t},\n\n\t\t\tSwitchStatement() {\n\t\t\t\tupdateContext({ inConditional: true });\n\t\t\t},\n\t\t\t\"SwitchStatement:exit\"() {\n\t\t\t\tupdateContext({ inConditional: false });\n\t\t\t},\n\n\t\t\tTryStatement() {\n\t\t\t\tupdateContext({ inTryBlock: true });\n\t\t\t},\n\t\t\t\"TryStatement:exit\"() {\n\t\t\t\tupdateContext({ inTryBlock: false });\n\t\t\t},\n\n\t\t\tWhileStatement() {\n\t\t\t\tupdateContext({ inLoop: true });\n\t\t\t},\n\t\t\t\"WhileStatement:exit\"() {\n\t\t\t\tupdateContext({ inLoop: false });\n\t\t\t},\n\t\t};\n\t},\n\tmeta: {\n\t\tdocs: {\n\t\t\tdescription:\n\t\t\t\t\"Enforce that React hooks are only called at the top level of components or custom hooks, never conditionally or in nested functions\",\n\t\t\trecommended: true,\n\t\t\turl: \"https://react.dev/reference/rules/rules-of-hooks\",\n\t\t},\n\t\tmessages: {\n\t\t\tafterEarlyReturn:\n\t\t\t\t\"This hook is being called after an early return. Hooks must be called unconditionally and in the same order every render.\",\n\t\t\tconditionalHook:\n\t\t\t\t\"This hook is being called conditionally. All hooks must be called in the exact same order in every component render.\",\n\t\t\tloopHook:\n\t\t\t\t\"This hook is being called inside a loop. All hooks must be called in the exact same order in every component render.\",\n\t\t\tnestedFunction:\n\t\t\t\t\"This hook is being called from a nested function. All hooks must be called unconditionally from the top-level component.\",\n\t\t\trecursiveHookCall:\n\t\t\t\t\"This hook is being called recursively. Recursive calls require a condition to terminate, which violates hook rules.\",\n\t\t\ttryBlockHook:\n\t\t\t\t\"This hook is being called inside a try block. Hooks must be called unconditionally at the top level.\",\n\t\t},\n\t\tschema: [\n\t\t\t{\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tignoreHooks: {\n\t\t\t\t\t\tdescription: \"Hook names to ignore (both React and non-React hooks)\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t\timportSources: {\n\t\t\t\t\t\tadditionalProperties: { type: \"boolean\" },\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Control which import sources to check. true = check hooks from source, false = ignore\",\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t},\n\t\t\t\t\tonlyHooks: {\n\t\t\t\t\t\tdescription: \"Only check hooks with these exact names (whitelist mode)\",\n\t\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttype: \"object\",\n\t\t\t},\n\t\t],\n\t\ttype: \"problem\",\n\t},\n};\n\nexport default useHookAtTopLevel;\n",
509
+ "import type { BanInstancesOptions } from \"./rules/ban-instances\";\nimport type { ComplexityConfiguration } from \"./rules/enforce-ianitor-check-type\";\nimport type { NoInstanceMethodsOptions } from \"./rules/no-instance-methods-without-this\";\nimport type { NoShorthandOptions } from \"./rules/no-shorthand-names\";\nimport type { EffectFunctionOptions, HookConfiguration } from \"./rules/require-named-effect-functions\";\nimport type { PairConfiguration, RequirePairedCallsOptions } from \"./rules/require-paired-calls\";\nimport type { ReactKeysOptions } from \"./rules/require-react-component-keys\";\nimport type { UseExhaustiveDependenciesOptions } from \"./rules/use-exhaustive-dependencies\";\nimport type { UseHookAtTopLevelOptions } from \"./rules/use-hook-at-top-level\";\n\n/**\n * Creates a pair configuration for require-paired-calls rule\n * @param opener - The opener function name\n * @param closer - The closer function name(s)\n * @param options - Additional options\n * @returns The pair configuration\n */\nexport function createPairConfiguration(\n\topener: string,\n\tcloser: string | ReadonlyArray<string>,\n\toptions: Partial<Omit<PairConfiguration, \"opener\" | \"closer\">> = {},\n): PairConfiguration {\n\treturn { closer, opener, ...options };\n}\n\n/**\n * Default Roblox profiling pair configuration\n */\nexport const defaultRobloxProfilePair: PairConfiguration = {\n\tcloser: \"debug.profileend\",\n\topener: \"debug.profilebegin\",\n\tplatform: \"roblox\",\n\trequireSync: true,\n\tyieldingFunctions: [\"task.wait\", \"wait\", \"*.WaitForChild\"],\n};\n\n/**\n * Creates options for ban-instances rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createBanInstancesOptions(options: Partial<BanInstancesOptions> = {}): BanInstancesOptions {\n\treturn { bannedInstances: [], ...options };\n}\n\n/**\n * Creates a complexity configuration for enforce-ianitor-check-type rule\n * @param options - Partial configuration options\n * @returns The full complexity configuration\n */\nexport function createComplexityConfiguration(options: Partial<ComplexityConfiguration> = {}): ComplexityConfiguration {\n\treturn {\n\t\tbaseThreshold: 10,\n\t\terrorThreshold: 25,\n\t\tinterfacePenalty: 20,\n\t\tperformanceMode: true,\n\t\twarnThreshold: 15,\n\t\t...options,\n\t};\n}\n\n/**\n * Creates a no-instance-methods options for no-instance-methods-without-this rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createNoInstanceMethodsOptions(\n\toptions: Partial<NoInstanceMethodsOptions> = {},\n): NoInstanceMethodsOptions {\n\treturn {\n\t\tcheckPrivate: false,\n\t\tcheckProtected: false,\n\t\tcheckPublic: false,\n\t\t...options,\n\t};\n}\n\n/**\n * Creates a no-shorthand options for no-shorthand-names rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createNoShorthandOptions(options: Partial<NoShorthandOptions> = {}): NoShorthandOptions {\n\treturn { allowPropertyAccess: [], shorthands: {}, ...options };\n}\n\n/**\n * Creates an effect function options for require-named-effect-functions rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createEffectFunctionOptions(options: Partial<EffectFunctionOptions> = {}): EffectFunctionOptions {\n\treturn { environment: \"standard\", hooks: [], ...options };\n}\n\n/**\n * Creates a hook configuration for require-named-effect-functions rule\n * @param name - The hook name\n * @param options - Partial configuration options\n * @returns The full hook configuration\n */\nexport function createHookConfiguration(\n\tname: string,\n\toptions: Partial<Omit<HookConfiguration, \"name\">> = {},\n): HookConfiguration {\n\treturn { allowAsync: false, name, ...options };\n}\n\n/**\n * Creates a require-paired-calls options for require-paired-calls rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createRequirePairedCallsOptions(\n\toptions: Partial<RequirePairedCallsOptions> = {},\n): RequirePairedCallsOptions {\n\treturn {\n\t\tallowConditionalClosers: false,\n\t\tallowMultipleOpeners: true,\n\t\tmaxNestingDepth: 0,\n\t\tpairs: [],\n\t\t...options,\n\t};\n}\n\n/**\n * Creates a react keys options for require-react-component-keys rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createReactKeysOptions(options: Partial<ReactKeysOptions> = {}): ReactKeysOptions {\n\treturn {\n\t\tallowRootKeys: false,\n\t\tignoreCallExpressions: [],\n\t\titerationMethods: [\"map\", \"forEach\", \"filter\"],\n\t\tmemoizationHooks: [\"useMemo\", \"useCallback\"],\n\t\t...options,\n\t};\n}\n\n/**\n * Creates a use-exhaustive-dependencies options for use-exhaustive-dependencies rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createUseExhaustiveDependenciesOptions(\n\toptions: Partial<UseExhaustiveDependenciesOptions> = {},\n): UseExhaustiveDependenciesOptions {\n\treturn {\n\t\thooks: [],\n\t\treportMissingDependenciesArray: false,\n\t\treportUnnecessaryDependencies: false,\n\t\t...options,\n\t};\n}\n\n/**\n * Creates options for use-hook-at-top-level rule\n * @param options - Partial configuration options\n * @returns The full options\n */\nexport function createUseHookAtTopLevelOptions(\n\toptions: Partial<UseHookAtTopLevelOptions> = {},\n): UseHookAtTopLevelOptions {\n\treturn {\n\t\tignoreHooks: [],\n\t\timportSources: {},\n\t\tonlyHooks: [],\n\t\t...options,\n\t};\n}\n",
510
+ "import type { TSESLint } from \"@typescript-eslint/utils\";\nimport type { Rule } from \"eslint\";\nimport banInstances from \"./rules/ban-instances\";\nimport banReactFC from \"./rules/ban-react-fc\";\nimport enforceIanitorCheckType from \"./rules/enforce-ianitor-check-type\";\nimport noColor3Constructor from \"./rules/no-color3-constructor\";\nimport noInstanceMethodsWithoutThis from \"./rules/no-instance-methods-without-this\";\nimport noPrint from \"./rules/no-print\";\nimport noShorthandNames from \"./rules/no-shorthand-names\";\nimport noWarn from \"./rules/no-warn\";\nimport preferSequenceOverloads from \"./rules/prefer-sequence-overloads\";\nimport preferUDim2Shorthand from \"./rules/prefer-udim2-shorthand\";\nimport requireNamedEffectFunctions from \"./rules/require-named-effect-functions\";\nimport requirePairedCalls from \"./rules/require-paired-calls\";\nimport requireReactComponentKeys from \"./rules/require-react-component-keys\";\nimport useExhaustiveDependencies from \"./rules/use-exhaustive-dependencies\";\nimport useHookAtTopLevel from \"./rules/use-hook-at-top-level\";\n\ntype AnyRuleModule = Rule.RuleModule | TSESLint.AnyRuleModuleWithMetaDocs;\n\nexport {\n\tcreateBanInstancesOptions,\n\tcreateComplexityConfiguration,\n\tcreateEffectFunctionOptions,\n\tcreateHookConfiguration,\n\tcreateNoInstanceMethodsOptions,\n\tcreateNoShorthandOptions,\n\tcreatePairConfiguration,\n\tcreateReactKeysOptions,\n\tcreateRequirePairedCallsOptions,\n\tcreateUseExhaustiveDependenciesOptions,\n\tcreateUseHookAtTopLevelOptions,\n\tdefaultRobloxProfilePair,\n} from \"./configure-utilities\";\nexport type { BanInstancesOptions } from \"./rules/ban-instances\";\nexport type { ComplexityConfiguration } from \"./rules/enforce-ianitor-check-type\";\nexport type { NoInstanceMethodsOptions } from \"./rules/no-instance-methods-without-this\";\nexport type { NoShorthandOptions } from \"./rules/no-shorthand-names\";\nexport type { EffectFunctionOptions, EnvironmentMode, HookConfiguration } from \"./rules/require-named-effect-functions\";\nexport type { PairConfiguration, RequirePairedCallsOptions } from \"./rules/require-paired-calls\";\nexport type { ReactKeysOptions } from \"./rules/require-react-component-keys\";\nexport type { HookEntry, UseExhaustiveDependenciesOptions } from \"./rules/use-exhaustive-dependencies\";\n\n/**\n * ESLint plugin entry for eslint-cease-nonsense-rules.\n *\n * Exposes rule implementations and configuration presets for ESLint flat config.\n */\nconst rules: Readonly<Record<string, AnyRuleModule>> = {\n\t\"ban-instances\": banInstances,\n\t\"ban-react-fc\": banReactFC,\n\t\"enforce-ianitor-check-type\": enforceIanitorCheckType,\n\t\"no-color3-constructor\": noColor3Constructor,\n\t\"no-instance-methods-without-this\": noInstanceMethodsWithoutThis,\n\t\"no-print\": noPrint,\n\t\"no-shorthand-names\": noShorthandNames,\n\t\"no-warn\": noWarn,\n\t\"prefer-sequence-overloads\": preferSequenceOverloads,\n\t\"prefer-udim2-shorthand\": preferUDim2Shorthand,\n\t\"require-named-effect-functions\": requireNamedEffectFunctions,\n\t\"require-paired-calls\": requirePairedCalls,\n\t\"require-react-component-keys\": requireReactComponentKeys,\n\t\"use-exhaustive-dependencies\": useExhaustiveDependencies,\n\t\"use-hook-at-top-level\": useHookAtTopLevel,\n} as const;\n\n/**\n * Recommended configuration for ESLint flat config.\n *\n * Enables all rules with recommended settings. Users should import this\n * configuration and add it to their flat config array.\n *\n * @example\n * ```typescript\n * import ceaseNonsense from '@pobammer-ts/eslint-cease-nonsense-rules';\n *\n * export default [\n * ceaseNonsense.configs.recommended,\n * // ... other configs\n * ];\n * ```\n */\nconst recommended = {\n\tplugins: {\n\t\t\"cease-nonsense\": {\n\t\t\trules,\n\t\t},\n\t},\n\trules: {\n\t\t\"cease-nonsense/ban-react-fc\": \"error\",\n\t\t\"cease-nonsense/enforce-ianitor-check-type\": \"error\",\n\t\t\"cease-nonsense/no-color3-constructor\": \"error\",\n\t\t\"cease-nonsense/no-instance-methods-without-this\": \"error\",\n\t\t\"cease-nonsense/no-print\": \"error\",\n\t\t\"cease-nonsense/no-shorthand-names\": \"error\",\n\t\t\"cease-nonsense/no-warn\": \"error\",\n\t\t\"cease-nonsense/prefer-sequence-overloads\": \"error\",\n\t\t\"cease-nonsense/prefer-udim2-shorthand\": \"error\",\n\t\t\"cease-nonsense/require-named-effect-functions\": \"error\",\n\t\t\"cease-nonsense/require-react-component-keys\": \"error\",\n\t\t\"cease-nonsense/use-exhaustive-dependencies\": \"error\",\n\t\t\"cease-nonsense/use-hook-at-top-level\": \"error\",\n\t},\n} as const;\n\ntype PluginConfig = typeof recommended;\n\ninterface Plugin {\n\treadonly rules: Readonly<Record<string, AnyRuleModule>>;\n\treadonly configs: {\n\t\treadonly recommended: PluginConfig;\n\t};\n}\n\nconst plugin: Plugin = {\n\tconfigs: { recommended },\n\trules,\n} as const;\n\nexport default plugin;\n"
511
+ ],
512
+ "mappings": "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",
513
+ "debugId": "42A0B9F9085ECD6764756E2164756E21",
514
+ "names": []
515
+ }