Skip to content

feat: filterset modifiers#103

Closed
roundaboutluke wants to merge 26 commits intoccev:mainfrom
roundaboutluke:wip/filtersets
Closed

feat: filterset modifiers#103
roundaboutluke wants to merge 26 commits intoccev:mainfrom
roundaboutluke:wip/filtersets

Conversation

@roundaboutluke
Copy link
Copy Markdown
Contributor

rebuilt this on top of current main

Adds visual modifiers to filtersets - glow, background, scale, rotation, badge, and label options that let users customize how filtered map objects appear.

Each filterset gets a "Visual" section in its editor with a live preview map.

Implementation:

  • Three-layer MapLibre rendering (underlay → icon → badge) for clean visual separation
  • Canvas-based overlay generation with caching for glow/background circles
  • Filterset matching system that resolves which visual modifiers apply to each map object
  • Live preview map in the modifier editor that mirrors the main map's layer structure
  • Premade filtersets (hundos, PVP rank 1) ship with sensible defaults

Note: Also fixes an operator precedence bug in quest reward matching where item amount checks could match regardless of item id which was discovered while testing quest filter sets.

PS Built with AI assistance. Please review thoroughly as usual.

PPS My Portuguese Brother-in-Law says the PT translations are spot on, but the rest need vetting by native speakers. 😄

feat: filterset modifiers
ccev and others added 23 commits April 1, 2026 00:38
feat: filterset modifiers

# Conflicts:
#	src/components/menus/filters/filterset/pokemon/PokemonFilterDisplay.svelte
#	src/components/menus/filters/filterset/pokemon/PokemonFilterset.svelte
#	src/components/menus/filters/filterset/quest/QuestFilterset.svelte
#	src/components/menus/filters/filterset/raid/RaidFilterset.svelte
#	src/lib/features/filters/filtersetSchemas.ts
#	src/lib/map/featuresManage.svelte.ts
#	src/lib/map/layers.ts
#	src/lib/utils/gymUtils.ts
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

🥷 Ninja i18n – 🛎️ Translations need to be updated

❗️ New errors in setup of project /project.inlang found

PluginLoadMessagesError An error occured in loadMessages() caused by SyntaxError: Expected ',' or '}' after property value in JSON at position 9358.

Error cause
Expected ',' or '}' after property value in JSON at position 9358

