@es-joy/jsoe 0.24.2 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +9 -0
- package/.ncurc.cjs +2 -2
- package/CHANGES.md +51 -0
- package/README.md +23 -13
- package/badges/coverage-badge.svg +1 -1
- package/dist/eslint.config.d.ts +3 -0
- package/dist/eslint.config.d.ts.map +1 -0
- package/dist/formatAndTypeChoices.d.ts +28 -30
- package/dist/formatAndTypeChoices.d.ts.map +1 -1
- package/dist/formats/indexedDBKey.d.ts.map +1 -1
- package/dist/formats/schema.d.ts +46 -3
- package/dist/formats/schema.d.ts.map +1 -1
- package/dist/formats/structuredCloning.d.ts +3 -0
- package/dist/formats/structuredCloning.d.ts.map +1 -1
- package/dist/formats.d.ts +24 -6
- package/dist/formats.d.ts.map +1 -1
- package/dist/fundamentalTypes/BooleanObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/NumberObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/StringObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/arrayReferenceType.d.ts.map +1 -1
- package/dist/fundamentalTypes/arrayType.d.ts +7 -0
- package/dist/fundamentalTypes/arrayType.d.ts.map +1 -1
- package/dist/fundamentalTypes/bigintObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/bigintType.d.ts +10 -0
- package/dist/fundamentalTypes/bigintType.d.ts.map +1 -1
- package/dist/fundamentalTypes/blobType.d.ts.map +1 -1
- package/dist/fundamentalTypes/booleanType.d.ts.map +1 -1
- package/dist/fundamentalTypes/catchType.d.ts +2 -2
- package/dist/fundamentalTypes/catchType.d.ts.map +1 -1
- package/dist/fundamentalTypes/dateType.d.ts.map +1 -1
- package/dist/fundamentalTypes/domexceptionType.d.ts.map +1 -1
- package/dist/fundamentalTypes/enumType.d.ts +2 -2
- package/dist/fundamentalTypes/enumType.d.ts.map +1 -1
- package/dist/fundamentalTypes/errorType.d.ts.map +1 -1
- package/dist/fundamentalTypes/fileType.d.ts +6 -0
- package/dist/fundamentalTypes/fileType.d.ts.map +1 -1
- package/dist/fundamentalTypes/functionType.d.ts.map +1 -1
- package/dist/fundamentalTypes/literalType.d.ts +3 -2
- package/dist/fundamentalTypes/literalType.d.ts.map +1 -1
- package/dist/fundamentalTypes/looseRecordType.d.ts +6 -0
- package/dist/fundamentalTypes/looseRecordType.d.ts.map +1 -0
- package/dist/fundamentalTypes/nanType.d.ts.map +1 -1
- package/dist/fundamentalTypes/neverType.d.ts +2 -2
- package/dist/fundamentalTypes/neverType.d.ts.map +1 -1
- package/dist/fundamentalTypes/noneditableType.d.ts.map +1 -1
- package/dist/fundamentalTypes/nullType.d.ts.map +1 -1
- package/dist/fundamentalTypes/numberType.d.ts.map +1 -1
- package/dist/fundamentalTypes/promiseType.d.ts.map +1 -1
- package/dist/fundamentalTypes/regexpType.d.ts.map +1 -1
- package/dist/fundamentalTypes/stringType.d.ts.map +1 -1
- package/dist/fundamentalTypes/symbolType.d.ts.map +1 -1
- package/dist/fundamentalTypes/undefinedType.d.ts.map +1 -1
- package/dist/fundamentalTypes/voidType.d.ts +2 -2
- package/dist/fundamentalTypes/voidType.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/rollup.config.d.ts +30 -0
- package/dist/rollup.config.d.ts.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/src/formatAndTypeChoices.d.ts +108 -0
- package/dist/src/formatAndTypeChoices.d.ts.map +1 -0
- package/dist/src/formats/arbitraryJS.d.ts +4 -0
- package/dist/src/formats/arbitraryJS.d.ts.map +1 -0
- package/dist/src/formats/indexedDBKey.d.ts +4 -0
- package/dist/src/formats/indexedDBKey.d.ts.map +1 -0
- package/dist/src/formats/json.d.ts +4 -0
- package/dist/src/formats/json.d.ts.map +1 -0
- package/dist/src/formats/schema.d.ts +17 -0
- package/dist/src/formats/schema.d.ts.map +1 -0
- package/dist/src/formats/structuredCloning.d.ts +19 -0
- package/dist/src/formats/structuredCloning.d.ts.map +1 -0
- package/dist/src/formats.d.ts +135 -0
- package/dist/src/formats.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/BooleanObjectType.d.ts +8 -0
- package/dist/src/fundamentalTypes/BooleanObjectType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/NumberObjectType.d.ts +6 -0
- package/dist/src/fundamentalTypes/NumberObjectType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/StringObjectType.d.ts +6 -0
- package/dist/src/fundamentalTypes/StringObjectType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/arrayReferenceType.d.ts +8 -0
- package/dist/src/fundamentalTypes/arrayReferenceType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/arrayType.d.ts +29 -0
- package/dist/src/fundamentalTypes/arrayType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/bigintObjectType.d.ts +6 -0
- package/dist/src/fundamentalTypes/bigintObjectType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/bigintType.d.ts +6 -0
- package/dist/src/fundamentalTypes/bigintType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/blobType.d.ts +11 -0
- package/dist/src/fundamentalTypes/blobType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/booleanType.d.ts +8 -0
- package/dist/src/fundamentalTypes/booleanType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/catchType.d.ts +6 -0
- package/dist/src/fundamentalTypes/catchType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/dateType.d.ts +26 -0
- package/dist/src/fundamentalTypes/dateType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/domexceptionType.d.ts +6 -0
- package/dist/src/fundamentalTypes/domexceptionType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/enumType.d.ts +6 -0
- package/dist/src/fundamentalTypes/enumType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/errorType.d.ts +6 -0
- package/dist/src/fundamentalTypes/errorType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/fileType.d.ts +13 -0
- package/dist/src/fundamentalTypes/fileType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/filelistType.d.ts +6 -0
- package/dist/src/fundamentalTypes/filelistType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/functionType.d.ts +7 -0
- package/dist/src/fundamentalTypes/functionType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/literalType.d.ts +6 -0
- package/dist/src/fundamentalTypes/literalType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/mapType.d.ts +6 -0
- package/dist/src/fundamentalTypes/mapType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/nanType.d.ts +6 -0
- package/dist/src/fundamentalTypes/nanType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/neverType.d.ts +6 -0
- package/dist/src/fundamentalTypes/neverType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/noneditableType.d.ts +6 -0
- package/dist/src/fundamentalTypes/noneditableType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/nullType.d.ts +6 -0
- package/dist/src/fundamentalTypes/nullType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/numberType.d.ts +6 -0
- package/dist/src/fundamentalTypes/numberType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/objectReferenceType.d.ts +8 -0
- package/dist/src/fundamentalTypes/objectReferenceType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/objectType.d.ts +6 -0
- package/dist/src/fundamentalTypes/objectType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/promiseType.d.ts +6 -0
- package/dist/src/fundamentalTypes/promiseType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/recordType.d.ts +6 -0
- package/dist/src/fundamentalTypes/recordType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/regexpType.d.ts +8 -0
- package/dist/src/fundamentalTypes/regexpType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/setType.d.ts +6 -0
- package/dist/src/fundamentalTypes/setType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/sparseUndefinedType.d.ts +6 -0
- package/dist/src/fundamentalTypes/sparseUndefinedType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/stringType.d.ts +6 -0
- package/dist/src/fundamentalTypes/stringType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/symbolType.d.ts +8 -0
- package/dist/src/fundamentalTypes/symbolType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/tupleType.d.ts +6 -0
- package/dist/src/fundamentalTypes/tupleType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/undefinedType.d.ts +6 -0
- package/dist/src/fundamentalTypes/undefinedType.d.ts.map +1 -0
- package/dist/src/fundamentalTypes/voidType.d.ts +6 -0
- package/dist/src/fundamentalTypes/voidType.d.ts.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/subTypes/blobHTMLType.d.ts +20 -0
- package/dist/src/subTypes/blobHTMLType.d.ts.map +1 -0
- package/dist/src/subTypes/falseType.d.ts +8 -0
- package/dist/src/subTypes/falseType.d.ts.map +1 -0
- package/dist/src/subTypes/trueType.d.ts +8 -0
- package/dist/src/subTypes/trueType.d.ts.map +1 -0
- package/dist/src/superTypes/SpecialNumberType.d.ts +6 -0
- package/dist/src/superTypes/SpecialNumberType.d.ts.map +1 -0
- package/dist/src/superTypes/SpecialRealNumberType.d.ts +6 -0
- package/dist/src/superTypes/SpecialRealNumberType.d.ts.map +1 -0
- package/dist/src/superTypes/buffersourceType.d.ts +8 -0
- package/dist/src/superTypes/buffersourceType.d.ts.map +1 -0
- package/dist/src/superTypes/dommatrixType.d.ts +6 -0
- package/dist/src/superTypes/dommatrixType.d.ts.map +1 -0
- package/dist/src/superTypes/dompointType.d.ts +6 -0
- package/dist/src/superTypes/dompointType.d.ts.map +1 -0
- package/dist/src/superTypes/domrectType.d.ts +6 -0
- package/dist/src/superTypes/domrectType.d.ts.map +1 -0
- package/dist/src/superTypes/errorsSpecialType.d.ts +8 -0
- package/dist/src/superTypes/errorsSpecialType.d.ts.map +1 -0
- package/dist/src/typeChoices.d.ts +140 -0
- package/dist/src/typeChoices.d.ts.map +1 -0
- package/dist/src/types.d.ts +758 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils/FileList.d.ts +26 -0
- package/dist/src/utils/FileList.d.ts.map +1 -0
- package/dist/src/utils/dialogs.d.ts +111 -0
- package/dist/src/utils/dialogs.d.ts.map +1 -0
- package/dist/src/utils/jsonPointer.d.ts +46 -0
- package/dist/src/utils/jsonPointer.d.ts.map +1 -0
- package/dist/src/utils/media.d.ts +18 -0
- package/dist/src/utils/media.d.ts.map +1 -0
- package/dist/src/utils/objects.d.ts +16 -0
- package/dist/src/utils/objects.d.ts.map +1 -0
- package/dist/src/utils/templateUtils.d.ts +59 -0
- package/dist/src/utils/templateUtils.d.ts.map +1 -0
- package/dist/src/utils/types.d.ts +2 -0
- package/dist/src/utils/types.d.ts.map +1 -0
- package/dist/src/vendor-imports.d.ts +4 -0
- package/dist/src/vendor-imports.d.ts.map +1 -0
- package/dist/subTypes/blobHTMLType.d.ts.map +1 -1
- package/dist/superTypes/SpecialRealNumberType.d.ts.map +1 -1
- package/dist/superTypes/buffersourceType.d.ts.map +1 -1
- package/dist/superTypes/dommatrixType.d.ts.map +1 -1
- package/dist/superTypes/dompointType.d.ts.map +1 -1
- package/dist/superTypes/domrectType.d.ts.map +1 -1
- package/dist/superTypes/errorsSpecialType.d.ts.map +1 -1
- package/dist/typeChoices.d.ts +21 -87
- package/dist/typeChoices.d.ts.map +1 -1
- package/dist/types.d.ts +90 -64
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/FileList.d.ts +4 -3
- package/dist/utils/FileList.d.ts.map +1 -1
- package/dist/utils/dialogs.d.ts +4 -4
- package/dist/utils/dialogs.d.ts.map +1 -1
- package/dist/utils/media.d.ts.map +1 -1
- package/dist/utils/schemaMeta.d.ts +92 -0
- package/dist/utils/schemaMeta.d.ts.map +1 -0
- package/dist/utils/templateUtils.d.ts +3 -3
- package/dist/utils/templateUtils.d.ts.map +1 -1
- package/dist/utils/timing.d.ts +2 -0
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/types.d.ts +1 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/vendor-imports.d.ts +3 -1
- package/docs/proposals/schema-meta.md +233 -0
- package/eslint.config.js +51 -4
- package/licenseInfo.json +1 -1
- package/package.json +52 -42
- package/pnpm-workspace.yaml +57 -0
- package/rollup.config.js +20 -18
- package/server.js +3 -3
- package/src/deepEqual.js +77 -66
- package/src/deepEqual.js.map +1 -1
- package/src/formatAndTypeChoices.js +62 -58
- package/src/formats/indexedDBKey.js +3 -4
- package/src/formats/schema.js +824 -475
- package/src/formats/structuredCloning.js +189 -80
- package/src/formats.js +17 -5
- package/src/fundamentalTypes/BooleanObjectType.js +4 -5
- package/src/fundamentalTypes/NumberObjectType.js +4 -4
- package/src/fundamentalTypes/StringObjectType.js +3 -4
- package/src/fundamentalTypes/arrayReferenceType.js +0 -2
- package/src/fundamentalTypes/arrayType.js +624 -389
- package/src/fundamentalTypes/bigintObjectType.js +3 -2
- package/src/fundamentalTypes/bigintType.js +79 -17
- package/src/fundamentalTypes/blobType.js +35 -35
- package/src/fundamentalTypes/booleanType.js +16 -8
- package/src/fundamentalTypes/dateType.js +6 -8
- package/src/fundamentalTypes/domexceptionType.js +5 -4
- package/src/fundamentalTypes/errorType.js +39 -32
- package/src/fundamentalTypes/fileType.js +238 -52
- package/src/fundamentalTypes/functionType.js +61 -41
- package/src/fundamentalTypes/nanType.js +5 -4
- package/src/fundamentalTypes/noneditableType.js +4 -3
- package/src/fundamentalTypes/nullType.js +3 -2
- package/src/fundamentalTypes/numberType.js +72 -20
- package/src/fundamentalTypes/promiseType.js +16 -40
- package/src/fundamentalTypes/regexpType.js +7 -13
- package/src/fundamentalTypes/stringType.js +176 -110
- package/src/fundamentalTypes/symbolType.js +3 -2
- package/src/fundamentalTypes/undefinedType.js +3 -2
- package/src/index.js +6 -5
- package/src/jsoe.css +107 -8
- package/src/subTypes/blobHTMLType.js +23 -10
- package/src/superTypes/SpecialNumberType.js +6 -6
- package/src/superTypes/SpecialRealNumberType.js +10 -9
- package/src/superTypes/buffersourceType.js +86 -75
- package/src/superTypes/dommatrixType.js +6 -5
- package/src/superTypes/dompointType.js +6 -5
- package/src/superTypes/domrectType.js +6 -5
- package/src/superTypes/errorsSpecialType.js +54 -35
- package/src/typeChoices.js +373 -53
- package/src/types.js +157 -97
- package/src/utils/FileList.js +3 -3
- package/src/utils/dialogs.js +5 -7
- package/src/utils/jsonPointer.js +1 -1
- package/src/utils/media.js +1 -0
- package/src/utils/schemaMeta.js +257 -0
- package/src/utils/templateUtils.js +3 -3
- package/src/utils/timing.js +12 -0
- package/src/utils/types.js +19 -0
- package/src/vendor-imports.js +10 -2
- package/tsconfig.json +2 -0
- package/vendor/acorn/dist/acorn.d.mts +46 -5
- package/vendor/acorn/dist/acorn.d.ts +46 -5
- package/vendor/acorn/dist/acorn.js +394 -117
- package/vendor/acorn/dist/acorn.mjs +394 -117
- package/vendor/acorn/dist/bin.js +1 -1
- package/vendor/jamilih/dist/{jml-es.js → jml.mjs} +590 -312
- package/vendor/jamilih/package.json +1 -1
- package/vendor/mime/dist/types/other.js +719 -0
- package/vendor/mime/dist/types/standard.js +366 -0
- package/vendor/typeson-registry/dist/index.js +519 -99
- package/vendor/zod/classic/checks.d.ts +1 -0
- package/vendor/zod/classic/checks.js +1 -0
- package/vendor/zod/classic/coerce.d.ts +17 -0
- package/vendor/zod/classic/coerce.js +17 -0
- package/vendor/zod/classic/compat.d.ts +48 -0
- package/vendor/zod/classic/compat.js +31 -0
- package/vendor/zod/classic/deep-partial.d.ts +14 -0
- package/vendor/zod/classic/deep-partial.js +13 -0
- package/vendor/zod/classic/errors.d.ts +29 -0
- package/vendor/zod/classic/errors.js +57 -0
- package/vendor/zod/classic/external.d.ts +19 -0
- package/vendor/zod/classic/external.js +17 -0
- package/vendor/zod/classic/from-json-schema.d.ts +12 -0
- package/vendor/zod/classic/from-json-schema.js +660 -0
- package/vendor/zod/classic/in-out.d.ts +8 -0
- package/vendor/zod/classic/in-out.js +36 -0
- package/vendor/zod/classic/index.d.ts +3 -0
- package/vendor/zod/classic/index.js +4 -0
- package/vendor/zod/classic/iso.d.ts +7 -0
- package/vendor/zod/classic/iso.js +15 -0
- package/vendor/zod/classic/package.json +7 -0
- package/vendor/zod/classic/parse.d.ts +44 -0
- package/vendor/zod/classic/parse.js +16 -0
- package/vendor/zod/classic/schemas.d.ts +802 -0
- package/vendor/zod/classic/schemas.js +1491 -0
- package/vendor/zod/core/api.d.ts +329 -0
- package/vendor/zod/core/api.js +1104 -0
- package/vendor/zod/core/checks.d.ts +278 -0
- package/vendor/zod/core/checks.js +581 -0
- package/vendor/zod/core/compile.d.ts +51 -0
- package/vendor/zod/core/compile.js +1783 -0
- package/vendor/zod/core/core.d.ts +82 -0
- package/vendor/zod/core/core.js +141 -0
- package/vendor/zod/core/doc.d.ts +16 -0
- package/vendor/zod/core/doc.js +33 -0
- package/vendor/zod/core/errors.d.ts +225 -0
- package/vendor/zod/core/errors.js +270 -0
- package/vendor/zod/core/index.d.ts +19 -0
- package/vendor/zod/core/index.js +19 -0
- package/vendor/zod/core/json-schema-generator.d.ts +65 -0
- package/vendor/zod/core/json-schema-generator.js +99 -0
- package/vendor/zod/core/json-schema-processors.d.ts +49 -0
- package/vendor/zod/core/json-schema-processors.js +747 -0
- package/vendor/zod/core/json-schema.d.ts +89 -0
- package/vendor/zod/core/memoizer.d.ts +15 -0
- package/vendor/zod/core/memoizer.js +265 -0
- package/vendor/zod/core/package.json +7 -0
- package/vendor/zod/core/parse.d.ts +52 -0
- package/vendor/zod/core/parse.js +154 -0
- package/vendor/zod/core/regexes.d.ts +87 -0
- package/vendor/zod/core/regexes.js +150 -0
- package/vendor/zod/core/registries.d.ts +35 -0
- package/vendor/zod/core/registries.js +51 -0
- package/vendor/zod/core/schemas.d.ts +1253 -0
- package/vendor/zod/core/schemas.js +2440 -0
- package/vendor/zod/core/standard-schema.d.ts +126 -0
- package/vendor/zod/core/to-json-schema.d.ts +153 -0
- package/vendor/zod/core/to-json-schema.js +650 -0
- package/vendor/zod/core/util.d.ts +257 -0
- package/vendor/zod/core/util.js +846 -0
- package/vendor/zod/core/versions.d.ts +5 -0
- package/vendor/zod/core/versions.js +5 -0
- package/vendor/zod/core/visit.d.ts +30 -0
- package/vendor/zod/core/visit.js +169 -0
- package/vendor/zod/index.d.ts +3 -0
- package/vendor/zod/index.js +4 -0
- package/vendor/zod/locales/ar.d.ts +4 -0
- package/vendor/zod/locales/ar.js +109 -0
- package/vendor/zod/locales/az.d.ts +4 -0
- package/vendor/zod/locales/az.js +108 -0
- package/vendor/zod/locales/be.d.ts +4 -0
- package/vendor/zod/locales/be.js +166 -0
- package/vendor/zod/locales/bg.d.ts +4 -0
- package/vendor/zod/locales/bg.js +123 -0
- package/vendor/zod/locales/bn.d.ts +4 -0
- package/vendor/zod/locales/bn.js +111 -0
- package/vendor/zod/locales/ca.d.ts +4 -0
- package/vendor/zod/locales/ca.js +110 -0
- package/vendor/zod/locales/ckb.d.ts +4 -0
- package/vendor/zod/locales/ckb.js +131 -0
- package/vendor/zod/locales/cs.d.ts +4 -0
- package/vendor/zod/locales/cs.js +114 -0
- package/vendor/zod/locales/da.d.ts +4 -0
- package/vendor/zod/locales/da.js +118 -0
- package/vendor/zod/locales/de.d.ts +4 -0
- package/vendor/zod/locales/de.js +111 -0
- package/vendor/zod/locales/el.d.ts +4 -0
- package/vendor/zod/locales/el.js +110 -0
- package/vendor/zod/locales/en.d.ts +4 -0
- package/vendor/zod/locales/en.js +123 -0
- package/vendor/zod/locales/eo.d.ts +4 -0
- package/vendor/zod/locales/eo.js +112 -0
- package/vendor/zod/locales/es.d.ts +4 -0
- package/vendor/zod/locales/es.js +134 -0
- package/vendor/zod/locales/fa.d.ts +4 -0
- package/vendor/zod/locales/fa.js +117 -0
- package/vendor/zod/locales/fi.d.ts +4 -0
- package/vendor/zod/locales/fi.js +115 -0
- package/vendor/zod/locales/fr-CA.d.ts +4 -0
- package/vendor/zod/locales/fr-CA.js +110 -0
- package/vendor/zod/locales/fr.d.ts +4 -0
- package/vendor/zod/locales/fr.js +127 -0
- package/vendor/zod/locales/gu.d.ts +4 -0
- package/vendor/zod/locales/gu.js +111 -0
- package/vendor/zod/locales/he.d.ts +4 -0
- package/vendor/zod/locales/he.js +219 -0
- package/vendor/zod/locales/hi.d.ts +4 -0
- package/vendor/zod/locales/hi.js +109 -0
- package/vendor/zod/locales/hr.d.ts +4 -0
- package/vendor/zod/locales/hr.js +124 -0
- package/vendor/zod/locales/hu.d.ts +4 -0
- package/vendor/zod/locales/hu.js +111 -0
- package/vendor/zod/locales/hy.d.ts +4 -0
- package/vendor/zod/locales/hy.js +156 -0
- package/vendor/zod/locales/id.d.ts +4 -0
- package/vendor/zod/locales/id.js +109 -0
- package/vendor/zod/locales/index.d.ts +62 -0
- package/vendor/zod/locales/index.js +62 -0
- package/vendor/zod/locales/is.d.ts +4 -0
- package/vendor/zod/locales/is.js +112 -0
- package/vendor/zod/locales/it.d.ts +4 -0
- package/vendor/zod/locales/it.js +111 -0
- package/vendor/zod/locales/ja.d.ts +4 -0
- package/vendor/zod/locales/ja.js +110 -0
- package/vendor/zod/locales/ka.d.ts +4 -0
- package/vendor/zod/locales/ka.js +115 -0
- package/vendor/zod/locales/kh.d.ts +5 -0
- package/vendor/zod/locales/kh.js +5 -0
- package/vendor/zod/locales/km.d.ts +4 -0
- package/vendor/zod/locales/km.js +113 -0
- package/vendor/zod/locales/kn.d.ts +4 -0
- package/vendor/zod/locales/kn.js +114 -0
- package/vendor/zod/locales/ko.d.ts +4 -0
- package/vendor/zod/locales/ko.js +114 -0
- package/vendor/zod/locales/lt.d.ts +4 -0
- package/vendor/zod/locales/lt.js +205 -0
- package/vendor/zod/locales/mk.d.ts +4 -0
- package/vendor/zod/locales/mk.js +112 -0
- package/vendor/zod/locales/ms.d.ts +4 -0
- package/vendor/zod/locales/ms.js +110 -0
- package/vendor/zod/locales/ne.d.ts +4 -0
- package/vendor/zod/locales/ne.js +109 -0
- package/vendor/zod/locales/nl.d.ts +4 -0
- package/vendor/zod/locales/nl.js +113 -0
- package/vendor/zod/locales/nn.d.ts +4 -0
- package/vendor/zod/locales/nn.js +111 -0
- package/vendor/zod/locales/no.d.ts +4 -0
- package/vendor/zod/locales/no.js +111 -0
- package/vendor/zod/locales/ota.d.ts +4 -0
- package/vendor/zod/locales/ota.js +112 -0
- package/vendor/zod/locales/package.json +7 -0
- package/vendor/zod/locales/pl.d.ts +4 -0
- package/vendor/zod/locales/pl.js +112 -0
- package/vendor/zod/locales/ps.d.ts +4 -0
- package/vendor/zod/locales/ps.js +117 -0
- package/vendor/zod/locales/pt-BR.d.ts +4 -0
- package/vendor/zod/locales/pt-BR.js +141 -0
- package/vendor/zod/locales/pt.d.ts +4 -0
- package/vendor/zod/locales/pt.js +140 -0
- package/vendor/zod/locales/ro.d.ts +4 -0
- package/vendor/zod/locales/ro.js +120 -0
- package/vendor/zod/locales/ru.d.ts +4 -0
- package/vendor/zod/locales/ru.js +166 -0
- package/vendor/zod/locales/sk.d.ts +4 -0
- package/vendor/zod/locales/sk.js +114 -0
- package/vendor/zod/locales/sl.d.ts +4 -0
- package/vendor/zod/locales/sl.js +112 -0
- package/vendor/zod/locales/sv.d.ts +4 -0
- package/vendor/zod/locales/sv.js +113 -0
- package/vendor/zod/locales/ta.d.ts +4 -0
- package/vendor/zod/locales/ta.js +113 -0
- package/vendor/zod/locales/th.d.ts +4 -0
- package/vendor/zod/locales/th.js +113 -0
- package/vendor/zod/locales/tk.d.ts +4 -0
- package/vendor/zod/locales/tk.js +105 -0
- package/vendor/zod/locales/tr.d.ts +4 -0
- package/vendor/zod/locales/tr.js +108 -0
- package/vendor/zod/locales/ua.d.ts +5 -0
- package/vendor/zod/locales/ua.js +5 -0
- package/vendor/zod/locales/uk.d.ts +4 -0
- package/vendor/zod/locales/uk.js +111 -0
- package/vendor/zod/locales/ur.d.ts +4 -0
- package/vendor/zod/locales/ur.js +113 -0
- package/vendor/zod/locales/uz.d.ts +4 -0
- package/vendor/zod/locales/uz.js +111 -0
- package/vendor/zod/locales/vi.d.ts +4 -0
- package/vendor/zod/locales/vi.js +111 -0
- package/vendor/zod/locales/yo.d.ts +4 -0
- package/vendor/zod/locales/yo.js +110 -0
- package/vendor/zod/locales/zh-CN.d.ts +4 -0
- package/vendor/zod/locales/zh-CN.js +112 -0
- package/vendor/zod/locales/zh-TW.d.ts +4 -0
- package/vendor/zod/locales/zh-TW.js +110 -0
- package/vendor/zod/mini/checks.d.ts +1 -0
- package/vendor/zod/mini/checks.js +1 -0
- package/vendor/zod/mini/coerce.d.ts +7 -0
- package/vendor/zod/mini/coerce.js +22 -0
- package/vendor/zod/mini/deep-partial.d.ts +14 -0
- package/vendor/zod/mini/deep-partial.js +13 -0
- package/vendor/zod/mini/external.d.ts +16 -0
- package/vendor/zod/mini/external.js +16 -0
- package/vendor/zod/mini/in-out.d.ts +8 -0
- package/vendor/zod/mini/in-out.js +36 -0
- package/vendor/zod/mini/index.d.ts +3 -0
- package/vendor/zod/mini/index.js +3 -0
- package/vendor/zod/mini/iso.d.ts +22 -0
- package/vendor/zod/mini/iso.js +34 -0
- package/vendor/zod/mini/package.json +7 -0
- package/vendor/zod/mini/parse.d.ts +1 -0
- package/vendor/zod/mini/parse.js +1 -0
- package/vendor/zod/mini/schemas.d.ts +475 -0
- package/vendor/zod/mini/schemas.js +987 -0
- package/vendor/zod/package.json +7 -0
- package/vendor/zodexy/dist/esm/index.js +1274 -0
- package/vendor/zodexy/dist/index.js +1088 -0
- package/vendor/zodexy/dist/schema.zodexy.json +1036 -0
- package/dist/fundamentalTypes/nativeEnumType.d.ts +0 -6
- package/dist/fundamentalTypes/nativeEnumType.d.ts.map +0 -1
- package/src/fundamentalTypes/catchType.js +0 -140
- package/src/fundamentalTypes/enumType.js +0 -52
- package/src/fundamentalTypes/literalType.js +0 -81
- package/src/fundamentalTypes/nativeEnumType.js +0 -157
- package/src/fundamentalTypes/neverType.js +0 -49
- package/src/fundamentalTypes/recordType.js +0 -42
- package/src/fundamentalTypes/tupleType.js +0 -39
- package/src/fundamentalTypes/voidType.js +0 -48
- package/vendor/zod/lib/index.mjs +0 -4236
- package/vendor/zodex/dist/esm/dezerialize.d.ts +0 -26
- package/vendor/zodex/dist/esm/dezerialize.js +0 -393
- package/vendor/zodex/dist/esm/index.d.ts +0 -9
- package/vendor/zodex/dist/esm/index.js +0 -4
- package/vendor/zodex/dist/esm/infer.d.ts +0 -29
- package/vendor/zodex/dist/esm/package.json +0 -1
- package/vendor/zodex/dist/esm/types.d.ts +0 -201
- package/vendor/zodex/dist/esm/types.js +0 -13
- package/vendor/zodex/dist/esm/ui.d.ts +0 -23
- package/vendor/zodex/dist/esm/ui.js +0 -10
- package/vendor/zodex/dist/esm/zerialize.d.ts +0 -50
- package/vendor/zodex/dist/esm/zerialize.js +0 -417
- package/vendor/zodex/dist/esm/zod-types.d.ts +0 -11
- /package/vendor/{zodex/dist/esm/infer.js → zod/core/json-schema.js} +0 -0
- /package/vendor/{zodex/dist/esm/zod-types.js → zod/core/standard-schema.js} +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import {jml} from '../vendor-imports.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import('../formats/schema.js').ZodexSchema} ZodexSchema
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Metadata keys with dedicated handling; everything else on `meta` (other than
|
|
9
|
+
* the reserved `jsoe` directive namespace) is treated as custom metadata.
|
|
10
|
+
* @type {Set<string>}
|
|
11
|
+
*/
|
|
12
|
+
const RESERVED = new Set(['title', 'description', 'id', 'deprecated']);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {unknown} val
|
|
16
|
+
* @returns {string}
|
|
17
|
+
*/
|
|
18
|
+
function stringifyMetaValue (val) {
|
|
19
|
+
return typeof val === 'string' ? val : JSON.stringify(val);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Normalize the metadata carried on a serialized (zerialized) schema object,
|
|
24
|
+
* merging the legacy top-level `description` into the `meta` bag and applying
|
|
25
|
+
* jsoe's precedence rules.
|
|
26
|
+
*
|
|
27
|
+
* Precedence for the visible label is `meta.title` then `meta.description`
|
|
28
|
+
* then the top-level `description` (the last kept only while `.description`
|
|
29
|
+
* directly on a schema remains supported). `meta.description` is treated as
|
|
30
|
+
* tooltip-only long-form text only when `meta.title` is also present;
|
|
31
|
+
* otherwise it is already serving as the label.
|
|
32
|
+
* @param {ZodexSchema} [schemaObject]
|
|
33
|
+
* @returns {{
|
|
34
|
+
* label: string|undefined,
|
|
35
|
+
* longText: string|undefined,
|
|
36
|
+
* id: string|undefined,
|
|
37
|
+
* deprecated: boolean|string|undefined,
|
|
38
|
+
* custom: [string, unknown][],
|
|
39
|
+
* jsoe: {[key: string]: unknown}|undefined,
|
|
40
|
+
* rows: [string, string][],
|
|
41
|
+
* hasAny: boolean
|
|
42
|
+
* }}
|
|
43
|
+
*/
|
|
44
|
+
export function resolveSchemaMeta (schemaObject) {
|
|
45
|
+
const obj = schemaObject && typeof schemaObject === 'object'
|
|
46
|
+
? /** @type {{[key: string]: any}} */ (schemaObject)
|
|
47
|
+
: undefined;
|
|
48
|
+
const metaObj = obj && obj.meta && typeof obj.meta === 'object'
|
|
49
|
+
? /** @type {{[key: string]: any}} */ (obj.meta)
|
|
50
|
+
: undefined;
|
|
51
|
+
|
|
52
|
+
const topDescription = typeof obj?.description === 'string'
|
|
53
|
+
? obj.description
|
|
54
|
+
: undefined;
|
|
55
|
+
const metaTitle = typeof metaObj?.title === 'string'
|
|
56
|
+
? metaObj.title
|
|
57
|
+
: undefined;
|
|
58
|
+
const metaDescription = typeof metaObj?.description === 'string'
|
|
59
|
+
? metaObj.description
|
|
60
|
+
: undefined;
|
|
61
|
+
const id = typeof metaObj?.id === 'string' ? metaObj.id : undefined;
|
|
62
|
+
const deprecated = typeof metaObj?.deprecated === 'boolean' ||
|
|
63
|
+
typeof metaObj?.deprecated === 'string'
|
|
64
|
+
? metaObj.deprecated
|
|
65
|
+
: undefined;
|
|
66
|
+
const jsoe = metaObj && metaObj.jsoe && typeof metaObj.jsoe === 'object'
|
|
67
|
+
? /** @type {{[key: string]: unknown}} */ (metaObj.jsoe)
|
|
68
|
+
: undefined;
|
|
69
|
+
|
|
70
|
+
/** @type {[string, unknown][]} */
|
|
71
|
+
const custom = metaObj
|
|
72
|
+
? Object.entries(metaObj).filter(([key]) => {
|
|
73
|
+
return !RESERVED.has(key) && key !== 'jsoe';
|
|
74
|
+
})
|
|
75
|
+
: [];
|
|
76
|
+
|
|
77
|
+
const label = metaTitle ?? metaDescription ?? topDescription;
|
|
78
|
+
const longText = metaTitle ? metaDescription : undefined;
|
|
79
|
+
|
|
80
|
+
/** @type {[string, string][]} */
|
|
81
|
+
const rows = [];
|
|
82
|
+
if (metaTitle) {
|
|
83
|
+
rows.push(['Title', metaTitle]);
|
|
84
|
+
}
|
|
85
|
+
// Keep the table self-describing even when the description doubles as the
|
|
86
|
+
// label (no `meta.title`).
|
|
87
|
+
const rowDescription = metaDescription ?? topDescription;
|
|
88
|
+
if (rowDescription) {
|
|
89
|
+
rows.push(['Description', rowDescription]);
|
|
90
|
+
}
|
|
91
|
+
if (id !== undefined) {
|
|
92
|
+
rows.push(['ID', id]);
|
|
93
|
+
}
|
|
94
|
+
if (deprecated !== undefined && deprecated !== false) {
|
|
95
|
+
rows.push([
|
|
96
|
+
'Deprecated', deprecated === true ? 'yes' : String(deprecated)
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
for (const [key, val] of custom) {
|
|
100
|
+
rows.push([key, stringifyMetaValue(val)]);
|
|
101
|
+
}
|
|
102
|
+
if (jsoe) {
|
|
103
|
+
for (const [key, val] of Object.entries(jsoe)) {
|
|
104
|
+
rows.push([`jsoe.${key}`, stringifyMetaValue(val)]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
label, longText, id, deprecated, custom, jsoe, rows,
|
|
110
|
+
hasAny: rows.length > 0
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Terse call-site sugar for the visible label of a (sub)schema. Returns
|
|
116
|
+
* `undefined` when the schema carries no usable metadata, so callers keep
|
|
117
|
+
* their own `?? fallback`.
|
|
118
|
+
* @param {ZodexSchema} [schemaObject]
|
|
119
|
+
* @returns {string|undefined}
|
|
120
|
+
*/
|
|
121
|
+
export function schemaLabel (schemaObject) {
|
|
122
|
+
return resolveSchemaMeta(schemaObject).label;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Whether a (sub)schema is marked deprecated via `meta.deprecated`.
|
|
127
|
+
* @param {ZodexSchema} [schemaObject]
|
|
128
|
+
* @returns {boolean}
|
|
129
|
+
*/
|
|
130
|
+
export function isDeprecated (schemaObject) {
|
|
131
|
+
const {deprecated} = resolveSchemaMeta(schemaObject);
|
|
132
|
+
return deprecated !== undefined && deprecated !== false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* ` schema-deprecated` (leading space) when the schema is deprecated, else `''`
|
|
137
|
+
* — for appending to an existing `class` string.
|
|
138
|
+
* @param {ZodexSchema} [schemaObject]
|
|
139
|
+
* @returns {string}
|
|
140
|
+
*/
|
|
141
|
+
export function deprecatedClassSuffix (schemaObject) {
|
|
142
|
+
return isDeprecated(schemaObject) ? ' schema-deprecated' : '';
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The last element child of `el` that is not the appended schema-metadata
|
|
147
|
+
* affordance. Use this in place of `el.lastElementChild` wherever a type root
|
|
148
|
+
* is walked from its end, since `appendSchemaMeta` adds a trailing
|
|
149
|
+
* `span.schema-meta`.
|
|
150
|
+
* @param {Element} el
|
|
151
|
+
* @returns {Element|null}
|
|
152
|
+
*/
|
|
153
|
+
export function lastTypeChild (el) {
|
|
154
|
+
let child = el.lastElementChild;
|
|
155
|
+
while (child && child.classList.contains('schema-meta')) {
|
|
156
|
+
child = child.previousElementSibling;
|
|
157
|
+
}
|
|
158
|
+
return child;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @param {[string, string][]} rows
|
|
163
|
+
* @returns {string}
|
|
164
|
+
*/
|
|
165
|
+
export function metaTooltipText (rows) {
|
|
166
|
+
return rows.map(([key, val]) => {
|
|
167
|
+
return `${key}: ${val}`;
|
|
168
|
+
}).join('\n');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* @param {[string, string][]} rows
|
|
173
|
+
* @returns {import('jamilih').JamilihArray}
|
|
174
|
+
*/
|
|
175
|
+
export function metaTable (rows) {
|
|
176
|
+
return ['table', {class: 'schema-meta-table'}, [
|
|
177
|
+
['tbody', rows.map(([key, val]) => {
|
|
178
|
+
return ['tr', [['th', [key]], ['td', [val]]]];
|
|
179
|
+
})]
|
|
180
|
+
]];
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Build the read-only metadata affordance (an info toggle that reveals a
|
|
185
|
+
* key/value table) and append it to a type's root element. A no-op when the
|
|
186
|
+
* schema carries no surfaced metadata.
|
|
187
|
+
*
|
|
188
|
+
* The table is created lazily on first toggle, so an untouched affordance adds
|
|
189
|
+
* no text to the root (the marker glyph comes from CSS, not a text node),
|
|
190
|
+
* keeping the DOM stable for tests and assistive tech.
|
|
191
|
+
*
|
|
192
|
+
* Rendered in both view and edit mode; it never mutates the schema (jsoe edits
|
|
193
|
+
* data conforming to a schema, not the schema guiding the session).
|
|
194
|
+
* @param {HTMLElement} root
|
|
195
|
+
* @param {ZodexSchema} [schemaObject]
|
|
196
|
+
* @returns {void}
|
|
197
|
+
*/
|
|
198
|
+
export function appendSchemaMeta (root, schemaObject) {
|
|
199
|
+
const meta = resolveSchemaMeta(schemaObject);
|
|
200
|
+
if (!meta.hasAny) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (meta.deprecated !== undefined && meta.deprecated !== false) {
|
|
204
|
+
root.classList.add('schema-deprecated');
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* @param {Event} e
|
|
208
|
+
* @returns {void}
|
|
209
|
+
*/
|
|
210
|
+
const onToggle = (e) => {
|
|
211
|
+
e.preventDefault();
|
|
212
|
+
const toggle = /** @type {HTMLElement} */ (
|
|
213
|
+
/** @type {HTMLElement} */ (e.target).closest('.schema-meta-toggle')
|
|
214
|
+
);
|
|
215
|
+
let tbl = /** @type {HTMLElement|null} */ (toggle.nextElementSibling);
|
|
216
|
+
const show = !tbl || tbl.hidden;
|
|
217
|
+
if (!tbl) {
|
|
218
|
+
tbl = /** @type {HTMLElement} */ (jml(...metaTable(meta.rows)));
|
|
219
|
+
/** @type {HTMLElement} */ (toggle.parentElement).append(tbl);
|
|
220
|
+
}
|
|
221
|
+
tbl.hidden = !show;
|
|
222
|
+
toggle.setAttribute('aria-expanded', String(show));
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* @param {KeyboardEvent} e
|
|
227
|
+
* @returns {void}
|
|
228
|
+
*/
|
|
229
|
+
const onKeydown = (e) => {
|
|
230
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
231
|
+
onToggle(e);
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// A `span[role=button]` rather than a real `<button>` so bare `getInput`
|
|
236
|
+
// selectors (`$e(root, 'button')` in `arrayType`/`noneditable`) never
|
|
237
|
+
// mistake the toggle for the type's own form control.
|
|
238
|
+
const affordanceSpec = /** @type {import('jamilih').JamilihArray} */ ([
|
|
239
|
+
'span', {class: 'schema-meta'}, [
|
|
240
|
+
['span', {
|
|
241
|
+
class: 'schema-meta-toggle',
|
|
242
|
+
role: 'button',
|
|
243
|
+
tabindex: '0',
|
|
244
|
+
'aria-expanded': 'false',
|
|
245
|
+
'aria-label': 'Schema metadata',
|
|
246
|
+
title: metaTooltipText(meta.rows),
|
|
247
|
+
$on: {click: onToggle, keydown: onKeydown}
|
|
248
|
+
}]
|
|
249
|
+
]
|
|
250
|
+
]);
|
|
251
|
+
// Appended last (not prepended): tests and internal code select the type's
|
|
252
|
+
// label via `root > span` / `root > *:first-child`, so the affordance must
|
|
253
|
+
// not become the first child. The few `arrayType` helpers that walk
|
|
254
|
+
// `root.lastElementChild` use `lastTypeChild()` to skip a trailing
|
|
255
|
+
// `.schema-meta`.
|
|
256
|
+
root.append(/** @type {HTMLElement} */ (jml(...affordanceSpec)));
|
|
257
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* eslint-disable promise/avoid-new -- Primitive timing helper */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Resolves after a macrotask, letting the browser flush pending DOM work
|
|
5
|
+
* scheduled with `setTimeout(fn, 0)` (element insertion, layout-dependent
|
|
6
|
+
* building, etc.). Used to replace bare `setTimeout` deferrals with an
|
|
7
|
+
* awaitable form so callers can know when the deferred work has completed.
|
|
8
|
+
* @returns {Promise<void>}
|
|
9
|
+
*/
|
|
10
|
+
export const tick = () => new Promise((resolve) => {
|
|
11
|
+
setTimeout(resolve, 0);
|
|
12
|
+
});
|
package/src/utils/types.js
CHANGED
|
@@ -4,3 +4,22 @@
|
|
|
4
4
|
export const isNullish = (obj) => {
|
|
5
5
|
return obj === null || typeof obj === 'undefined';
|
|
6
6
|
};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Zodex schema types which jsoe expands into a flat set of candidate leaf
|
|
10
|
+
* types and drives from a single type-choices control: `union` (anyOf), `xor`
|
|
11
|
+
* (exactly one), and `discriminatedUnion` (keyed by a literal field). They
|
|
12
|
+
* share `options` and, downstream, the same option-indexing logic.
|
|
13
|
+
* @type {readonly ['union', 'xor', 'discriminatedUnion']}
|
|
14
|
+
*/
|
|
15
|
+
const unionLikeTypes = ['union', 'xor', 'discriminatedUnion'];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {string|undefined} type
|
|
19
|
+
* @returns {boolean}
|
|
20
|
+
*/
|
|
21
|
+
export const isUnionLike = (type) => {
|
|
22
|
+
return unionLikeTypes.includes(
|
|
23
|
+
/** @type {typeof unionLikeTypes[number]} */ (type)
|
|
24
|
+
);
|
|
25
|
+
};
|
package/src/vendor-imports.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
/* eslint-disable unicorn/no-barrel-files -- Convenient to toggle */
|
|
2
|
+
|
|
1
3
|
export {jml, body, nbsp, $} from 'jamilih';
|
|
2
|
-
// export {jml, body, nbsp, $} from '../node_modules/jamilih/dist/jml
|
|
4
|
+
// export {jml, body, nbsp, $} from '../node_modules/jamilih/dist/jml.mjs';
|
|
3
5
|
|
|
4
6
|
export {
|
|
5
|
-
getJSONType, Typeson, unescapeKeyPathComponent,
|
|
7
|
+
getJSONType, Typeson, unescapeKeyPathComponent,
|
|
8
|
+
structuredCloningForStorage,
|
|
6
9
|
resurrectable, toStringTag, hasConstructorOf, symbol, promise
|
|
7
10
|
} from 'typeson-registry';
|
|
8
11
|
// } from '../node_modules/typeson-registry/dist/index.js';
|
|
@@ -11,3 +14,8 @@ export {
|
|
|
11
14
|
parse as parseAcorn
|
|
12
15
|
} from 'acorn';
|
|
13
16
|
// } from '../node_modules/acorn/dist/acorn.mjs';
|
|
17
|
+
|
|
18
|
+
export {default as mimeStandardTypes} from 'mime/types/standard.js';
|
|
19
|
+
export {default as mimeOtherTypes} from 'mime/types/other.js';
|
|
20
|
+
// } from '../node_modules/mime/dist/types/standard.js';
|
|
21
|
+
// } from '../node_modules/mime/dist/types/other.js';
|
package/tsconfig.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"lib": ["es2023", "DOM"],
|
|
4
|
+
"skipLibCheck": true,
|
|
4
5
|
"moduleResolution": "nodenext",
|
|
5
6
|
"module": "NodeNext",
|
|
6
7
|
"allowJs": true,
|
|
@@ -11,6 +12,7 @@
|
|
|
11
12
|
"emitDeclarationOnly": true,
|
|
12
13
|
"strict": true,
|
|
13
14
|
"target": "es2020",
|
|
15
|
+
"rootDir": "src",
|
|
14
16
|
"outDir": "dist"
|
|
15
17
|
},
|
|
16
18
|
"include": ["src/**/*.js", "typings/sceditor.d.ts"],
|
|
@@ -169,7 +169,7 @@ export interface FunctionDeclaration extends Function {
|
|
|
169
169
|
export interface VariableDeclaration extends Node {
|
|
170
170
|
type: "VariableDeclaration"
|
|
171
171
|
declarations: Array<VariableDeclarator>
|
|
172
|
-
kind: "var" | "let" | "const"
|
|
172
|
+
kind: "var" | "let" | "const" | "using" | "await using"
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
export interface VariableDeclarator extends Node {
|
|
@@ -403,6 +403,7 @@ export interface ImportDeclaration extends Node {
|
|
|
403
403
|
type: "ImportDeclaration"
|
|
404
404
|
specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>
|
|
405
405
|
source: Literal
|
|
406
|
+
attributes: Array<ImportAttribute>
|
|
406
407
|
}
|
|
407
408
|
|
|
408
409
|
export interface ImportSpecifier extends Node {
|
|
@@ -421,11 +422,18 @@ export interface ImportNamespaceSpecifier extends Node {
|
|
|
421
422
|
local: Identifier
|
|
422
423
|
}
|
|
423
424
|
|
|
425
|
+
export interface ImportAttribute extends Node {
|
|
426
|
+
type: "ImportAttribute"
|
|
427
|
+
key: Identifier | Literal
|
|
428
|
+
value: Literal
|
|
429
|
+
}
|
|
430
|
+
|
|
424
431
|
export interface ExportNamedDeclaration extends Node {
|
|
425
432
|
type: "ExportNamedDeclaration"
|
|
426
433
|
declaration?: Declaration | null
|
|
427
434
|
specifiers: Array<ExportSpecifier>
|
|
428
435
|
source?: Literal | null
|
|
436
|
+
attributes: Array<ImportAttribute>
|
|
429
437
|
}
|
|
430
438
|
|
|
431
439
|
export interface ExportSpecifier extends Node {
|
|
@@ -454,6 +462,7 @@ export interface ExportAllDeclaration extends Node {
|
|
|
454
462
|
type: "ExportAllDeclaration"
|
|
455
463
|
source: Literal
|
|
456
464
|
exported?: Identifier | Literal | null
|
|
465
|
+
attributes: Array<ImportAttribute>
|
|
457
466
|
}
|
|
458
467
|
|
|
459
468
|
export interface AwaitExpression extends Node {
|
|
@@ -469,6 +478,7 @@ export interface ChainExpression extends Node {
|
|
|
469
478
|
export interface ImportExpression extends Node {
|
|
470
479
|
type: "ImportExpression"
|
|
471
480
|
source: Expression
|
|
481
|
+
options: Expression | null
|
|
472
482
|
}
|
|
473
483
|
|
|
474
484
|
export interface ParenthesizedExpression extends Node {
|
|
@@ -562,7 +572,24 @@ export type ModuleDeclaration =
|
|
|
562
572
|
| ExportDefaultDeclaration
|
|
563
573
|
| ExportAllDeclaration
|
|
564
574
|
|
|
565
|
-
|
|
575
|
+
/**
|
|
576
|
+
* This interface is only used for defining {@link AnyNode}.
|
|
577
|
+
* It exists so that it can be extended by plugins:
|
|
578
|
+
*
|
|
579
|
+
* @example
|
|
580
|
+
* ```typescript
|
|
581
|
+
* declare module 'acorn' {
|
|
582
|
+
* interface NodeTypes {
|
|
583
|
+
* pluginName: FirstNode | SecondNode | ThirdNode | ... | LastNode
|
|
584
|
+
* }
|
|
585
|
+
* }
|
|
586
|
+
* ```
|
|
587
|
+
*/
|
|
588
|
+
interface NodeTypes {
|
|
589
|
+
core: Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
export type AnyNode = NodeTypes[keyof NodeTypes]
|
|
566
593
|
|
|
567
594
|
export function parse(input: string, options: Options): Program
|
|
568
595
|
|
|
@@ -573,7 +600,7 @@ export function tokenizer(input: string, options: Options): {
|
|
|
573
600
|
[Symbol.iterator](): Iterator<Token>
|
|
574
601
|
}
|
|
575
602
|
|
|
576
|
-
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | "latest"
|
|
603
|
+
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | "latest"
|
|
577
604
|
|
|
578
605
|
export interface Options {
|
|
579
606
|
/**
|
|
@@ -587,10 +614,16 @@ export interface Options {
|
|
|
587
614
|
|
|
588
615
|
/**
|
|
589
616
|
* `sourceType` indicates the mode the code should be parsed in.
|
|
590
|
-
* Can be either `"script"` or `"
|
|
617
|
+
* Can be either `"script"`, `"module"` or `"commonjs"`. This influences global
|
|
591
618
|
* strict mode and parsing of `import` and `export` declarations.
|
|
592
619
|
*/
|
|
593
|
-
sourceType?: "script" | "module"
|
|
620
|
+
sourceType?: "script" | "module" | "commonjs"
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* When set to true, enable strict parsing mode even if `sourceType`
|
|
624
|
+
* is `"script"`.
|
|
625
|
+
*/
|
|
626
|
+
strict?: boolean
|
|
594
627
|
|
|
595
628
|
/**
|
|
596
629
|
* a callback that will be called when a semicolon is automatically inserted.
|
|
@@ -660,6 +693,14 @@ export interface Options {
|
|
|
660
693
|
*/
|
|
661
694
|
locations?: boolean
|
|
662
695
|
|
|
696
|
+
/**
|
|
697
|
+
* Pass an optional `{line, column}` object to use for the start of
|
|
698
|
+
* the parse. This is mostly useful when using `parseExpressionAt`
|
|
699
|
+
* with `locations: true`, to prevent the parser from having to
|
|
700
|
+
* determine the line position at the start position.
|
|
701
|
+
*/
|
|
702
|
+
startLocation?: {line: number, column: number}
|
|
703
|
+
|
|
663
704
|
/**
|
|
664
705
|
* a callback that will cause Acorn to call that export function with object in the same
|
|
665
706
|
* format as tokens returned from `tokenizer().getToken()`. Note
|
|
@@ -169,7 +169,7 @@ export interface FunctionDeclaration extends Function {
|
|
|
169
169
|
export interface VariableDeclaration extends Node {
|
|
170
170
|
type: "VariableDeclaration"
|
|
171
171
|
declarations: Array<VariableDeclarator>
|
|
172
|
-
kind: "var" | "let" | "const"
|
|
172
|
+
kind: "var" | "let" | "const" | "using" | "await using"
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
export interface VariableDeclarator extends Node {
|
|
@@ -403,6 +403,7 @@ export interface ImportDeclaration extends Node {
|
|
|
403
403
|
type: "ImportDeclaration"
|
|
404
404
|
specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>
|
|
405
405
|
source: Literal
|
|
406
|
+
attributes: Array<ImportAttribute>
|
|
406
407
|
}
|
|
407
408
|
|
|
408
409
|
export interface ImportSpecifier extends Node {
|
|
@@ -421,11 +422,18 @@ export interface ImportNamespaceSpecifier extends Node {
|
|
|
421
422
|
local: Identifier
|
|
422
423
|
}
|
|
423
424
|
|
|
425
|
+
export interface ImportAttribute extends Node {
|
|
426
|
+
type: "ImportAttribute"
|
|
427
|
+
key: Identifier | Literal
|
|
428
|
+
value: Literal
|
|
429
|
+
}
|
|
430
|
+
|
|
424
431
|
export interface ExportNamedDeclaration extends Node {
|
|
425
432
|
type: "ExportNamedDeclaration"
|
|
426
433
|
declaration?: Declaration | null
|
|
427
434
|
specifiers: Array<ExportSpecifier>
|
|
428
435
|
source?: Literal | null
|
|
436
|
+
attributes: Array<ImportAttribute>
|
|
429
437
|
}
|
|
430
438
|
|
|
431
439
|
export interface ExportSpecifier extends Node {
|
|
@@ -454,6 +462,7 @@ export interface ExportAllDeclaration extends Node {
|
|
|
454
462
|
type: "ExportAllDeclaration"
|
|
455
463
|
source: Literal
|
|
456
464
|
exported?: Identifier | Literal | null
|
|
465
|
+
attributes: Array<ImportAttribute>
|
|
457
466
|
}
|
|
458
467
|
|
|
459
468
|
export interface AwaitExpression extends Node {
|
|
@@ -469,6 +478,7 @@ export interface ChainExpression extends Node {
|
|
|
469
478
|
export interface ImportExpression extends Node {
|
|
470
479
|
type: "ImportExpression"
|
|
471
480
|
source: Expression
|
|
481
|
+
options: Expression | null
|
|
472
482
|
}
|
|
473
483
|
|
|
474
484
|
export interface ParenthesizedExpression extends Node {
|
|
@@ -562,7 +572,24 @@ export type ModuleDeclaration =
|
|
|
562
572
|
| ExportDefaultDeclaration
|
|
563
573
|
| ExportAllDeclaration
|
|
564
574
|
|
|
565
|
-
|
|
575
|
+
/**
|
|
576
|
+
* This interface is only used for defining {@link AnyNode}.
|
|
577
|
+
* It exists so that it can be extended by plugins:
|
|
578
|
+
*
|
|
579
|
+
* @example
|
|
580
|
+
* ```typescript
|
|
581
|
+
* declare module 'acorn' {
|
|
582
|
+
* interface NodeTypes {
|
|
583
|
+
* pluginName: FirstNode | SecondNode | ThirdNode | ... | LastNode
|
|
584
|
+
* }
|
|
585
|
+
* }
|
|
586
|
+
* ```
|
|
587
|
+
*/
|
|
588
|
+
interface NodeTypes {
|
|
589
|
+
core: Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
export type AnyNode = NodeTypes[keyof NodeTypes]
|
|
566
593
|
|
|
567
594
|
export function parse(input: string, options: Options): Program
|
|
568
595
|
|
|
@@ -573,7 +600,7 @@ export function tokenizer(input: string, options: Options): {
|
|
|
573
600
|
[Symbol.iterator](): Iterator<Token>
|
|
574
601
|
}
|
|
575
602
|
|
|
576
|
-
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | "latest"
|
|
603
|
+
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | "latest"
|
|
577
604
|
|
|
578
605
|
export interface Options {
|
|
579
606
|
/**
|
|
@@ -587,10 +614,16 @@ export interface Options {
|
|
|
587
614
|
|
|
588
615
|
/**
|
|
589
616
|
* `sourceType` indicates the mode the code should be parsed in.
|
|
590
|
-
* Can be either `"script"` or `"
|
|
617
|
+
* Can be either `"script"`, `"module"` or `"commonjs"`. This influences global
|
|
591
618
|
* strict mode and parsing of `import` and `export` declarations.
|
|
592
619
|
*/
|
|
593
|
-
sourceType?: "script" | "module"
|
|
620
|
+
sourceType?: "script" | "module" | "commonjs"
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* When set to true, enable strict parsing mode even if `sourceType`
|
|
624
|
+
* is `"script"`.
|
|
625
|
+
*/
|
|
626
|
+
strict?: boolean
|
|
594
627
|
|
|
595
628
|
/**
|
|
596
629
|
* a callback that will be called when a semicolon is automatically inserted.
|
|
@@ -660,6 +693,14 @@ export interface Options {
|
|
|
660
693
|
*/
|
|
661
694
|
locations?: boolean
|
|
662
695
|
|
|
696
|
+
/**
|
|
697
|
+
* Pass an optional `{line, column}` object to use for the start of
|
|
698
|
+
* the parse. This is mostly useful when using `parseExpressionAt`
|
|
699
|
+
* with `locations: true`, to prevent the parser from having to
|
|
700
|
+
* determine the line position at the start position.
|
|
701
|
+
*/
|
|
702
|
+
startLocation?: {line: number, column: number}
|
|
703
|
+
|
|
663
704
|
/**
|
|
664
705
|
* a callback that will cause Acorn to call that export function with object in the same
|
|
665
706
|
* format as tokens returned from `tokenizer().getToken()`. Note
|