@blade-hq/agent-client 1.1.1 → 1.1.2
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/README.md +48 -25
- package/dist/blade-client.d.ts +2 -14
- package/dist/index.d.ts +5 -2
- package/dist/index.js +212 -106
- package/dist/index.js.map +1 -1
- package/dist/resources/models.d.ts +15 -0
- package/dist/resources/sessions.d.ts +8 -1
- package/dist/session/agent-session.d.ts +10 -0
- package/dist/session/definition.d.ts +49 -0
- package/dist/shared/projection/helpers.d.ts +1 -1
- package/dist/types/rest.d.ts +378 -10
- package/dist/version.d.ts +4 -42
- package/node_modules/@ark/schema/LICENSE +7 -0
- package/node_modules/@ark/schema/README.md +18 -0
- package/node_modules/@ark/schema/out/config.d.ts +58 -0
- package/node_modules/@ark/schema/out/config.js +95 -0
- package/node_modules/@ark/schema/out/constraint.d.ts +67 -0
- package/node_modules/@ark/schema/out/constraint.js +136 -0
- package/node_modules/@ark/schema/out/generic.d.ts +73 -0
- package/node_modules/@ark/schema/out/generic.js +76 -0
- package/node_modules/@ark/schema/out/index.d.ts +47 -0
- package/node_modules/@ark/schema/out/index.js +47 -0
- package/node_modules/@ark/schema/out/intrinsic.d.ts +24 -0
- package/node_modules/@ark/schema/out/intrinsic.js +56 -0
- package/node_modules/@ark/schema/out/kinds.d.ts +73 -0
- package/node_modules/@ark/schema/out/kinds.js +71 -0
- package/node_modules/@ark/schema/out/module.d.ts +24 -0
- package/node_modules/@ark/schema/out/module.js +15 -0
- package/node_modules/@ark/schema/out/node.d.ts +154 -0
- package/node_modules/@ark/schema/out/node.js +438 -0
- package/node_modules/@ark/schema/out/parse.d.ts +52 -0
- package/node_modules/@ark/schema/out/parse.js +215 -0
- package/node_modules/@ark/schema/out/predicate.d.ts +52 -0
- package/node_modules/@ark/schema/out/predicate.js +63 -0
- package/node_modules/@ark/schema/out/refinements/after.d.ts +41 -0
- package/node_modules/@ark/schema/out/refinements/after.js +35 -0
- package/node_modules/@ark/schema/out/refinements/before.d.ts +41 -0
- package/node_modules/@ark/schema/out/refinements/before.js +41 -0
- package/node_modules/@ark/schema/out/refinements/divisor.d.ts +43 -0
- package/node_modules/@ark/schema/out/refinements/divisor.js +58 -0
- package/node_modules/@ark/schema/out/refinements/exactLength.d.ts +49 -0
- package/node_modules/@ark/schema/out/refinements/exactLength.js +55 -0
- package/node_modules/@ark/schema/out/refinements/kinds.d.ts +34 -0
- package/node_modules/@ark/schema/out/refinements/kinds.js +25 -0
- package/node_modules/@ark/schema/out/refinements/max.d.ts +37 -0
- package/node_modules/@ark/schema/out/refinements/max.js +45 -0
- package/node_modules/@ark/schema/out/refinements/maxLength.d.ts +40 -0
- package/node_modules/@ark/schema/out/refinements/maxLength.js +49 -0
- package/node_modules/@ark/schema/out/refinements/min.d.ts +37 -0
- package/node_modules/@ark/schema/out/refinements/min.js +39 -0
- package/node_modules/@ark/schema/out/refinements/minLength.d.ts +40 -0
- package/node_modules/@ark/schema/out/refinements/minLength.js +47 -0
- package/node_modules/@ark/schema/out/refinements/pattern.d.ts +43 -0
- package/node_modules/@ark/schema/out/refinements/pattern.js +52 -0
- package/node_modules/@ark/schema/out/refinements/range.d.ts +106 -0
- package/node_modules/@ark/schema/out/refinements/range.js +103 -0
- package/node_modules/@ark/schema/out/roots/alias.d.ts +45 -0
- package/node_modules/@ark/schema/out/roots/alias.js +115 -0
- package/node_modules/@ark/schema/out/roots/basis.d.ts +12 -0
- package/node_modules/@ark/schema/out/roots/basis.js +26 -0
- package/node_modules/@ark/schema/out/roots/domain.d.ts +45 -0
- package/node_modules/@ark/schema/out/roots/domain.js +72 -0
- package/node_modules/@ark/schema/out/roots/intersection.d.ts +98 -0
- package/node_modules/@ark/schema/out/roots/intersection.js +292 -0
- package/node_modules/@ark/schema/out/roots/morph.d.ts +62 -0
- package/node_modules/@ark/schema/out/roots/morph.js +159 -0
- package/node_modules/@ark/schema/out/roots/proto.d.ts +53 -0
- package/node_modules/@ark/schema/out/roots/proto.js +101 -0
- package/node_modules/@ark/schema/out/roots/root.d.ts +145 -0
- package/node_modules/@ark/schema/out/roots/root.js +455 -0
- package/node_modules/@ark/schema/out/roots/union.d.ts +99 -0
- package/node_modules/@ark/schema/out/roots/union.js +718 -0
- package/node_modules/@ark/schema/out/roots/unit.d.ts +41 -0
- package/node_modules/@ark/schema/out/roots/unit.js +86 -0
- package/node_modules/@ark/schema/out/roots/utils.d.ts +3 -0
- package/node_modules/@ark/schema/out/roots/utils.js +6 -0
- package/node_modules/@ark/schema/out/scope.d.ts +158 -0
- package/node_modules/@ark/schema/out/scope.js +481 -0
- package/node_modules/@ark/schema/out/shared/compile.d.ts +62 -0
- package/node_modules/@ark/schema/out/shared/compile.js +145 -0
- package/node_modules/@ark/schema/out/shared/declare.d.ts +80 -0
- package/node_modules/@ark/schema/out/shared/declare.js +1 -0
- package/node_modules/@ark/schema/out/shared/disjoint.d.ts +41 -0
- package/node_modules/@ark/schema/out/shared/disjoint.js +65 -0
- package/node_modules/@ark/schema/out/shared/errors.d.ts +145 -0
- package/node_modules/@ark/schema/out/shared/errors.js +252 -0
- package/node_modules/@ark/schema/out/shared/implement.d.ts +151 -0
- package/node_modules/@ark/schema/out/shared/implement.js +98 -0
- package/node_modules/@ark/schema/out/shared/intersections.d.ts +10 -0
- package/node_modules/@ark/schema/out/shared/intersections.js +132 -0
- package/node_modules/@ark/schema/out/shared/jsonSchema.d.ts +93 -0
- package/node_modules/@ark/schema/out/shared/jsonSchema.js +1 -0
- package/node_modules/@ark/schema/out/shared/registry.d.ts +7 -0
- package/node_modules/@ark/schema/out/shared/registry.js +10 -0
- package/node_modules/@ark/schema/out/shared/standardSchema.d.ts +122 -0
- package/node_modules/@ark/schema/out/shared/standardSchema.js +2 -0
- package/node_modules/@ark/schema/out/shared/toJsonSchema.d.ts +139 -0
- package/node_modules/@ark/schema/out/shared/toJsonSchema.js +40 -0
- package/node_modules/@ark/schema/out/shared/traversal.d.ts +117 -0
- package/node_modules/@ark/schema/out/shared/traversal.js +226 -0
- package/node_modules/@ark/schema/out/shared/utils.d.ts +34 -0
- package/node_modules/@ark/schema/out/shared/utils.js +8 -0
- package/node_modules/@ark/schema/out/structure/index.d.ts +46 -0
- package/node_modules/@ark/schema/out/structure/index.js +89 -0
- package/node_modules/@ark/schema/out/structure/optional.d.ts +49 -0
- package/node_modules/@ark/schema/out/structure/optional.js +127 -0
- package/node_modules/@ark/schema/out/structure/prop.d.ts +45 -0
- package/node_modules/@ark/schema/out/structure/prop.js +85 -0
- package/node_modules/@ark/schema/out/structure/required.d.ts +39 -0
- package/node_modules/@ark/schema/out/structure/required.js +38 -0
- package/node_modules/@ark/schema/out/structure/sequence.d.ts +110 -0
- package/node_modules/@ark/schema/out/structure/sequence.js +521 -0
- package/node_modules/@ark/schema/out/structure/shared.d.ts +4 -0
- package/node_modules/@ark/schema/out/structure/shared.js +4 -0
- package/node_modules/@ark/schema/out/structure/structure.d.ts +113 -0
- package/node_modules/@ark/schema/out/structure/structure.js +747 -0
- package/node_modules/@ark/schema/package.json +51 -0
- package/node_modules/@ark/util/LICENSE +7 -0
- package/node_modules/@ark/util/out/arrays.d.ts +166 -0
- package/node_modules/@ark/util/out/arrays.js +147 -0
- package/node_modules/@ark/util/out/clone.d.ts +4 -0
- package/node_modules/@ark/util/out/clone.js +33 -0
- package/node_modules/@ark/util/out/describe.d.ts +25 -0
- package/node_modules/@ark/util/out/describe.js +1 -0
- package/node_modules/@ark/util/out/domain.d.ts +48 -0
- package/node_modules/@ark/util/out/domain.js +25 -0
- package/node_modules/@ark/util/out/errors.d.ts +29 -0
- package/node_modules/@ark/util/out/errors.js +17 -0
- package/node_modules/@ark/util/out/flatMorph.d.ts +41 -0
- package/node_modules/@ark/util/out/flatMorph.js +24 -0
- package/node_modules/@ark/util/out/functions.d.ts +33 -0
- package/node_modules/@ark/util/out/functions.js +53 -0
- package/node_modules/@ark/util/out/generics.d.ts +59 -0
- package/node_modules/@ark/util/out/generics.js +5 -0
- package/node_modules/@ark/util/out/get.d.ts +9 -0
- package/node_modules/@ark/util/out/get.js +7 -0
- package/node_modules/@ark/util/out/hkt.d.ts +27 -0
- package/node_modules/@ark/util/out/hkt.js +5 -0
- package/node_modules/@ark/util/out/index.d.ts +24 -0
- package/node_modules/@ark/util/out/index.js +24 -0
- package/node_modules/@ark/util/out/intersections.d.ts +50 -0
- package/node_modules/@ark/util/out/intersections.js +1 -0
- package/node_modules/@ark/util/out/isomorphic.d.ts +5 -0
- package/node_modules/@ark/util/out/isomorphic.js +19 -0
- package/node_modules/@ark/util/out/keys.d.ts +18 -0
- package/node_modules/@ark/util/out/keys.js +1 -0
- package/node_modules/@ark/util/out/lazily.d.ts +1 -0
- package/node_modules/@ark/util/out/lazily.js +16 -0
- package/node_modules/@ark/util/out/numbers.d.ts +72 -0
- package/node_modules/@ark/util/out/numbers.js +138 -0
- package/node_modules/@ark/util/out/objectKinds.d.ts +205 -0
- package/node_modules/@ark/util/out/objectKinds.js +150 -0
- package/node_modules/@ark/util/out/path.d.ts +22 -0
- package/node_modules/@ark/util/out/path.js +65 -0
- package/node_modules/@ark/util/out/primitive.d.ts +16 -0
- package/node_modules/@ark/util/out/primitive.js +3 -0
- package/node_modules/@ark/util/out/records.d.ts +183 -0
- package/node_modules/@ark/util/out/records.js +63 -0
- package/node_modules/@ark/util/out/registry.d.ts +21 -0
- package/node_modules/@ark/util/out/registry.js +49 -0
- package/node_modules/@ark/util/out/scanner.d.ts +44 -0
- package/node_modules/@ark/util/out/scanner.js +87 -0
- package/node_modules/@ark/util/out/serialize.d.ts +34 -0
- package/node_modules/@ark/util/out/serialize.js +150 -0
- package/node_modules/@ark/util/out/strings.d.ts +33 -0
- package/node_modules/@ark/util/out/strings.js +59 -0
- package/node_modules/@ark/util/out/traits.d.ts +89 -0
- package/node_modules/@ark/util/out/traits.js +75 -0
- package/node_modules/@ark/util/out/unionToTuple.d.ts +14 -0
- package/node_modules/@ark/util/out/unionToTuple.js +1 -0
- package/node_modules/@ark/util/package.json +39 -0
- package/node_modules/@ark/util/tsconfig.base.json +18 -0
- package/node_modules/@socket.io/component-emitter/LICENSE +24 -0
- package/node_modules/@socket.io/component-emitter/Readme.md +79 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +179 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +176 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +4 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +179 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/index.js +169 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/package.json +4 -0
- package/node_modules/@socket.io/component-emitter/package.json +28 -0
- package/node_modules/arkregex/LICENSE +7 -0
- package/node_modules/arkregex/README.md +61 -0
- package/node_modules/arkregex/out/charset.d.ts +15 -0
- package/node_modules/arkregex/out/charset.js +1 -0
- package/node_modules/arkregex/out/escape.d.ts +29 -0
- package/node_modules/arkregex/out/escape.js +10 -0
- package/node_modules/arkregex/out/execArray.d.ts +23 -0
- package/node_modules/arkregex/out/execArray.js +1 -0
- package/node_modules/arkregex/out/group.d.ts +33 -0
- package/node_modules/arkregex/out/group.js +6 -0
- package/node_modules/arkregex/out/index.d.ts +1 -0
- package/node_modules/arkregex/out/index.js +1 -0
- package/node_modules/arkregex/out/parse.d.ts +10 -0
- package/node_modules/arkregex/out/parse.js +1 -0
- package/node_modules/arkregex/out/quantify.d.ts +43 -0
- package/node_modules/arkregex/out/quantify.js +2 -0
- package/node_modules/arkregex/out/regex.d.ts +38 -0
- package/node_modules/arkregex/out/regex.js +2 -0
- package/node_modules/arkregex/out/state.d.ts +359 -0
- package/node_modules/arkregex/out/state.js +2 -0
- package/node_modules/arkregex/package.json +42 -0
- package/node_modules/arktype/LICENSE +7 -0
- package/node_modules/arktype/README.md +157 -0
- package/node_modules/arktype/out/attributes.d.ts +104 -0
- package/node_modules/arktype/out/attributes.js +3 -0
- package/node_modules/arktype/out/config.d.ts +35 -0
- package/node_modules/arktype/out/config.js +3 -0
- package/node_modules/arktype/out/declare.d.ts +35 -0
- package/node_modules/arktype/out/declare.js +1 -0
- package/node_modules/arktype/out/fn.d.ts +61 -0
- package/node_modules/arktype/out/fn.js +54 -0
- package/node_modules/arktype/out/generic.d.ts +118 -0
- package/node_modules/arktype/out/generic.js +37 -0
- package/node_modules/arktype/out/index.d.ts +12 -0
- package/node_modules/arktype/out/index.js +9 -0
- package/node_modules/arktype/out/keywords/Array.d.ts +20 -0
- package/node_modules/arktype/out/keywords/Array.js +21 -0
- package/node_modules/arktype/out/keywords/FormData.d.ts +15 -0
- package/node_modules/arktype/out/keywords/FormData.js +40 -0
- package/node_modules/arktype/out/keywords/TypedArray.d.ts +19 -0
- package/node_modules/arktype/out/keywords/TypedArray.js +16 -0
- package/node_modules/arktype/out/keywords/builtins.d.ts +18 -0
- package/node_modules/arktype/out/keywords/builtins.js +11 -0
- package/node_modules/arktype/out/keywords/constructors.d.ts +31 -0
- package/node_modules/arktype/out/keywords/constructors.js +16 -0
- package/node_modules/arktype/out/keywords/keywords.d.ts +70 -0
- package/node_modules/arktype/out/keywords/keywords.js +48 -0
- package/node_modules/arktype/out/keywords/number.d.ts +23 -0
- package/node_modules/arktype/out/keywords/number.js +49 -0
- package/node_modules/arktype/out/keywords/string.d.ts +334 -0
- package/node_modules/arktype/out/keywords/string.js +463 -0
- package/node_modules/arktype/out/keywords/ts.d.ts +108 -0
- package/node_modules/arktype/out/keywords/ts.js +82 -0
- package/node_modules/arktype/out/match.d.ts +152 -0
- package/node_modules/arktype/out/match.js +95 -0
- package/node_modules/arktype/out/module.d.ts +22 -0
- package/node_modules/arktype/out/module.js +3 -0
- package/node_modules/arktype/out/nary.d.ts +473 -0
- package/node_modules/arktype/out/nary.js +1 -0
- package/node_modules/arktype/out/parser/ast/bounds.d.ts +18 -0
- package/node_modules/arktype/out/parser/ast/bounds.js +1 -0
- package/node_modules/arktype/out/parser/ast/default.d.ts +8 -0
- package/node_modules/arktype/out/parser/ast/default.js +1 -0
- package/node_modules/arktype/out/parser/ast/divisor.d.ts +9 -0
- package/node_modules/arktype/out/parser/ast/divisor.js +1 -0
- package/node_modules/arktype/out/parser/ast/generic.d.ts +17 -0
- package/node_modules/arktype/out/parser/ast/generic.js +1 -0
- package/node_modules/arktype/out/parser/ast/infer.d.ts +25 -0
- package/node_modules/arktype/out/parser/ast/infer.js +1 -0
- package/node_modules/arktype/out/parser/ast/keyof.d.ts +7 -0
- package/node_modules/arktype/out/parser/ast/keyof.js +1 -0
- package/node_modules/arktype/out/parser/ast/utils.d.ts +8 -0
- package/node_modules/arktype/out/parser/ast/utils.js +1 -0
- package/node_modules/arktype/out/parser/ast/validate.d.ts +30 -0
- package/node_modules/arktype/out/parser/ast/validate.js +3 -0
- package/node_modules/arktype/out/parser/definition.d.ts +30 -0
- package/node_modules/arktype/out/parser/definition.js +74 -0
- package/node_modules/arktype/out/parser/objectLiteral.d.ts +70 -0
- package/node_modules/arktype/out/parser/objectLiteral.js +113 -0
- package/node_modules/arktype/out/parser/property.d.ts +34 -0
- package/node_modules/arktype/out/parser/property.js +16 -0
- package/node_modules/arktype/out/parser/reduce/dynamic.d.ts +42 -0
- package/node_modules/arktype/out/parser/reduce/dynamic.js +153 -0
- package/node_modules/arktype/out/parser/reduce/shared.d.ts +39 -0
- package/node_modules/arktype/out/parser/reduce/shared.js +25 -0
- package/node_modules/arktype/out/parser/reduce/static.d.ts +186 -0
- package/node_modules/arktype/out/parser/reduce/static.js +1 -0
- package/node_modules/arktype/out/parser/shift/operand/date.d.ts +11 -0
- package/node_modules/arktype/out/parser/shift/operand/date.js +23 -0
- package/node_modules/arktype/out/parser/shift/operand/enclosed.d.ts +57 -0
- package/node_modules/arktype/out/parser/shift/operand/enclosed.js +78 -0
- package/node_modules/arktype/out/parser/shift/operand/genericArgs.d.ts +27 -0
- package/node_modules/arktype/out/parser/shift/operand/genericArgs.js +16 -0
- package/node_modules/arktype/out/parser/shift/operand/operand.d.ts +8 -0
- package/node_modules/arktype/out/parser/shift/operand/operand.js +16 -0
- package/node_modules/arktype/out/parser/shift/operand/unenclosed.d.ts +43 -0
- package/node_modules/arktype/out/parser/shift/operand/unenclosed.js +59 -0
- package/node_modules/arktype/out/parser/shift/operator/bounds.d.ts +24 -0
- package/node_modules/arktype/out/parser/shift/operator/bounds.js +91 -0
- package/node_modules/arktype/out/parser/shift/operator/brand.d.ts +7 -0
- package/node_modules/arktype/out/parser/shift/operator/brand.js +6 -0
- package/node_modules/arktype/out/parser/shift/operator/default.d.ts +24 -0
- package/node_modules/arktype/out/parser/shift/operator/default.js +15 -0
- package/node_modules/arktype/out/parser/shift/operator/divisor.d.ts +8 -0
- package/node_modules/arktype/out/parser/shift/operator/divisor.js +13 -0
- package/node_modules/arktype/out/parser/shift/operator/operator.d.ts +14 -0
- package/node_modules/arktype/out/parser/shift/operator/operator.js +28 -0
- package/node_modules/arktype/out/parser/shift/tokens.d.ts +33 -0
- package/node_modules/arktype/out/parser/shift/tokens.js +37 -0
- package/node_modules/arktype/out/parser/string.d.ts +30 -0
- package/node_modules/arktype/out/parser/string.js +42 -0
- package/node_modules/arktype/out/parser/tupleExpressions.d.ts +79 -0
- package/node_modules/arktype/out/parser/tupleExpressions.js +75 -0
- package/node_modules/arktype/out/parser/tupleLiteral.d.ts +95 -0
- package/node_modules/arktype/out/parser/tupleLiteral.js +128 -0
- package/node_modules/arktype/out/scope.d.ts +158 -0
- package/node_modules/arktype/out/scope.js +106 -0
- package/node_modules/arktype/out/type.d.ts +144 -0
- package/node_modules/arktype/out/type.js +55 -0
- package/node_modules/arktype/out/variants/array.d.ts +12 -0
- package/node_modules/arktype/out/variants/array.js +1 -0
- package/node_modules/arktype/out/variants/base.d.ts +542 -0
- package/node_modules/arktype/out/variants/base.js +1 -0
- package/node_modules/arktype/out/variants/date.d.ts +10 -0
- package/node_modules/arktype/out/variants/date.js +1 -0
- package/node_modules/arktype/out/variants/instantiate.d.ts +12 -0
- package/node_modules/arktype/out/variants/instantiate.js +1 -0
- package/node_modules/arktype/out/variants/number.d.ts +11 -0
- package/node_modules/arktype/out/variants/number.js +1 -0
- package/node_modules/arktype/out/variants/object.d.ts +107 -0
- package/node_modules/arktype/out/variants/object.js +1 -0
- package/node_modules/arktype/out/variants/string.d.ts +15 -0
- package/node_modules/arktype/out/variants/string.js +1 -0
- package/node_modules/arktype/package.json +57 -0
- package/node_modules/debug/LICENSE +20 -0
- package/node_modules/debug/README.md +481 -0
- package/node_modules/debug/package.json +64 -0
- package/node_modules/debug/src/browser.js +272 -0
- package/node_modules/debug/src/common.js +292 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/node.js +263 -0
- package/node_modules/engine.io-client/LICENSE +22 -0
- package/node_modules/engine.io-client/README.md +331 -0
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +4 -0
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +14 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +38 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +67 -0
- package/node_modules/engine.io-client/build/cjs/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/cjs/globals.js +26 -0
- package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/cjs/globals.node.js +97 -0
- package/node_modules/engine.io-client/build/cjs/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/index.js +32 -0
- package/node_modules/engine.io-client/build/cjs/package.json +10 -0
- package/node_modules/engine.io-client/build/cjs/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/cjs/socket.js +765 -0
- package/node_modules/engine.io-client/build/cjs/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/cjs/transport.js +153 -0
- package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/cjs/transports/index.js +11 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +60 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +285 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +44 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling.js +165 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.js +136 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +68 -0
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +94 -0
- package/node_modules/engine.io-client/build/cjs/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/cjs/util.js +65 -0
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +2 -0
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +11 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +34 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +64 -0
- package/node_modules/engine.io-client/build/esm/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/esm/globals.js +22 -0
- package/node_modules/engine.io-client/build/esm/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/esm/globals.node.js +91 -0
- package/node_modules/engine.io-client/build/esm/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/index.js +15 -0
- package/node_modules/engine.io-client/build/esm/package.json +10 -0
- package/node_modules/engine.io-client/build/esm/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/esm/socket.js +727 -0
- package/node_modules/engine.io-client/build/esm/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/esm/transport.js +142 -0
- package/node_modules/engine.io-client/build/esm/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/esm/transports/index.js +8 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +56 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +271 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +17 -0
- package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/esm/transports/polling.js +145 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.js +125 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +41 -0
- package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/esm/transports/webtransport.js +80 -0
- package/node_modules/engine.io-client/build/esm/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/esm/util.js +59 -0
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +2 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +11 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +34 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +64 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.js +22 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.node.js +91 -0
- package/node_modules/engine.io-client/build/esm-debug/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/index.js +15 -0
- package/node_modules/engine.io-client/build/esm-debug/package.json +10 -0
- package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/esm-debug/socket.js +756 -0
- package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/esm-debug/transport.js +145 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/index.js +8 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +56 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +276 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +17 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +158 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +128 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +41 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +87 -0
- package/node_modules/engine.io-client/build/esm-debug/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/esm-debug/util.js +59 -0
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js +7 -0
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -0
- package/node_modules/engine.io-client/dist/engine.io.js +3064 -0
- package/node_modules/engine.io-client/dist/engine.io.js.map +1 -0
- package/node_modules/engine.io-client/dist/engine.io.min.js +7 -0
- package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -0
- package/node_modules/engine.io-client/package.json +95 -0
- package/node_modules/engine.io-parser/LICENSE +22 -0
- package/node_modules/engine.io-parser/Readme.md +158 -0
- package/node_modules/engine.io-parser/build/cjs/commons.d.ts +14 -0
- package/node_modules/engine.io-parser/build/cjs/commons.js +19 -0
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +48 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +66 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.js +59 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +4 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +72 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +3 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.js +38 -0
- package/node_modules/engine.io-parser/build/cjs/index.d.ts +9 -0
- package/node_modules/engine.io-parser/build/cjs/index.js +164 -0
- package/node_modules/engine.io-parser/build/cjs/package.json +8 -0
- package/node_modules/engine.io-parser/build/esm/commons.d.ts +14 -0
- package/node_modules/engine.io-parser/build/esm/commons.js +14 -0
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +43 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +62 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.js +55 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +4 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +68 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +3 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.js +33 -0
- package/node_modules/engine.io-parser/build/esm/index.d.ts +9 -0
- package/node_modules/engine.io-parser/build/esm/index.js +156 -0
- package/node_modules/engine.io-parser/build/esm/package.json +8 -0
- package/node_modules/engine.io-parser/package.json +46 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/socket.io-client/LICENSE +21 -0
- package/node_modules/socket.io-client/README.md +29 -0
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +4 -0
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +69 -0
- package/node_modules/socket.io-client/build/cjs/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/cjs/index.js +76 -0
- package/node_modules/socket.io-client/build/cjs/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/cjs/manager.js +416 -0
- package/node_modules/socket.io-client/build/cjs/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/cjs/on.js +9 -0
- package/node_modules/socket.io-client/build/cjs/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/cjs/socket.js +909 -0
- package/node_modules/socket.io-client/build/cjs/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/cjs/url.js +69 -0
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +2 -0
- package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/esm/contrib/backo2.js +66 -0
- package/node_modules/socket.io-client/build/esm/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/esm/index.js +58 -0
- package/node_modules/socket.io-client/build/esm/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/esm/manager.js +367 -0
- package/node_modules/socket.io-client/build/esm/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm/on.js +6 -0
- package/node_modules/socket.io-client/build/esm/package.json +5 -0
- package/node_modules/socket.io-client/build/esm/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/esm/socket.js +880 -0
- package/node_modules/socket.io-client/build/esm/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/esm/url.js +59 -0
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +2 -0
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +66 -0
- package/node_modules/socket.io-client/build/esm-debug/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/esm-debug/index.js +62 -0
- package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/esm-debug/manager.js +386 -0
- package/node_modules/socket.io-client/build/esm-debug/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm-debug/on.js +6 -0
- package/node_modules/socket.io-client/build/esm-debug/package.json +5 -0
- package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/esm-debug/socket.js +902 -0
- package/node_modules/socket.io-client/build/esm-debug/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/esm-debug/url.js +63 -0
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.js +4955 -0
- package/node_modules/socket.io-client/dist/socket.io.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -0
- package/node_modules/socket.io-client/package.json +101 -0
- package/node_modules/socket.io-parser/LICENSE +20 -0
- package/node_modules/socket.io-parser/Readme.md +81 -0
- package/node_modules/socket.io-parser/build/cjs/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/cjs/binary.js +87 -0
- package/node_modules/socket.io-parser/build/cjs/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/cjs/index.js +359 -0
- package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/cjs/is-binary.js +54 -0
- package/node_modules/socket.io-parser/build/cjs/package.json +3 -0
- package/node_modules/socket.io-parser/build/esm/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/esm/binary.js +83 -0
- package/node_modules/socket.io-parser/build/esm/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/esm/index.js +348 -0
- package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/esm/is-binary.js +50 -0
- package/node_modules/socket.io-parser/build/esm/package.json +3 -0
- package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/esm-debug/binary.js +83 -0
- package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/esm-debug/index.js +353 -0
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +50 -0
- package/node_modules/socket.io-parser/build/esm-debug/package.json +3 -0
- package/node_modules/socket.io-parser/package.json +44 -0
- package/node_modules/ws/LICENSE +20 -0
- package/node_modules/ws/README.md +548 -0
- package/node_modules/ws/browser.js +8 -0
- package/node_modules/ws/index.js +13 -0
- package/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/ws/lib/constants.js +18 -0
- package/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/ws/lib/permessage-deflate.js +528 -0
- package/node_modules/ws/lib/receiver.js +706 -0
- package/node_modules/ws/lib/sender.js +602 -0
- package/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/ws/lib/websocket-server.js +550 -0
- package/node_modules/ws/lib/websocket.js +1388 -0
- package/node_modules/ws/package.json +69 -0
- package/node_modules/ws/wrapper.mjs +8 -0
- package/node_modules/xmlhttprequest-ssl/LICENSE +22 -0
- package/node_modules/xmlhttprequest-ssl/README.md +67 -0
- package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +689 -0
- package/node_modules/xmlhttprequest-ssl/package.json +40 -0
- package/package.json +34 -4
- package/public-api.md +85 -23
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { type Constructor, type Domain, type Json, type requireKeys, type satisfy } from "@ark/util";
|
|
2
|
+
import type { Predicate } from "../predicate.ts";
|
|
3
|
+
import type { ConstraintKind } from "./implement.ts";
|
|
4
|
+
import type { JsonSchema } from "./jsonSchema.ts";
|
|
5
|
+
import type { StandardJSONSchemaV1 } from "./standardSchema.ts";
|
|
6
|
+
declare class ToJsonSchemaError<code extends ToJsonSchema.Code = ToJsonSchema.Code> extends Error {
|
|
7
|
+
readonly name = "ToJsonSchemaError";
|
|
8
|
+
readonly code: code;
|
|
9
|
+
readonly context: ToJsonSchema.ContextByCode[code];
|
|
10
|
+
constructor(code: code, context: ToJsonSchema.ContextByCode[code]);
|
|
11
|
+
hasCode<code extends ToJsonSchema.Code>(code: code): this is ToJsonSchemaError<code>;
|
|
12
|
+
}
|
|
13
|
+
export declare const ToJsonSchema: {
|
|
14
|
+
Error: typeof ToJsonSchemaError;
|
|
15
|
+
throw: (code: keyof ToJsonSchema.ContextByCode, context: ToJsonSchema.MorphContext | ToJsonSchema.UnitContext | ToJsonSchema.ProtoContext | ToJsonSchema.DomainContext | ToJsonSchema.PredicateContext | ToJsonSchema.DateContext | ToJsonSchema.ArrayObjectContext | ToJsonSchema.ArrayPostfixContext | ToJsonSchema.DefaultValueContext | ToJsonSchema.PatternIntersectionContext | ToJsonSchema.SymbolKeyContext) => never;
|
|
16
|
+
throwInternalOperandError: (kind: ConstraintKind, schema: JsonSchema) => never;
|
|
17
|
+
defaultConfig: ToJsonSchema.Context;
|
|
18
|
+
};
|
|
19
|
+
export declare namespace ToJsonSchema {
|
|
20
|
+
type Unjsonifiable = object | symbol | bigint | undefined;
|
|
21
|
+
type Error = InstanceType<typeof ToJsonSchema.Error>;
|
|
22
|
+
interface BaseContext<code extends Code, base extends JsonSchema = JsonSchema> {
|
|
23
|
+
code: code;
|
|
24
|
+
base: base;
|
|
25
|
+
}
|
|
26
|
+
interface ArrayObjectContext extends BaseContext<"arrayObject", JsonSchema.Array> {
|
|
27
|
+
object: JsonSchema.Object;
|
|
28
|
+
}
|
|
29
|
+
interface ArrayPostfixContext extends BaseContext<"arrayPostfix", VariadicArraySchema> {
|
|
30
|
+
elements: readonly JsonSchema[];
|
|
31
|
+
}
|
|
32
|
+
interface DefaultValueContext extends BaseContext<"defaultValue", JsonSchema> {
|
|
33
|
+
value: Unjsonifiable;
|
|
34
|
+
}
|
|
35
|
+
interface DomainContext extends BaseContext<"domain", JsonSchema> {
|
|
36
|
+
domain: satisfy<Domain, "symbol" | "bigint" | "undefined">;
|
|
37
|
+
}
|
|
38
|
+
interface MorphContext extends BaseContext<"morph", JsonSchema> {
|
|
39
|
+
out: JsonSchema | null;
|
|
40
|
+
}
|
|
41
|
+
interface PatternIntersectionContext extends BaseContext<"patternIntersection", StringSchemaWithPattern> {
|
|
42
|
+
pattern: string;
|
|
43
|
+
}
|
|
44
|
+
interface PredicateContext extends BaseContext<"predicate", JsonSchema> {
|
|
45
|
+
predicate: Predicate;
|
|
46
|
+
}
|
|
47
|
+
interface ProtoContext extends BaseContext<"proto", JsonSchema> {
|
|
48
|
+
proto: Constructor;
|
|
49
|
+
}
|
|
50
|
+
type SymbolKeyContext = IndexSymbolKeyContext | RequiredSymbolKeyContext | OptionalSymbolKeyContext;
|
|
51
|
+
interface IndexSymbolKeyContext extends BaseContext<"symbolKey", JsonSchema.Object> {
|
|
52
|
+
key: null;
|
|
53
|
+
value: JsonSchema;
|
|
54
|
+
optional: false;
|
|
55
|
+
}
|
|
56
|
+
interface RequiredSymbolKeyContext extends BaseContext<"symbolKey", JsonSchema.Object> {
|
|
57
|
+
key: symbol;
|
|
58
|
+
value: JsonSchema;
|
|
59
|
+
optional: false;
|
|
60
|
+
}
|
|
61
|
+
interface OptionalSymbolKeyContext extends BaseContext<"symbolKey", JsonSchema.Object> {
|
|
62
|
+
key: symbol;
|
|
63
|
+
value: JsonSchema;
|
|
64
|
+
optional: true;
|
|
65
|
+
default?: Json;
|
|
66
|
+
}
|
|
67
|
+
interface UnitContext extends BaseContext<"unit", JsonSchema> {
|
|
68
|
+
unit: Unjsonifiable;
|
|
69
|
+
}
|
|
70
|
+
interface DateContext extends BaseContext<"date", JsonSchema> {
|
|
71
|
+
before?: Date;
|
|
72
|
+
after?: Date;
|
|
73
|
+
}
|
|
74
|
+
interface ContextByCode {
|
|
75
|
+
arrayObject: ArrayObjectContext;
|
|
76
|
+
arrayPostfix: ArrayPostfixContext;
|
|
77
|
+
defaultValue: DefaultValueContext;
|
|
78
|
+
domain: DomainContext;
|
|
79
|
+
morph: MorphContext;
|
|
80
|
+
patternIntersection: PatternIntersectionContext;
|
|
81
|
+
predicate: PredicateContext;
|
|
82
|
+
proto: ProtoContext;
|
|
83
|
+
symbolKey: SymbolKeyContext;
|
|
84
|
+
unit: UnitContext;
|
|
85
|
+
date: DateContext;
|
|
86
|
+
}
|
|
87
|
+
type Code = keyof ContextByCode;
|
|
88
|
+
type FallbackContext = ContextByCode[Code];
|
|
89
|
+
type HandlerByCode = satisfy<{
|
|
90
|
+
[code in Code]: (ctx: ContextByCode[code]) => unknown;
|
|
91
|
+
}, {
|
|
92
|
+
arrayObject: (ctx: ArrayObjectContext) => JsonSchema.Structure;
|
|
93
|
+
arrayPostfix: (ctx: ArrayPostfixContext) => VariadicArraySchema;
|
|
94
|
+
defaultValue: (ctx: DefaultValueContext) => JsonSchema;
|
|
95
|
+
domain: (ctx: DomainContext) => JsonSchema;
|
|
96
|
+
morph: (ctx: MorphContext) => JsonSchema;
|
|
97
|
+
patternIntersection: (ctx: PatternIntersectionContext) => JsonSchema.String;
|
|
98
|
+
predicate: (ctx: PredicateContext) => JsonSchema;
|
|
99
|
+
proto: (ctx: ProtoContext) => JsonSchema;
|
|
100
|
+
symbolKey: (ctx: SymbolKeyContext) => JsonSchema.Object;
|
|
101
|
+
unit: (ctx: UnitContext) => JsonSchema;
|
|
102
|
+
date: (ctx: DateContext) => JsonSchema;
|
|
103
|
+
}>;
|
|
104
|
+
type VariadicArraySchema = requireKeys<JsonSchema.Array, "items">;
|
|
105
|
+
type StringSchemaWithPattern = requireKeys<JsonSchema.String, "pattern">;
|
|
106
|
+
type UniversalFallback = (ctx: FallbackContext) => JsonSchema;
|
|
107
|
+
interface FallbackObject extends Partial<HandlerByCode> {
|
|
108
|
+
default?: UniversalFallback;
|
|
109
|
+
}
|
|
110
|
+
type FallbackOption = UniversalFallback | FallbackObject;
|
|
111
|
+
type Target = satisfy<StandardJSONSchemaV1.Target, "draft-2020-12" | "draft-07">;
|
|
112
|
+
interface Options {
|
|
113
|
+
/** value to assign to the generated $schema key
|
|
114
|
+
*
|
|
115
|
+
* - set to `null` to omit the `$schema` key
|
|
116
|
+
* - does not affect the contents of the generated schema
|
|
117
|
+
* - if `target` is also specified, `dialect` takes precedence
|
|
118
|
+
*
|
|
119
|
+
* @default "https://json-schema.org/draft/2020-12/schema"
|
|
120
|
+
*/
|
|
121
|
+
dialect?: string | null;
|
|
122
|
+
/**
|
|
123
|
+
* Shorthand for specifying the target JSON Schema version.
|
|
124
|
+
* Maps to the appropriate `dialect` URL.
|
|
125
|
+
*
|
|
126
|
+
* - "draft-2020-12" -> "https://json-schema.org/draft/2020-12/schema"
|
|
127
|
+
* - "draft-07" -> "http://json-schema.org/draft-07/schema#"
|
|
128
|
+
*
|
|
129
|
+
* If `dialect` is also specified, `dialect` takes precedence.
|
|
130
|
+
*/
|
|
131
|
+
target?: Target;
|
|
132
|
+
useRefs?: boolean;
|
|
133
|
+
fallback?: FallbackOption;
|
|
134
|
+
}
|
|
135
|
+
interface Context extends Required<Options> {
|
|
136
|
+
fallback: HandlerByCode;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { printable, throwInternalError } from "@ark/util";
|
|
2
|
+
class ToJsonSchemaError extends Error {
|
|
3
|
+
name = "ToJsonSchemaError";
|
|
4
|
+
code;
|
|
5
|
+
context;
|
|
6
|
+
constructor(code, context) {
|
|
7
|
+
super(printable(context, { quoteKeys: false, indent: 4 }));
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.context = context;
|
|
10
|
+
}
|
|
11
|
+
hasCode(code) {
|
|
12
|
+
return this.code === code;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const defaultConfig = {
|
|
16
|
+
target: "draft-2020-12",
|
|
17
|
+
dialect: "https://json-schema.org/draft/2020-12/schema",
|
|
18
|
+
useRefs: false,
|
|
19
|
+
fallback: {
|
|
20
|
+
arrayObject: ctx => ToJsonSchema.throw("arrayObject", ctx),
|
|
21
|
+
arrayPostfix: ctx => ToJsonSchema.throw("arrayPostfix", ctx),
|
|
22
|
+
defaultValue: ctx => ToJsonSchema.throw("defaultValue", ctx),
|
|
23
|
+
domain: ctx => ToJsonSchema.throw("domain", ctx),
|
|
24
|
+
morph: ctx => ToJsonSchema.throw("morph", ctx),
|
|
25
|
+
patternIntersection: ctx => ToJsonSchema.throw("patternIntersection", ctx),
|
|
26
|
+
predicate: ctx => ToJsonSchema.throw("predicate", ctx),
|
|
27
|
+
proto: ctx => ToJsonSchema.throw("proto", ctx),
|
|
28
|
+
symbolKey: ctx => ToJsonSchema.throw("symbolKey", ctx),
|
|
29
|
+
unit: ctx => ToJsonSchema.throw("unit", ctx),
|
|
30
|
+
date: ctx => ToJsonSchema.throw("date", ctx)
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export const ToJsonSchema = {
|
|
34
|
+
Error: ToJsonSchemaError,
|
|
35
|
+
throw: (...args) => {
|
|
36
|
+
throw new ToJsonSchema.Error(...args);
|
|
37
|
+
},
|
|
38
|
+
throwInternalOperandError: (kind, schema) => throwInternalError(`Unexpected JSON Schema input for ${kind}: ${printable(schema)}`),
|
|
39
|
+
defaultConfig
|
|
40
|
+
};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { ReadonlyPath, type array } from "@ark/util";
|
|
2
|
+
import type { ResolvedConfig } from "../config.ts";
|
|
3
|
+
import type { Morph } from "../roots/morph.ts";
|
|
4
|
+
import { ArkError, ArkErrors, type ArkErrorCode, type ArkErrorInput, type NodeErrorContextInput } from "./errors.ts";
|
|
5
|
+
export type MorphsAtPath = {
|
|
6
|
+
path: ReadonlyPath;
|
|
7
|
+
morphs: array<Morph>;
|
|
8
|
+
};
|
|
9
|
+
export type BranchTraversal = {
|
|
10
|
+
error: ArkError | undefined;
|
|
11
|
+
queuedMorphs: MorphsAtPath[];
|
|
12
|
+
};
|
|
13
|
+
export type InternalTraversal = Omit<Traversal, "error" | "mustBe" | "reject">;
|
|
14
|
+
export declare class Traversal {
|
|
15
|
+
/**
|
|
16
|
+
* #### the path being validated or morphed
|
|
17
|
+
*
|
|
18
|
+
* ✅ array indices represented as numbers
|
|
19
|
+
* ⚠️ mutated during traversal - use `path.slice(0)` to snapshot
|
|
20
|
+
* 🔗 use {@link propString} for a stringified version
|
|
21
|
+
*/
|
|
22
|
+
path: PropertyKey[];
|
|
23
|
+
/**
|
|
24
|
+
* #### {@link ArkErrors} that will be part of this traversal's finalized result
|
|
25
|
+
*
|
|
26
|
+
* ✅ will always be an empty array for a valid traversal
|
|
27
|
+
*/
|
|
28
|
+
errors: ArkErrors;
|
|
29
|
+
/**
|
|
30
|
+
* #### the original value being traversed
|
|
31
|
+
*/
|
|
32
|
+
root: unknown;
|
|
33
|
+
/**
|
|
34
|
+
* #### configuration for this traversal
|
|
35
|
+
*
|
|
36
|
+
* ✅ options can affect traversal results and error messages
|
|
37
|
+
* ✅ defaults < global config < scope config
|
|
38
|
+
* ✅ does not include options configured on individual types
|
|
39
|
+
*/
|
|
40
|
+
config: ResolvedConfig;
|
|
41
|
+
queuedMorphs: MorphsAtPath[];
|
|
42
|
+
branches: BranchTraversal[];
|
|
43
|
+
seen: {
|
|
44
|
+
[id in string]?: unknown[];
|
|
45
|
+
};
|
|
46
|
+
constructor(root: unknown, config: ResolvedConfig);
|
|
47
|
+
/**
|
|
48
|
+
* #### the data being validated or morphed
|
|
49
|
+
*
|
|
50
|
+
* ✅ extracted from {@link root} at {@link path}
|
|
51
|
+
*/
|
|
52
|
+
get data(): unknown;
|
|
53
|
+
/**
|
|
54
|
+
* #### a string representing {@link path}
|
|
55
|
+
*
|
|
56
|
+
* ✅ uses `.access` {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#dot_notation | where allowed by JS}, falling back to `[indexAccess]`
|
|
57
|
+
* @example
|
|
58
|
+
* const path = ["key1", Symbol("key2"), "key3", 4, "~key5"]
|
|
59
|
+
* const propString = 'key1[Symbol(key2)].key3[4]["~key5"]'
|
|
60
|
+
*/
|
|
61
|
+
get propString(): string;
|
|
62
|
+
/**
|
|
63
|
+
* #### add an {@link ArkError} and return `false`
|
|
64
|
+
*
|
|
65
|
+
* ✅ useful for predicates like `.narrow`
|
|
66
|
+
*/
|
|
67
|
+
reject(input: ArkErrorInput): false;
|
|
68
|
+
/**
|
|
69
|
+
* #### add an {@link ArkError} from a description and return `false`
|
|
70
|
+
*
|
|
71
|
+
* ✅ useful for predicates like `.narrow`
|
|
72
|
+
* 🔗 equivalent to {@link reject}({ expected })
|
|
73
|
+
*/
|
|
74
|
+
mustBe(expected: string): false;
|
|
75
|
+
/**
|
|
76
|
+
* #### add and return an {@link ArkError}
|
|
77
|
+
*
|
|
78
|
+
* ✅ useful for morphs like `.pipe`
|
|
79
|
+
*/
|
|
80
|
+
error<input extends ArkErrorInput>(input: input): ArkError<input extends {
|
|
81
|
+
code: ArkErrorCode;
|
|
82
|
+
} ? input["code"] : "predicate">;
|
|
83
|
+
/**
|
|
84
|
+
* #### whether {@link currentBranch} (or the traversal root, outside a union) has one or more errors
|
|
85
|
+
*/
|
|
86
|
+
hasError(): boolean;
|
|
87
|
+
get currentBranch(): BranchTraversal | undefined;
|
|
88
|
+
queueMorphs(morphs: array<Morph>): void;
|
|
89
|
+
finalize(onFail?: ArkErrors.Handler | null): unknown;
|
|
90
|
+
get currentErrorCount(): number;
|
|
91
|
+
get failFast(): boolean;
|
|
92
|
+
pushBranch(): void;
|
|
93
|
+
popBranch(): BranchTraversal | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* @internal
|
|
96
|
+
* Convenience for casting from InternalTraversal to Traversal
|
|
97
|
+
* for cases where the extra methods on the external type are expected, e.g.
|
|
98
|
+
* a morph or predicate.
|
|
99
|
+
*/
|
|
100
|
+
get external(): this;
|
|
101
|
+
/**
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
errorFromNodeContext<input extends NodeErrorContextInput>(input: input): ArkError<input["code"]>;
|
|
105
|
+
private errorFromContext;
|
|
106
|
+
private applyQueuedMorphs;
|
|
107
|
+
private applyMorphsAtPath;
|
|
108
|
+
}
|
|
109
|
+
export declare const traverseKey: <result>(key: PropertyKey, fn: () => result, ctx: InternalTraversal | undefined) => result;
|
|
110
|
+
export type TraversalMethodsByKind<input = unknown> = {
|
|
111
|
+
Allows: TraverseAllows<input>;
|
|
112
|
+
Apply: TraverseApply<input>;
|
|
113
|
+
Optimistic: TraverseApply<input>;
|
|
114
|
+
};
|
|
115
|
+
export type TraversalKind = keyof TraversalMethodsByKind & {};
|
|
116
|
+
export type TraverseAllows<data = unknown> = (data: data, ctx: InternalTraversal) => boolean;
|
|
117
|
+
export type TraverseApply<data = unknown> = (data: data, ctx: InternalTraversal) => void;
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { ReadonlyPath, stringifyPath } from "@ark/util";
|
|
2
|
+
import { ArkError, ArkErrors } from "./errors.js";
|
|
3
|
+
import { isNode } from "./utils.js";
|
|
4
|
+
export class Traversal {
|
|
5
|
+
/**
|
|
6
|
+
* #### the path being validated or morphed
|
|
7
|
+
*
|
|
8
|
+
* ✅ array indices represented as numbers
|
|
9
|
+
* ⚠️ mutated during traversal - use `path.slice(0)` to snapshot
|
|
10
|
+
* 🔗 use {@link propString} for a stringified version
|
|
11
|
+
*/
|
|
12
|
+
path = [];
|
|
13
|
+
/**
|
|
14
|
+
* #### {@link ArkErrors} that will be part of this traversal's finalized result
|
|
15
|
+
*
|
|
16
|
+
* ✅ will always be an empty array for a valid traversal
|
|
17
|
+
*/
|
|
18
|
+
errors = new ArkErrors(this);
|
|
19
|
+
/**
|
|
20
|
+
* #### the original value being traversed
|
|
21
|
+
*/
|
|
22
|
+
root;
|
|
23
|
+
/**
|
|
24
|
+
* #### configuration for this traversal
|
|
25
|
+
*
|
|
26
|
+
* ✅ options can affect traversal results and error messages
|
|
27
|
+
* ✅ defaults < global config < scope config
|
|
28
|
+
* ✅ does not include options configured on individual types
|
|
29
|
+
*/
|
|
30
|
+
config;
|
|
31
|
+
queuedMorphs = [];
|
|
32
|
+
branches = [];
|
|
33
|
+
seen = {};
|
|
34
|
+
constructor(root, config) {
|
|
35
|
+
this.root = root;
|
|
36
|
+
this.config = config;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* #### the data being validated or morphed
|
|
40
|
+
*
|
|
41
|
+
* ✅ extracted from {@link root} at {@link path}
|
|
42
|
+
*/
|
|
43
|
+
get data() {
|
|
44
|
+
let result = this.root;
|
|
45
|
+
for (const segment of this.path)
|
|
46
|
+
result = result?.[segment];
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* #### a string representing {@link path}
|
|
51
|
+
*
|
|
52
|
+
* @propString
|
|
53
|
+
*/
|
|
54
|
+
get propString() {
|
|
55
|
+
return stringifyPath(this.path);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* #### add an {@link ArkError} and return `false`
|
|
59
|
+
*
|
|
60
|
+
* ✅ useful for predicates like `.narrow`
|
|
61
|
+
*/
|
|
62
|
+
reject(input) {
|
|
63
|
+
this.error(input);
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* #### add an {@link ArkError} from a description and return `false`
|
|
68
|
+
*
|
|
69
|
+
* ✅ useful for predicates like `.narrow`
|
|
70
|
+
* 🔗 equivalent to {@link reject}({ expected })
|
|
71
|
+
*/
|
|
72
|
+
mustBe(expected) {
|
|
73
|
+
this.error(expected);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
error(input) {
|
|
77
|
+
const errCtx = typeof input === "object" ?
|
|
78
|
+
input.code ?
|
|
79
|
+
input
|
|
80
|
+
: { ...input, code: "predicate" }
|
|
81
|
+
: { code: "predicate", expected: input };
|
|
82
|
+
return this.errorFromContext(errCtx);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* #### whether {@link currentBranch} (or the traversal root, outside a union) has one or more errors
|
|
86
|
+
*/
|
|
87
|
+
hasError() {
|
|
88
|
+
return this.currentErrorCount !== 0;
|
|
89
|
+
}
|
|
90
|
+
get currentBranch() {
|
|
91
|
+
return this.branches[this.branches.length - 1];
|
|
92
|
+
}
|
|
93
|
+
queueMorphs(morphs) {
|
|
94
|
+
const input = {
|
|
95
|
+
path: new ReadonlyPath(...this.path),
|
|
96
|
+
morphs
|
|
97
|
+
};
|
|
98
|
+
if (this.currentBranch)
|
|
99
|
+
this.currentBranch.queuedMorphs.push(input);
|
|
100
|
+
else
|
|
101
|
+
this.queuedMorphs.push(input);
|
|
102
|
+
}
|
|
103
|
+
finalize(onFail) {
|
|
104
|
+
if (this.queuedMorphs.length) {
|
|
105
|
+
if (typeof this.root === "object" &&
|
|
106
|
+
this.root !== null &&
|
|
107
|
+
this.config.clone)
|
|
108
|
+
this.root = this.config.clone(this.root);
|
|
109
|
+
this.applyQueuedMorphs();
|
|
110
|
+
}
|
|
111
|
+
if (this.hasError())
|
|
112
|
+
return onFail ? onFail(this.errors) : this.errors;
|
|
113
|
+
return this.root;
|
|
114
|
+
}
|
|
115
|
+
get currentErrorCount() {
|
|
116
|
+
return (this.currentBranch ?
|
|
117
|
+
this.currentBranch.error ?
|
|
118
|
+
1
|
|
119
|
+
: 0
|
|
120
|
+
: this.errors.count);
|
|
121
|
+
}
|
|
122
|
+
get failFast() {
|
|
123
|
+
return this.branches.length !== 0;
|
|
124
|
+
}
|
|
125
|
+
pushBranch() {
|
|
126
|
+
this.branches.push({
|
|
127
|
+
error: undefined,
|
|
128
|
+
queuedMorphs: []
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
popBranch() {
|
|
132
|
+
return this.branches.pop();
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @internal
|
|
136
|
+
* Convenience for casting from InternalTraversal to Traversal
|
|
137
|
+
* for cases where the extra methods on the external type are expected, e.g.
|
|
138
|
+
* a morph or predicate.
|
|
139
|
+
*/
|
|
140
|
+
get external() {
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
143
|
+
errorFromNodeContext(input) {
|
|
144
|
+
return this.errorFromContext(input);
|
|
145
|
+
}
|
|
146
|
+
errorFromContext(errCtx) {
|
|
147
|
+
const error = new ArkError(errCtx, this);
|
|
148
|
+
if (this.currentBranch)
|
|
149
|
+
this.currentBranch.error = error;
|
|
150
|
+
else
|
|
151
|
+
this.errors.add(error);
|
|
152
|
+
return error;
|
|
153
|
+
}
|
|
154
|
+
applyQueuedMorphs() {
|
|
155
|
+
// invoking morphs that are Nodes will reuse this context, potentially
|
|
156
|
+
// adding additional morphs, so we have to continue looping until
|
|
157
|
+
// queuedMorphs is empty rather than iterating over the list once
|
|
158
|
+
while (this.queuedMorphs.length) {
|
|
159
|
+
const queuedMorphs = this.queuedMorphs;
|
|
160
|
+
this.queuedMorphs = [];
|
|
161
|
+
for (const { path, morphs } of queuedMorphs) {
|
|
162
|
+
// even if we already have an error, apply morphs that are not at a path
|
|
163
|
+
// with errors to capture potential validation errors
|
|
164
|
+
if (this.errors.affectsPath(path))
|
|
165
|
+
continue;
|
|
166
|
+
this.applyMorphsAtPath(path, morphs);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
applyMorphsAtPath(path, morphs) {
|
|
171
|
+
const key = path[path.length - 1];
|
|
172
|
+
let parent;
|
|
173
|
+
if (key !== undefined) {
|
|
174
|
+
// find the object on which the key to be morphed exists
|
|
175
|
+
parent = this.root;
|
|
176
|
+
for (let pathIndex = 0; pathIndex < path.length - 1; pathIndex++)
|
|
177
|
+
parent = parent[path[pathIndex]];
|
|
178
|
+
}
|
|
179
|
+
for (const morph of morphs) {
|
|
180
|
+
// ensure morphs are applied relative to the correct path
|
|
181
|
+
// in case previous operations modified this.path
|
|
182
|
+
this.path = [...path];
|
|
183
|
+
const morphIsNode = isNode(morph);
|
|
184
|
+
const result = morph((parent === undefined ? this.root : parent[key]), this);
|
|
185
|
+
if (result instanceof ArkError) {
|
|
186
|
+
// if an ArkError was returned, ensure it has been added to errors
|
|
187
|
+
// (it may have already been added via ctx.error() within the morph)
|
|
188
|
+
// Only add if it's not already in the errors collection
|
|
189
|
+
if (!this.errors.includes(result))
|
|
190
|
+
this.errors.add(result);
|
|
191
|
+
// skip any remaining morphs at the current path
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
if (result instanceof ArkErrors) {
|
|
195
|
+
// if the morph was a direct reference to another node,
|
|
196
|
+
// errors will have been added directly via this piped context
|
|
197
|
+
if (!morphIsNode) {
|
|
198
|
+
// otherwise, we have to ensure each error has been added
|
|
199
|
+
this.errors.merge(result);
|
|
200
|
+
}
|
|
201
|
+
// skip any remaining morphs at the current path
|
|
202
|
+
this.queuedMorphs = [];
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
// if the morph was successful, assign the result to the
|
|
206
|
+
// corresponding property, or to root if path is empty
|
|
207
|
+
if (parent === undefined)
|
|
208
|
+
this.root = result;
|
|
209
|
+
else
|
|
210
|
+
parent[key] = result;
|
|
211
|
+
// if the current morph queued additional morphs,
|
|
212
|
+
// applying them before subsequent morphs
|
|
213
|
+
this.applyQueuedMorphs();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
export const traverseKey = (key, fn,
|
|
218
|
+
// ctx will be undefined if this node isn't context-dependent
|
|
219
|
+
ctx) => {
|
|
220
|
+
if (!ctx)
|
|
221
|
+
return fn();
|
|
222
|
+
ctx.path.push(key);
|
|
223
|
+
const result = fn();
|
|
224
|
+
ctx.path.pop();
|
|
225
|
+
return result;
|
|
226
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type array, type mutable, type show, type Thunk } from "@ark/util";
|
|
2
|
+
import type { BaseConstraint } from "../constraint.ts";
|
|
3
|
+
import type { GenericRoot } from "../generic.ts";
|
|
4
|
+
import type { InternalModule } from "../module.ts";
|
|
5
|
+
import type { BaseNode } from "../node.ts";
|
|
6
|
+
import type { BaseParseContext } from "../parse.ts";
|
|
7
|
+
import type { BaseRoot } from "../roots/root.ts";
|
|
8
|
+
import type { BaseScope } from "../scope.ts";
|
|
9
|
+
import type { ArkError, ArkErrors } from "./errors.ts";
|
|
10
|
+
export declare const makeRootAndArrayPropertiesMutable: <o extends object>(o: o) => makeRootAndArrayPropertiesMutable<o>;
|
|
11
|
+
export type makeRootAndArrayPropertiesMutable<inner> = {
|
|
12
|
+
-readonly [k in keyof inner]: inner[k] extends array | undefined ? mutable<inner[k]> : inner[k];
|
|
13
|
+
} & unknown;
|
|
14
|
+
export type internalImplementationOf<external, typeOnlyKey extends keyof external = never> = {
|
|
15
|
+
[k in Exclude<keyof external, typeOnlyKey>]: external[k] extends ((...args: infer args) => unknown) ? (...args: {
|
|
16
|
+
[i in keyof args]: never;
|
|
17
|
+
}) => unknown : unknown;
|
|
18
|
+
};
|
|
19
|
+
export type arkKind = typeof arkKind;
|
|
20
|
+
export declare const arkKind: " arkKind";
|
|
21
|
+
export interface ArkKinds {
|
|
22
|
+
constraint: BaseConstraint;
|
|
23
|
+
root: BaseRoot;
|
|
24
|
+
scope: BaseScope;
|
|
25
|
+
generic: GenericRoot;
|
|
26
|
+
module: InternalModule;
|
|
27
|
+
error: ArkError;
|
|
28
|
+
errors: ArkErrors;
|
|
29
|
+
context: BaseParseContext;
|
|
30
|
+
}
|
|
31
|
+
export type ArkKind = show<keyof ArkKinds>;
|
|
32
|
+
export declare const hasArkKind: <kind extends ArkKind>(value: unknown, kind: kind) => value is ArkKinds[kind];
|
|
33
|
+
export declare const isNode: (value: unknown) => value is BaseNode;
|
|
34
|
+
export type unwrapDefault<thunkableValue> = thunkableValue extends Thunk<infer returnValue> ? returnValue : thunkableValue;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { flatMorph, isArray, noSuggest } from "@ark/util";
|
|
2
|
+
export const makeRootAndArrayPropertiesMutable = (o) =>
|
|
3
|
+
// this cast should not be required, but it seems TS is referencing
|
|
4
|
+
// the wrong parameters here?
|
|
5
|
+
flatMorph(o, (k, v) => [k, isArray(v) ? [...v] : v]);
|
|
6
|
+
export const arkKind = noSuggest("arkKind");
|
|
7
|
+
export const hasArkKind = (value, kind) => value?.[arkKind] === kind;
|
|
8
|
+
export const isNode = (value) => hasArkKind(value, "root") || hasArkKind(value, "constraint");
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseConstraint } from "../constraint.ts";
|
|
2
|
+
import type { RootSchema, nodeOfKind } from "../kinds.ts";
|
|
3
|
+
import { type BaseNode, type DeepNodeTransformContext, type DeepNodeTransformation } from "../node.ts";
|
|
4
|
+
import type { BaseRoot } from "../roots/root.ts";
|
|
5
|
+
import type { BaseNormalizedSchema, declareNode } from "../shared/declare.ts";
|
|
6
|
+
import { type RootKind, type nodeImplementationOf } from "../shared/implement.ts";
|
|
7
|
+
import { type TraverseAllows, type TraverseApply } from "../shared/traversal.ts";
|
|
8
|
+
export declare namespace Index {
|
|
9
|
+
type KeyKind = Exclude<RootKind, "unit">;
|
|
10
|
+
type KeyNode = nodeOfKind<KeyKind>;
|
|
11
|
+
interface Schema extends BaseNormalizedSchema {
|
|
12
|
+
readonly signature: RootSchema<KeyKind>;
|
|
13
|
+
readonly value: RootSchema;
|
|
14
|
+
}
|
|
15
|
+
interface Inner {
|
|
16
|
+
readonly signature: KeyNode;
|
|
17
|
+
readonly value: BaseRoot;
|
|
18
|
+
}
|
|
19
|
+
interface Declaration extends declareNode<{
|
|
20
|
+
kind: "index";
|
|
21
|
+
schema: Schema;
|
|
22
|
+
normalizedSchema: Schema;
|
|
23
|
+
inner: Inner;
|
|
24
|
+
prerequisite: object;
|
|
25
|
+
intersectionIsOpen: true;
|
|
26
|
+
childKind: RootKind;
|
|
27
|
+
}> {
|
|
28
|
+
}
|
|
29
|
+
type Node = IndexNode;
|
|
30
|
+
}
|
|
31
|
+
export declare class IndexNode extends BaseConstraint<Index.Declaration> {
|
|
32
|
+
impliedBasis: BaseRoot;
|
|
33
|
+
expression: string;
|
|
34
|
+
flatRefs: import("../node.ts").FlatRef<BaseRoot<import("../roots/root.ts").InternalRootDeclaration>>[];
|
|
35
|
+
traverseAllows: TraverseAllows<object>;
|
|
36
|
+
traverseApply: TraverseApply<object>;
|
|
37
|
+
protected _transform(mapper: DeepNodeTransformation, ctx: DeepNodeTransformContext): BaseNode | null;
|
|
38
|
+
compile(): void;
|
|
39
|
+
}
|
|
40
|
+
export declare const Index: {
|
|
41
|
+
implementation: nodeImplementationOf<Index.Declaration>;
|
|
42
|
+
Node: typeof IndexNode;
|
|
43
|
+
};
|
|
44
|
+
export declare const writeEnumerableIndexBranches: (keys: string[]) => string;
|
|
45
|
+
export declare const writeInvalidPropertyKeyMessage: <indexSchema extends string>(indexSchema: indexSchema) => writeInvalidPropertyKeyMessage<indexSchema>;
|
|
46
|
+
export type writeInvalidPropertyKeyMessage<indexSchema extends string> = `Indexed key definition '${indexSchema}' must be a string or symbol`;
|