Stack trace
SyntaxError: Expected ',' or '}' after property value in JSON at position 9358
at JSON.parse ()
at Object.loadMessages (data:application/javascript,var%20__create%20%3D%20Object.create%3B%0Avar%20__defProp%20%3D%20Object.defineProperty%3B%0Avar%20__getOwnPropDesc%20%3D%20Object.getOwnPropertyDescriptor%3B%0Avar%20__getOwnPropNames%20%3D%20Object.getOwnPropertyNames%3B%0Avar%20__getProtoOf%20%3D%20Object.getPrototypeOf%3B%0Avar%20__hasOwnProp%20%3D%20Object.prototype.hasOwnProperty%3B%0Avar%20__commonJS%20%3D%20(cb%2C%20mod)%20%3D%3E%20function%20__require()%20%7B%0A%20%20return%20mod%20%7C%7C%20(0%2C%20cb%5B__getOwnPropNames(cb)%5B0%5D%5D)((mod%20%3D%20%7B%20exports%3A%20%7B%7D%20%7D).exports%2C%20mod)%2C%20mod.exports%3B%0A%7D%3B%0Avar%20__copyProps%20%3D%20(to%2C%20from%2C%20except%2C%20desc)%20%3D%3E%20%7B%0A%20%20if%20(from%20%26%26%20typeof%20from%20%3D%3D%3D%20%22object%22%20%7C%7C%20typeof%20from%20%3D%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20for%20(let%20key%20of%20__getOwnPropNames(from))%0A%20%20%20%20%20%20if%20(!hasOwnProp.call(to%2C%20key)%20%26%26%20key%20!%3D%3D%20except)%0A%20%20%20%20%20%20%20%20__defProp(to%2C%20key%2C%20%7B%20get%3A%20()%20%3D%3E%20from%5Bkey%5D%2C%20enumerable%3A%20!(desc%20%3D%20__getOwnPropDesc(from%2C%20key))%20%7C%7C%20desc.enumerable%20%7D)%3B%0A%20%20%7D%0A%20%20return%20to%3B%0A%7D%3B%0Avar%20__toESM%20%3D%20(mod%2C%20isNodeMode%2C%20target)%20%3D%3E%20(target%20%3D%20mod%20!%3D%20null%20%3F%20__create(getProtoOf(mod))%20%3A%20%7B%7D%2C%20__copyProps(%0A%20%20%2F%2F%20If%20the%20importer%20is%20in%20node%20compatibility%20mode%20or%20this%20is%20not%20an%20ESM%0A%20%20%2F%2F%20file%20that%20has%20been%20converted%20to%20a%20CommonJS%20file%20using%20a%20Babel-%0A%20%20%2F%2F%20compatible%20transform%20(i.e.%20%22__esModule%22%20has%20not%20been%20set)%2C%20then%20set%0A%20%20%2F%2F%20%22default%22%20to%20the%20CommonJS%20%22module.exports%22%20for%20node%20compatibility.%0A%20%20isNodeMode%20%7C%7C%20!mod%20%7C%7C%20!mod.esModule%20%3F%20__defProp(target%2C%20%22default%22%2C%20%7B%20value%3A%20mod%2C%20enumerable%3A%20true%20%7D)%20%3A%20target%2C%0A%20%20mod%0A))%3B%0A%0A%2F%2F%20..%2F..%2F..%2Fnode_modules%2F.pnpm%2F%40sinclair%2Btypebox%400.31.28%2Fnode_modules%2F%40sinclair%2Ftypebox%2Ftypebox.js%0Avar%20require_typebox%20%3D%20__commonJS(%7B%0A%20%20%22..%2F..%2F..%2Fnode_modules%2F.pnpm%2F%40sinclair%2Btypebox%400.31.28%2Fnode_modules%2F%40sinclair%2Ftypebox%2Ftypebox.js%22(exports)%20%7B%0A%20%20%20%20%22use%20strict%22%3B%0A%20%20%20%20Object.defineProperty(exports%2C%20%22__esModule%22%2C%20%7B%20value%3A%20true%20%7D)%3B%0A%20%20%20%20exports.Type%20%3D%20exports.JsonType%20%3D%20exports.JavaScriptTypeBuilder%20%3D%20exports.JsonTypeBuilder%20%3D%20exports.TypeBuilder%20%3D%20exports.TypeBuilderError%20%3D%20exports.TransformEncodeBuilder%20%3D%20exports.TransformDecodeBuilder%20%3D%20exports.TemplateLiteralDslParser%20%3D%20exports.TemplateLiteralGenerator%20%3D%20exports.TemplateLiteralGeneratorError%20%3D%20exports.TemplateLiteralFinite%20%3D%20exports.TemplateLiteralFiniteError%20%3D%20exports.TemplateLiteralParser%20%3D%20exports.TemplateLiteralParserError%20%3D%20exports.TemplateLiteralResolver%20%3D%20exports.TemplateLiteralPattern%20%3D%20exports.TemplateLiteralPatternError%20%3D%20exports.UnionResolver%20%3D%20exports.KeyArrayResolver%20%3D%20exports.KeyArrayResolverError%20%3D%20exports.KeyResolver%20%3D%20exports.ObjectMap%20%3D%20exports.Intrinsic%20%3D%20exports.IndexedAccessor%20%3D%20exports.TypeClone%20%3D%20exports.TypeExtends%20%3D%20exports.TypeExtendsResult%20%3D%20exports.TypeExtendsError%20%3D%20exports.ExtendsUndefined%20%3D%20exports.TypeGuard%20%3D%20exports.TypeGuardUnknownTypeError%20%3D%20exports.ValueGuard%20%3D%20exports.FormatRegistry%20%3D%20exports.TypeBoxError%20%3D%20exports.TypeRegistry%20%3D%20exports.PatternStringExact%20%3D%20exports.PatternNumberExact%20%3D%20exports.PatternBooleanExact%20%3D%20exports.PatternString%20%3D%20exports.PatternNumber%20%3D%20exports.PatternBoolean%20%3D%20exports.Kind%20%3D%20exports.Hint%20%3D%20exports.Optional%20%3D%20exports.Readonly%20%3D%20exports.Transform%20%3D%20void%200%3B%0A%20%20%20%20exports.Transform%20%3D%20Symbol.for(%22TypeBox.Transform%22)%3B%0A%20%20%20%20exports.Readonly%20%3D%20Symbol.for(%22TypeBox.Readonly%22)%3B%0A%20%20%20%20exports.Optional%20%3D%20Symbol.for(%22TypeBox.Optional%22)%3B%0A%20%20%20%20exports.Hint%20%3D%20Symbol.for(%22TypeBox.Hint%22)%3B%0A%20%20%20%20exports.Kind%20%3D%20Symbol.for(%22TypeBox.Kind%22)%3B%0A%20%20%20%20exports.PatternBoolean%20%3D%20%22(true%7Cfalse)%22%3B%0A%20%20%20%20exports.PatternNumber%20%3D%20%22(0%7C%5B1-9%5D%5B0-9%5D*)%22%3B%0A%20%20%20%20exports.PatternString%20%3D%20%22(.)%22%3B%0A%20%20%20%20exports.PatternBooleanExact%20%3D%20%60%5E%24%7Bexports.PatternBoolean%7D%24%60%3B%0A%20%20%20%20exports.PatternNumberExact%20%3D%20%60%5E%24%7Bexports.PatternNumber%7D%24%60%3B%0A%20%20%20%20exports.PatternStringExact%20%3D%20%60%5E%24%7Bexports.PatternString%7D%24%60%3B%0A%20%20%20%20var%20TypeRegistry%3B%0A%20%20%20%20(function(TypeRegistry2)%20%7B%0A%20%20%20%20%20%20const%20map%20%3D%20%2F%20%40__PURE%20*%2F%20new%20Map()%3B%0A%20%20%20%20%20%20function%20Entries()%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20Map(map)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Entries%20%3D%20Entries%3B%0A%20%20%20%20%20%20function%20Clear()%20%7B%0A%20%20%20%20%20%20%20%20return%20map.clear()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Clear%20%3D%20Clear%3B%0A%20%20%20%20%20%20function%20Delete(kind)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.delete(kind)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Delete%20%3D%20Delete%3B%0A%20%20%20%20%20%20function%20Has(kind)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.has(kind)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Has%20%3D%20Has%3B%0A%20%20%20%20%20%20function%20Set2(kind%2C%20func)%20%7B%0A%20%20%20%20%20%20%20%20map.set(kind%2C%20func)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Set%20%3D%20Set2%3B%0A%20%20%20%20%20%20function%20Get(kind)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.get(kind)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeRegistry2.Get%20%3D%20Get%3B%0A%20%20%20%20%7D)(TypeRegistry%20%7C%7C%20(exports.TypeRegistry%20%3D%20TypeRegistry%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TypeBoxError%20%3D%20class%20extends%20Error%20%7B%0A%20%20%20%20%20%20constructor(message)%20%7B%0A%20%20%20%20%20%20%20%20super(message)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TypeBoxError%20%3D%20TypeBoxError%3B%0A%20%20%20%20var%20FormatRegistry%3B%0A%20%20%20%20(function(FormatRegistry2)%20%7B%0A%20%20%20%20%20%20const%20map%20%3D%20%2F*%20%40__PURE%20*%2F%20new%20Map()%3B%0A%20%20%20%20%20%20function%20Entries()%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20Map(map)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Entries%20%3D%20Entries%3B%0A%20%20%20%20%20%20function%20Clear()%20%7B%0A%20%20%20%20%20%20%20%20return%20map.clear()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Clear%20%3D%20Clear%3B%0A%20%20%20%20%20%20function%20Delete(format)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.delete(format)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Delete%20%3D%20Delete%3B%0A%20%20%20%20%20%20function%20Has(format)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.has(format)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Has%20%3D%20Has%3B%0A%20%20%20%20%20%20function%20Set2(format%2C%20func)%20%7B%0A%20%20%20%20%20%20%20%20map.set(format%2C%20func)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Set%20%3D%20Set2%3B%0A%20%20%20%20%20%20function%20Get(format)%20%7B%0A%20%20%20%20%20%20%20%20return%20map.get(format)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20FormatRegistry2.Get%20%3D%20Get%3B%0A%20%20%20%20%7D)(FormatRegistry%20%7C%7C%20(exports.FormatRegistry%20%3D%20FormatRegistry%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20ValueGuard%3B%0A%20%20%20%20(function(ValueGuard2)%20%7B%0A%20%20%20%20%20%20function%20IsArray(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20Array.isArray(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsArray%20%3D%20IsArray%3B%0A%20%20%20%20%20%20function%20IsBigInt(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22bigint%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsBigInt%20%3D%20IsBigInt%3B%0A%20%20%20%20%20%20function%20IsBoolean(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22boolean%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsBoolean%20%3D%20IsBoolean%3B%0A%20%20%20%20%20%20function%20IsDate(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value%20instanceof%20globalThis.Date%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsDate%20%3D%20IsDate%3B%0A%20%20%20%20%20%20function%20IsNull(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value%20%3D%3D%3D%20null%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsNull%20%3D%20IsNull%3B%0A%20%20%20%20%20%20function%20IsNumber(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22number%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsNumber%20%3D%20IsNumber%3B%0A%20%20%20%20%20%20function%20IsObject(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22object%22%20%26%26%20value%20!%3D%3D%20null%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsObject%20%3D%20IsObject%3B%0A%20%20%20%20%20%20function%20IsString(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22string%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsString%20%3D%20IsString%3B%0A%20%20%20%20%20%20function%20IsUint8Array(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value%20instanceof%20globalThis.Uint8Array%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsUint8Array%20%3D%20IsUint8Array%3B%0A%20%20%20%20%20%20function%20IsUndefined(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value%20%3D%3D%3D%20void%200%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ValueGuard2.IsUndefined%20%3D%20IsUndefined%3B%0A%20%20%20%20%7D)(ValueGuard%20%7C%7C%20(exports.ValueGuard%20%3D%20ValueGuard%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TypeGuardUnknownTypeError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TypeGuardUnknownTypeError%20%3D%20TypeGuardUnknownTypeError%3B%0A%20%20%20%20var%20TypeGuard%3B%0A%20%20%20%20(function(TypeGuard2)%20%7B%0A%20%20%20%20%20%20function%20IsPattern(value)%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20new%20RegExp(value)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsControlCharacterFree(value)%20%7B%0A%20%20%20%20%20%20%20%20if%20(!ValueGuard.IsString(value))%0A%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20value.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20code%20%3D%20value.charCodeAt(i)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(code%20%3E%3D%207%20%26%26%20code%20%3C%3D%2013%20%7C%7C%20code%20%3D%3D%3D%2027%20%7C%7C%20code%20%3D%3D%3D%20127)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsAdditionalProperties(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsOptionalBoolean(value)%20%7C%7C%20TSchema(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalBigInt(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsBigInt(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalNumber(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsNumber(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalBoolean(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsBoolean(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalString(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsString(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalPattern(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsString(value)%20%26%26%20IsControlCharacterFree(value)%20%26%26%20IsPattern(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalFormat(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20ValueGuard.IsString(value)%20%26%26%20IsControlCharacterFree(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOptionalSchema(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(value)%20%7C%7C%20TSchema(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TAny(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Any%22)%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TAny%20%3D%20TAny%3B%0A%20%20%20%20%20%20function%20TArray(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Array%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22array%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20TSchema(schema.items)%20%26%26%20IsOptionalNumber(schema.minItems)%20%26%26%20IsOptionalNumber(schema.maxItems)%20%26%26%20IsOptionalBoolean(schema.uniqueItems)%20%26%26%20IsOptionalSchema(schema.contains)%20%26%26%20IsOptionalNumber(schema.minContains)%20%26%26%20IsOptionalNumber(schema.maxContains)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TArray%20%3D%20TArray%3B%0A%20%20%20%20%20%20function%20TAsyncIterator(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22AsyncIterator%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22AsyncIterator%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20TSchema(schema.items)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TAsyncIterator%20%3D%20TAsyncIterator%3B%0A%20%20%20%20%20%20function%20TBigInt(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22BigInt%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22bigint%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalBigInt(schema.exclusiveMaximum)%20%26%26%20IsOptionalBigInt(schema.exclusiveMinimum)%20%26%26%20IsOptionalBigInt(schema.maximum)%20%26%26%20IsOptionalBigInt(schema.minimum)%20%26%26%20IsOptionalBigInt(schema.multipleOf)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TBigInt%20%3D%20TBigInt%3B%0A%20%20%20%20%20%20function%20TBoolean(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Boolean%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22boolean%22%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TBoolean%20%3D%20TBoolean%3B%0A%20%20%20%20%20%20function%20TConstructor(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Constructor%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Constructor%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsArray(schema.parameters)%20%26%26%20schema.parameters.every((schema2)%20%3D%3E%20TSchema(schema2))%20%26%26%20TSchema(schema.returns)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TConstructor%20%3D%20TConstructor%3B%0A%20%20%20%20%20%20function%20TDate(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Date%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Date%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalNumber(schema.exclusiveMaximumTimestamp)%20%26%26%20IsOptionalNumber(schema.exclusiveMinimumTimestamp)%20%26%26%20IsOptionalNumber(schema.maximumTimestamp)%20%26%26%20IsOptionalNumber(schema.minimumTimestamp)%20%26%26%20IsOptionalNumber(schema.multipleOfTimestamp)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TDate%20%3D%20TDate%3B%0A%20%20%20%20%20%20function%20TFunction(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Function%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Function%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsArray(schema.parameters)%20%26%26%20schema.parameters.every((schema2)%20%3D%3E%20TSchema(schema2))%20%26%26%20TSchema(schema.returns)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TFunction%20%3D%20TFunction%3B%0A%20%20%20%20%20%20function%20TInteger(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Integer%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22integer%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalNumber(schema.exclusiveMaximum)%20%26%26%20IsOptionalNumber(schema.exclusiveMinimum)%20%26%26%20IsOptionalNumber(schema.maximum)%20%26%26%20IsOptionalNumber(schema.minimum)%20%26%26%20IsOptionalNumber(schema.multipleOf)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TInteger%20%3D%20TInteger%3B%0A%20%20%20%20%20%20function%20TIntersect(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Intersect%22)%20%26%26%20(ValueGuard.IsString(schema.type)%20%26%26%20schema.type%20!%3D%3D%20%22object%22%20%3F%20false%20%3A%20true)%20%26%26%20ValueGuard.IsArray(schema.allOf)%20%26%26%20schema.allOf.every((schema2)%20%3D%3E%20TSchema(schema2)%20%26%26%20!TTransform(schema2))%20%26%26%20IsOptionalString(schema.type)%20%26%26%20(IsOptionalBoolean(schema.unevaluatedProperties)%20%7C%7C%20IsOptionalSchema(schema.unevaluatedProperties))%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TIntersect%20%3D%20TIntersect%3B%0A%20%20%20%20%20%20function%20TIterator(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Iterator%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Iterator%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20TSchema(schema.items)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TIterator%20%3D%20TIterator%3B%0A%20%20%20%20%20%20function%20TKindOf(schema%2C%20kind)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKind(schema)%20%26%26%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20kind%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TKindOf%20%3D%20TKindOf%3B%0A%20%20%20%20%20%20function%20TKind(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20exports.Kind%20in%20schema%20%26%26%20ValueGuard.IsString(schema%5Bexports.Kind%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TKind%20%3D%20TKind%3B%0A%20%20%20%20%20%20function%20TLiteralString(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TLiteral(schema)%20%26%26%20ValueGuard.IsString(schema.const)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TLiteralString%20%3D%20TLiteralString%3B%0A%20%20%20%20%20%20function%20TLiteralNumber(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TLiteral(schema)%20%26%26%20ValueGuard.IsNumber(schema.const)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TLiteralNumber%20%3D%20TLiteralNumber%3B%0A%20%20%20%20%20%20function%20TLiteralBoolean(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TLiteral(schema)%20%26%26%20ValueGuard.IsBoolean(schema.const)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TLiteralBoolean%20%3D%20TLiteralBoolean%3B%0A%20%20%20%20%20%20function%20TLiteral(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Literal%22)%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20(ValueGuard.IsBoolean(schema.const)%20%7C%7C%20ValueGuard.IsNumber(schema.const)%20%7C%7C%20ValueGuard.IsString(schema.const))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TLiteral%20%3D%20TLiteral%3B%0A%20%20%20%20%20%20function%20TNever(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Never%22)%20%26%26%20ValueGuard.IsObject(schema.not)%20%26%26%20Object.getOwnPropertyNames(schema.not).length%20%3D%3D%3D%200%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TNever%20%3D%20TNever%3B%0A%20%20%20%20%20%20function%20TNot(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Not%22)%20%26%26%20TSchema(schema.not)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TNot%20%3D%20TNot%3B%0A%20%20%20%20%20%20function%20TNull(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Null%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22null%22%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TNull%20%3D%20TNull%3B%0A%20%20%20%20%20%20function%20TNumber(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Number%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22number%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalNumber(schema.exclusiveMaximum)%20%26%26%20IsOptionalNumber(schema.exclusiveMinimum)%20%26%26%20IsOptionalNumber(schema.maximum)%20%26%26%20IsOptionalNumber(schema.minimum)%20%26%26%20IsOptionalNumber(schema.multipleOf)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TNumber%20%3D%20TNumber%3B%0A%20%20%20%20%20%20function%20TObject(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Object%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22object%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsObject(schema.properties)%20%26%26%20IsAdditionalProperties(schema.additionalProperties)%20%26%26%20IsOptionalNumber(schema.minProperties)%20%26%26%20IsOptionalNumber(schema.maxProperties)%20%26%26%20Object.entries(schema.properties).every((%5Bkey%2C%20schema2%5D)%20%3D%3E%20IsControlCharacterFree(key)%20%26%26%20TSchema(schema2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TObject%20%3D%20TObject%3B%0A%20%20%20%20%20%20function%20TPromise(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Promise%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Promise%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20TSchema(schema.item)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TPromise%20%3D%20TPromise%3B%0A%20%20%20%20%20%20function%20TRecord(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Record%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22object%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsAdditionalProperties(schema.additionalProperties)%20%26%26%20ValueGuard.IsObject(schema.patternProperties)%20%26%26%20((schema2)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20keys%20%3D%20Object.getOwnPropertyNames(schema2.patternProperties)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20keys.length%20%3D%3D%3D%201%20%26%26%20IsPattern(keys%5B0%5D)%20%26%26%20ValueGuard.IsObject(schema2.patternProperties)%20%26%26%20TSchema(schema2.patternProperties%5Bkeys%5B0%5D%5D)%3B%0A%20%20%20%20%20%20%20%20%7D)(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TRecord%20%3D%20TRecord%3B%0A%20%20%20%20%20%20function%20TRecursive(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20exports.Hint%20in%20schema%20%26%26%20schema%5Bexports.Hint%5D%20%3D%3D%3D%20%22Recursive%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TRecursive%20%3D%20TRecursive%3B%0A%20%20%20%20%20%20function%20TRef(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Ref%22)%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsString(schema.%24ref)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TRef%20%3D%20TRef%3B%0A%20%20%20%20%20%20function%20TString(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22String%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22string%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalNumber(schema.minLength)%20%26%26%20IsOptionalNumber(schema.maxLength)%20%26%26%20IsOptionalPattern(schema.pattern)%20%26%26%20IsOptionalFormat(schema.format)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TString%20%3D%20TString%3B%0A%20%20%20%20%20%20function%20TSymbol(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Symbol%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22symbol%22%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TSymbol%20%3D%20TSymbol%3B%0A%20%20%20%20%20%20function%20TTemplateLiteral(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22TemplateLiteral%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22string%22%20%26%26%20ValueGuard.IsString(schema.pattern)%20%26%26%20schema.pattern%5B0%5D%20%3D%3D%3D%20%22%5E%22%20%26%26%20schema.pattern%5Bschema.pattern.length%20-%201%5D%20%3D%3D%3D%20%22%24%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TTemplateLiteral%20%3D%20TTemplateLiteral%3B%0A%20%20%20%20%20%20function%20TThis(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22This%22)%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsString(schema.%24ref)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TThis%20%3D%20TThis%3B%0A%20%20%20%20%20%20function%20TTransform(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20exports.Transform%20in%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TTransform%20%3D%20TTransform%3B%0A%20%20%20%20%20%20function%20TTuple(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Tuple%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22array%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsNumber(schema.minItems)%20%26%26%20ValueGuard.IsNumber(schema.maxItems)%20%26%26%20schema.minItems%20%3D%3D%3D%20schema.maxItems%20%26%26%20%2F%2F%20empty%0A%20%20%20%20%20%20%20%20(ValueGuard.IsUndefined(schema.items)%20%26%26%20ValueGuard.IsUndefined(schema.additionalItems)%20%26%26%20schema.minItems%20%3D%3D%3D%200%20%7C%7C%20ValueGuard.IsArray(schema.items)%20%26%26%20schema.items.every((schema2)%20%3D%3E%20TSchema(schema2)))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TTuple%20%3D%20TTuple%3B%0A%20%20%20%20%20%20function%20TUndefined(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Undefined%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22undefined%22%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUndefined%20%3D%20TUndefined%3B%0A%20%20%20%20%20%20function%20TUnionLiteral(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TUnion(schema)%20%26%26%20schema.anyOf.every((schema2)%20%3D%3E%20TLiteralString(schema2)%20%7C%7C%20TLiteralNumber(schema2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUnionLiteral%20%3D%20TUnionLiteral%3B%0A%20%20%20%20%20%20function%20TUnion(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Union%22)%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20ValueGuard.IsObject(schema)%20%26%26%20ValueGuard.IsArray(schema.anyOf)%20%26%26%20schema.anyOf.every((schema2)%20%3D%3E%20TSchema(schema2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUnion%20%3D%20TUnion%3B%0A%20%20%20%20%20%20function%20TUint8Array(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Uint8Array%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22Uint8Array%22%20%26%26%20IsOptionalString(schema.%24id)%20%26%26%20IsOptionalNumber(schema.minByteLength)%20%26%26%20IsOptionalNumber(schema.maxByteLength)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUint8Array%20%3D%20TUint8Array%3B%0A%20%20%20%20%20%20function%20TUnknown(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Unknown%22)%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUnknown%20%3D%20TUnknown%3B%0A%20%20%20%20%20%20function%20TUnsafe(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Unsafe%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TUnsafe%20%3D%20TUnsafe%3B%0A%20%20%20%20%20%20function%20TVoid(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TKindOf(schema%2C%20%22Void%22)%20%26%26%20schema.type%20%3D%3D%3D%20%22void%22%20%26%26%20IsOptionalString(schema.%24id)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TVoid%20%3D%20TVoid%3B%0A%20%20%20%20%20%20function%20TReadonly(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20schema%5Bexports.Readonly%5D%20%3D%3D%3D%20%22Readonly%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TReadonly%20%3D%20TReadonly%3B%0A%20%20%20%20%20%20function%20TOptional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20schema%5Bexports.Optional%5D%20%3D%3D%3D%20%22Optional%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TOptional%20%3D%20TOptional%3B%0A%20%20%20%20%20%20function%20TSchema(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsObject(schema)%20%26%26%20(TAny(schema)%20%7C%7C%20TArray(schema)%20%7C%7C%20TBoolean(schema)%20%7C%7C%20TBigInt(schema)%20%7C%7C%20TAsyncIterator(schema)%20%7C%7C%20TConstructor(schema)%20%7C%7C%20TDate(schema)%20%7C%7C%20TFunction(schema)%20%7C%7C%20TInteger(schema)%20%7C%7C%20TIntersect(schema)%20%7C%7C%20TIterator(schema)%20%7C%7C%20TLiteral(schema)%20%7C%7C%20TNever(schema)%20%7C%7C%20TNot(schema)%20%7C%7C%20TNull(schema)%20%7C%7C%20TNumber(schema)%20%7C%7C%20TObject(schema)%20%7C%7C%20TPromise(schema)%20%7C%7C%20TRecord(schema)%20%7C%7C%20TRef(schema)%20%7C%7C%20TString(schema)%20%7C%7C%20TSymbol(schema)%20%7C%7C%20TTemplateLiteral(schema)%20%7C%7C%20TThis(schema)%20%7C%7C%20TTuple(schema)%20%7C%7C%20TUndefined(schema)%20%7C%7C%20TUnion(schema)%20%7C%7C%20TUint8Array(schema)%20%7C%7C%20TUnknown(schema)%20%7C%7C%20TUnsafe(schema)%20%7C%7C%20TVoid(schema)%20%7C%7C%20TKind(schema)%20%26%26%20TypeRegistry.Has(schema%5Bexports.Kind%5D))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeGuard2.TSchema%20%3D%20TSchema%3B%0A%20%20%20%20%7D)(TypeGuard%20%7C%7C%20(exports.TypeGuard%20%3D%20TypeGuard%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20ExtendsUndefined%3B%0A%20%20%20%20(function(ExtendsUndefined2)%20%7B%0A%20%20%20%20%20%20function%20Check(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Intersect%22%20%3F%20schema.allOf.every((schema2)%20%3D%3E%20Check(schema2))%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Union%22%20%3F%20schema.anyOf.some((schema2)%20%3D%3E%20Check(schema2))%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Undefined%22%20%3F%20true%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Not%22%20%3F%20!Check(schema.not)%20%3A%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ExtendsUndefined2.Check%20%3D%20Check%3B%0A%20%20%20%20%7D)(ExtendsUndefined%20%7C%7C%20(exports.ExtendsUndefined%20%3D%20ExtendsUndefined%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TypeExtendsError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TypeExtendsError%20%3D%20TypeExtendsError%3B%0A%20%20%20%20var%20TypeExtendsResult%3B%0A%20%20%20%20(function(TypeExtendsResult2)%20%7B%0A%20%20%20%20%20%20TypeExtendsResult2%5BTypeExtendsResult2%5B%22Union%22%5D%20%3D%200%5D%20%3D%20%22Union%22%3B%0A%20%20%20%20%20%20TypeExtendsResult2%5BTypeExtendsResult2%5B%22True%22%5D%20%3D%201%5D%20%3D%20%22True%22%3B%0A%20%20%20%20%20%20TypeExtendsResult2%5BTypeExtendsResult2%5B%22False%22%5D%20%3D%202%5D%20%3D%20%22False%22%3B%0A%20%20%20%20%7D)(TypeExtendsResult%20%7C%7C%20(exports.TypeExtendsResult%20%3D%20TypeExtendsResult%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TypeExtends%3B%0A%20%20%20%20(function(TypeExtends2)%20%7B%0A%20%20%20%20%20%20function%20IntoBooleanResult(result)%20%7B%0A%20%20%20%20%20%20%20%20return%20result%20%3D%3D%3D%20TypeExtendsResult.False%20%3F%20result%20%3A%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Throw(message)%20%7B%0A%20%20%20%20%20%20%20%20throw%20new%20TypeExtendsError(message)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsStructuralRight(right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TNever(right)%20%7C%7C%20TypeGuard.TIntersect(right)%20%7C%7C%20TypeGuard.TUnion(right)%20%7C%7C%20TypeGuard.TUnknown(right)%20%7C%7C%20TypeGuard.TAny(right)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20StructuralRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TNever(right)%20%3F%20TNeverRight(left%2C%20right)%20%3A%20TypeGuard.TIntersect(right)%20%3F%20TIntersectRight(left%2C%20right)%20%3A%20TypeGuard.TUnion(right)%20%3F%20TUnionRight(left%2C%20right)%20%3A%20TypeGuard.TUnknown(right)%20%3F%20TUnknownRight(left%2C%20right)%20%3A%20TypeGuard.TAny(right)%20%3F%20TAnyRight(left%2C%20right)%20%3A%20Throw(%22StructuralRight%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TAnyRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TAny(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TIntersect(right)%20%3F%20TIntersectRight(left%2C%20right)%20%3A%20TypeGuard.TUnion(right)%20%26%26%20right.anyOf.some((schema)%20%3D%3E%20TypeGuard.TAny(schema)%20%7C%7C%20TypeGuard.TUnknown(schema))%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TUnion(right)%20%3F%20TypeExtendsResult.Union%20%3A%20TypeGuard.TUnknown(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TAny(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.Union%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TArrayRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TUnknown(left)%20%3F%20TypeExtendsResult.False%20%3A%20TypeGuard.TAny(left)%20%3F%20TypeExtendsResult.Union%20%3A%20TypeGuard.TNever(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TArray(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TObject(right)%20%26%26%20IsObjectArrayLike(right)%20%3F%20TypeExtendsResult.True%20%3A%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20!TypeGuard.TArray(right)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.items%2C%20right.items))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TAsyncIterator(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20!TypeGuard.TAsyncIterator(right)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.items%2C%20right.items))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TBigInt(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TBigInt(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TBooleanRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteral(left)%20%26%26%20ValueGuard.IsBoolean(left.const)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TBoolean(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TBoolean(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TBoolean(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TConstructor(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20!TypeGuard.TConstructor(right)%20%3F%20TypeExtendsResult.False%20%3A%20left.parameters.length%20%3E%20right.parameters.length%20%3F%20TypeExtendsResult.False%20%3A%20!left.parameters.every((schema%2C%20index)%20%3D%3E%20IntoBooleanResult(Visit(right.parameters%5Bindex%5D%2C%20schema))%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.returns%2C%20right.returns))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TDate(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TDate(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TFunction(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20!TypeGuard.TFunction(right)%20%3F%20TypeExtendsResult.False%20%3A%20left.parameters.length%20%3E%20right.parameters.length%20%3F%20TypeExtendsResult.False%20%3A%20!left.parameters.every((schema%2C%20index)%20%3D%3E%20IntoBooleanResult(Visit(right.parameters%5Bindex%5D%2C%20schema))%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.returns%2C%20right.returns))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIntegerRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteral(left)%20%26%26%20ValueGuard.IsNumber(left.const)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TNumber(left)%20%7C%7C%20TypeGuard.TInteger(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TInteger(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TInteger(right)%20%7C%7C%20TypeGuard.TNumber(right)%20%3F%20TypeExtendsResult.True%20%3A%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIntersectRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20right.allOf.every((schema)%20%3D%3E%20Visit(left%2C%20schema)%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIntersect(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20left.allOf.some((schema)%20%3D%3E%20Visit(schema%2C%20right)%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIterator(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20!TypeGuard.TIterator(right)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.items%2C%20right.items))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TLiteral(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteral(right)%20%26%26%20right.const%20%3D%3D%3D%20left.const%20%3F%20TypeExtendsResult.True%20%3A%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TString(right)%20%3F%20TStringRight(left%2C%20right)%20%3A%20TypeGuard.TNumber(right)%20%3F%20TNumberRight(left%2C%20right)%20%3A%20TypeGuard.TInteger(right)%20%3F%20TIntegerRight(left%2C%20right)%20%3A%20TypeGuard.TBoolean(right)%20%3F%20TBooleanRight(left%2C%20right)%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNeverRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNever(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20UnwrapTNot(schema)%20%7B%0A%20%20%20%20%20%20%20%20let%20%5Bcurrent%2C%20depth%5D%20%3D%20%5Bschema%2C%200%5D%3B%0A%20%20%20%20%20%20%20%20while%20(true)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(!TypeGuard.TNot(current))%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20current%20%3D%20current.not%3B%0A%20%20%20%20%20%20%20%20%20%20depth%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20depth%20%25%202%20%3D%3D%3D%200%20%3F%20current%20%3A%20exports.Type.Unknown()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNot(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TNot(left)%20%3F%20Visit(UnwrapTNot(left)%2C%20right)%20%3A%20TypeGuard.TNot(right)%20%3F%20Visit(left%2C%20UnwrapTNot(right))%20%3A%20Throw(%22Invalid%20fallthrough%20for%20Not%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNull(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TNull(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNumberRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteralNumber(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TNumber(left)%20%7C%7C%20TypeGuard.TInteger(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TNumber(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TInteger(right)%20%7C%7C%20TypeGuard.TNumber(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectPropertyCount(schema%2C%20count)%20%7B%0A%20%20%20%20%20%20%20%20return%20Object.getOwnPropertyNames(schema.properties).length%20%3D%3D%3D%20count%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectStringLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectArrayLike(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectSymbolLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%20%7C%7C%20IsObjectPropertyCount(schema%2C%201)%20%26%26%20%22description%22%20in%20schema.properties%20%26%26%20TypeGuard.TUnion(schema.properties.description)%20%26%26%20schema.properties.description.anyOf.length%20%3D%3D%3D%202%20%26%26%20(TypeGuard.TString(schema.properties.description.anyOf%5B0%5D)%20%26%26%20TypeGuard.TUndefined(schema.properties.description.anyOf%5B1%5D)%20%7C%7C%20TypeGuard.TString(schema.properties.description.anyOf%5B1%5D)%20%26%26%20TypeGuard.TUndefined(schema.properties.description.anyOf%5B0%5D))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectNumberLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectBooleanLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectBigIntLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectDateLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectUint8ArrayLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectArrayLike(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectFunctionLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20const%20length%20%3D%20exports.Type.Number()%3B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%20%7C%7C%20IsObjectPropertyCount(schema%2C%201)%20%26%26%20%22length%22%20in%20schema.properties%20%26%26%20IntoBooleanResult(Visit(schema.properties%5B%22length%22%5D%2C%20length))%20%3D%3D%3D%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectConstructorLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectArrayLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20const%20length%20%3D%20exports.Type.Number()%3B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%20%7C%7C%20IsObjectPropertyCount(schema%2C%201)%20%26%26%20%22length%22%20in%20schema.properties%20%26%26%20IntoBooleanResult(Visit(schema.properties%5B%22length%22%5D%2C%20length))%20%3D%3D%3D%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsObjectPromiseLike(schema)%20%7B%0A%20%20%20%20%20%20%20%20const%20then%20%3D%20exports.Type.Function(%5Bexports.Type.Any()%5D%2C%20exports.Type.Any())%3B%0A%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(schema%2C%200)%20%7C%7C%20IsObjectPropertyCount(schema%2C%201)%20%26%26%20%22then%22%20in%20schema.properties%20%26%26%20IntoBooleanResult(Visit(schema.properties%5B%22then%22%5D%2C%20then))%20%3D%3D%3D%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Property(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20Visit(left%2C%20right)%20%3D%3D%3D%20TypeExtendsResult.False%20%3F%20TypeExtendsResult.False%20%3A%20TypeGuard.TOptional(left)%20%26%26%20!TypeGuard.TOptional(right)%20%3F%20TypeExtendsResult.False%20%3A%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TObjectRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TUnknown(left)%20%3F%20TypeExtendsResult.False%20%3A%20TypeGuard.TAny(left)%20%3F%20TypeExtendsResult.Union%20%3A%20TypeGuard.TNever(left)%20%7C%7C%20TypeGuard.TLiteralString(left)%20%26%26%20IsObjectStringLike(right)%20%7C%7C%20TypeGuard.TLiteralNumber(left)%20%26%26%20IsObjectNumberLike(right)%20%7C%7C%20TypeGuard.TLiteralBoolean(left)%20%26%26%20IsObjectBooleanLike(right)%20%7C%7C%20TypeGuard.TSymbol(left)%20%26%26%20IsObjectSymbolLike(right)%20%7C%7C%20TypeGuard.TBigInt(left)%20%26%26%20IsObjectBigIntLike(right)%20%7C%7C%20TypeGuard.TString(left)%20%26%26%20IsObjectStringLike(right)%20%7C%7C%20TypeGuard.TSymbol(left)%20%26%26%20IsObjectSymbolLike(right)%20%7C%7C%20TypeGuard.TNumber(left)%20%26%26%20IsObjectNumberLike(right)%20%7C%7C%20TypeGuard.TInteger(left)%20%26%26%20IsObjectNumberLike(right)%20%7C%7C%20TypeGuard.TBoolean(left)%20%26%26%20IsObjectBooleanLike(right)%20%7C%7C%20TypeGuard.TUint8Array(left)%20%26%26%20IsObjectUint8ArrayLike(right)%20%7C%7C%20TypeGuard.TDate(left)%20%26%26%20IsObjectDateLike(right)%20%7C%7C%20TypeGuard.TConstructor(left)%20%26%26%20IsObjectConstructorLike(right)%20%7C%7C%20TypeGuard.TFunction(left)%20%26%26%20IsObjectFunctionLike(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TRecord(left)%20%26%26%20TypeGuard.TString(RecordKey(left))%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20right%5Bexports.Hint%5D%20%3D%3D%3D%20%22Record%22%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TRecord(left)%20%26%26%20TypeGuard.TNumber(RecordKey(left))%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20IsObjectPropertyCount(right%2C%200)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TObject(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20!TypeGuard.TObject(right)%20%3F%20TypeExtendsResult.False%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20key%20of%20Object.getOwnPropertyNames(right.properties))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(!(key%20in%20left.properties)%20%26%26%20!TypeGuard.TOptional(right.properties%5Bkey%5D))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(TypeGuard.TOptional(right.properties%5Bkey%5D))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(Property(left.properties%5Bkey%5D%2C%20right.properties%5Bkey%5D)%20%3D%3D%3D%20TypeExtendsResult.False)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TPromise(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%26%26%20IsObjectPromiseLike(right)%20%3F%20TypeExtendsResult.True%20%3A%20!TypeGuard.TPromise(right)%20%3F%20TypeExtendsResult.False%20%3A%20IntoBooleanResult(Visit(left.item%2C%20right.item))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20RecordKey(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20exports.PatternNumberExact%20in%20schema.patternProperties%20%3F%20exports.Type.Number()%20%3A%20exports.PatternStringExact%20in%20schema.patternProperties%20%3F%20exports.Type.String()%20%3A%20Throw(%22Unknown%20record%20key%20pattern%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20RecordValue(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20exports.PatternNumberExact%20in%20schema.patternProperties%20%3F%20schema.patternProperties%5Bexports.PatternNumberExact%5D%20%3A%20exports.PatternStringExact%20in%20schema.patternProperties%20%3F%20schema.patternProperties%5Bexports.PatternStringExact%5D%20%3A%20Throw(%22Unable%20to%20get%20record%20value%20schema%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TRecordRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5BKey%2C%20Value%5D%20%3D%20%5BRecordKey(right)%2C%20RecordValue(right)%5D%3B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteralString(left)%20%26%26%20TypeGuard.TNumber(Key)%20%26%26%20IntoBooleanResult(Visit(left%2C%20Value))%20%3D%3D%3D%20TypeExtendsResult.True%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TUint8Array(left)%20%26%26%20TypeGuard.TNumber(Key)%20%3F%20Visit(left%2C%20Value)%20%3A%20TypeGuard.TString(left)%20%26%26%20TypeGuard.TNumber(Key)%20%3F%20Visit(left%2C%20Value)%20%3A%20TypeGuard.TArray(left)%20%26%26%20TypeGuard.TNumber(Key)%20%3F%20Visit(left%2C%20Value)%20%3A%20TypeGuard.TObject(left)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20key%20of%20Object.getOwnPropertyNames(left.properties))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(Property(Value%2C%20left.properties%5Bkey%5D)%20%3D%3D%3D%20TypeExtendsResult.False)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TRecord(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20!TypeGuard.TRecord(right)%20%3F%20TypeExtendsResult.False%20%3A%20Visit(RecordValue(left)%2C%20RecordValue(right))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TStringRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TLiteral(left)%20%26%26%20ValueGuard.IsString(left.const)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TString(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TString(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TString(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TSymbol(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TSymbol(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TTemplateLiteral(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(left)%20%3F%20Visit(TemplateLiteralResolver.Resolve(left)%2C%20right)%20%3A%20TypeGuard.TTemplateLiteral(right)%20%3F%20Visit(left%2C%20TemplateLiteralResolver.Resolve(right))%20%3A%20Throw(%22Invalid%20fallthrough%20for%20TemplateLiteral%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsArrayOfTuple(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TArray(right)%20%26%26%20left.items%20!%3D%3D%20void%200%20%26%26%20left.items.every((schema)%20%3D%3E%20Visit(schema%2C%20right.items)%20%3D%3D%3D%20TypeExtendsResult.True)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TTupleRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TNever(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TUnknown(left)%20%3F%20TypeExtendsResult.False%20%3A%20TypeGuard.TAny(left)%20%3F%20TypeExtendsResult.Union%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TTuple(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%26%26%20IsObjectArrayLike(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TArray(right)%20%26%26%20IsArrayOfTuple(left%2C%20right)%20%3F%20TypeExtendsResult.True%20%3A%20!TypeGuard.TTuple(right)%20%3F%20TypeExtendsResult.False%20%3A%20ValueGuard.IsUndefined(left.items)%20%26%26%20!ValueGuard.IsUndefined(right.items)%20%7C%7C%20!ValueGuard.IsUndefined(left.items)%20%26%26%20ValueGuard.IsUndefined(right.items)%20%3F%20TypeExtendsResult.False%20%3A%20ValueGuard.IsUndefined(left.items)%20%26%26%20!ValueGuard.IsUndefined(right.items)%20%3F%20TypeExtendsResult.True%20%3A%20left.items.every((schema%2C%20index)%20%3D%3E%20Visit(schema%2C%20right.items%5Bindex%5D)%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUint8Array(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TUint8Array(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUndefined(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsStructuralRight(right)%20%3F%20StructuralRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TRecord(right)%20%3F%20TRecordRight(left%2C%20right)%20%3A%20TypeGuard.TVoid(right)%20%3F%20VoidRight(left%2C%20right)%20%3A%20TypeGuard.TUndefined(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnionRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20right.anyOf.some((schema)%20%3D%3E%20Visit(left%2C%20schema)%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnion(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20left.anyOf.every((schema)%20%3D%3E%20Visit(schema%2C%20right)%20%3D%3D%3D%20TypeExtendsResult.True)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnknownRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeExtendsResult.True%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnknown(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TNever(right)%20%3F%20TNeverRight(left%2C%20right)%20%3A%20TypeGuard.TIntersect(right)%20%3F%20TIntersectRight(left%2C%20right)%20%3A%20TypeGuard.TUnion(right)%20%3F%20TUnionRight(left%2C%20right)%20%3A%20TypeGuard.TAny(right)%20%3F%20TAnyRight(left%2C%20right)%20%3A%20TypeGuard.TString(right)%20%3F%20TStringRight(left%2C%20right)%20%3A%20TypeGuard.TNumber(right)%20%3F%20TNumberRight(left%2C%20right)%20%3A%20TypeGuard.TInteger(right)%20%3F%20TIntegerRight(left%2C%20right)%20%3A%20TypeGuard.TBoolean(right)%20%3F%20TBooleanRight(left%2C%20right)%20%3A%20TypeGuard.TArray(right)%20%3F%20TArrayRight(left%2C%20right)%20%3A%20TypeGuard.TTuple(right)%20%3F%20TTupleRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TUnknown(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20VoidRight(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TUndefined(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeGuard.TUndefined(left)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TVoid(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TIntersect(right)%20%3F%20TIntersectRight(left%2C%20right)%20%3A%20TypeGuard.TUnion(right)%20%3F%20TUnionRight(left%2C%20right)%20%3A%20TypeGuard.TUnknown(right)%20%3F%20TUnknownRight(left%2C%20right)%20%3A%20TypeGuard.TAny(right)%20%3F%20TAnyRight(left%2C%20right)%20%3A%20TypeGuard.TObject(right)%20%3F%20TObjectRight(left%2C%20right)%20%3A%20TypeGuard.TVoid(right)%20%3F%20TypeExtendsResult.True%20%3A%20TypeExtendsResult.False%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20resolvable%0A%20%20%20%20%20%20%20%20%20%20TypeGuard.TTemplateLiteral(left)%20%7C%7C%20TypeGuard.TTemplateLiteral(right)%20%3F%20TTemplateLiteral(left%2C%20right)%20%3A%20TypeGuard.TNot(left)%20%7C%7C%20TypeGuard.TNot(right)%20%3F%20TNot(left%2C%20right)%20%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20standard%0A%20%20%20%20%20%20%20%20%20%20%20%20TypeGuard.TAny(left)%20%3F%20TAny(left%2C%20right)%20%3A%20TypeGuard.TArray(left)%20%3F%20TArray(left%2C%20right)%20%3A%20TypeGuard.TBigInt(left)%20%3F%20TBigInt(left%2C%20right)%20%3A%20TypeGuard.TBoolean(left)%20%3F%20TBoolean(left%2C%20right)%20%3A%20TypeGuard.TAsyncIterator(left)%20%3F%20TAsyncIterator(left%2C%20right)%20%3A%20TypeGuard.TConstructor(left)%20%3F%20TConstructor(left%2C%20right)%20%3A%20TypeGuard.TDate(left)%20%3F%20TDate(left%2C%20right)%20%3A%20TypeGuard.TFunction(left)%20%3F%20TFunction(left%2C%20right)%20%3A%20TypeGuard.TInteger(left)%20%3F%20TInteger(left%2C%20right)%20%3A%20TypeGuard.TIntersect(left)%20%3F%20TIntersect(left%2C%20right)%20%3A%20TypeGuard.TIterator(left)%20%3F%20TIterator(left%2C%20right)%20%3A%20TypeGuard.TLiteral(left)%20%3F%20TLiteral(left%2C%20right)%20%3A%20TypeGuard.TNever(left)%20%3F%20TNever(left%2C%20right)%20%3A%20TypeGuard.TNull(left)%20%3F%20TNull(left%2C%20right)%20%3A%20TypeGuard.TNumber(left)%20%3F%20TNumber(left%2C%20right)%20%3A%20TypeGuard.TObject(left)%20%3F%20TObject(left%2C%20right)%20%3A%20TypeGuard.TRecord(left)%20%3F%20TRecord(left%2C%20right)%20%3A%20TypeGuard.TString(left)%20%3F%20TString(left%2C%20right)%20%3A%20TypeGuard.TSymbol(left)%20%3F%20TSymbol(left%2C%20right)%20%3A%20TypeGuard.TTuple(left)%20%3F%20TTuple(left%2C%20right)%20%3A%20TypeGuard.TPromise(left)%20%3F%20TPromise(left%2C%20right)%20%3A%20TypeGuard.TUint8Array(left)%20%3F%20TUint8Array(left%2C%20right)%20%3A%20TypeGuard.TUndefined(left)%20%3F%20TUndefined(left%2C%20right)%20%3A%20TypeGuard.TUnion(left)%20%3F%20TUnion(left%2C%20right)%20%3A%20TypeGuard.TUnknown(left)%20%3F%20TUnknown(left%2C%20right)%20%3A%20TypeGuard.TVoid(left)%20%3F%20TVoid(left%2C%20right)%20%3A%20Throw(%60Unknown%20left%20type%20operand%20'%24%7Bleft%5Bexports.Kind%5D%7D'%60)%0A%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Extends(left%2C%20right)%20%7B%0A%20%20%20%20%20%20%20%20return%20Visit(left%2C%20right)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeExtends2.Extends%20%3D%20Extends%3B%0A%20%20%20%20%7D)(TypeExtends%20%7C%7C%20(exports.TypeExtends%20%3D%20TypeExtends%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TypeClone%3B%0A%20%20%20%20(function(TypeClone2)%20%7B%0A%20%20%20%20%20%20function%20ArrayType(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value.map((value2)%20%3D%3E%20Visit(value2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20DateType(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20Date(value.getTime())%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Uint8ArrayType(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20Uint8Array(value)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20ObjectType(value)%20%7B%0A%20%20%20%20%20%20%20%20const%20clonedProperties%20%3D%20Object.getOwnPropertyNames(value).reduce((acc%2C%20key)%20%3D%3E%20(%7B%20...acc%2C%20%5Bkey%5D%3A%20Visit(value%5Bkey%5D)%20%7D)%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20const%20clonedSymbols%20%3D%20Object.getOwnPropertySymbols(value).reduce((acc%2C%20key)%20%3D%3E%20(%7B%20...acc%2C%20%5Bkey%5D%3A%20Visit(value%5Bkey%5D)%20%7D)%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20return%20%7B%20...clonedProperties%2C%20...clonedSymbols%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsArray(value)%20%3F%20ArrayType(value)%20%3A%20ValueGuard.IsDate(value)%20%3F%20DateType(value)%20%3A%20ValueGuard.IsUint8Array(value)%20%3F%20Uint8ArrayType(value)%20%3A%20ValueGuard.IsObject(value)%20%3F%20ObjectType(value)%20%3A%20value%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Rest(schemas)%20%7B%0A%20%20%20%20%20%20%20%20return%20schemas.map((schema)%20%3D%3E%20Type2(schema))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeClone2.Rest%20%3D%20Rest%3B%0A%20%20%20%20%20%20function%20Type2(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Visit(schema)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TypeClone2.Type%20%3D%20Type2%3B%0A%20%20%20%20%7D)(TypeClone%20%7C%7C%20(exports.TypeClone%20%3D%20TypeClone%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20IndexedAccessor%3B%0A%20%20%20%20(function(IndexedAccessor2)%20%7B%0A%20%20%20%20%20%20function%20OptionalUnwrap(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema.map((schema2)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20%7B%20%5Bexports.Optional%5D%3A%20%2C%20...clone%20%7D%20%3D%20TypeClone.Type(schema2)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20clone%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsIntersectOptional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema.every((schema2)%20%3D%3E%20TypeGuard.TOptional(schema2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsUnionOptional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema.some((schema2)%20%3D%3E%20TypeGuard.TOptional(schema2))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20ResolveIntersect(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsIntersectOptional(schema.allOf)%20%3F%20exports.Type.Optional(exports.Type.Intersect(OptionalUnwrap(schema.allOf)))%20%3A%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20ResolveUnion(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsUnionOptional(schema.anyOf)%20%3F%20exports.Type.Optional(exports.Type.Union(OptionalUnwrap(schema.anyOf)))%20%3A%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20ResolveOptional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Intersect%22%20%3F%20ResolveIntersect(schema)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Union%22%20%3F%20ResolveUnion(schema)%20%3A%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIntersect(schema%2C%20key)%20%7B%0A%20%20%20%20%20%20%20%20const%20resolved%20%3D%20schema.allOf.reduce((acc%2C%20schema2)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20indexed%20%3D%20Visit(schema2%2C%20key)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20indexed%5Bexports.Kind%5D%20%3D%3D%3D%20%22Never%22%20%3F%20acc%20%3A%20%5B...acc%2C%20indexed%5D%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20%5B%5D)%3B%0A%20%20%20%20%20%20%20%20return%20ResolveOptional(exports.Type.Intersect(resolved))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnion(schema%2C%20key)%20%7B%0A%20%20%20%20%20%20%20%20const%20resolved%20%3D%20schema.anyOf.map((schema2)%20%3D%3E%20Visit(schema2%2C%20key))%3B%0A%20%20%20%20%20%20%20%20return%20ResolveOptional(exports.Type.Union(resolved))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TObject(schema%2C%20key)%20%7B%0A%20%20%20%20%20%20%20%20const%20property%20%3D%20schema.properties%5Bkey%5D%3B%0A%20%20%20%20%20%20%20%20return%20ValueGuard.IsUndefined(property)%20%3F%20exports.Type.Never()%20%3A%20exports.Type.Union(%5Bproperty%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TTuple(schema%2C%20key)%20%7B%0A%20%20%20%20%20%20%20%20const%20items%20%3D%20schema.items%3B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsUndefined(items))%0A%20%20%20%20%20%20%20%20%20%20return%20exports.Type.Never()%3B%0A%20%20%20%20%20%20%20%20const%20element%20%3D%20items%5Bkey%5D%3B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsUndefined(element))%0A%20%20%20%20%20%20%20%20%20%20return%20exports.Type.Never()%3B%0A%20%20%20%20%20%20%20%20return%20element%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(schema%2C%20key)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Intersect%22%20%3F%20TIntersect(schema%2C%20key)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Union%22%20%3F%20TUnion(schema%2C%20key)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Object%22%20%3F%20TObject(schema%2C%20key)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Tuple%22%20%3F%20TTuple(schema%2C%20key)%20%3A%20exports.Type.Never()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Resolve(schema%2C%20keys%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20resolved%20%3D%20keys.map((key)%20%3D%3E%20Visit(schema%2C%20key.toString()))%3B%0A%20%20%20%20%20%20%20%20return%20ResolveOptional(exports.Type.Union(resolved%2C%20options))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20IndexedAccessor2.Resolve%20%3D%20Resolve%3B%0A%20%20%20%20%7D)(IndexedAccessor%20%7C%7C%20(exports.IndexedAccessor%20%3D%20IndexedAccessor%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20Intrinsic%3B%0A%20%20%20%20(function(Intrinsic2)%20%7B%0A%20%20%20%20%20%20function%20Uncapitalize(value)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5Bfirst%2C%20rest%5D%20%3D%20%5Bvalue.slice(0%2C%201)%2C%20value.slice(1)%5D%3B%0A%20%20%20%20%20%20%20%20return%20%60%24%7Bfirst.toLowerCase()%7D%24%7Brest%7D%60%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Capitalize(value)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5Bfirst%2C%20rest%5D%20%3D%20%5Bvalue.slice(0%2C%201)%2C%20value.slice(1)%5D%3B%0A%20%20%20%20%20%20%20%20return%20%60%24%7Bfirst.toUpperCase()%7D%24%7Brest%7D%60%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Uppercase(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value.toUpperCase()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Lowercase(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value.toLowerCase()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IntrinsicTemplateLiteral(schema%2C%20mode)%20%7B%0A%20%20%20%20%20%20%20%20const%20expression%20%3D%20TemplateLiteralParser.ParseExact(schema.pattern)%3B%0A%20%20%20%20%20%20%20%20const%20finite%20%3D%20TemplateLiteralFinite.Check(expression)%3B%0A%20%20%20%20%20%20%20%20if%20(!finite)%0A%20%20%20%20%20%20%20%20%20%20return%20%7B%20...schema%2C%20pattern%3A%20IntrinsicLiteral(schema.pattern%2C%20mode)%20%7D%3B%0A%20%20%20%20%20%20%20%20const%20strings%20%3D%20%5B...TemplateLiteralGenerator.Generate(expression)%5D%3B%0A%20%20%20%20%20%20%20%20const%20literals%20%3D%20strings.map((value)%20%3D%3E%20exports.Type.Literal(value))%3B%0A%20%20%20%20%20%20%20%20const%20mapped%20%3D%20IntrinsicRest(literals%2C%20mode)%3B%0A%20%20%20%20%20%20%20%20const%20union%20%3D%20exports.Type.Union(mapped)%3B%0A%20%20%20%20%20%20%20%20return%20exports.Type.TemplateLiteral(%5Bunion%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IntrinsicLiteral(value%2C%20mode)%20%7B%0A%20%20%20%20%20%20%20%20return%20typeof%20value%20%3D%3D%3D%20%22string%22%20%3F%20mode%20%3D%3D%3D%20%22Uncapitalize%22%20%3F%20Uncapitalize(value)%20%3A%20mode%20%3D%3D%3D%20%22Capitalize%22%20%3F%20Capitalize(value)%20%3A%20mode%20%3D%3D%3D%20%22Uppercase%22%20%3F%20Uppercase(value)%20%3A%20mode%20%3D%3D%3D%20%22Lowercase%22%20%3F%20Lowercase(value)%20%3A%20value%20%3A%20value.toString()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IntrinsicRest(schema%2C%20mode)%20%7B%0A%20%20%20%20%20%20%20%20if%20(schema.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20return%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20const%20%5BL%2C%20...R%5D%20%3D%20schema%3B%0A%20%20%20%20%20%20%20%20return%20%5BMap2(L%2C%20mode)%2C%20...IntrinsicRest(R%2C%20mode)%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(schema%2C%20mode)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(schema)%20%3F%20IntrinsicTemplateLiteral(schema%2C%20mode)%20%3A%20TypeGuard.TUnion(schema)%20%3F%20exports.Type.Union(IntrinsicRest(schema.anyOf%2C%20mode))%20%3A%20TypeGuard.TLiteral(schema)%20%3F%20exports.Type.Literal(IntrinsicLiteral(schema.const%2C%20mode))%20%3A%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Map2(schema%2C%20mode)%20%7B%0A%20%20%20%20%20%20%20%20return%20Visit(schema%2C%20mode)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20Intrinsic2.Map%20%3D%20Map2%3B%0A%20%20%20%20%7D)(Intrinsic%20%7C%7C%20(exports.Intrinsic%20%3D%20Intrinsic%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20ObjectMap%3B%0A%20%20%20%20(function(ObjectMap2)%20%7B%0A%20%20%20%20%20%20function%20TIntersect(schema%2C%20callback)%20%7B%0A%20%20%20%20%20%20%20%20return%20exports.Type.Intersect(schema.allOf.map((inner)%20%3D%3E%20Visit(inner%2C%20callback))%2C%20%7B%20...schema%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnion(schema%2C%20callback)%20%7B%0A%20%20%20%20%20%20%20%20return%20exports.Type.Union(schema.anyOf.map((inner)%20%3D%3E%20Visit(inner%2C%20callback))%2C%20%7B%20...schema%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TObject(schema%2C%20callback)%20%7B%0A%20%20%20%20%20%20%20%20return%20callback(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(schema%2C%20callback)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Intersect%22%20%3F%20TIntersect(schema%2C%20callback)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Union%22%20%3F%20TUnion(schema%2C%20callback)%20%3A%20schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Object%22%20%3F%20TObject(schema%2C%20callback)%20%3A%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Map2(schema%2C%20callback%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Visit(TypeClone.Type(schema)%2C%20callback)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ObjectMap2.Map%20%3D%20Map2%3B%0A%20%20%20%20%7D)(ObjectMap%20%7C%7C%20(exports.ObjectMap%20%3D%20ObjectMap%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20KeyResolver%3B%0A%20%20%20%20(function(KeyResolver2)%20%7B%0A%20%20%20%20%20%20function%20UnwrapPattern(key)%20%7B%0A%20%20%20%20%20%20%20%20return%20key%5B0%5D%20%3D%3D%3D%20%22%5E%22%20%26%26%20key%5Bkey.length%20-%201%5D%20%3D%3D%3D%20%22%24%22%20%3F%20key.slice(1%2C%20key.length%20-%201)%20%3A%20key%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TIntersect(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema.allOf.reduce((acc%2C%20schema2)%20%3D%3E%20%5B...acc%2C%20...Visit(schema2%2C%20options)%5D%2C%20%5B%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TUnion(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20const%20sets%20%3D%20schema.anyOf.map((inner)%20%3D%3E%20Visit(inner%2C%20options))%3B%0A%20%20%20%20%20%20%20%20return%20%5B...sets.reduce((set%2C%20outer)%20%3D%3E%20outer.map((key)%20%3D%3E%20sets.every((inner)%20%3D%3E%20inner.includes(key))%20%3F%20set.add(key)%20%3A%20set)%5B0%5D%2C%20%2F*%20%40__PURE_%20*%2F%20new%20Set())%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TObject(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20Object.getOwnPropertyNames(schema.properties)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20TRecord(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20options.includePatterns%20%3F%20Object.getOwnPropertyNames(schema.patternProperties)%20%3A%20%5B%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TIntersect(schema)%20%3F%20TIntersect(schema%2C%20options)%20%3A%20TypeGuard.TUnion(schema)%20%3F%20TUnion(schema%2C%20options)%20%3A%20TypeGuard.TObject(schema)%20%3F%20TObject(schema%2C%20options)%20%3A%20TypeGuard.TRecord(schema)%20%3F%20TRecord(schema%2C%20options)%20%3A%20%5B%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20ResolveKeys(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B...new%20Set(Visit(schema%2C%20options))%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20KeyResolver2.ResolveKeys%20%3D%20ResolveKeys%3B%0A%20%20%20%20%20%20function%20ResolvePattern(schema)%20%7B%0A%20%20%20%20%20%20%20%20const%20keys%20%3D%20ResolveKeys(schema%2C%20%7B%20includePatterns%3A%20true%20%7D)%3B%0A%20%20%20%20%20%20%20%20const%20pattern%20%3D%20keys.map((key)%20%3D%3E%20%60(%24%7BUnwrapPattern(key)%7D)%60)%3B%0A%20%20%20%20%20%20%20%20return%20%60%5E(%24%7Bpattern.join(%22%7C%22)%7D)%24%60%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20KeyResolver2.ResolvePattern%20%3D%20ResolvePattern%3B%0A%20%20%20%20%7D)(KeyResolver%20%7C%7C%20(exports.KeyResolver%20%3D%20KeyResolver%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20KeyArrayResolverError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.KeyArrayResolverError%20%3D%20KeyArrayResolverError%3B%0A%20%20%20%20var%20KeyArrayResolver%3B%0A%20%20%20%20(function(KeyArrayResolver2)%20%7B%0A%20%20%20%20%20%20function%20Resolve(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20Array.isArray(schema)%20%3F%20schema%20%3A%20TypeGuard.TUnionLiteral(schema)%20%3F%20schema.anyOf.map((schema2)%20%3D%3E%20schema2.const.toString())%20%3A%20TypeGuard.TLiteral(schema)%20%3F%20%5Bschema.const%5D%20%3A%20TypeGuard.TTemplateLiteral(schema)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20expression%20%3D%20TemplateLiteralParser.ParseExact(schema.pattern)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(!TemplateLiteralFinite.Check(expression))%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20KeyArrayResolverError(%22Cannot%20resolve%20keys%20from%20infinite%20template%20expression%22)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20%5B...TemplateLiteralGenerator.Generate(expression)%5D%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20%5B%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20KeyArrayResolver2.Resolve%20%3D%20Resolve%3B%0A%20%20%20%20%7D)(KeyArrayResolver%20%7C%7C%20(exports.KeyArrayResolver%20%3D%20KeyArrayResolver%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20UnionResolver%3B%0A%20%20%20%20(function(UnionResolver2)%20%7B%0A%20%20%20%20%20%20function*%20TUnion(union)%20%7B%0A%20%20%20%20%20%20%20%20for%20(const%20schema%20of%20union.anyOf)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(schema%5Bexports.Kind%5D%20%3D%3D%3D%20%22Union%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20yield*%20TUnion(schema)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20yield%20schema%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Resolve(union)%20%7B%0A%20%20%20%20%20%20%20%20return%20exports.Type.Union(%5B...TUnion(union)%5D%2C%20%7B%20...union%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20UnionResolver2.Resolve%20%3D%20Resolve%3B%0A%20%20%20%20%7D)(UnionResolver%20%7C%7C%20(exports.UnionResolver%20%3D%20UnionResolver%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralPatternError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TemplateLiteralPatternError%20%3D%20TemplateLiteralPatternError%3B%0A%20%20%20%20var%20TemplateLiteralPattern%3B%0A%20%20%20%20(function(TemplateLiteralPattern2)%20%7B%0A%20%20%20%20%20%20function%20Throw(message)%20%7B%0A%20%20%20%20%20%20%20%20throw%20new%20TemplateLiteralPatternError(message)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Escape(value)%20%7B%0A%20%20%20%20%20%20%20%20return%20value.replace(%2F%5B.%2B%3F%5E%24%7B%7D()%7C%5B%5C%5D%5C%5C%5D%2Fg%2C%20%22%5C%5C%24%26%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Visit(schema%2C%20acc)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(schema)%20%3F%20schema.pattern.slice(1%2C%20schema.pattern.length%20-%201)%20%3A%20TypeGuard.TUnion(schema)%20%3F%20%60(%24%7Bschema.anyOf.map((schema2)%20%3D%3E%20Visit(schema2%2C%20acc)).join(%22%7C%22)%7D)%60%20%3A%20TypeGuard.TNumber(schema)%20%3F%20%60%24%7Bacc%7D%24%7Bexports.PatternNumber%7D%60%20%3A%20TypeGuard.TInteger(schema)%20%3F%20%60%24%7Bacc%7D%24%7Bexports.PatternNumber%7D%60%20%3A%20TypeGuard.TBigInt(schema)%20%3F%20%60%24%7Bacc%7D%24%7Bexports.PatternNumber%7D%60%20%3A%20TypeGuard.TString(schema)%20%3F%20%60%24%7Bacc%7D%24%7Bexports.PatternString%7D%60%20%3A%20TypeGuard.TLiteral(schema)%20%3F%20%60%24%7Bacc%7D%24%7BEscape(schema.const.toString())%7D%60%20%3A%20TypeGuard.TBoolean(schema)%20%3F%20%60%24%7Bacc%7D%24%7Bexports.PatternBoolean%7D%60%20%3A%20Throw(%60Unexpected%20Kind%20'%24%7Bschema%5Bexports.Kind%5D%7D'%60)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Create(kinds)%20%7B%0A%20%20%20%20%20%20%20%20return%20%60%5E%24%7Bkinds.map((schema)%20%3D%3E%20Visit(schema%2C%20%22%22)).join(%22%22)%7D%24%60%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralPattern2.Create%20%3D%20Create%3B%0A%20%20%20%20%7D)(TemplateLiteralPattern%20%7C%7C%20(exports.TemplateLiteralPattern%20%3D%20TemplateLiteralPattern%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralResolver%3B%0A%20%20%20%20(function(TemplateLiteralResolver2)%20%7B%0A%20%20%20%20%20%20function%20Resolve(template)%20%7B%0A%20%20%20%20%20%20%20%20const%20expression%20%3D%20TemplateLiteralParser.ParseExact(template.pattern)%3B%0A%20%20%20%20%20%20%20%20if%20(!TemplateLiteralFinite.Check(expression))%0A%20%20%20%20%20%20%20%20%20%20return%20exports.Type.String()%3B%0A%20%20%20%20%20%20%20%20const%20literals%20%3D%20%5B...TemplateLiteralGenerator.Generate(expression)%5D.map((value)%20%3D%3E%20exports.Type.Literal(value))%3B%0A%20%20%20%20%20%20%20%20return%20exports.Type.Union(literals)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralResolver2.Resolve%20%3D%20Resolve%3B%0A%20%20%20%20%7D)(TemplateLiteralResolver%20%7C%7C%20(exports.TemplateLiteralResolver%20%3D%20TemplateLiteralResolver%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralParserError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TemplateLiteralParserError%20%3D%20TemplateLiteralParserError%3B%0A%20%20%20%20var%20TemplateLiteralParser%3B%0A%20%20%20%20(function(TemplateLiteralParser2)%20%7B%0A%20%20%20%20%20%20function%20IsNonEscaped(pattern%2C%20index%2C%20char)%20%7B%0A%20%20%20%20%20%20%20%20return%20pattern%5Bindex%5D%20%3D%3D%3D%20char%20%26%26%20pattern.charCodeAt(index%20-%201)%20!%3D%3D%2092%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsOpenParen(pattern%2C%20index)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsNonEscaped(pattern%2C%20index%2C%20%22(%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsCloseParen(pattern%2C%20index)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsNonEscaped(pattern%2C%20index%2C%20%22)%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsSeparator(pattern%2C%20index)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsNonEscaped(pattern%2C%20index%2C%20%22%7C%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsGroup(pattern)%20%7B%0A%20%20%20%20%20%20%20%20if%20(!(IsOpenParen(pattern%2C%200)%20%26%26%20IsCloseParen(pattern%2C%20pattern.length%20-%201)))%0A%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20let%20count%20%3D%200%3B%0A%20%20%20%20%20%20%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20pattern.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsCloseParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20-%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(count%20%3D%3D%3D%200%20%26%26%20index%20!%3D%3D%20pattern.length%20-%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20InGroup(pattern)%20%7B%0A%20%20%20%20%20%20%20%20return%20pattern.slice(1%2C%20pattern.length%20-%201)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsPrecedenceOr(pattern)%20%7B%0A%20%20%20%20%20%20%20%20let%20count%20%3D%200%3B%0A%20%20%20%20%20%20%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20pattern.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsCloseParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20-%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsSeparator(pattern%2C%20index)%20%26%26%20count%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsPrecedenceAnd(pattern)%20%7B%0A%20%20%20%20%20%20%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20pattern.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Or(pattern)%20%7B%0A%20%20%20%20%20%20%20%20let%20%5Bcount%2C%20start%5D%20%3D%20%5B0%2C%200%5D%3B%0A%20%20%20%20%20%20%20%20const%20expressions%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20pattern.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsCloseParen(pattern%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20-%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsSeparator(pattern%2C%20index)%20%26%26%20count%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20range2%20%3D%20pattern.slice(start%2C%20index)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(range2.length%20%3E%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20expressions.push(Parse(range2))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20start%20%3D%20index%20%2B%201%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20const%20range%20%3D%20pattern.slice(start)%3B%0A%20%20%20%20%20%20%20%20if%20(range.length%20%3E%200)%0A%20%20%20%20%20%20%20%20%20%20expressions.push(Parse(range))%3B%0A%20%20%20%20%20%20%20%20if%20(expressions.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20return%20%7B%20type%3A%20%22const%22%2C%20const%3A%20%22%22%20%7D%3B%0A%20%20%20%20%20%20%20%20if%20(expressions.length%20%3D%3D%3D%201)%0A%20%20%20%20%20%20%20%20%20%20return%20expressions%5B0%5D%3B%0A%20%20%20%20%20%20%20%20return%20%7B%20type%3A%20%22or%22%2C%20expr%3A%20expressions%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20And(pattern)%20%7B%0A%20%20%20%20%20%20%20%20function%20Group(value%2C%20index)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(!IsOpenParen(value%2C%20index))%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20TemplateLiteralParserError(%60TemplateLiteralParser%3A%20Index%20must%20point%20to%20open%20parens%60)%3B%0A%20%20%20%20%20%20%20%20%20%20let%20count%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20for%20(let%20scan%20%3D%20index%3B%20scan%20%3C%20value.length%3B%20scan%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(value%2C%20scan))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(IsCloseParen(value%2C%20scan))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20-%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(count%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Bindex%2C%20scan%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20throw%20new%20TemplateLiteralParserError(%60TemplateLiteralParser%3A%20Unclosed%20group%20parens%20in%20expression%60)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20function%20Range(pattern2%2C%20index)%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20(let%20scan%20%3D%20index%3B%20scan%20%3C%20pattern2.length%3B%20scan%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern2%2C%20scan))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Bindex%2C%20scan%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20%5Bindex%2C%20pattern2.length%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20const%20expressions%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20pattern.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(IsOpenParen(pattern%2C%20index))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20%5Bstart%2C%20end%5D%20%3D%20Group(pattern%2C%20index)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20range%20%3D%20pattern.slice(start%2C%20end%20%2B%201)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20expressions.push(Parse(range))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20index%20%3D%20end%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20%5Bstart%2C%20end%5D%20%3D%20Range(pattern%2C%20index)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20range%20%3D%20pattern.slice(start%2C%20end)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(range.length%20%3E%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20expressions.push(Parse(range))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20index%20%3D%20end%20-%201%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20expressions.length%20%3D%3D%3D%200%20%3F%20%7B%20type%3A%20%22const%22%2C%20const%3A%20%22%22%20%7D%20%3A%20expressions.length%20%3D%3D%3D%201%20%3F%20expressions%5B0%5D%20%3A%20%7B%20type%3A%20%22and%22%2C%20expr%3A%20expressions%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Parse(pattern)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsGroup(pattern)%20%3F%20Parse(InGroup(pattern))%20%3A%20IsPrecedenceOr(pattern)%20%3F%20Or(pattern)%20%3A%20IsPrecedenceAnd(pattern)%20%3F%20And(pattern)%20%3A%20%7B%20type%3A%20%22const%22%2C%20const%3A%20pattern%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralParser2.Parse%20%3D%20Parse%3B%0A%20%20%20%20%20%20function%20ParseExact(pattern)%20%7B%0A%20%20%20%20%20%20%20%20return%20Parse(pattern.slice(1%2C%20pattern.length%20-%201))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralParser2.ParseExact%20%3D%20ParseExact%3B%0A%20%20%20%20%7D)(TemplateLiteralParser%20%7C%7C%20(exports.TemplateLiteralParser%20%3D%20TemplateLiteralParser%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralFiniteError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TemplateLiteralFiniteError%20%3D%20TemplateLiteralFiniteError%3B%0A%20%20%20%20var%20TemplateLiteralFinite%3B%0A%20%20%20%20(function(TemplateLiteralFinite2)%20%7B%0A%20%20%20%20%20%20function%20Throw(message)%20%7B%0A%20%20%20%20%20%20%20%20throw%20new%20TemplateLiteralFiniteError(message)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsNumber(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20expression.type%20%3D%3D%3D%20%22or%22%20%26%26%20expression.expr.length%20%3D%3D%3D%202%20%26%26%20expression.expr%5B0%5D.type%20%3D%3D%3D%20%22const%22%20%26%26%20expression.expr%5B0%5D.const%20%3D%3D%3D%20%220%22%20%26%26%20expression.expr%5B1%5D.type%20%3D%3D%3D%20%22const%22%20%26%26%20expression.expr%5B1%5D.const%20%3D%3D%3D%20%22%5B1-9%5D%5B0-9%5D%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsBoolean(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20expression.type%20%3D%3D%3D%20%22or%22%20%26%26%20expression.expr.length%20%3D%3D%3D%202%20%26%26%20expression.expr%5B0%5D.type%20%3D%3D%3D%20%22const%22%20%26%26%20expression.expr%5B0%5D.const%20%3D%3D%3D%20%22true%22%20%26%26%20expression.expr%5B1%5D.type%20%3D%3D%3D%20%22const%22%20%26%26%20expression.expr%5B1%5D.const%20%3D%3D%3D%20%22false%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20IsString(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20expression.type%20%3D%3D%3D%20%22const%22%20%26%26%20expression.const%20%3D%3D%3D%20%22.%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Check(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20IsBoolean(expression)%20%3F%20true%20%3A%20IsNumber(expression)%20%7C%7C%20IsString(expression)%20%3F%20false%20%3A%20expression.type%20%3D%3D%3D%20%22and%22%20%3F%20expression.expr.every((expr)%20%3D%3E%20Check(expr))%20%3A%20expression.type%20%3D%3D%3D%20%22or%22%20%3F%20expression.expr.every((expr)%20%3D%3E%20Check(expr))%20%3A%20expression.type%20%3D%3D%3D%20%22const%22%20%3F%20true%20%3A%20Throw(%60Unknown%20expression%20type%60)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralFinite2.Check%20%3D%20Check%3B%0A%20%20%20%20%7D)(TemplateLiteralFinite%20%7C%7C%20(exports.TemplateLiteralFinite%20%3D%20TemplateLiteralFinite%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralGeneratorError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TemplateLiteralGeneratorError%20%3D%20TemplateLiteralGeneratorError%3B%0A%20%20%20%20var%20TemplateLiteralGenerator%3B%0A%20%20%20%20(function(TemplateLiteralGenerator2)%20%7B%0A%20%20%20%20%20%20function%20Reduce(buffer)%20%7B%0A%20%20%20%20%20%20%20%20if%20(buffer.length%20%3D%3D%3D%201)%0A%20%20%20%20%20%20%20%20%20%20return%20yield*%20buffer%5B0%5D%3B%0A%20%20%20%20%20%20%20%20for%20(const%20left%20of%20buffer%5B0%5D)%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20right%20of%20Reduce(buffer.slice(1)))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20yield%20%60%24%7Bleft%7D%24%7Bright%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20And(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20yield*%20Reduce(expression.expr.map((expr)%20%3D%3E%20%5B...Generate(expr)%5D))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20Or(expression)%20%7B%0A%20%20%20%20%20%20%20%20for%20(const%20expr%20of%20expression.expr)%0A%20%20%20%20%20%20%20%20%20%20yield*%20Generate(expr)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20Const(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20yield%20expression.const%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20Generate(expression)%20%7B%0A%20%20%20%20%20%20%20%20return%20expression.type%20%3D%3D%3D%20%22and%22%20%3F%20yield*%20And(expression)%20%3A%20expression.type%20%3D%3D%3D%20%22or%22%20%3F%20yield*%20Or(expression)%20%3A%20expression.type%20%3D%3D%3D%20%22const%22%20%3F%20yield*%20Const(expression)%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20throw%20new%20TemplateLiteralGeneratorError(%22Unknown%20expression%22)%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralGenerator2.Generate%20%3D%20Generate%3B%0A%20%20%20%20%7D)(TemplateLiteralGenerator%20%7C%7C%20(exports.TemplateLiteralGenerator%20%3D%20TemplateLiteralGenerator%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TemplateLiteralDslParser%3B%0A%20%20%20%20(function(TemplateLiteralDslParser2)%20%7B%0A%20%20%20%20%20%20function*%20ParseUnion(template)%20%7B%0A%20%20%20%20%20%20%20%20const%20trim%20%3D%20template.trim().replace(%2F%22%7C'%2Fg%2C%20%22%22)%3B%0A%20%20%20%20%20%20%20%20return%20trim%20%3D%3D%3D%20%22boolean%22%20%3F%20yield%20exports.Type.Boolean()%20%3A%20trim%20%3D%3D%3D%20%22number%22%20%3F%20yield%20exports.Type.Number()%20%3A%20trim%20%3D%3D%3D%20%22bigint%22%20%3F%20yield%20exports.Type.BigInt()%20%3A%20trim%20%3D%3D%3D%20%22string%22%20%3F%20yield%20exports.Type.String()%20%3A%20yield%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20literals%20%3D%20trim.split(%22%7C%22).map((literal)%20%3D%3E%20exports.Type.Literal(literal.trim()))%3B%0A%20%20%20%20%20%20%20%20%20%20return%20literals.length%20%3D%3D%3D%200%20%3F%20exports.Type.Never()%20%3A%20literals.length%20%3D%3D%3D%201%20%3F%20literals%5B0%5D%20%3A%20exports.Type.Union(literals)%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20ParseTerminal(template)%20%7B%0A%20%20%20%20%20%20%20%20if%20(template%5B1%5D%20!%3D%3D%20%22%7B%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20L%20%3D%20exports.Type.Literal(%22%24%22)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20R%20%3D%20ParseLiteral(template.slice(1))%3B%0A%20%20%20%20%20%20%20%20%20%20return%20yield*%20%5BL%2C%20...R%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%202%3B%20i%20%3C%20template.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(template%5Bi%5D%20%3D%3D%3D%20%22%7D%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20L%20%3D%20ParseUnion(template.slice(2%2C%20i))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20R%20%3D%20ParseLiteral(template.slice(i%20%2B%201))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20yield*%20%5B...L%2C%20...R%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20yield%20exports.Type.Literal(template)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function*%20ParseLiteral(template)%20%7B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20template.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(template%5Bi%5D%20%3D%3D%3D%20%22%24%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20L%20%3D%20exports.Type.Literal(template.slice(0%2C%20i))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20R%20%3D%20ParseTerminal(template.slice(i))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20yield*%20%5BL%2C%20...R%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20yield%20exports.Type.Literal(template)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20function%20Parse(template_dsl)%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B...ParseLiteral(template_dsl)%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20TemplateLiteralDslParser2.Parse%20%3D%20Parse%3B%0A%20%20%20%20%7D)(TemplateLiteralDslParser%20%7C%7C%20(exports.TemplateLiteralDslParser%20%3D%20TemplateLiteralDslParser%20%3D%20%7B%7D))%3B%0A%20%20%20%20var%20TransformDecodeBuilder%20%3D%20class%20%7B%0A%20%20%20%20%20%20constructor(schema)%20%7B%0A%20%20%20%20%20%20%20%20this.schema%20%3D%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20Decode(decode)%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20TransformEncodeBuilder(this.schema%2C%20decode)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TransformDecodeBuilder%20%3D%20TransformDecodeBuilder%3B%0A%20%20%20%20var%20TransformEncodeBuilder%20%3D%20class%20%7B%0A%20%20%20%20%20%20constructor(schema%2C%20decode)%20%7B%0A%20%20%20%20%20%20%20%20this.schema%20%3D%20schema%3B%0A%20%20%20%20%20%20%20%20this.decode%20%3D%20decode%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20Encode(encode)%20%7B%0A%20%20%20%20%20%20%20%20const%20schema%20%3D%20TypeClone.Type(this.schema)%3B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTransform(schema)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20Encode%20%3D%20(value)%20%3D%3E%20schema%5Bexports.Transform%5D.Encode(encode(value))%3B%0A%20%20%20%20%20%20%20%20%20%20const%20Decode%20%3D%20(value)%20%3D%3E%20this.decode(schema%5Bexports.Transform%5D.Decode(value))%3B%0A%20%20%20%20%20%20%20%20%20%20const%20Codec%20%3D%20%7B%20Encode%2C%20Decode%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20return%20%7B%20...schema%2C%20%5Bexports.Transform%5D%3A%20Codec%20%7D%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20Codec%20%3D%20%7B%20Decode%3A%20this.decode%2C%20Encode%3A%20encode%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20return%20%7B%20...schema%2C%20%5Bexports.Transform%5D%3A%20Codec%20%7D%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TransformEncodeBuilder%20%3D%20TransformEncodeBuilder%3B%0A%20%20%20%20var%20TypeOrdinal%20%3D%200%3B%0A%20%20%20%20var%20TypeBuilderError%20%3D%20class%20extends%20TypeBoxError%20%7B%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TypeBuilderError%20%3D%20TypeBuilderError%3B%0A%20%20%20%20var%20TypeBuilder%20%3D%20class%20%7B%0A%20%20%20%20%20%20%2F**%20%60%5BInternal%5D%60%20Creates%20a%20schema%20without%20%60static%60%20and%20%60params%60%20types%20*%2F%0A%20%20%20%20%20%20Create(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20schema%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BInternal%5D%60%20Throws%20a%20TypeBuilder%20error%20with%20the%20given%20message%20*%2F%0A%20%20%20%20%20%20Throw(message)%20%7B%0A%20%20%20%20%20%20%20%20throw%20new%20TypeBuilderError(message)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BInternal%5D%60%20Discards%20property%20keys%20from%20the%20given%20record%20type%20*%2F%0A%20%20%20%20%20%20Discard(record%2C%20keys)%20%7B%0A%20%20%20%20%20%20%20%20return%20keys.reduce((acc%2C%20key)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20%7B%20%5Bkey%5D%3A%20_%2C%20...rest%20%7D%20%3D%20acc%3B%0A%20%20%20%20%20%20%20%20%20%20return%20rest%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20record)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Omits%20compositing%20symbols%20from%20this%20schema%20*%2F%0A%20%20%20%20%20%20Strict(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20JSON.parse(JSON.stringify(schema))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.TypeBuilder%20%3D%20TypeBuilder%3B%0A%20%20%20%20var%20JsonTypeBuilder%20%3D%20class%20extends%20TypeBuilder%20%7B%0A%20%20%20%20%20%20%2F%2F%20------------------------------------------------------------------------%0A%20%20%20%20%20%20%2F%2F%20Modifiers%0A%20%20%20%20%20%20%2F%2F%20------------------------------------------------------------------------%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Readonly%20and%20Optional%20property%20*%2F%0A%20%20%20%20%20%20ReadonlyOptional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Readonly(this.Optional(schema))%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Readonly%20property%20*%2F%0A%20%20%20%20%20%20Readonly(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...TypeClone.Type(schema)%2C%20%5Bexports.Readonly%5D%3A%20%22Readonly%22%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Optional%20property%20*%2F%0A%20%20%20%20%20%20Optional(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...TypeClone.Type(schema)%2C%20%5Bexports.Optional%5D%3A%20%22Optional%22%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F%2F%20------------------------------------------------------------------------%0A%20%20%20%20%20%20%2F%2F%20Types%0A%20%20%20%20%20%20%2F%2F%20------------------------------------------------------------------------%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Any%20type%20*%2F%0A%20%20%20%20%20%20Any(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Any%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Array%20type%20*%2F%0A%20%20%20%20%20%20Array(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Array%22%2C%20type%3A%20%22array%22%2C%20items%3A%20TypeClone.Type(schema)%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Boolean%20type%20*%2F%0A%20%20%20%20%20%20Boolean(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Boolean%22%2C%20type%3A%20%22boolean%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Intrinsic%20function%20to%20Capitalize%20LiteralString%20types%20*%2F%0A%20%20%20%20%20%20Capitalize(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Intrinsic.Map(TypeClone.Type(schema)%2C%20%22Capitalize%22)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Composite%20object%20type%20*%2F%0A%20%20%20%20%20%20Composite(objects%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20const%20intersect%20%3D%20exports.Type.Intersect(objects%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20const%20keys%20%3D%20KeyResolver.ResolveKeys(intersect%2C%20%7B%20includePatterns%3A%20false%20%7D)%3B%0A%20%20%20%20%20%20%20%20const%20properties%20%3D%20keys.reduce((acc%2C%20key)%20%3D%3E%20(%7B%20...acc%2C%20%5Bkey%5D%3A%20exports.Type.Index(intersect%2C%20%5Bkey%5D)%20%7D)%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20return%20exports.Type.Object(properties%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Enum%20type%20*%2F%0A%20%20%20%20%20%20Enum(item%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsUndefined(item))%0A%20%20%20%20%20%20%20%20%20%20return%20this.Throw(%22Enum%20undefined%20or%20empty%22)%3B%0A%20%20%20%20%20%20%20%20const%20values1%20%3D%20Object.getOwnPropertyNames(item).filter((key)%20%3D%3E%20isNaN(key)).map((key)%20%3D%3E%20item%5Bkey%5D)%3B%0A%20%20%20%20%20%20%20%20const%20values2%20%3D%20%5B...new%20Set(values1)%5D%3B%0A%20%20%20%20%20%20%20%20const%20anyOf%20%3D%20values2.map((value)%20%3D%3E%20exports.Type.Literal(value))%3B%0A%20%20%20%20%20%20%20%20return%20this.Union(anyOf%2C%20%7B%20...options%2C%20%5Bexports.Hint%5D%3A%20%22Enum%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Conditional%20type%20*%2F%0A%20%20%20%20%20%20Extends(left%2C%20right%2C%20trueType%2C%20falseType%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20switch%20(TypeExtends.Extends(left%2C%20right))%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20TypeExtendsResult.Union%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.Union(%5BTypeClone.Type(trueType%2C%20options)%2C%20TypeClone.Type(falseType%2C%20options)%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20case%20TypeExtendsResult.True%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeClone.Type(trueType%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%20%20case%20TypeExtendsResult.False%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20TypeClone.Type(falseType%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20by%20excluding%20from%20unionType%20all%20union%20members%20that%20are%20assignable%20to%20excludedMembers%20*%2F%0A%20%20%20%20%20%20Exclude(unionType%2C%20excludedMembers%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(unionType)%20%3F%20this.Exclude(TemplateLiteralResolver.Resolve(unionType)%2C%20excludedMembers%2C%20options)%20%3A%20TypeGuard.TTemplateLiteral(excludedMembers)%20%3F%20this.Exclude(unionType%2C%20TemplateLiteralResolver.Resolve(excludedMembers)%2C%20options)%20%3A%20TypeGuard.TUnion(unionType)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20narrowed%20%3D%20unionType.anyOf.filter((inner)%20%3D%3E%20TypeExtends.Extends(inner%2C%20excludedMembers)%20%3D%3D%3D%20TypeExtendsResult.False)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20narrowed.length%20%3D%3D%3D%201%20%3F%20TypeClone.Type(narrowed%5B0%5D%2C%20options)%20%3A%20this.Union(narrowed%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeExtends.Extends(unionType%2C%20excludedMembers)%20!%3D%3D%20TypeExtendsResult.False%20%3F%20this.Never(options)%20%3A%20TypeClone.Type(unionType%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20by%20extracting%20from%20type%20all%20union%20members%20that%20are%20assignable%20to%20union%20*%2F%0A%20%20%20%20%20%20Extract(type%2C%20union%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(type)%20%3F%20this.Extract(TemplateLiteralResolver.Resolve(type)%2C%20union%2C%20options)%20%3A%20TypeGuard.TTemplateLiteral(union)%20%3F%20this.Extract(type%2C%20TemplateLiteralResolver.Resolve(union)%2C%20options)%20%3A%20TypeGuard.TUnion(type)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20narrowed%20%3D%20type.anyOf.filter((inner)%20%3D%3E%20TypeExtends.Extends(inner%2C%20union)%20!%3D%3D%20TypeExtendsResult.False)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20narrowed.length%20%3D%3D%3D%201%20%3F%20TypeClone.Type(narrowed%5B0%5D%2C%20options)%20%3A%20this.Union(narrowed%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeExtends.Extends(type%2C%20union)%20!%3D%3D%20TypeExtendsResult.False%20%3F%20TypeClone.Type(type%2C%20options)%20%3A%20this.Never(options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Returns%20an%20Indexed%20property%20type%20for%20the%20given%20keys%20*%2F%0A%20%20%20%20%20%20Index(schema%2C%20unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TArray(schema)%20%26%26%20TypeGuard.TNumber(unresolved)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20TypeClone.Type(schema.items%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TTuple(schema)%20%26%26%20TypeGuard.TNumber(unresolved)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20items%20%3D%20ValueGuard.IsUndefined(schema.items)%20%3F%20%5B%5D%20%3A%20schema.items%3B%0A%20%20%20%20%20%20%20%20%20%20const%20cloned%20%3D%20items.map((schema2)%20%3D%3E%20TypeClone.Type(schema2))%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Union(cloned%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20keys%20%3D%20KeyArrayResolver.Resolve(unresolved)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20clone%20%3D%20TypeClone.Type(schema)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20IndexedAccessor.Resolve(clone%2C%20keys%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Integer%20type%20*%2F%0A%20%20%20%20%20%20Integer(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Integer%22%2C%20type%3A%20%22integer%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Intersect%20type%20*%2F%0A%20%20%20%20%20%20Intersect(allOf%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20if%20(allOf.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20return%20exports.Type.Never()%3B%0A%20%20%20%20%20%20%20%20if%20(allOf.length%20%3D%3D%3D%201)%0A%20%20%20%20%20%20%20%20%20%20return%20TypeClone.Type(allOf%5B0%5D%2C%20options)%3B%0A%20%20%20%20%20%20%20%20if%20(allOf.some((schema)%20%3D%3E%20TypeGuard.TTransform(schema)))%0A%20%20%20%20%20%20%20%20%20%20this.Throw(%22Cannot%20intersect%20transform%20types%22)%3B%0A%20%20%20%20%20%20%20%20const%20objects%20%3D%20allOf.every((schema)%20%3D%3E%20TypeGuard.TObject(schema))%3B%0A%20%20%20%20%20%20%20%20const%20cloned%20%3D%20TypeClone.Rest(allOf)%3B%0A%20%20%20%20%20%20%20%20const%20clonedUnevaluatedProperties%20%3D%20TypeGuard.TSchema(options.unevaluatedProperties)%20%3F%20%7B%20unevaluatedProperties%3A%20TypeClone.Type(options.unevaluatedProperties)%20%7D%20%3A%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20return%20options.unevaluatedProperties%20%3D%3D%3D%20false%20%7C%7C%20TypeGuard.TSchema(options.unevaluatedProperties)%20%7C%7C%20objects%20%3F%20this.Create(%7B%20...options%2C%20...clonedUnevaluatedProperties%2C%20%5Bexports.Kind%5D%3A%20%22Intersect%22%2C%20type%3A%20%22object%22%2C%20allOf%3A%20cloned%20%7D)%20%3A%20this.Create(%7B%20...options%2C%20...clonedUnevaluatedProperties%2C%20%5Bexports.Kind%5D%3A%20%22Intersect%22%2C%20allOf%3A%20cloned%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20KeyOf%20type%20*%2F%0A%20%20%20%20%20%20KeyOf(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TRecord(schema)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20pattern%20%3D%20Object.getOwnPropertyNames(schema.patternProperties)%5B0%5D%3B%0A%20%20%20%20%20%20%20%20%20%20return%20pattern%20%3D%3D%3D%20exports.PatternNumberExact%20%3F%20this.Number(options)%20%3A%20pattern%20%3D%3D%3D%20exports.PatternStringExact%20%3F%20this.String(options)%20%3A%20this.Throw(%22Unable%20to%20resolve%20key%20type%20from%20Record%20key%20pattern%22)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TTuple(schema)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20items%20%3D%20ValueGuard.IsUndefined(schema.items)%20%3F%20%5B%5D%20%3A%20schema.items%3B%0A%20%20%20%20%20%20%20%20%20%20const%20literals%20%3D%20items.map((_%2C%20index)%20%3D%3E%20exports.Type.Literal(index.toString()))%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Union(literals%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TArray(schema)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Number(options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20keys%20%3D%20KeyResolver.ResolveKeys(schema%2C%20%7B%20includePatterns%3A%20false%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(keys.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.Never(options)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20literals%20%3D%20keys.map((key)%20%3D%3E%20this.Literal(key))%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Union(literals%2C%20options)%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Literal%20type%20*%2F%0A%20%20%20%20%20%20Literal(value%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Literal%22%2C%20const%3A%20value%2C%20type%3A%20typeof%20value%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Intrinsic%20function%20to%20Lowercase%20LiteralString%20types%20*%2F%0A%20%20%20%20%20%20Lowercase(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Intrinsic.Map(TypeClone.Type(schema)%2C%20%22Lowercase%22)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Never%20type%20*%2F%0A%20%20%20%20%20%20Never(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Never%22%2C%20not%3A%20%7B%7D%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Not%20type%20*%2F%0A%20%20%20%20%20%20Not(schema%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Not%22%2C%20not%3A%20TypeClone.Type(schema)%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Null%20type%20*%2F%0A%20%20%20%20%20%20Null(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Null%22%2C%20type%3A%20%22null%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Number%20type%20*%2F%0A%20%20%20%20%20%20Number(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Number%22%2C%20type%3A%20%22number%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Object%20type%20*%2F%0A%20%20%20%20%20%20Object(properties%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20propertyKeys%20%3D%20Object.getOwnPropertyNames(properties)%3B%0A%20%20%20%20%20%20%20%20const%20optionalKeys%20%3D%20propertyKeys.filter((key)%20%3D%3E%20TypeGuard.TOptional(properties%5Bkey%5D))%3B%0A%20%20%20%20%20%20%20%20const%20requiredKeys%20%3D%20propertyKeys.filter((name)%20%3D%3E%20!optionalKeys.includes(name))%3B%0A%20%20%20%20%20%20%20%20const%20clonedAdditionalProperties%20%3D%20TypeGuard.TSchema(options.additionalProperties)%20%3F%20%7B%20additionalProperties%3A%20TypeClone.Type(options.additionalProperties)%20%7D%20%3A%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20const%20clonedProperties%20%3D%20propertyKeys.reduce((acc%2C%20key)%20%3D%3E%20(%7B%20...acc%2C%20%5Bkey%5D%3A%20TypeClone.Type(properties%5Bkey%5D)%20%7D)%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20return%20requiredKeys.length%20%3E%200%20%3F%20this.Create(%7B%20...options%2C%20...clonedAdditionalProperties%2C%20%5Bexports.Kind%5D%3A%20%22Object%22%2C%20type%3A%20%22object%22%2C%20properties%3A%20clonedProperties%2C%20required%3A%20requiredKeys%20%7D)%20%3A%20this.Create(%7B%20...options%2C%20...clonedAdditionalProperties%2C%20%5Bexports.Kind%5D%3A%20%22Object%22%2C%20type%3A%20%22object%22%2C%20properties%3A%20clonedProperties%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20whose%20keys%20are%20omitted%20from%20the%20given%20type%20*%2F%0A%20%20%20%20%20%20Omit(schema%2C%20unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20keys%20%3D%20KeyArrayResolver.Resolve(unresolved)%3B%0A%20%20%20%20%20%20%20%20return%20ObjectMap.Map(this.Discard(TypeClone.Type(schema)%2C%20%5B%22%24id%22%2C%20exports.Transform%5D)%2C%20(object)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(ValueGuard.IsArray(object.required))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20object.required%20%3D%20object.required.filter((key)%20%3D%3E%20!keys.includes(key))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(object.required.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20object.required%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20key%20of%20Object.getOwnPropertyNames(object.properties))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(keys.includes(key))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20object.properties%5Bkey%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(object)%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20where%20all%20properties%20are%20optional%20*%2F%0A%20%20%20%20%20%20Partial(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20ObjectMap.Map(this.Discard(TypeClone.Type(schema)%2C%20%5B%22%24id%22%2C%20exports.Transform%5D)%2C%20(object)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20properties%20%3D%20Object.getOwnPropertyNames(object.properties).reduce((acc%2C%20key)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%7B%20...acc%2C%20%5Bkey%5D%3A%20this.Optional(object.properties%5Bkey%5D)%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Object(%0A%20%20%20%20%20%20%20%20%20%20%20%20properties%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20this.Discard(object%2C%20%5B%22required%22%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F*%20object%20used%20as%20options%20to%20retain%20other%20constraints%20*%2F%0A%20%20%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20whose%20keys%20are%20picked%20from%20the%20given%20type%20*%2F%0A%20%20%20%20%20%20Pick(schema%2C%20unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20keys%20%3D%20KeyArrayResolver.Resolve(unresolved)%3B%0A%20%20%20%20%20%20%20%20return%20ObjectMap.Map(this.Discard(TypeClone.Type(schema)%2C%20%5B%22%24id%22%2C%20exports.Transform%5D)%2C%20(object)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(ValueGuard.IsArray(object.required))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20object.required%20%3D%20object.required.filter((key)%20%3D%3E%20keys.includes(key))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(object.required.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20object.required%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20key%20of%20Object.getOwnPropertyNames(object.properties))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(!keys.includes(key))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20object.properties%5Bkey%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(object)%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Record%20type%20*%2F%0A%20%20%20%20%20%20Record(key%2C%20schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(key)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20expression%20%3D%20TemplateLiteralParser.ParseExact(key.pattern)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20TemplateLiteralFinite.Check(expression)%20%3F%20this.Object(%5B...TemplateLiteralGenerator.Generate(expression)%5D.reduce((acc%2C%20key2)%20%3D%3E%20(%7B%20...acc%2C%20%5Bkey2%5D%3A%20TypeClone.Type(schema)%20%7D)%2C%20%7B%7D)%2C%20options)%20%3A%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Record%22%2C%20type%3A%20%22object%22%2C%20patternProperties%3A%20%7B%20%5Bkey.pattern%5D%3A%20TypeClone.Type(schema)%20%7D%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TUnion(key)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20union%20%3D%20UnionResolver.Resolve(key)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(TypeGuard.TUnionLiteral(union))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20properties%20%3D%20union.anyOf.reduce((acc%2C%20literal)%20%3D%3E%20(%7B%20...acc%2C%20%5Bliteral.const%5D%3A%20TypeClone.Type(schema)%20%7D)%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.Object(properties%2C%20%7B%20...options%2C%20%5Bexports.Hint%5D%3A%20%22Record%22%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20this.Throw(%22Record%20key%20of%20type%20union%20contains%20non-literal%20types%22)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TLiteral(key)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20ValueGuard.IsString(key.const)%20%7C%7C%20ValueGuard.IsNumber(key.const)%20%3F%20this.Object(%7B%20%5Bkey.const%5D%3A%20TypeClone.Type(schema)%20%7D%2C%20options)%20%3A%20this.Throw(%22Record%20key%20of%20type%20literal%20is%20not%20of%20type%20string%20or%20number%22)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TInteger(key)%20%7C%7C%20TypeGuard.TNumber(key)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Record%22%2C%20type%3A%20%22object%22%2C%20patternProperties%3A%20%7B%20%5Bexports.PatternNumberExact%5D%3A%20TypeClone.Type(schema)%20%7D%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20TypeGuard.TString(key)%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20pattern%20%3D%20ValueGuard.IsUndefined(key.pattern)%20%3F%20exports.PatternStringExact%20%3A%20key.pattern%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Record%22%2C%20type%3A%20%22object%22%2C%20patternProperties%3A%20%7B%20%5Bpattern%5D%3A%20TypeClone.Type(schema)%20%7D%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20this.Never()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Recursive%20type%20*%2F%0A%20%20%20%20%20%20Recursive(callback%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsUndefined(options.%24id))%0A%20%20%20%20%20%20%20%20%20%20options.%24id%20%3D%20%60T%24%7BTypeOrdinal%2B%2B%7D%60%3B%0A%20%20%20%20%20%20%20%20const%20thisType%20%3D%20callback(%7B%20%5Bexports.Kind%5D%3A%20%22This%22%2C%20%24ref%3A%20%60%24%7Boptions.%24id%7D%60%20%7D)%3B%0A%20%20%20%20%20%20%20%20thisType.%24id%20%3D%20options.%24id%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Hint%5D%3A%20%22Recursive%22%2C%20...thisType%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Ref%20type.%20*%2F%0A%20%20%20%20%20%20Ref(unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsString(unresolved))%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Ref%22%2C%20%24ref%3A%20unresolved%20%7D)%3B%0A%20%20%20%20%20%20%20%20if%20(ValueGuard.IsUndefined(unresolved.%24id))%0A%20%20%20%20%20%20%20%20%20%20this.Throw(%22Reference%20target%20type%20must%20specify%20an%20%24id%22)%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Ref%22%2C%20%24ref%3A%20unresolved.%24id%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Constructs%20a%20type%20where%20all%20properties%20are%20required%20*%2F%0A%20%20%20%20%20%20Required(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20ObjectMap.Map(this.Discard(TypeClone.Type(schema)%2C%20%5B%22%24id%22%2C%20exports.Transform%5D)%2C%20(object)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20properties%20%3D%20Object.getOwnPropertyNames(object.properties).reduce((acc%2C%20key)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%7B%20...acc%2C%20%5Bkey%5D%3A%20this.Discard(object.properties%5Bkey%5D%2C%20%5Bexports.Optional%5D)%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%20%7B%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Object(%0A%20%20%20%20%20%20%20%20%20%20%20%20properties%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20object%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F*%20object%20used%20as%20options%20to%20retain%20other%20constraints%20%20*%2F%0A%20%20%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Extracts%20interior%20Rest%20elements%20from%20Tuple%2C%20Intersect%20and%20Union%20types%20*%2F%0A%20%20%20%20%20%20Rest(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTuple(schema)%20%26%26%20!ValueGuard.IsUndefined(schema.items)%20%3F%20TypeClone.Rest(schema.items)%20%3A%20TypeGuard.TIntersect(schema)%20%3F%20TypeClone.Rest(schema.allOf)%20%3A%20TypeGuard.TUnion(schema)%20%3F%20TypeClone.Rest(schema.anyOf)%20%3A%20%5B%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20String%20type%20*%2F%0A%20%20%20%20%20%20String(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22String%22%2C%20type%3A%20%22string%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20TemplateLiteral%20type%20*%2F%0A%20%20%20%20%20%20TemplateLiteral(unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20pattern%20%3D%20ValueGuard.IsString(unresolved)%20%3F%20TemplateLiteralPattern.Create(TemplateLiteralDslParser.Parse(unresolved))%20%3A%20TemplateLiteralPattern.Create(unresolved)%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22TemplateLiteral%22%2C%20type%3A%20%22string%22%2C%20pattern%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Transform%20type%20*%2F%0A%20%20%20%20%20%20Transform(schema)%20%7B%0A%20%20%20%20%20%20%20%20return%20new%20TransformDecodeBuilder(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Tuple%20type%20*%2F%0A%20%20%20%20%20%20Tuple(items%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5BadditionalItems%2C%20minItems%2C%20maxItems%5D%20%3D%20%5Bfalse%2C%20items.length%2C%20items.length%5D%3B%0A%20%20%20%20%20%20%20%20const%20clonedItems%20%3D%20TypeClone.Rest(items)%3B%0A%20%20%20%20%20%20%20%20const%20schema%20%3D%20items.length%20%3E%200%20%3F%20%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Tuple%22%2C%20type%3A%20%22array%22%2C%20items%3A%20clonedItems%2C%20additionalItems%2C%20minItems%2C%20maxItems%20%7D%20%3A%20%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Tuple%22%2C%20type%3A%20%22array%22%2C%20minItems%2C%20maxItems%20%7D%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(schema)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Intrinsic%20function%20to%20Uncapitalize%20LiteralString%20types%20*%2F%0A%20%20%20%20%20%20Uncapitalize(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Intrinsic.Map(TypeClone.Type(schema)%2C%20%22Uncapitalize%22)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Union%20type%20*%2F%0A%20%20%20%20%20%20Union(union%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TTemplateLiteral(union)%20%3F%20TemplateLiteralResolver.Resolve(union)%20%3A%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20anyOf%20%3D%20union%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(anyOf.length%20%3D%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.Never(options)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(anyOf.length%20%3D%3D%3D%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.Create(TypeClone.Type(anyOf%5B0%5D%2C%20options))%3B%0A%20%20%20%20%20%20%20%20%20%20const%20clonedAnyOf%20%3D%20TypeClone.Rest(anyOf)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Union%22%2C%20anyOf%3A%20clonedAnyOf%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20an%20Unknown%20type%20*%2F%0A%20%20%20%20%20%20Unknown(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Unknown%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Creates%20a%20Unsafe%20type%20that%20will%20infers%20as%20the%20generic%20argument%20T%20*%2F%0A%20%20%20%20%20%20Unsafe(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20options%5Bexports.Kind%5D%20%7C%7C%20%22Unsafe%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJson%5D%60%20Intrinsic%20function%20to%20Uppercase%20LiteralString%20types%20*%2F%0A%20%20%20%20%20%20Uppercase(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%20...Intrinsic.Map(TypeClone.Type(schema)%2C%20%22Uppercase%22)%2C%20...options%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.JsonTypeBuilder%20%3D%20JsonTypeBuilder%3B%0A%20%20%20%20var%20JavaScriptTypeBuilder%20%3D%20class%20extends%20JsonTypeBuilder%20%7B%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20AsyncIterator%20type%20*%2F%0A%20%20%20%20%20%20AsyncIterator(items%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22AsyncIterator%22%2C%20type%3A%20%22AsyncIterator%22%2C%20items%3A%20TypeClone.Type(items)%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Constructs%20a%20type%20by%20recursively%20unwrapping%20Promise%20types%20*%2F%0A%20%20%20%20%20%20Awaited(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20Unwrap%20%3D%20(rest)%20%3D%3E%20rest.length%20%3E%200%20%3F%20(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20%5BL%2C%20...R%5D%20%3D%20rest%3B%0A%20%20%20%20%20%20%20%20%20%20return%20%5Bthis.Awaited(L)%2C%20...Unwrap(R)%5D%3B%0A%20%20%20%20%20%20%20%20%7D)()%20%3A%20rest%3B%0A%20%20%20%20%20%20%20%20return%20TypeGuard.TIntersect(schema)%20%3F%20exports.Type.Intersect(Unwrap(schema.allOf))%20%3A%20TypeGuard.TUnion(schema)%20%3F%20exports.Type.Union(Unwrap(schema.anyOf))%20%3A%20TypeGuard.TPromise(schema)%20%3F%20this.Awaited(schema.item)%20%3A%20TypeClone.Type(schema%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20BigInt%20type%20*%2F%0A%20%20%20%20%20%20BigInt(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22BigInt%22%2C%20type%3A%20%22bigint%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Extracts%20the%20ConstructorParameters%20from%20the%20given%20Constructor%20type%20*%2F%0A%20%20%20%20%20%20ConstructorParameters(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Tuple(%5B...schema.parameters%5D%2C%20%7B%20...options%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Constructor%20type%20*%2F%0A%20%20%20%20%20%20Constructor(parameters%2C%20returns%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5BclonedParameters%2C%20clonedReturns%5D%20%3D%20%5BTypeClone.Rest(parameters)%2C%20TypeClone.Type(returns)%5D%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Constructor%22%2C%20type%3A%20%22Constructor%22%2C%20parameters%3A%20clonedParameters%2C%20returns%3A%20clonedReturns%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Date%20type%20*%2F%0A%20%20%20%20%20%20Date(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Date%22%2C%20type%3A%20%22Date%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Function%20type%20*%2F%0A%20%20%20%20%20%20Function(parameters%2C%20returns%2C%20options)%20%7B%0A%20%20%20%20%20%20%20%20const%20%5BclonedParameters%2C%20clonedReturns%5D%20%3D%20%5BTypeClone.Rest(parameters)%2C%20TypeClone.Type(returns)%5D%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Function%22%2C%20type%3A%20%22Function%22%2C%20parameters%3A%20clonedParameters%2C%20returns%3A%20clonedReturns%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Extracts%20the%20InstanceType%20from%20the%20given%20Constructor%20type%20*%2F%0A%20%20%20%20%20%20InstanceType(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeClone.Type(schema.returns%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20an%20Iterator%20type%20*%2F%0A%20%20%20%20%20%20Iterator(items%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Iterator%22%2C%20type%3A%20%22Iterator%22%2C%20items%3A%20TypeClone.Type(items)%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Extracts%20the%20Parameters%20from%20the%20given%20Function%20type%20*%2F%0A%20%20%20%20%20%20Parameters(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Tuple(schema.parameters%2C%20%7B%20...options%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Promise%20type%20*%2F%0A%20%20%20%20%20%20Promise(item%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Promise%22%2C%20type%3A%20%22Promise%22%2C%20item%3A%20TypeClone.Type(item)%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BExtended%5D%60%20Creates%20a%20String%20type%20*%2F%0A%20%20%20%20%20%20RegExp(unresolved%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20const%20pattern%20%3D%20ValueGuard.IsString(unresolved)%20%3F%20unresolved%20%3A%20unresolved.source%3B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22String%22%2C%20type%3A%20%22string%22%2C%20pattern%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%0A%20%20%20%20%20%20%20*%20%40deprecated%20Use%20%60Type.RegExp%60%0A%20%20%20%20%20%20%20*%2F%0A%20%20%20%20%20%20RegEx(regex%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.RegExp(regex%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Extracts%20the%20ReturnType%20from%20the%20given%20Function%20type%20*%2F%0A%20%20%20%20%20%20ReturnType(schema%2C%20options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20TypeClone.Type(schema.returns%2C%20options)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Symbol%20type%20*%2F%0A%20%20%20%20%20%20Symbol(options)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Symbol%22%2C%20type%3A%20%22symbol%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Undefined%20type%20*%2F%0A%20%20%20%20%20%20Undefined(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Undefined%22%2C%20type%3A%20%22undefined%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Uint8Array%20type%20*%2F%0A%20%20%20%20%20%20Uint8Array(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Uint8Array%22%2C%20type%3A%20%22Uint8Array%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F**%20%60%5BJavaScript%5D%60%20Creates%20a%20Void%20type%20*%2F%0A%20%20%20%20%20%20Void(options%20%3D%20%7B%7D)%20%7B%0A%20%20%20%20%20%20%20%20return%20this.Create(%7B%20...options%2C%20%5Bexports.Kind%5D%3A%20%22Void%22%2C%20type%3A%20%22void%22%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20exports.JavaScriptTypeBuilder%20%3D%20JavaScriptTypeBuilder%3B%0A%20%20%20%20exports.JsonType%20%3D%20new%20JsonTypeBuilder()%3B%0A%20%20%20%20exports.Type%20%3D%20new%20JavaScriptTypeBuilder()%3B%0A%20%20%7D%0A%7D)%3B%0A%0A%2F%2F%20src%2Fsettings.ts%0Avar%20import_typebox%20%3D%20__toESM(require_typebox()%2C%201)%3B%0Avar%20pathPatternString%20%3D%20import_typebox.Type.String(%7B%0A%20%20%2F%2F%20for%20legacy%20reasions%20locale%20can%20be%20specified%20as%20well%0A%20%20pattern%3A%20%22.%5C%5C%7BlanguageTag%7Clocale%5C%5C%7D.%5C%5C.json%24%22%2C%0A%20%20examples%3A%20%5B%22.%2Fmessages%2F%7Blocale%7D.json%22%2C%20%22.%2Fi18n%2F%7Blocale%7D.json%22%5D%2C%0A%20%20title%3A%20%22Path%20to%20language%20files%22%2C%0A%20%20description%3A%20%22Specify%20the%20pathPattern%20to%20locate%20resource%20files%20in%20your%20repository.%20It%20must%20include%20%60%7Blocale%7D%60%20and%20end%20with%20%60.json%60.%22%0A%7D)%3B%0Avar%20pathPatternArray%20%3D%20import_typebox.Type.Array(pathPatternString%2C%20%7B%0A%20%20title%3A%20%22Paths%20to%20language%20files%22%2C%0A%20%20description%3A%20%22Specify%20multiple%20pathPatterns%20to%20locate%20resource%20files%20in%20your%20repository.%20Each%20must%20include%20%60%7Blocale%7D%60%20and%20end%20with%20%60.json%60.%22%0A%7D)%3B%0Avar%20sort%20%3D%20import_typebox.Type.Optional(%0A%20%20import_typebox.Type.Union(%5Bimport_typebox.Type.Literal(%22asc%22)%2C%20import_typebox.Type.Literal(%22desc%22)%5D%2C%20%7B%0A%20%20%20%20title%3A%20%22Sort%20keys%22%2C%0A%20%20%20%20description%3A%20%22Sort%20message%20keys%20when%20writing%20files.%22%0A%20%20%7D)%0A)%3B%0Avar%20PluginSettings%20%3D%20import_typebox.Type.Object(%7B%0A%20%20pathPattern%3A%20import_typebox.Type.Union(%5BpathPatternString%2C%20pathPatternArray%5D)%2C%0A%20%20sort%0A%7D)%3B%0A%0A%2F%2F%20src%2Fv2%2Fparsing%2FserializePattern.ts%0Avar%20serializedPattern%20%3D%20(pattern)%20%3D%3E%20%7B%0A%20%20return%20pattern.map((node)%20%3D%3E%20%7B%0A%20%20%20%20switch%20(node.type)%20%7B%0A%20%20%20%20%20%20case%20%22Text%22%3A%0A%20%20%20%20%20%20%20%20return%20node.value%3B%0A%20%20%20%20%20%20case%20%22VariableReference%22%3A%0A%20%20%20%20%20%20%20%20return%20%60%7B%24%7Bnode.name%7D%7D%60%3B%0A%20%20%20%20%7D%0A%20%20%7D).join(%22%22)%3B%0A%7D%3B%0A%0A%2F%2F%20src%2Fv2%2Fparsing%2FserializeMessage.ts%0Avar%20serializeMessage%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20const%20result%20%3D%20%7B%7D%3B%0A%20%20for%20(const%20variant%20of%20message.variants)%20%7B%0A%20%20%20%20if%20(result%5Bvariant.languageTag%5D%20!%3D%3D%20void%200)%20%7B%0A%20%20%20%20%20%20throw%20new%20Error(%0A%20%20%20%20%20%20%20%20%60The%20message%20%22%24%7Bmessage.id%7D%22%20has%20multiple%20variants%20for%20the%20language%20tag%20%22%24%7Bvariant.languageTag%7D%22.%20The%20inlang-message-format%20plugin%20does%20not%20support%20multiple%20variants%20for%20the%20same%20language%20tag%20at%20the%20moment.%60%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%20%20%20%20result%5Bvariant.languageTag%5D%20%3D%20serializedPattern(variant.pattern)%3B%0A%20%20%7D%0A%20%20return%20result%3B%0A%7D%3B%0A%0A%2F%2F%20src%2Fv2%2Fparsing%2FparsePattern.ts%0Avar%20parsePattern%20%3D%20(pattern)%20%3D%3E%20%7B%0A%20%20const%20regex%20%3D%20%2F%5C%7B(%5B%5E%7D%5D%2B)%5C%7D%2Fg%3B%0A%20%20let%20match%3B%0A%20%20let%20lastIndex%20%3D%200%3B%0A%20%20const%20result%20%3D%20%5B%5D%3B%0A%20%20while%20((match%20%3D%20regex.exec(pattern))%20!%3D%3D%20null)%20%7B%0A%20%20%20%20const%20name%20%3D%20match%5B1%5D%3B%0A%20%20%20%20const%20textBefore%20%3D%20pattern.slice(lastIndex%2C%20match.index)%3B%0A%20%20%20%20if%20(textBefore.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20result.push(%7B%20type%3A%20%22Text%22%2C%20value%3A%20textBefore%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%20%20result.push(%7B%20type%3A%20%22VariableReference%22%2C%20name%20%7D)%3B%0A%20%20%20%20lastIndex%20%3D%20match.index%20%2B%20match%5B0%5D.length%3B%0A%20%20%7D%0A%20%20const%20textAfter%20%3D%20pattern.slice(Math.max(0%2C%20lastIndex))%3B%0A%20%20if%20(textAfter.length%20%3E%200)%20%7B%0A%20%20%20%20result.push(%7B%20type%3A%20%22Text%22%2C%20value%3A%20textAfter%20%7D)%3B%0A%20%20%7D%0A%20%20return%20result%3B%0A%7D%3B%0A%0A%2F%2F%20src%2Fv2%2Fparsing%2FparseMessage.ts%0Avar%20parseMessage%20%3D%20(args)%20%3D%3E%20%7B%0A%20%20return%20%7B%0A%20%20%20%20id%3A%20args.key%2C%0A%20%20%20%20alias%3A%20%7B%7D%2C%0A%20%20%20%20selectors%3A%20%5B%5D%2C%0A%20%20%20%20variants%3A%20%5B%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20languageTag%3A%20args.languageTag%2C%0A%20%20%20%20%20%20%20%20match%3A%20%5B%5D%2C%0A%20%20%20%20%20%20%20%20pattern%3A%20parsePattern(args.value)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%20%20%7D%3B%0A%7D%3B%0A%0A%2F%2F%20src%2Fv2%2Fplugin.ts%0Avar%20pluginId%20%3D%20%22plugin.inlang.messageFormat%22%3B%0Avar%20plugin%20%3D%20%7B%0A%20%20id%3A%20pluginId%2C%0A%20%20displayName%3A%20%22Inlang%20Message%20Format%22%2C%0A%20%20description%3A%20%22A%20plugin%20for%20the%20inlang%20SDK%20that%20uses%20a%20JSON%20file%20per%20language%20tag%20to%20store%20translations.%22%2C%0A%20%20key%3A%20%22inlang-message-format%22%2C%0A%20%20settingsSchema%3A%20PluginSettings%2C%0A%20%20loadMessages%3A%20async%20(%7B%20settings%2C%20nodeishFs%20%7D)%20%3D%3E%20%7B%0A%20%20%20%20await%20maybeMigrateToV2(%7B%20settings%2C%20nodeishFs%20%7D)%3B%0A%20%20%20%20const%20result%20%3D%20%7B%7D%3B%0A%20%20%20%20for%20(const%20tag%20of%20settings.languageTags)%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20const%20file%20%3D%20await%20nodeishFs.readFile(%0A%20%20%20%20%20%20%20%20%20%20settings%5B%22plugin.inlang.messageFormat%22%5D.pathPattern.replace(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%7BlanguageTag%7D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tag%0A%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20encoding%3A%20%22utf-8%22%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20const%20json%20%3D%20JSON.parse(file)%3B%0A%20%20%20%20%20%20%20%20for%20(const%20key%20in%20json)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(key%20%3D%3D%3D%20%22%24schema%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20(result%5Bkey%5D)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20result%5Bkey%5D.variants%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20eslint-disable-next-line%20%40typescript-eslint%2Fno-non-null-assertion%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20...result%5Bkey%5D.variants%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20...parseMessage(%7B%20key%2C%20value%3A%20json%5Bkey%5D%2C%20languageTag%3A%20tag%20%7D).variants%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20result%5Bkey%5D%20%3D%20parseMessage(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20key%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20json%5Bkey%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20languageTag%3A%20tag%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20%20%20%20%20if%20(error%3F.code%20!%3D%3D%20%22ENOENT%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20throw%20error%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20Object.values(result)%3B%0A%20%20%7D%2C%0A%20%20saveMessages%3A%20async%20(%7B%20settings%2C%20nodeishFs%2C%20messages%20%7D)%20%3D%3E%20%7B%0A%20%20%20%20const%20result%20%3D%20%7B%7D%3B%0A%20%20%20%20for%20(const%20message%20of%20messages)%20%7B%0A%20%20%20%20%20%20const%20serialized%20%3D%20serializeMessage(message)%3B%0A%20%20%20%20%20%20for%20(const%20%5BlanguageTag%2C%20value%5D%20of%20Object.entries(serialized))%20%7B%0A%20%20%20%20%20%20%20%20if%20(result%5BlanguageTag%5D%20%3D%3D%3D%20void%200)%20%7B%0A%20%20%20%20%20%20%20%20%20%20result%5BlanguageTag%5D%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20result%5BlanguageTag%5D%5Bmessage.id%5D%20%3D%20value%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20for%20(const%20%5BlanguageTag%2C%20messages2%5D%20of%20Object.entries(result))%20%7B%0A%20%20%20%20%20%20const%20path%20%3D%20settings%5B%22plugin.inlang.messageFormat%22%5D.pathPattern.replace(%0A%20%20%20%20%20%20%20%20%22%7BlanguageTag%7D%22%2C%0A%20%20%20%20%20%20%20%20languageTag%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20await%20createDirectoryIfNotExits(%7B%20path%2C%20nodeishFs%20%7D)%3B%0A%20%20%20%20%20%20await%20nodeishFs.writeFile(%0A%20%20%20%20%20%20%20%20settings%5B%22plugin.inlang.messageFormat%22%5D.pathPattern.replace(%0A%20%20%20%20%20%20%20%20%20%20%22%7BlanguageTag%7D%22%2C%0A%20%20%20%20%20%20%20%20%20%20languageTag%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%2F%2F%20default%20to%20tab%20indentation%0A%20%20%20%20%20%20%20%20%2F%2F%20PS%20sorry%20for%20anyone%20who%20reads%20this%20code%0A%20%20%20%20%20%20%20%20((data)%20%3D%3E%20JSON.stringify(data%2C%20void%200%2C%20%22%09%22))(%7B%0A%20%20%20%20%20%20%20%20%20%20%24schema%3A%20%22https%3A%2F%2Finlang.com%2Fschema%2Finlang-message-format%22%2C%0A%20%20%20%20%20%20%20%20%20%20...messages2%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%3B%0Avar%20createDirectoryIfNotExits%20%3D%20async%20(args)%20%3D%3E%20%7B%0A%20%20try%20%7B%0A%20%20%20%20await%20args.nodeishFs.mkdir(dirname(args.path)%2C%20%7B%20recursive%3A%20true%20%7D)%3B%0A%20%20%7D%20catch%20%7B%0A%20%20%7D%0A%7D%3B%0Afunction%20dirname(path)%20%7B%0A%20%20if%20(path.length%20%3D%3D%3D%200)%20return%20%22.%22%3B%0A%20%20let%20code%20%3D%20path.charCodeAt(0)%3B%0A%20%20const%20hasRoot%20%3D%20code%20%3D%3D%3D%2047%3B%0A%20%20let%20end%20%3D%20-1%3B%0A%20%20let%20matchedSlash%20%3D%20true%3B%0A%20%20for%20(let%20i%20%3D%20path.length%20-%201%3B%20i%20%3E%3D%201%3B%20--i)%20%7B%0A%20%20%20%20code%20%3D%20path.charCodeAt(i)%3B%0A%20%20%20%20if%20(code%20%3D%3D%3D%2047)%20%7B%0A%20%20%20%20%20%20if%20(!matchedSlash)%20%7B%0A%20%20%20%20%20%20%20%20end%20%3D%20i%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20matchedSlash%20%3D%20false%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20(end%20%3D%3D%3D%20-1)%20return%20hasRoot%20%3F%20%22%2F%22%20%3A%20%22.%22%3B%0A%20%20if%20(hasRoot%20%26%26%20end%20%3D%3D%3D%201)%20return%20%22%2F%2F%22%3B%0A%20%20return%20path.slice(0%2C%20end)%3B%0A%7D%0Avar%20maybeMigrateToV2%20%3D%20async%20(args)%20%3D%3E%20%7B%0A%20%20if%20(args.settings%5B%22plugin.inlang.messageFormat%22%5D.filePath%20%3D%3D%20void%200)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20try%20%7B%0A%20%20%20%20const%20file%20%3D%20await%20args.nodeishFs.readFile(%0A%20%20%20%20%20%20args.settings%5B%22plugin.inlang.messageFormat%22%5D.filePath%2C%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20encoding%3A%20%22utf-8%22%0A%20%20%20%20%20%20%7D%0A%20%20%20%20)%3B%0A%20%20%20%20await%20plugin.saveMessages%3F.(%7B%0A%20%20%20%20%20%20messages%3A%20JSON.parse(file)%5B%22data%22%5D%2C%0A%20%20%20%20%20%20nodeishFs%3A%20args.nodeishFs%2C%0A%20%20%20%20%20%20settings%3A%20args.settings%0A%20%20%20%20%7D)%3B%0A%20%20%20%20console.log(%0A%20%20%20%20%20%20%22Migration%20to%20v2%20of%20the%20inlang-message-format%20plugin%20was%20successful.%20Please%20delete%20the%20old%20messages.json%20file%20and%20the%20filePath%20property%20in%20the%20settings%20file%20of%20the%20project.%22%0A%20%20%20%20)%3B%0A%20%20%7D%20catch%20%7B%0A%20%20%7D%0A%7D%3B%0A%0A%2F%2F%20src%2Fimport-export%2FtoBeImportedFiles.ts%0Avar%20toBeImportedFiles%20%3D%20async%20(%7B%20settings%20%7D)%20%3D%3E%20%7B%0A%20%20const%20result%20%3D%20%5B%5D%3B%0A%20%20const%20pathPatterns%20%3D%20settings%5BPLUGIN_KEY%5D%3F.pathPattern%20%3F%20Array.isArray(settings%5BPLUGIN_KEY%5D.pathPattern)%20%3F%20settings%5BPLUGIN_KEY%5D.pathPattern%20%3A%20%5Bsettings%5BPLUGIN_KEY%5D.pathPattern%5D%20%3A%20%5B%5D%3B%0A%20%20for%20(const%20pathPattern%20of%20pathPatterns)%20%7B%0A%20%20%20%20for%20(const%20locale%20of%20settings.locales)%20%7B%0A%20%20%20%20%20%20result.push(%7B%0A%20%20%20%20%20%20%20%20locale%2C%0A%20%20%20%20%20%20%20%20path%3A%20pathPattern.replace(%2F%7B(locale%7ClanguageTag)%7D%2F%2C%20locale)%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20result%3B%0A%7D%3B%0A%0A%2F%2F%20..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fflat%406.0.1%2Fnode_modules%2Fflat%2Findex.js%0Afunction%20isBuffer(obj)%20%7B%0A%20%20return%20obj%20%26%26%20obj.constructor%20%26%26%20typeof%20obj.constructor.isBuffer%20%3D%3D%3D%20%22function%22%20%26%26%20obj.constructor.isBuffer(obj)%3B%0A%7D%0Afunction%20keyIdentity(key)%20%7B%0A%20%20return%20key%3B%0A%7D%0Afunction%20flatten(target%2C%20opts)%20%7B%0A%20%20opts%20%3D%20opts%20%7C%7C%20%7B%7D%3B%0A%20%20const%20delimiter%20%3D%20opts.delimiter%20%7C%7C%20%22.%22%3B%0A%20%20const%20maxDepth%20%3D%20opts.maxDepth%3B%0A%20%20const%20transformKey%20%3D%20opts.transformKey%20%7C%7C%20keyIdentity%3B%0A%20%20const%20output%20%3D%20%7B%7D%3B%0A%20%20function%20step(object%2C%20prev%2C%20currentDepth)%20%7B%0A%20%20%20%20currentDepth%20%3D%20currentDepth%20%7C%7C%201%3B%0A%20%20%20%20Object.keys(object).forEach(function(key)%20%7B%0A%20%20%20%20%20%20const%20value%20%3D%20object%5Bkey%5D%3B%0A%20%20%20%20%20%20const%20isarray%20%3D%20opts.safe%20%26%26%20Array.isArray(value)%3B%0A%20%20%20%20%20%20const%20type%20%3D%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%20%20const%20isbuffer%20%3D%20isBuffer(value)%3B%0A%20%20%20%20%20%20const%20isobject%20%3D%20type%20%3D%3D%3D%20%22%5Bobject%20Object%5D%22%20%7C%7C%20type%20%3D%3D%3D%20%22%5Bobject%20Array%5D%22%3B%0A%20%20%20%20%20%20const%20newKey%20%3D%20prev%20%3F%20prev%20%2B%20delimiter%20%2B%20transformKey(key)%20%3A%20transformKey(key)%3B%0A%20%20%20%20%20%20if%20(!isarray%20%26%26%20!isbuffer%20%26%26%20isobject%20%26%26%20Object.keys(value).length%20%26%26%20(!opts.maxDepth%20%7C%7C%20currentDepth%20%3C%20maxDepth))%20%7B%0A%20%20%20%20%20%20%20%20return%20step(value%2C%20newKey%2C%20currentDepth%20%2B%201)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20output%5BnewKey%5D%20%3D%20value%3B%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%20%20step(target)%3B%0A%20%20return%20output%3B%0A%7D%0Afunction%20unflatten(target%2C%20opts)%20%7B%0A%20%20opts%20%3D%20opts%20%7C%7C%20%7B%7D%3B%0A%20%20const%20delimiter%20%3D%20opts.delimiter%20%7C%7C%20%22.%22%3B%0A%20%20const%20overwrite%20%3D%20opts.overwrite%20%7C%7C%20false%3B%0A%20%20const%20transformKey%20%3D%20opts.transformKey%20%7C%7C%20keyIdentity%3B%0A%20%20const%20result%20%3D%20%7B%7D%3B%0A%20%20const%20isbuffer%20%3D%20isBuffer(target)%3B%0A%20%20if%20(isbuffer%20%7C%7C%20Object.prototype.toString.call(target)%20!%3D%3D%20%22%5Bobject%20Object%5D%22)%20%7B%0A%20%20%20%20return%20target%3B%0A%20%20%7D%0A%20%20function%20getkey(key)%20%7B%0A%20%20%20%20const%20parsedKey%20%3D%20Number(key)%3B%0A%20%20%20%20return%20isNaN(parsedKey)%20%7C%7C%20key.indexOf(%22.%22)%20!%3D%3D%20-1%20%7C%7C%20opts.object%20%3F%20key%20%3A%20parsedKey%3B%0A%20%20%7D%0A%20%20function%20addKeys(keyPrefix%2C%20recipient%2C%20target2)%20%7B%0A%20%20%20%20return%20Object.keys(target2).reduce(function(result2%2C%20key)%20%7B%0A%20%20%20%20%20%20result2%5BkeyPrefix%20%2B%20delimiter%20%2B%20key%5D%20%3D%20target2%5Bkey%5D%3B%0A%20%20%20%20%20%20return%20result2%3B%0A%20%20%20%20%7D%2C%20recipient)%3B%0A%20%20%7D%0A%20%20function%20isEmpty(val)%20%7B%0A%20%20%20%20const%20type%20%3D%20Object.prototype.toString.call(val)%3B%0A%20%20%20%20const%20isArray%20%3D%20type%20%3D%3D%3D%20%22%5Bobject%20Array%5D%22%3B%0A%20%20%20%20const%20isObject%20%3D%20type%20%3D%3D%3D%20%22%5Bobject%20Object%5D%22%3B%0A%20%20%20%20if%20(!val)%20%7B%0A%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%7D%20else%20if%20(isArray)%20%7B%0A%20%20%20%20%20%20return%20!val.length%3B%0A%20%20%20%20%7D%20else%20if%20(isObject)%20%7B%0A%20%20%20%20%20%20return%20!Object.keys(val).length%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20target%20%3D%20Object.keys(target).reduce(function(result2%2C%20key)%20%7B%0A%20%20%20%20const%20type%20%3D%20Object.prototype.toString.call(target%5Bkey%5D)%3B%0A%20%20%20%20const%20isObject%20%3D%20type%20%3D%3D%3D%20%22%5Bobject%20Object%5D%22%20%7C%7C%20type%20%3D%3D%3D%20%22%5Bobject%20Array%5D%22%3B%0A%20%20%20%20if%20(!isObject%20%7C%7C%20isEmpty(target%5Bkey%5D))%20%7B%0A%20%20%20%20%20%20result2%5Bkey%5D%20%3D%20target%5Bkey%5D%3B%0A%20%20%20%20%20%20return%20result2%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20return%20addKeys(%0A%20%20%20%20%20%20%20%20key%2C%0A%20%20%20%20%20%20%20%20result2%2C%0A%20%20%20%20%20%20%20%20flatten(target%5Bkey%5D%2C%20opts)%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%20%7B%7D)%3B%0A%20%20Object.keys(target).forEach(function(key)%20%7B%0A%20%20%20%20const%20split%20%3D%20key.split(delimiter).map(transformKey)%3B%0A%20%20%20%20let%20key1%20%3D%20getkey(split.shift())%3B%0A%20%20%20%20let%20key2%20%3D%20getkey(split%5B0%5D)%3B%0A%20%20%20%20let%20recipient%20%3D%20result%3B%0A%20%20%20%20while%20(key2%20!%3D%3D%20void%200)%20%7B%0A%20%20%20%20%20%20if%20(key1%20%3D%3D%3D%20%22__proto__%22)%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20type%20%3D%20Object.prototype.toString.call(recipient%5Bkey1%5D)%3B%0A%20%20%20%20%20%20const%20isobject%20%3D%20type%20%3D%3D%3D%20%22%5Bobject%20Object%5D%22%20%7C%7C%20type%20%3D%3D%3D%20%22%5Bobject%20Array%5D%22%3B%0A%20%20%20%20%20%20if%20(!overwrite%20%26%26%20!isobject%20%26%26%20typeof%20recipient%5Bkey1%5D%20!%3D%3D%20%22undefined%22)%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(overwrite%20%26%26%20!isobject%20%7C%7C%20!overwrite%20%26%26%20recipient%5Bkey1%5D%20%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20recipient%5Bkey1%5D%20%3D%20typeof%20key2%20%3D%3D%3D%20%22number%22%20%26%26%20!opts.object%20%3F%20%5B%5D%20%3A%20%7B%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20recipient%20%3D%20recipient%5Bkey1%5D%3B%0A%20%20%20%20%20%20if%20(split.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20key1%20%3D%20getkey(split.shift())%3B%0A%20%20%20%20%20%20%20%20key2%20%3D%20getkey(split%5B0%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20recipient%5Bkey1%5D%20%3D%20unflatten(target%5Bkey%5D%2C%20opts)%3B%0A%20%20%7D)%3B%0A%20%20return%20result%3B%0A%7D%0A%0A%2F%2F%20src%2Fimport-export%2FimportFiles.ts%0Avar%20importFiles%20%3D%20async%20(%7B%0A%20%20files%0A%7D)%20%3D%3E%20%7B%0A%20%20const%20bundles%20%3D%20%5B%5D%3B%0A%20%20const%20messages%20%3D%20%5B%5D%3B%0A%20%20const%20variants%20%3D%20%5B%5D%3B%0A%20%20for%20(const%20file%20of%20files)%20%7B%0A%20%20%20%20const%20json%20%3D%20JSON.parse(new%20TextDecoder().decode(file.content))%3B%0A%20%20%20%20const%20flattened%20%3D%20flatten(json%2C%20%7B%20safe%3A%20true%20%7D)%3B%0A%20%20%20%20for%20(const%20key%20in%20flattened)%20%7B%0A%20%20%20%20%20%20if%20(key%20%3D%3D%3D%20%22%24schema%22)%20%7B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20result%20%3D%20parseBundle(key%2C%20file.locale%2C%20flattened%5Bkey%5D)%3B%0A%20%20%20%20%20%20messages.push(result.message)%3B%0A%20%20%20%20%20%20variants.push(...result.variants)%3B%0A%20%20%20%20%20%20const%20existingBundle%20%3D%20bundles.find((b)%20%3D%3E%20b.id%20%3D%3D%3D%20result.bundle.id)%3B%0A%20%20%20%20%20%20if%20(existingBundle%20%3D%3D%3D%20void%200)%20%7B%0A%20%20%20%20%20%20%20%20bundles.push(result.bundle)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20existingBundle.declarations%20%3D%20unique(%5B%0A%20%20%20%20%20%20%20%20%20%20...existingBundle.declarations%2C%0A%20%20%20%20%20%20%20%20%20%20...result.bundle.declarations%0A%20%20%20%20%20%20%20%20%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20%7B%20bundles%2C%20messages%2C%20variants%20%7D%3B%0A%7D%3B%0Afunction%20parseBundle(key%2C%20locale%2C%20value)%20%7B%0A%20%20const%20parsed%20%3D%20parseVariants(key%2C%20locale%2C%20value)%3B%0A%20%20const%20declarations%20%3D%20unique(parsed.declarations)%3B%0A%20%20const%20selectors%20%3D%20unique(parsed.selectors)%3B%0A%20%20const%20undeclaredSelectors%20%3D%20selectors.filter(%0A%20%20%20%20(selector)%20%3D%3E%20declarations.find((d)%20%3D%3E%20d.name%20%3D%3D%3D%20selector.name)%20%3D%3D%3D%20void%200%0A%20%20)%3B%0A%20%20for%20(const%20undeclaredSelector%20of%20undeclaredSelectors)%20%7B%0A%20%20%20%20declarations.push(%7B%0A%20%20%20%20%20%20type%3A%20%22input-variable%22%2C%0A%20%20%20%20%20%20name%3A%20undeclaredSelector.name%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%20%20return%20%7B%0A%20%20%20%20bundle%3A%20%7B%0A%20%20%20%20%20%20id%3A%20key%2C%0A%20%20%20%20%20%20declarations%0A%20%20%20%20%7D%2C%0A%20%20%20%20message%3A%20%7B%0A%20%20%20%20%20%20bundleId%3A%20key%2C%0A%20%20%20%20%20%20selectors%2C%0A%20%20%20%20%20%20locale%0A%20%20%20%20%7D%2C%0A%20%20%20%20variants%3A%20parsed.variants%0A%20%20%7D%3B%0A%7D%0Afunction%20parseVariants(bundleId%2C%20locale%2C%20value)%20%7B%0A%20%20if%20(typeof%20value%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20const%20parsed%20%3D%20parsePattern2(value)%3B%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20variants%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20messageBundleId%3A%20bundleId%2C%0A%20%20%20%20%20%20%20%20%20%20messageLocale%3A%20locale%2C%0A%20%20%20%20%20%20%20%20%20%20matches%3A%20%5B%5D%2C%0A%20%20%20%20%20%20%20%20%20%20pattern%3A%20parsed.pattern%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%2F%2F%20legacy%20reasons%20that%20input%20variables%20are%20derived%20from%20the%20pattern%0A%20%20%20%20%20%20declarations%3A%20parsed.declarations%2C%0A%20%20%20%20%20%20selectors%3A%20%5B%5D%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20const%20complexMessage%20%3D%20value%5B0%5D%3B%0A%20%20const%20variants%20%3D%20%5B%5D%3B%0A%20%20const%20selectors%20%3D%20(complexMessage%5B%22selectors%22%5D%20%3F%3F%20%5B%5D).map((name)%20%3D%3E%20(%7B%0A%20%20%20%20type%3A%20%22variable-reference%22%2C%0A%20%20%20%20name%0A%20%20%7D))%3B%0A%20%20const%20declarations%20%3D%20%2F*%20%40__PURE__%20*%2F%20new%20Set()%3B%0A%20%20for%20(const%20declaration%20of%20complexMessage%5B%22declarations%22%5D%20%3F%3F%20%5B%5D)%20%7B%0A%20%20%20%20declarations.add(parseDeclaration(declaration))%3B%0A%20%20%7D%0A%20%20const%20detectedSelectors%20%3D%20%2F*%20%40__PURE__%20*%2F%20new%20Set()%3B%0A%20%20for%20(const%20%5Bmatch%2C%20pattern%5D%20of%20Object.entries(complexMessage%5B%22match%22%5D))%20%7B%0A%20%20%20%20const%20parsed%20%3D%20parsePattern2(pattern)%3B%0A%20%20%20%20const%20parsedMatches%20%3D%20parseMatches(match)%3B%0A%20%20%20%20for%20(const%20declaration%20of%20parsed.declarations)%20%7B%0A%20%20%20%20%20%20let%20isDuplicate%20%3D%20false%3B%0A%20%20%20%20%20%20for%20(const%20existingDeclaration%20of%20declarations)%20%7B%0A%20%20%20%20%20%20%20%20if%20(existingDeclaration.name%20%3D%3D%3D%20declaration.name)%20%7B%0A%20%20%20%20%20%20%20%20%20%20isDuplicate%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(isDuplicate)%20%7B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20declarations.add(declaration)%3B%0A%20%20%20%20%7D%0A%20%20%20%20for%20(const%20selector%20of%20parsedMatches.selectors)%20%7B%0A%20%20%20%20%20%20detectedSelectors.add(selector)%3B%0A%20%20%20%20%7D%0A%20%20%20%20variants.push(%7B%0A%20%20%20%20%20%20messageBundleId%3A%20bundleId%2C%0A%20%20%20%20%20%20messageLocale%3A%20locale%2C%0A%20%20%20%20%20%20matches%3A%20parsedMatches.matches%2C%0A%20%20%20%20%20%20pattern%3A%20parsed.pattern%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%20%20return%20%7B%0A%20%20%20%20variants%2C%0A%20%20%20%20declarations%3A%20Array.from(declarations)%2C%0A%20%20%20%20selectors%3A%20unique(%5B...selectors%2C%20...Array.from(detectedSelectors)%5D)%0A%20%20%7D%3B%0A%7D%0Afunction%20parsePattern2(value)%20%7B%0A%20%20const%20pattern%20%3D%20%5B%5D%3B%0A%20%20const%20declarations%20%3D%20%5B%5D%3B%0A%20%20let%20buffer%20%3D%20%22%22%3B%0A%20%20const%20flushBuffer%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20if%20(buffer.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20pattern.push(%7B%20type%3A%20%22text%22%2C%20value%3A%20buffer%20%7D)%3B%0A%20%20%20%20%20%20buffer%20%3D%20%22%22%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%20%20for%20(let%20index%20%3D%200%3B%20index%20%3C%20value.length%3B%20index%20%2B%3D%201)%20%7B%0A%20%20%20%20const%20char%20%3D%20value%5Bindex%5D%3B%0A%20%20%20%20if%20(char%20%3D%3D%3D%20%22%5C%5C%22)%20%7B%0A%20%20%20%20%20%20const%20next%20%3D%20value%5Bindex%20%2B%201%5D%3B%0A%20%20%20%20%20%20if%20(next%20%3D%3D%3D%20%22%7B%22%20%7C%7C%20next%20%3D%3D%3D%20%22%7D%22%20%7C%7C%20next%20%3D%3D%3D%20%22%5C%5C%22)%20%7B%0A%20%20%20%20%20%20%20%20buffer%20%2B%3D%20next%3B%0A%20%20%20%20%20%20%20%20index%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20buffer%20%2B%3D%20char%3B%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(char%20%3D%3D%3D%20%22%7B%22)%20%7B%0A%20%20%20%20%20%20const%20closingIndex%20%3D%20findPlaceholderClosingIndex(value%2C%20index)%3B%0A%20%20%20%20%20%20if%20(closingIndex%20%3D%3D%3D%20-1)%20%7B%0A%20%20%20%20%20%20%20%20buffer%20%2B%3D%20char%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20placeholder%20%3D%20value.slice(index%20%2B%201%2C%20closingIndex)%3B%0A%20%20%20%20%20%20const%20markupNode%20%3D%20parseMarkupPlaceholder(placeholder)%3B%0A%20%20%20%20%20%20flushBuffer()%3B%0A%20%20%20%20%20%20if%20(markupNode)%20%7B%0A%20%20%20%20%20%20%20%20for%20(const%20option%20of%20markupNode.options%20%3F%3F%20%5B%5D)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(option.value.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20declarations.push(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20%22input-variable%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3A%20option.value.name%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20pattern.push(markupNode)%3B%0A%20%20%20%20%20%20%20%20index%20%3D%20closingIndex%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20declarations.push(%7B%0A%20%20%20%20%20%20%20%20type%3A%20%22input-variable%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20placeholder%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20pattern.push(%7B%0A%20%20%20%20%20%20%20%20type%3A%20%22expression%22%2C%0A%20%20%20%20%20%20%20%20arg%3A%20%7B%20type%3A%20%22variable-reference%22%2C%20name%3A%20placeholder%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20index%20%3D%20closingIndex%3B%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20buffer%20%2B%3D%20char%3B%0A%20%20%7D%0A%20%20flushBuffer()%3B%0A%20%20return%20%7B%0A%20%20%20%20declarations%2C%0A%20%20%20%20pattern%0A%20%20%7D%3B%0A%7D%0Afunction%20findPlaceholderClosingIndex(value%2C%20openingIndex)%20%7B%0A%20%20let%20inQuotedLiteral%20%3D%20false%3B%0A%20%20for%20(let%20cursor%20%3D%20openingIndex%20%2B%201%3B%20cursor%20%3C%20value.length%3B%20cursor%20%2B%3D%201)%20%7B%0A%20%20%20%20const%20current%20%3D%20value%5Bcursor%5D%3B%0A%20%20%20%20if%20(inQuotedLiteral%20%26%26%20current%20%3D%3D%3D%20%22%5C%5C%22)%20%7B%0A%20%20%20%20%20%20cursor%20%2B%3D%201%3B%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(current%20%3D%3D%3D%20%22%7C%22)%20%7B%0A%20%20%20%20%20%20inQuotedLiteral%20%3D%20!inQuotedLiteral%3B%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(current%20%3D%3D%3D%20%22%7D%22%20%26%26%20inQuotedLiteral%20%3D%3D%3D%20false)%20%7B%0A%20%20%20%20%20%20return%20cursor%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20-1%3B%0A%7D%0Afunction%20parseMarkupPlaceholder(placeholder)%20%7B%0A%20%20if%20(placeholder.startsWith(%22%23%22))%20%7B%0A%20%20%20%20const%20parsed%20%3D%20parseMarkupBody(placeholder.slice(1)%2C%20true)%3B%0A%20%20%20%20if%20(!parsed)%20%7B%0A%20%20%20%20%20%20throw%20new%20Error(%60Invalid%20markup%20placeholder%3A%20%7B%24%7Bplaceholder%7D%7D%60)%3B%0A%20%20%20%20%7D%0A%20%20%20%20const%20%7B%20name%2C%20options%2C%20attributes%2C%20standalone%20%7D%20%3D%20parsed%3B%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20type%3A%20standalone%20%3F%20%22markup-standalone%22%20%3A%20%22markup-start%22%2C%0A%20%20%20%20%20%20name%2C%0A%20%20%20%20%20%20...options.length%20%3E%200%20%3F%20%7B%20options%20%7D%20%3A%20%7B%7D%2C%0A%20%20%20%20%20%20...attributes.length%20%3E%200%20%3F%20%7B%20attributes%20%7D%20%3A%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20if%20(placeholder.startsWith(%22%2F%22))%20%7B%0A%20%20%20%20const%20parsed%20%3D%20parseMarkupBody(placeholder.slice(1)%2C%20false)%3B%0A%20%20%20%20if%20(!parsed)%20%7B%0A%20%20%20%20%20%20throw%20new%20Error(%60Invalid%20markup%20placeholder%3A%20%7B%24%7Bplaceholder%7D%7D%60)%3B%0A%20%20%20%20%7D%0A%20%20%20%20const%20%7B%20name%2C%20options%2C%20attributes%20%7D%20%3D%20parsed%3B%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20type%3A%20%22markup-end%22%2C%0A%20%20%20%20%20%20name%2C%0A%20%20%20%20%20%20...options.length%20%3E%200%20%3F%20%7B%20options%20%7D%20%3A%20%7B%7D%2C%0A%20%20%20%20%20%20...attributes.length%20%3E%200%20%3F%20%7B%20attributes%20%7D%20%3A%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20return%20void%200%3B%0A%7D%0Afunction%20parseMarkupBody(body%2C%20allowStandalone)%20%7B%0A%20%20let%20index%20%3D%200%3B%0A%20%20const%20options%20%3D%20%5B%5D%3B%0A%20%20const%20attributes%20%3D%20%5B%5D%3B%0A%20%20let%20standalone%20%3D%20false%3B%0A%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20const%20nameToken%20%3D%20readNameToken(body%2C%20index)%3B%0A%20%20if%20(!nameToken)%20return%20void%200%3B%0A%20%20const%20name%20%3D%20nameToken.value%3B%0A%20%20index%20%3D%20nameToken.nextIndex%3B%0A%20%20while%20(index%20%3C%20body.length)%20%7B%0A%20%20%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20%20%20if%20(index%20%3E%3D%20body.length)%20break%3B%0A%20%20%20%20if%20(allowStandalone%20%26%26%20body%5Bindex%5D%20%3D%3D%3D%20%22%2F%22)%20%7B%0A%20%20%20%20%20%20const%20trailing%20%3D%20body.slice(index%20%2B%201).trim()%3B%0A%20%20%20%20%20%20if%20(trailing.length%20%3E%200)%20return%20void%200%3B%0A%20%20%20%20%20%20standalone%20%3D%20true%3B%0A%20%20%20%20%20%20index%20%3D%20body.length%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(body%5Bindex%5D%20%3D%3D%3D%20%22%40%22)%20%7B%0A%20%20%20%20%20%20index%20%2B%3D%201%3B%0A%20%20%20%20%20%20const%20attributeName%20%3D%20readIdentifier(body%2C%20index)%3B%0A%20%20%20%20%20%20if%20(!attributeName)%20return%20void%200%3B%0A%20%20%20%20%20%20index%20%3D%20attributeName.nextIndex%3B%0A%20%20%20%20%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20%20%20%20%20if%20(body%5Bindex%5D%20%3D%3D%3D%20%22%3D%22)%20%7B%0A%20%20%20%20%20%20%20%20index%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20%20%20%20%20%20%20const%20attributeValue%20%3D%20parseMarkupValue(body%2C%20index)%3B%0A%20%20%20%20%20%20%20%20if%20(!attributeValue)%20return%20void%200%3B%0A%20%20%20%20%20%20%20%20if%20(attributeValue.value.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20void%200%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20attributes.push(%7B%0A%20%20%20%20%20%20%20%20%20%20name%3A%20attributeName.value%2C%0A%20%20%20%20%20%20%20%20%20%20value%3A%20attributeValue.value%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20index%20%3D%20attributeValue.nextIndex%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20attributes.push(%7B%20name%3A%20attributeName.value%2C%20value%3A%20true%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20const%20optionName%20%3D%20readIdentifier(body%2C%20index)%3B%0A%20%20%20%20if%20(!optionName)%20return%20void%200%3B%0A%20%20%20%20index%20%3D%20optionName.nextIndex%3B%0A%20%20%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20%20%20if%20(body%5Bindex%5D%20!%3D%3D%20%22%3D%22)%20return%20void%200%3B%0A%20%20%20%20index%20%2B%3D%201%3B%0A%20%20%20%20index%20%3D%20skipWhitespace(body%2C%20index)%3B%0A%20%20%20%20const%20optionValue%20%3D%20parseMarkupValue(body%2C%20index)%3B%0A%20%20%20%20if%20(!optionValue)%20return%20void%200%3B%0A%20%20%20%20options.push(%7B%0A%20%20%20%20%20%20name%3A%20optionName.value%2C%0A%20%20%20%20%20%20value%3A%20optionValue.value%0A%20%20%20%20%7D)%3B%0A%20%20%20%20index%20%3D%20optionValue.nextIndex%3B%0A%20%20%7D%0A%20%20return%20%7B%20name%2C%20options%2C%20attributes%2C%20standalone%20%7D%3B%0A%7D%0Afunction%20skipWhitespace(value%2C%20index)%20%7B%0A%20%20while%20(index%20%3C%20value.length%20%26%26%20%2F%5Cs%2F.test(value%5Bindex%5D))%20%7B%0A%20%20%20%20index%20%2B%3D%201%3B%0A%20%20%7D%0A%20%20return%20index%3B%0A%7D%0Afunction%20readNameToken(value%2C%20index)%20%7B%0A%20%20return%20readIdentifier(value%2C%20index)%3B%0A%7D%0Afunction%20readIdentifier(value%2C%20index)%20%7B%0A%20%20let%20cursor%20%3D%20index%3B%0A%20%20while%20(cursor%20%3C%20value.length%20%26%26%20%2F%5Cs%2F.test(value%5Bcursor%5D)%20%3D%3D%3D%20false%20%26%26%20value%5Bcursor%5D%20!%3D%3D%20%22%3D%22%20%26%26%20value%5Bcursor%5D%20!%3D%3D%20%22%2F%22%20%26%26%20value%5Bcursor%5D%20!%3D%3D%20%22%40%22)%20%7B%0A%20%20%20%20cursor%20%2B%3D%201%3B%0A%20%20%7D%0A%20%20const%20parsed%20%3D%20value.slice(index%2C%20cursor)%3B%0A%20%20if%20(parsed.length%20%3D%3D%3D%200)%20return%20void%200%3B%0A%20%20return%20%7B%20value%3A%20parsed%2C%20nextIndex%3A%20cursor%20%7D%3B%0A%7D%0Afunction%20parseMarkupValue(value%2C%20index)%20%7B%0A%20%20if%20(index%20%3E%3D%20value.length)%20return%20void%200%3B%0A%20%20if%20(value%5Bindex%5D%20%3D%3D%3D%20%22%7C%22)%20%7B%0A%20%20%20%20let%20cursor%20%3D%20index%20%2B%201%3B%0A%20%20%20%20let%20literal2%20%3D%20%22%22%3B%0A%20%20%20%20while%20(cursor%20%3C%20value.length)%20%7B%0A%20%20%20%20%20%20const%20char%20%3D%20value%5Bcursor%5D%3B%0A%20%20%20%20%20%20if%20(char%20%3D%3D%3D%20%22%5C%5C%22)%20%7B%0A%20%20%20%20%20%20%20%20const%20next%20%3D%20value%5Bcursor%20%2B%201%5D%3B%0A%20%20%20%20%20%20%20%20if%20(next%20%3D%3D%3D%20%22%7C%22%20%7C%7C%20next%20%3D%3D%3D%20%22%5C%5C%22%20%7C%7C%20next%20%3D%3D%3D%20%22%7D%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20literal2%20%2B%3D%20next%3B%0A%20%20%20%20%20%20%20%20%20%20cursor%20%2B%3D%202%3B%0A%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20literal2%20%2B%3D%20char%3B%0A%20%20%20%20%20%20%20%20cursor%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(char%20%3D%3D%3D%20%22%7C%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20%20%20value%3A%20%7B%20type%3A%20%22literal%22%2C%20value%3A%20literal2%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20nextIndex%3A%20cursor%20%2B%201%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20literal2%20%2B%3D%20char%3B%0A%20%20%20%20%20%20cursor%20%2B%3D%201%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20void%200%3B%0A%20%20%7D%0A%20%20if%20(value%5Bindex%5D%20%3D%3D%3D%20%22%24%22)%20%7B%0A%20%20%20%20const%20variable%20%3D%20readIdentifier(value%2C%20index%20%2B%201)%3B%0A%20%20%20%20if%20(!variable)%20return%20void%200%3B%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20value%3A%20%7B%20type%3A%20%22variable-reference%22%2C%20name%3A%20variable.value%20%7D%2C%0A%20%20%20%20%20%20nextIndex%3A%20variable.nextIndex%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20const%20literal%20%3D%20readIdentifier(value%2C%20index)%3B%0A%20%20if%20(!literal)%20return%20void%200%3B%0A%20%20return%20%7B%0A%20%20%20%20value%3A%20%7B%20type%3A%20%22literal%22%2C%20value%3A%20literal.value%20%7D%2C%0A%20%20%20%20nextIndex%3A%20literal.nextIndex%0A%20%20%7D%3B%0A%7D%0Afunction%20parseMatches(value)%20%7B%0A%20%20const%20stripped%20%3D%20value.replace(%22%20%22%2C%20%22%22)%3B%0A%20%20const%20matches%20%3D%20%5B%5D%3B%0A%20%20const%20selectors%20%3D%20%5B%5D%3B%0A%20%20const%20parts%20%3D%20stripped.split(%22%2C%22)%3B%0A%20%20for%20(const%20part%20of%20parts)%20%7B%0A%20%20%20%20const%20%5Bkey%2C%20value2%5D%20%3D%20part.split(%22%3D%22)%3B%0A%20%20%20%20if%20(!key%20%7C%7C%20!value2)%20%7B%0A%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(value2%20%3D%3D%3D%20%22*%22)%20%7B%0A%20%20%20%20%20%20matches.push(%7B%0A%20%20%20%20%20%20%20%20type%3A%20%22catchall-match%22%2C%0A%20%20%20%20%20%20%20%20key%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20matches.push(%7B%0A%20%20%20%20%20%20%20%20type%3A%20%22literal-match%22%2C%0A%20%20%20%20%20%20%20%20key%2C%0A%20%20%20%20%20%20%20%20value%3A%20value2%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%20%20selectors.push(%7B%0A%20%20%20%20%20%20type%3A%20%22variable-reference%22%2C%0A%20%20%20%20%20%20name%3A%20key%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%20%20return%20%7B%20matches%2C%20selectors%20%7D%3B%0A%7D%0Avar%20unique%20%3D%20(arr)%20%3D%3E%20%5B...new%20Set(arr.map((item)%20%3D%3E%20JSON.stringify(item)))%5D.map(%0A%20%20(item)%20%3D%3E%20JSON.parse(item)%0A)%3B%0Afunction%20parseDeclaration(value)%20%7B%0A%20%20if%20(value.startsWith(%22input%22))%20%7B%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20type%3A%20%22input-variable%22%2C%0A%20%20%20%20%20%20name%3A%20value.slice(6).trim()%0A%20%20%20%20%7D%3B%0A%20%20%7D%20else%20if%20(value.startsWith(%22local%22))%20%7B%0A%20%20%20%20const%20match%20%3D%20value.match(%2Flocal%20(%5Cw%2B)%20%3D%20(%5Cw%2B)%3A%20(%5Cw%2B)(.)%2F)%3B%0A%20%20%20%20const%20%5B%2C%20name%2C%20ref%2C%20fn%2C%20optionsString%5D%20%3D%20match%3B%0A%20%20%20%20const%20options%20%3D%20%5B%5D%3B%0A%20%20%20%20for%20(const%20optionMatch%20of%20(optionsString%20%3F%3F%20%22%22).matchAll(%0A%20%20%20%20%20%20%2F(%5Cw%2B)%5Cs%3D%5Cs*(%5B%5E%5Cs%5D%2B)%2Fg%0A%20%20%20%20))%20%7B%0A%20%20%20%20%20%20const%20optionName%20%3D%20optionMatch%5B1%5D%3B%0A%20%20%20%20%20%20const%20optionValue%20%3D%20optionMatch%5B2%5D%3B%0A%20%20%20%20%20%20if%20(!optionName%20%7C%7C%20!optionValue)%20%7B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20options.push(%7B%0A%20%20%20%20%20%20%20%20name%3A%20optionName%2C%0A%20%20%20%20%20%20%20%20value%3A%20optionValue.startsWith(%22%24%22)%20%26%26%20optionValue.length%20%3E%201%20%3F%20%7B%0A%20%20%20%20%20%20%20%20%20%20type%3A%20%22variable-reference%22%2C%0A%20%20%20%20%20%20%20%20%20%20name%3A%20optionValue.slice(1)%0A%20%20%20%20%20%20%20%20%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20type%3A%20%22literal%22%2C%0A%20%20%20%20%20%20%20%20%20%20value%3A%20optionValue%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%7B%0A%20%20%20%20%20%20type%3A%20%22local-variable%22%2C%0A%20%20%20%20%20%20name%3A%20name.trim()%2C%0A%20%20%20%20%20%20value%3A%20%7B%0A%20%20%20%20%20%20%20%20type%3A%20%22expression%22%2C%0A%20%20%20%20%20%20%20%20arg%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20type%3A%20%22variable-reference%22%2C%0A%20%20%20%20%20%20%20%20%20%20name%3A%20ref.trim()%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20annotation%3A%20fn%20%3F%20%7B%0A%20%20%20%20%20%20%20%20%20%20type%3A%20%22function-reference%22%2C%0A%20%20%20%20%20%20%20%20%20%20name%3A%20fn.trim()%2C%0A%20%20%20%20%20%20%20%20%20%20options%3A%20options%20%3F%3F%20%5B%5D%0A%20%20%20%20%20%20%20%20%7D%20%3A%20void%200%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20throw%20new%20Error(%22Unsupported%20declaration%20type%22)%3B%0A%7D%0A%0A%2F%2F%20src%2Futils%2FsortKeys.ts%0Avar%20compare%20%3D%20(direction)%20%3D%3E%20(a%2C%20b)%20%3D%3E%20direction%20%3D%3D%3D%20%22desc%22%20%3F%20b.localeCompare(a)%20%3A%20a.localeCompare(b)%3B%0Avar%20sortObjectKeys%20%3D%20(value%2C%20direction)%20%3D%3E%20%7B%0A%20%20if%20(Array.isArray(value))%20%7B%0A%20%20%20%20return%20value.map((entry)%20%3D%3E%20sortObjectKeys(entry%2C%20direction))%3B%0A%20%20%7D%0A%20%20if%20(value%20%3D%3D%3D%20null%20%7C%7C%20typeof%20value%20!%3D%3D%20%22object%22)%20%7B%0A%20%20%20%20return%20value%3B%0A%20%20%7D%0A%20%20const%20sorted%20%3D%20%7B%7D%3B%0A%20%20for%20(const%20%5Bkey%2C%20entry%5D%20of%20Object.entries(value).sort(%0A%20%20%20%20(a%2C%20b)%20%3D%3E%20compare(direction)(a%5B0%5D%2C%20b%5B0%5D)%0A%20%20))%20%7B%0A%20%20%20%20sorted%5Bkey%5D%20%3D%20sortObjectKeys(entry%2C%20direction)%3B%0A%20%20%7D%0A%20%20return%20sorted%3B%0A%7D%3B%0Avar%20sortMessageKeys%20%3D%20(value%2C%20direction)%20%3D%3E%20%7B%0A%20%20const%20sorted%20%3D%20%7B%7D%3B%0A%20%20for%20(const%20%5Bkey%2C%20entry%5D%20of%20Object.entries(value).sort(%0A%20%20%20%20(a%2C%20b)%20%3D%3E%20compare(direction)(a%5B0%5D%2C%20b%5B0%5D)%0A%20%20))%20%7B%0A%20%20%20%20sorted%5Bkey%5D%20%3D%20sortObjectKeys(entry%2C%20direction)%3B%0A%20%20%7D%0A%20%20return%20sorted%3B%0A%7D%3B%0A%0A%2F%2F%20src%2Fimport-export%2FexportFiles.ts%0Avar%20exportFiles%20%3D%20async%20(%7B%0A%20%20bundles%2C%0A%20%20messages%2C%0A%20%20variants%2C%0A%20%20settings%0A%7D)%20%3D%3E%20%7B%0A%20%20const%20files%20%3D%20%7B%7D%3B%0A%20%20for%20(const%20message%20of%20messages)%20%7B%0A%20%20%20%20const%20bundle%20%3D%20bundles.find((b)%20%3D%3E%20b.id%20%3D%3D%3D%20message.bundleId)%3B%0A%20%20%20%20const%20variantsOfMessage%20%3D%20%5B%0A%20%20%20%20%20%20...variants.reduce((r%2C%20v)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(v.messageId%20%3D%3D%3D%20message.id)%20r.set(JSON.stringify(v.matches)%2C%20v)%3B%0A%20%20%20%20%20%20%20%20return%20r%3B%0A%20%20%20%20%20%20%7D%2C%20%2F*%20%40__PURE__%20*%2F%20new%20Map()).values()%0A%20%20%20%20%5D%3B%0A%20%20%20%20files%5Bmessage.locale%5D%20%3D%20%7B%0A%20%20%20%20%20%20...files%5Bmessage.locale%5D%2C%0A%20%20%20%20%20%20...serializeMessage2(bundle%2C%20message%2C%20variantsOfMessage)%0A%20%20%20%20%7D%3B%0A%20%20%7D%0A%20%20const%20result%20%3D%20%5B%5D%3B%0A%20%20for%20(const%20locale%20in%20files)%20%7B%0A%20%20%20%20const%20sortDirection%20%3D%20settings%3F.%5B%22plugin.inlang.messageFormat%22%5D%3F.sort%20%3F%3F%20void%200%3B%0A%20%20%20%20const%20unflattened%20%3D%20unflatten(files%5Blocale%5D)%3B%0A%20%20%20%20const%20sortedMessages%20%3D%20sortDirection%20%3F%20sortMessageKeys(unflattened%2C%20sortDirection)%20%3A%20unflattened%3B%0A%20%20%20%20result.push(%7B%0A%20%20%20%20%20%20locale%2C%0A%20%20%20%20%20%20%2F%2F%20beautify%20the%20json%0A%20%20%20%20%20%20content%3A%20new%20TextEncoder().encode(%0A%20%20%20%20%20%20%20%20JSON.stringify(%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20increase%20DX%20by%20providing%20auto%20complete%20in%20IDEs%0A%20%20%20%20%20%20%20%20%20%20%20%20%24schema%3A%20%22https%3A%2F%2Finlang.com%2Fschema%2Finlang-message-format%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20...sortedMessages%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20void%200%2C%0A%20%20%20%20%20%20%20%20%20%20%22%09%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20name%3A%20locale%20%2B%20%22.json%22%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%20%20return%20result%3B%0A%7D%3B%0Afunction%20serializeMessage2(bundle%2C%20message%2C%20variants)%20%7B%0A%20%20const%20key%20%3D%20message.bundleId%3B%0A%20%20const%20value%20%3D%20serializeVariants(bundle%2C%20message%2C%20variants)%3B%0A%20%20return%20%7B%20%5Bkey%5D%3A%20value%20%7D%3B%0A%7D%0Afunction%20serializeVariants(bundle%2C%20message%2C%20variants)%20%7B%0A%20%20if%20(variants.length%20%3D%3D%3D%201)%20%7B%0A%20%20%20%20if%20(message.selectors.length%20%3D%3D%3D%200%20%26%26%20bundle.declarations.some((d)%20%3D%3E%20d.type%20!%3D%3D%20%22input-variable%22)%20%3D%3D%3D%20false)%20%7B%0A%20%20%20%20%20%20return%20serializePattern(variants%5B0%5D.pattern)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20const%20entries%20%3D%20%5B%5D%3B%0A%20%20for%20(const%20variant%20of%20variants)%20%7B%0A%20%20%20%20if%20(variant.matches.length%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20%20%20for%20(const%20part%20of%20variant.pattern)%20%7B%0A%20%20%20%20%20%20%20%20if%20(part.type%20%3D%3D%3D%20%22expression%22%20%26%26%20part.arg.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20variant.matches.push(%7B%20key%3A%20part.arg.name%2C%20type%3A%20%22catchall-match%22%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20const%20pattern%20%3D%20serializePattern(variant.pattern)%3B%0A%20%20%20%20const%20match%20%3D%20serializeMatcher(variant.matches)%3B%0A%20%20%20%20entries.push(%5Bmatch%2C%20pattern%5D)%3B%0A%20%20%7D%0A%20%20return%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20naively%20adding%20all%20declarations%2C%20even%20if%20unused%20in%20the%20variants%0A%20%20%20%20%20%20%2F%2F%20can%20be%20optimized%20later.%0A%20%20%20%20%20%20declarations%3A%20bundle.declarations.sort((a%2C%20b)%20%3D%3E%20a.name.localeCompare(b.name)).map(serializeDeclaration).sort()%2C%0A%20%20%20%20%20%20selectors%3A%20message.selectors.map((s)%20%3D%3E%20s.name).sort()%2C%0A%20%20%20%20%20%20match%3A%20Object.fromEntries(entries)%0A%20%20%20%20%7D%0A%20%20%5D%3B%0A%7D%0Afunction%20serializePattern(pattern)%20%7B%0A%20%20let%20result%20%3D%20%22%22%3B%0A%20%20for%20(const%20part%20of%20pattern)%20%7B%0A%20%20%20%20switch%20(part.type)%20%7B%0A%20%20%20%20%20%20case%20%22text%22%3A%0A%20%20%20%20%20%20%20%20result%20%2B%3D%20escapePatternText(part.value)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%20%22expression%22%3A%0A%20%20%20%20%20%20%20%20if%20(part.arg.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20result%20%2B%3D%20%60%7B%24%7Bpart.arg.name%7D%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20throw%20new%20Error(%22Unsupported%20expression%20type%22)%3B%0A%20%20%20%20%20%20case%20%22markup-start%22%3A%0A%20%20%20%20%20%20%20%20result%20%2B%3D%20serializeMarkup(%0A%20%20%20%20%20%20%20%20%20%20%22%23%22%2C%0A%20%20%20%20%20%20%20%20%20%20part.name%2C%0A%20%20%20%20%20%20%20%20%20%20part.options%2C%0A%20%20%20%20%20%20%20%20%20%20part.attributes%2C%0A%20%20%20%20%20%20%20%20%20%20false%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%20%22markup-end%22%3A%0A%20%20%20%20%20%20%20%20result%20%2B%3D%20serializeMarkup(%0A%20%20%20%20%20%20%20%20%20%20%22%2F%22%2C%0A%20%20%20%20%20%20%20%20%20%20part.name%2C%0A%20%20%20%20%20%20%20%20%20%20part.options%2C%0A%20%20%20%20%20%20%20%20%20%20part.attributes%2C%0A%20%20%20%20%20%20%20%20%20%20false%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%20%22markup-standalone%22%3A%0A%20%20%20%20%20%20%20%20result%20%2B%3D%20serializeMarkup(%0A%20%20%20%20%20%20%20%20%20%20%22%23%22%2C%0A%20%20%20%20%20%20%20%20%20%20part.name%2C%0A%20%20%20%20%20%20%20%20%20%20part.options%2C%0A%20%20%20%20%20%20%20%20%20%20part.attributes%2C%0A%20%20%20%20%20%20%20%20%20%20true%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20throw%20new%20Error(%22Unsupported%20pattern%20element%20type%22)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20result%3B%0A%7D%0Afunction%20escapePatternText(value)%20%7B%0A%20%20return%20value.replace(%2F%5C%5C%2Fg%2C%20%22%5C%5C%5C%5C%22).replace(%2F%7B%2Fg%2C%20%22%5C%5C%7B%22).replace(%2F%7D%2Fg%2C%20%22%5C%5C%7D%22)%3B%0A%7D%0Afunction%20serializeMarkup(prefix%2C%20name%2C%20options%2C%20attributes%2C%20standalone)%20%7B%0A%20%20const%20serializedOptions%20%3D%20(options%20%3F%3F%20%5B%5D).map((option)%20%3D%3E%20%7B%0A%20%20%20%20if%20(option.value.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20return%20%60%24%7Boption.name%7D%3D%24%24%7Boption.value.name%7D%60%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%60%24%7Boption.name%7D%3D%7C%24%7BescapeMarkupLiteral(option.value.value)%7D%7C%60%3B%0A%20%20%7D)%3B%0A%20%20const%20serializedAttributes%20%3D%20(attributes%20%3F%3F%20%5B%5D).map((attribute)%20%3D%3E%20%7B%0A%20%20%20%20if%20(attribute.value%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20%20%20return%20%60%40%24%7Battribute.name%7D%60%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%60%40%24%7Battribute.name%7D%3D%7C%24%7BescapeMarkupLiteral(attribute.value.value)%7D%7C%60%3B%0A%20%20%7D)%3B%0A%20%20const%20metadata%20%3D%20%5B...serializedOptions%2C%20...serializedAttributes%5D.join(%22%20%22)%3B%0A%20%20if%20(metadata.length%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20return%20standalone%20%3F%20%60%7B%24%7Bprefix%7D%24%7Bname%7D%2F%7D%60%20%3A%20%60%7B%24%7Bprefix%7D%24%7Bname%7D%7D%60%3B%0A%20%20%7D%0A%20%20if%20(standalone)%20%7B%0A%20%20%20%20return%20%60%7B%24%7Bprefix%7D%24%7Bname%7D%20%24%7Bmetadata%7D%2F%7D%60%3B%0A%20%20%7D%0A%20%20return%20%60%7B%24%7Bprefix%7D%24%7Bname%7D%20%24%7Bmetadata%7D%7D%60%3B%0A%7D%0Afunction%20escapeMarkupLiteral(value)%20%7B%0A%20%20return%20value.replace(%2F%5C%5C%2Fg%2C%20%22%5C%5C%5C%5C%22).replace(%2F%5C%7C%2Fg%2C%20%22%5C%5C%7C%22).replace(%2F%7D%2Fg%2C%20%22%5C%5C%7D%22)%3B%0A%7D%0Afunction%20serializeMatcher(matches)%20%7B%0A%20%20const%20parts%20%3D%20matches.sort((a%2C%20b)%20%3D%3E%20a.key.localeCompare(b.key)).map(%0A%20%20%20%20(match)%20%3D%3E%20match.type%20%3D%3D%3D%20%22literal-match%22%20%3F%20%60%24%7Bmatch.key%7D%3D%24%7Bmatch.value%7D%60%20%3A%20%60%24%7Bmatch.key%7D%3D*%60%0A%20%20)%3B%0A%20%20return%20parts.join(%22%2C%20%22)%3B%0A%7D%0Afunction%20serializeDeclaration(declaration)%20%7B%0A%20%20if%20(declaration.type%20%3D%3D%3D%20%22input-variable%22)%20%7B%0A%20%20%20%20return%20%60input%20%24%7Bdeclaration.name%7D%60%3B%0A%20%20%7D%20else%20if%20(declaration.type%20%3D%3D%3D%20%22local-variable%22)%20%7B%0A%20%20%20%20let%20result%20%3D%20%22%22%3B%0A%20%20%20%20if%20(declaration.value.arg.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20result%20%3D%20%60local%20%24%7Bdeclaration.name%7D%20%3D%20%24%7Bdeclaration.value.arg.name%7D%60%3B%0A%20%20%20%20%7D%20else%20if%20(declaration.value.arg.type%20%3D%3D%3D%20%22literal%22)%20%7B%0A%20%20%20%20%20%20result%20%3D%20%60local%20%24%7Bdeclaration.name%7D%20%3D%20%22%24%7Bdeclaration.value.arg.value%7D%22%60%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(declaration.value.annotation)%20%7B%0A%20%20%20%20%20%20result%20%2B%3D%20%60%3A%20%24%7Bdeclaration.value.annotation.name%7D%60%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(declaration.value.annotation%3F.options)%20%7B%0A%20%20%20%20%20%20for%20(const%20option%20of%20declaration.value%3F.annotation%3F.options%20%3F%3F%20%5B%5D)%20%7B%0A%20%20%20%20%20%20%20%20if%20(option.value.type%20%3D%3D%3D%20%22literal%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20result%20%2B%3D%20%60%20%24%7Boption.name%7D%3D%24%7Boption.value.value%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20(option.value.type%20%3D%3D%3D%20%22variable-reference%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20result%20%2B%3D%20%60%20%24%7Boption.name%7D%3D%24%24%7Boption.value.name%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20throw%20new%20Error(%22Unsupported%20option%20type%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20result%3B%0A%20%20%7D%0A%20%20throw%20new%20Error(%22Unsupported%20declaration%20type%22)%3B%0A%7D%0A%0A%2F%2F%20src%2Fplugin.ts%0Avar%20PLUGIN_KEY%20%3D%20%22plugin.inlang.messageFormat%22%3B%0Avar%20plugin2%20%3D%20%7B%0A%20%20key%3A%20PLUGIN_KEY%2C%0A%20%20%2F%2F%20legacy%20v2%20stuff%20for%20backwards%20compatibility%0A%20%20%2F%2F%20given%20that%20most%20people%20don't%20have%20a%20major%20version%0A%20%20%2F%2F%20pinning%20in%20their%20settings%0A%20%20id%3A%20plugin.id%2C%0A%20%20%2F%2F%20%40ts-expect-error%20-%20displayName%20is%20not%20in%20the%20v2%20plugin%0A%20%20displayName%3A%20plugin.displayName%2C%0A%20%20%2F%2F%20%40ts-expect-error%20-%20description%20is%20not%20in%20the%20v2%20plugin%0A%20%20description%3A%20plugin.description%2C%0A%20%20loadMessages%3A%20plugin.loadMessages%2C%0A%20%20saveMessages%3A%20plugin.saveMessages%2C%0A%20%20settingsSchema%3A%20PluginSettings%2C%0A%20%20toBeImportedFiles%2C%0A%20%20importFiles%2C%0A%20%20exportFiles%0A%7D%3B%0A%0A%2F%2F%20src%2Findex.ts%0Avar%20index_default%20%3D%20plugin2%3B%0Aexport%20%7B%0A%20%20index_default%20as%20default%0A%7D%3B%0A:1644:27)
at async loadMessagesViaPlugin (/home/runner/work/_actions/opral/ninja-i18n-action/main/dist/index.cjs:61894:28)

@ccev ccev force-pushed the wip/filtersets branch from 857e225 to f1c229a Compare April 2, 2026 18:21
This reverts commit 60f5ee4.
@ccev ccev mentioned this pull request Apr 2, 2026
@ccev ccev closed this Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants