@mionjs/run-types 0.8.10 → 0.13.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/LICENSE +1 -1
- package/README.md +22 -24
- package/bin/skills.mjs +111 -0
- package/dist/builders/atomic.d.ts +13 -0
- package/dist/builders/atomic.js +32 -0
- package/dist/builders/atomic.js.map +1 -0
- package/dist/builders/compose.d.ts +61 -0
- package/dist/builders/compose.js +103 -0
- package/dist/builders/compose.js.map +1 -0
- package/dist/builders/index.d.ts +6 -0
- package/dist/builders/index.js +5 -0
- package/dist/builders/index.js.map +1 -0
- package/dist/builders/static.d.ts +138 -0
- package/dist/builders/static.js +2 -0
- package/dist/builders/static.js.map +1 -0
- package/dist/builders/utility.d.ts +13 -0
- package/dist/builders/utility.js +32 -0
- package/dist/builders/utility.js.map +1 -0
- package/dist/cjs/builders/atomic.d.ts +12 -0
- package/dist/cjs/builders/atomic.js +43 -0
- package/dist/cjs/builders/compose.d.ts +60 -0
- package/dist/cjs/builders/compose.js +122 -0
- package/dist/cjs/builders/index.d.ts +5 -0
- package/dist/cjs/builders/index.js +48 -0
- package/dist/cjs/builders/static.d.ts +137 -0
- package/dist/cjs/builders/static.js +2 -0
- package/dist/cjs/builders/utility.d.ts +12 -0
- package/dist/cjs/builders/utility.js +43 -0
- package/dist/cjs/createRTFunctions.d.ts +90 -0
- package/dist/cjs/createRTFunctions.js +38 -0
- package/dist/cjs/enrich/createFriendlyText.d.ts +25 -0
- package/dist/cjs/enrich/createFriendlyText.js +275 -0
- package/dist/cjs/enrich/friendlyText.d.ts +56 -0
- package/dist/cjs/enrich/friendlyText.js +2 -0
- package/dist/cjs/enrich/mockData.d.ts +53 -0
- package/dist/cjs/enrich/mockData.js +2 -0
- package/dist/cjs/fnHash.d.ts +8 -0
- package/dist/cjs/fnHash.js +41 -0
- package/dist/cjs/formats/bigintFormats.d.ts +41 -0
- package/dist/cjs/formats/bigintFormats.js +10 -0
- package/dist/cjs/formats/datetime/dateFormats.d.ts +10 -0
- package/dist/cjs/formats/datetime/dateFormats.js +2 -0
- package/dist/cjs/formats/datetime/dateTime-pure-fns.d.ts +21 -0
- package/dist/cjs/formats/datetime/dateTime-pure-fns.js +405 -0
- package/dist/cjs/formats/datetime/dateTimeParams.d.ts +14 -0
- package/dist/cjs/formats/datetime/dateTimeParams.js +2 -0
- package/dist/cjs/formats/datetime/stringDateTimeFormats.d.ts +33 -0
- package/dist/cjs/formats/datetime/stringDateTimeFormats.js +2 -0
- package/dist/cjs/formats/datetime/temporalFormats.d.ts +84 -0
- package/dist/cjs/formats/datetime/temporalFormats.js +23 -0
- package/dist/cjs/formats/index.d.ts +18 -0
- package/dist/cjs/formats/index.js +88 -0
- package/dist/cjs/formats/numberFormats.d.ts +82 -0
- package/dist/cjs/formats/numberFormats.js +16 -0
- package/dist/cjs/formats/refineFormat.d.ts +24 -0
- package/dist/cjs/formats/refineFormat.js +2 -0
- package/dist/cjs/formats/scalars.d.ts +32 -0
- package/dist/cjs/formats/scalars.js +30 -0
- package/dist/cjs/formats/string/credit-card-pure-fns.d.ts +26 -0
- package/dist/cjs/formats/string/credit-card-pure-fns.js +151 -0
- package/dist/cjs/formats/string/string-formats-pure-fns.d.ts +12 -0
- package/dist/cjs/formats/string/string-formats-pure-fns.js +517 -0
- package/dist/cjs/formats/string/string-patterns.d.ts +111 -0
- package/dist/cjs/formats/string/string-patterns.js +115 -0
- package/dist/cjs/formats/string/stringFormats.d.ts +489 -0
- package/dist/cjs/formats/string/stringFormats.js +84 -0
- package/dist/cjs/formats/structural.d.ts +105 -0
- package/dist/cjs/formats/structural.js +7 -0
- package/dist/cjs/getRunType.d.ts +4 -0
- package/dist/cjs/getRunType.js +20 -0
- package/dist/cjs/go-generated/fnHashes.generated.d.ts +196 -0
- package/dist/cjs/go-generated/fnHashes.generated.js +78 -0
- package/dist/cjs/go-generated/formatErrorKeys.generated.d.ts +78 -0
- package/dist/cjs/go-generated/formatErrorKeys.generated.js +40 -0
- package/dist/cjs/go-generated/runTypeKind.generated.d.ts +62 -0
- package/dist/cjs/go-generated/runTypeKind.generated.js +61 -0
- package/dist/cjs/go-generated/typeFormats.generated.d.ts +104 -0
- package/dist/cjs/go-generated/typeFormats.generated.js +30 -0
- package/dist/cjs/index.d.ts +28 -0
- package/dist/cjs/index.js +47 -0
- package/dist/cjs/markers.d.ts +33 -0
- package/dist/cjs/markers.js +14 -0
- package/dist/cjs/mocking/childMatch.d.ts +3 -0
- package/dist/cjs/mocking/childMatch.js +357 -0
- package/dist/cjs/mocking/constants.mock.d.ts +7 -0
- package/dist/cjs/mocking/constants.mock.js +87 -0
- package/dist/cjs/mocking/createMockData.d.ts +8 -0
- package/dist/cjs/mocking/createMockData.js +53 -0
- package/dist/cjs/mocking/index.d.ts +4 -0
- package/dist/cjs/mocking/index.js +9 -0
- package/dist/cjs/mocking/isMultipleOf.d.ts +2 -0
- package/dist/cjs/mocking/isMultipleOf.js +11 -0
- package/dist/cjs/mocking/mockBigIntFormat.d.ts +1 -0
- package/dist/cjs/mocking/mockBigIntFormat.js +38 -0
- package/dist/cjs/mocking/mockDateTimeBounds.d.ts +13 -0
- package/dist/cjs/mocking/mockDateTimeBounds.js +277 -0
- package/dist/cjs/mocking/mockInvalid.d.ts +15 -0
- package/dist/cjs/mocking/mockInvalid.js +233 -0
- package/dist/cjs/mocking/mockNumberFormat.d.ts +1 -0
- package/dist/cjs/mocking/mockNumberFormat.js +56 -0
- package/dist/cjs/mocking/mockRandom.d.ts +20 -0
- package/dist/cjs/mocking/mockRandom.js +106 -0
- package/dist/cjs/mocking/mockRegistry.d.ts +7 -0
- package/dist/cjs/mocking/mockRegistry.js +11 -0
- package/dist/cjs/mocking/mockStringFormat.d.ts +5 -0
- package/dist/cjs/mocking/mockStringFormat.js +238 -0
- package/dist/cjs/mocking/mockTemporal.d.ts +13 -0
- package/dist/cjs/mocking/mockTemporal.js +233 -0
- package/dist/cjs/mocking/mockType.d.ts +3 -0
- package/dist/cjs/mocking/mockType.js +810 -0
- package/dist/cjs/mocking/mockTypes.d.ts +54 -0
- package/dist/cjs/mocking/mockTypes.js +2 -0
- package/dist/cjs/mocking/structuralFormat.d.ts +5 -0
- package/dist/cjs/mocking/structuralFormat.js +82 -0
- package/dist/cjs/modelTypes.d.ts +11 -0
- package/dist/cjs/modelTypes.js +2 -0
- package/dist/cjs/overrideRTFunctions.d.ts +9 -0
- package/dist/cjs/overrideRTFunctions.js +20 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/runtime/index.d.ts +10 -0
- package/dist/cjs/runtime/index.js +25 -0
- package/dist/cjs/runtypes/builderCore.d.ts +7 -0
- package/dist/cjs/runtypes/builderCore.js +39 -0
- package/dist/cjs/runtypes/builderTypes.d.ts +51 -0
- package/dist/cjs/runtypes/builderTypes.js +2 -0
- package/dist/cjs/runtypes/circular-pure-fns.d.ts +11 -0
- package/dist/cjs/runtypes/circular-pure-fns.js +117 -0
- package/dist/cjs/runtypes/circular.d.ts +6 -0
- package/dist/cjs/runtypes/circular.js +25 -0
- package/dist/cjs/runtypes/classSerializerRegistry.d.ts +28 -0
- package/dist/cjs/runtypes/classSerializerRegistry.js +141 -0
- package/dist/cjs/runtypes/dataOnly.d.ts +29 -0
- package/dist/cjs/runtypes/dataOnly.js +2 -0
- package/dist/cjs/runtypes/entryTuple.d.ts +101 -0
- package/dist/cjs/runtypes/entryTuple.js +395 -0
- package/dist/cjs/runtypes/formatAnnotation.d.ts +4 -0
- package/dist/cjs/runtypes/formatAnnotation.js +2 -0
- package/dist/cjs/runtypes/formatErrors.d.ts +18 -0
- package/dist/cjs/runtypes/formatErrors.js +2 -0
- package/dist/cjs/runtypes/formatPattern.d.ts +20 -0
- package/dist/cjs/runtypes/formatPattern.js +17 -0
- package/dist/cjs/runtypes/jsonShape.d.ts +22 -0
- package/dist/cjs/runtypes/jsonShape.js +2 -0
- package/dist/cjs/runtypes/pure-fn-ids.generated.d.ts +47 -0
- package/dist/cjs/runtypes/pure-fn-ids.generated.js +50 -0
- package/dist/cjs/runtypes/pure-fns-utils.d.ts +8 -0
- package/dist/cjs/runtypes/pure-fns-utils.js +147 -0
- package/dist/cjs/runtypes/pureFn.d.ts +7 -0
- package/dist/cjs/runtypes/pureFn.js +52 -0
- package/dist/cjs/runtypes/rtUtils.d.ts +45 -0
- package/dist/cjs/runtypes/rtUtils.js +218 -0
- package/dist/cjs/runtypes/sentinelKeys.d.ts +7 -0
- package/dist/cjs/runtypes/sentinelKeys.js +2 -0
- package/dist/cjs/runtypes/stripRunTypeMeta.d.ts +53 -0
- package/dist/cjs/runtypes/stripRunTypeMeta.js +2 -0
- package/dist/cjs/runtypes/typeFormat.d.ts +14 -0
- package/dist/cjs/runtypes/typeFormat.js +2 -0
- package/dist/cjs/runtypes/types.d.ts +114 -0
- package/dist/cjs/runtypes/types.js +2 -0
- package/dist/cjs/standard/createJsonSchemaFn.d.ts +8 -0
- package/dist/cjs/standard/createJsonSchemaFn.js +16 -0
- package/dist/cjs/standard/createStandardSchema.d.ts +18 -0
- package/dist/cjs/standard/createStandardSchema.js +30 -0
- package/dist/cjs/standard/issueMapping.d.ts +12 -0
- package/dist/cjs/standard/issueMapping.js +36 -0
- package/dist/cjs/standard/jsonSchemaDoc.d.ts +7 -0
- package/dist/cjs/standard/jsonSchemaDoc.js +95 -0
- package/dist/cjs/standard/spec.d.ts +47 -0
- package/dist/cjs/standard/spec.js +2 -0
- package/dist/createRTFunctions.d.ts +91 -0
- package/dist/createRTFunctions.js +33 -0
- package/dist/createRTFunctions.js.map +1 -0
- package/dist/enrich/createFriendlyText.d.ts +26 -0
- package/dist/enrich/createFriendlyText.js +271 -0
- package/dist/enrich/createFriendlyText.js.map +1 -0
- package/dist/enrich/friendlyText.d.ts +57 -0
- package/dist/enrich/friendlyText.js +2 -0
- package/dist/enrich/friendlyText.js.map +1 -0
- package/dist/enrich/mockData.d.ts +54 -0
- package/dist/enrich/mockData.js +2 -0
- package/dist/enrich/mockData.js.map +1 -0
- package/dist/fnHash.d.ts +9 -0
- package/dist/fnHash.js +39 -0
- package/dist/fnHash.js.map +1 -0
- package/dist/formats/bigintFormats.d.ts +42 -0
- package/dist/formats/bigintFormats.js +8 -0
- package/dist/formats/bigintFormats.js.map +1 -0
- package/dist/formats/datetime/dateFormats.d.ts +11 -0
- package/dist/formats/datetime/dateFormats.js +2 -0
- package/dist/formats/datetime/dateFormats.js.map +1 -0
- package/dist/formats/datetime/dateTime-pure-fns.d.ts +22 -0
- package/dist/formats/datetime/dateTime-pure-fns.js +403 -0
- package/dist/formats/datetime/dateTime-pure-fns.js.map +1 -0
- package/dist/formats/datetime/dateTimeParams.d.ts +15 -0
- package/dist/formats/datetime/dateTimeParams.js +2 -0
- package/dist/formats/datetime/dateTimeParams.js.map +1 -0
- package/dist/formats/datetime/stringDateTimeFormats.d.ts +34 -0
- package/dist/formats/datetime/stringDateTimeFormats.js +2 -0
- package/dist/formats/datetime/stringDateTimeFormats.js.map +1 -0
- package/dist/formats/datetime/temporalFormats.d.ts +85 -0
- package/dist/formats/datetime/temporalFormats.js +21 -0
- package/dist/formats/datetime/temporalFormats.js.map +1 -0
- package/dist/formats/index.d.ts +19 -0
- package/dist/formats/index.js +9 -0
- package/dist/formats/index.js.map +1 -0
- package/dist/formats/numberFormats.d.ts +83 -0
- package/dist/formats/numberFormats.js +14 -0
- package/dist/formats/numberFormats.js.map +1 -0
- package/dist/formats/refineFormat.d.ts +25 -0
- package/dist/formats/refineFormat.js +2 -0
- package/dist/formats/refineFormat.js.map +1 -0
- package/dist/formats/scalars.d.ts +33 -0
- package/dist/formats/scalars.js +23 -0
- package/dist/formats/scalars.js.map +1 -0
- package/dist/formats/string/credit-card-pure-fns.d.ts +27 -0
- package/dist/formats/string/credit-card-pure-fns.js +147 -0
- package/dist/formats/string/credit-card-pure-fns.js.map +1 -0
- package/dist/formats/string/string-formats-pure-fns.d.ts +13 -0
- package/dist/formats/string/string-formats-pure-fns.js +515 -0
- package/dist/formats/string/string-formats-pure-fns.js.map +1 -0
- package/dist/formats/string/string-patterns.d.ts +112 -0
- package/dist/formats/string/string-patterns.js +113 -0
- package/dist/formats/string/string-patterns.js.map +1 -0
- package/dist/formats/string/stringFormats.d.ts +490 -0
- package/dist/formats/string/stringFormats.js +76 -0
- package/dist/formats/string/stringFormats.js.map +1 -0
- package/dist/formats/structural.d.ts +106 -0
- package/dist/formats/structural.js +5 -0
- package/dist/formats/structural.js.map +1 -0
- package/dist/getRunType.d.ts +5 -0
- package/dist/getRunType.js +18 -0
- package/dist/getRunType.js.map +1 -0
- package/dist/go-generated/fnHashes.generated.d.ts +197 -0
- package/dist/go-generated/fnHashes.generated.js +76 -0
- package/dist/go-generated/fnHashes.generated.js.map +1 -0
- package/dist/go-generated/formatErrorKeys.generated.d.ts +79 -0
- package/dist/go-generated/formatErrorKeys.generated.js +38 -0
- package/dist/go-generated/formatErrorKeys.generated.js.map +1 -0
- package/dist/go-generated/runTypeKind.generated.d.ts +63 -0
- package/dist/go-generated/runTypeKind.generated.js +59 -0
- package/dist/go-generated/runTypeKind.generated.js.map +1 -0
- package/dist/go-generated/typeFormats.generated.d.ts +105 -0
- package/dist/go-generated/typeFormats.generated.js +28 -0
- package/dist/go-generated/typeFormats.generated.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/markers.d.ts +34 -0
- package/dist/markers.js +12 -0
- package/dist/markers.js.map +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/-y__pOnrgnvRMz.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/0ofEnb55W0BDIY.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/18wDCH5CXZoQKV.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/2xtQHAMu-yOBo6.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/5oCqd7YyfA9rEw.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/6E7qWsIwaFRGn6.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/6xkN1Qfs9nqO79.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/8Mj42N3ytEEn67.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/A3KjzpjelkcBST.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/AgOXcprpjsrTKk.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/E29ul2pUOyD_Ay.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/EG8OkOOSnT9bZn.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/EYsxRHRDgAykA_.js +3 -0
- package/dist/mion-pure-fns/@mionjs/run-types/Eube1z0GFHuqlM.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/GA20s6bj41GC1A.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/GfQK19ktpvibuZ.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/IyjvBbz0zSlgCJ.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/LqTR2O-h6MYq9J.js +4 -0
- package/dist/mion-pure-fns/@mionjs/run-types/MnJ72PqkyXHiSP.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/NJ9TCGDnkv_9Mn.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/OCJ1B0-ZCAwagS.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/PQVLEBllZckw8I.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/Qd_9GJQlOCVqDe.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/R0IFkkw4SM2gvv.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/THkAA-KNR1HeAe.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/VJiknJ2exR2oMF.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/XYGjy-tcgDROBw.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/Z2sc5xQPKB0oav.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/_3Pmrr5aNmyNi4.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/cgwpjq6rGsI8jb.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/d8U9HjmMsNFd6Z.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/fL3v1v6aVZwJ7-.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/gFl-yXbCxJqWgQ.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/hiotRbfSKFAuK4.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/lFYcgG5ZSI-8em.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/n_ZOWff4X3qBMQ.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/ndkQPoji6DFHx2.js +2 -0
- package/dist/mion-pure-fns/@mionjs/run-types/nsU8QeJCuCF8Kr.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/qMsNYN8hy_sC8i.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/rXVwGkGDX08BsQ.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/rgWveqNi_HeFF8.js +5 -0
- package/dist/mion-pure-fns/@mionjs/run-types/s-tZDRlQfCG5m2.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/t-ntJ9S0FuxkC2.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/tfRjnFZVF8lqI_.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/vLId7t0J8HNWlN.js +1 -0
- package/dist/mion-pure-fns/@mionjs/run-types/zXMPEMyjGR4ZRc.js +1 -0
- package/dist/mion-pure-fns/index.json +236 -0
- package/dist/mocking/childMatch.d.ts +4 -0
- package/dist/mocking/childMatch.js +354 -0
- package/dist/mocking/childMatch.js.map +1 -0
- package/dist/mocking/constants.mock.d.ts +8 -0
- package/dist/mocking/constants.mock.js +85 -0
- package/dist/mocking/constants.mock.js.map +1 -0
- package/dist/mocking/createMockData.d.ts +9 -0
- package/dist/mocking/createMockData.js +51 -0
- package/dist/mocking/createMockData.js.map +1 -0
- package/dist/mocking/index.d.ts +5 -0
- package/dist/mocking/index.js +4 -0
- package/dist/mocking/index.js.map +1 -0
- package/dist/mocking/isMultipleOf.d.ts +3 -0
- package/dist/mocking/isMultipleOf.js +8 -0
- package/dist/mocking/isMultipleOf.js.map +1 -0
- package/dist/mocking/mockBigIntFormat.d.ts +2 -0
- package/dist/mocking/mockBigIntFormat.js +37 -0
- package/dist/mocking/mockBigIntFormat.js.map +1 -0
- package/dist/mocking/mockDateTimeBounds.d.ts +14 -0
- package/dist/mocking/mockDateTimeBounds.js +272 -0
- package/dist/mocking/mockDateTimeBounds.js.map +1 -0
- package/dist/mocking/mockInvalid.d.ts +16 -0
- package/dist/mocking/mockInvalid.js +228 -0
- package/dist/mocking/mockInvalid.js.map +1 -0
- package/dist/mocking/mockNumberFormat.d.ts +2 -0
- package/dist/mocking/mockNumberFormat.js +55 -0
- package/dist/mocking/mockNumberFormat.js.map +1 -0
- package/dist/mocking/mockRandom.d.ts +21 -0
- package/dist/mocking/mockRandom.js +102 -0
- package/dist/mocking/mockRandom.js.map +1 -0
- package/dist/mocking/mockRegistry.d.ts +8 -0
- package/dist/mocking/mockRegistry.js +8 -0
- package/dist/mocking/mockRegistry.js.map +1 -0
- package/dist/mocking/mockStringFormat.d.ts +6 -0
- package/dist/mocking/mockStringFormat.js +234 -0
- package/dist/mocking/mockStringFormat.js.map +1 -0
- package/dist/mocking/mockTemporal.d.ts +14 -0
- package/dist/mocking/mockTemporal.js +229 -0
- package/dist/mocking/mockTemporal.js.map +1 -0
- package/dist/mocking/mockType.d.ts +4 -0
- package/dist/mocking/mockType.js +808 -0
- package/dist/mocking/mockType.js.map +1 -0
- package/dist/mocking/mockTypes.d.ts +55 -0
- package/dist/mocking/mockTypes.js +2 -0
- package/dist/mocking/mockTypes.js.map +1 -0
- package/dist/mocking/structuralFormat.d.ts +6 -0
- package/dist/mocking/structuralFormat.js +77 -0
- package/dist/mocking/structuralFormat.js.map +1 -0
- package/dist/modelTypes.d.ts +12 -0
- package/dist/modelTypes.js +2 -0
- package/dist/modelTypes.js.map +1 -0
- package/dist/overrideRTFunctions.d.ts +10 -0
- package/dist/overrideRTFunctions.js +18 -0
- package/dist/overrideRTFunctions.js.map +1 -0
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.js +10 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtypes/builderCore.d.ts +8 -0
- package/dist/runtypes/builderCore.js +34 -0
- package/dist/runtypes/builderCore.js.map +1 -0
- package/dist/runtypes/builderTypes.d.ts +52 -0
- package/dist/runtypes/builderTypes.js +2 -0
- package/dist/runtypes/builderTypes.js.map +1 -0
- package/dist/runtypes/circular-pure-fns.d.ts +12 -0
- package/dist/runtypes/circular-pure-fns.js +115 -0
- package/dist/runtypes/circular-pure-fns.js.map +1 -0
- package/dist/runtypes/circular.d.ts +7 -0
- package/dist/runtypes/circular.js +21 -0
- package/dist/runtypes/circular.js.map +1 -0
- package/dist/runtypes/classSerializerRegistry.d.ts +29 -0
- package/dist/runtypes/classSerializerRegistry.js +133 -0
- package/dist/runtypes/classSerializerRegistry.js.map +1 -0
- package/dist/runtypes/dataOnly.d.ts +30 -0
- package/dist/runtypes/dataOnly.js +2 -0
- package/dist/runtypes/dataOnly.js.map +1 -0
- package/dist/runtypes/entryTuple.d.ts +102 -0
- package/dist/runtypes/entryTuple.js +387 -0
- package/dist/runtypes/entryTuple.js.map +1 -0
- package/dist/runtypes/formatAnnotation.d.ts +5 -0
- package/dist/runtypes/formatAnnotation.js +2 -0
- package/dist/runtypes/formatAnnotation.js.map +1 -0
- package/dist/runtypes/formatErrors.d.ts +19 -0
- package/dist/runtypes/formatErrors.js +2 -0
- package/dist/runtypes/formatErrors.js.map +1 -0
- package/dist/runtypes/formatPattern.d.ts +21 -0
- package/dist/runtypes/formatPattern.js +15 -0
- package/dist/runtypes/formatPattern.js.map +1 -0
- package/dist/runtypes/jsonShape.d.ts +23 -0
- package/dist/runtypes/jsonShape.js +2 -0
- package/dist/runtypes/jsonShape.js.map +1 -0
- package/dist/runtypes/pure-fn-ids.generated.d.ts +48 -0
- package/dist/runtypes/pure-fn-ids.generated.js +48 -0
- package/dist/runtypes/pure-fn-ids.generated.js.map +1 -0
- package/dist/runtypes/pure-fns-utils.d.ts +9 -0
- package/dist/runtypes/pure-fns-utils.js +145 -0
- package/dist/runtypes/pure-fns-utils.js.map +1 -0
- package/dist/runtypes/pureFn.d.ts +8 -0
- package/dist/runtypes/pureFn.js +49 -0
- package/dist/runtypes/pureFn.js.map +1 -0
- package/dist/runtypes/rtUtils.d.ts +46 -0
- package/dist/runtypes/rtUtils.js +211 -0
- package/dist/runtypes/rtUtils.js.map +1 -0
- package/dist/runtypes/sentinelKeys.d.ts +8 -0
- package/dist/runtypes/sentinelKeys.js +2 -0
- package/dist/runtypes/sentinelKeys.js.map +1 -0
- package/dist/runtypes/stripRunTypeMeta.d.ts +54 -0
- package/dist/runtypes/stripRunTypeMeta.js +2 -0
- package/dist/runtypes/stripRunTypeMeta.js.map +1 -0
- package/dist/runtypes/typeFormat.d.ts +15 -0
- package/dist/runtypes/typeFormat.js +2 -0
- package/dist/runtypes/typeFormat.js.map +1 -0
- package/dist/runtypes/types.d.ts +115 -0
- package/dist/runtypes/types.js +2 -0
- package/dist/runtypes/types.js.map +1 -0
- package/dist/standard/createJsonSchemaFn.d.ts +9 -0
- package/dist/standard/createJsonSchemaFn.js +12 -0
- package/dist/standard/createJsonSchemaFn.js.map +1 -0
- package/dist/standard/createStandardSchema.d.ts +19 -0
- package/dist/standard/createStandardSchema.js +28 -0
- package/dist/standard/createStandardSchema.js.map +1 -0
- package/dist/standard/issueMapping.d.ts +13 -0
- package/dist/standard/issueMapping.js +34 -0
- package/dist/standard/issueMapping.js.map +1 -0
- package/dist/standard/jsonSchemaDoc.d.ts +8 -0
- package/dist/standard/jsonSchemaDoc.js +90 -0
- package/dist/standard/jsonSchemaDoc.js.map +1 -0
- package/dist/standard/spec.d.ts +48 -0
- package/dist/standard/spec.js +2 -0
- package/dist/standard/spec.js.map +1 -0
- package/package.json +101 -53
- package/skills/rt-enrich-types/SKILL.md +83 -0
- package/skills/rt-enrich-types/mirror.md +58 -0
- package/skills/rt-enrich-types/translations.md +77 -0
- package/skills/runtypes-friendly-text/SKILL.md +94 -0
- package/skills/runtypes-friendly-text/references/checks.md +37 -0
- package/skills/runtypes-friendly-text/references/error-templates.md +94 -0
- package/skills/runtypes-friendly-text/references/example.md +80 -0
- package/skills/runtypes-friendly-text/references/rendering.md +77 -0
- package/skills/runtypes-friendly-text/references/translations.md +38 -0
- package/skills/runtypes-mock-data/SKILL.md +95 -0
- package/skills/runtypes-mock-data/example.md +54 -0
- package/.dist/cjs/index.cjs +0 -209
- package/.dist/cjs/index.cjs.map +0 -1
- package/.dist/cjs/index.d.ts +0 -61
- package/.dist/cjs/index.d.ts.map +0 -1
- package/.dist/cjs/package.json +0 -1
- package/.dist/cjs/src/constants.cjs +0 -79
- package/.dist/cjs/src/constants.cjs.map +0 -1
- package/.dist/cjs/src/constants.d.ts +0 -8
- package/.dist/cjs/src/constants.d.ts.map +0 -1
- package/.dist/cjs/src/constants.functions.cjs +0 -181
- package/.dist/cjs/src/constants.functions.cjs.map +0 -1
- package/.dist/cjs/src/constants.functions.d.ts +0 -386
- package/.dist/cjs/src/constants.functions.d.ts.map +0 -1
- package/.dist/cjs/src/constants.kind.cjs +0 -74
- package/.dist/cjs/src/constants.kind.cjs.map +0 -1
- package/.dist/cjs/src/constants.kind.d.ts +0 -22
- package/.dist/cjs/src/constants.kind.d.ts.map +0 -1
- package/.dist/cjs/src/createRunType.cjs +0 -286
- package/.dist/cjs/src/createRunType.cjs.map +0 -1
- package/.dist/cjs/src/createRunType.d.ts +0 -6
- package/.dist/cjs/src/createRunType.d.ts.map +0 -1
- package/.dist/cjs/src/createRunTypeFunctions.cjs +0 -78
- package/.dist/cjs/src/createRunTypeFunctions.cjs.map +0 -1
- package/.dist/cjs/src/createRunTypeFunctions.d.ts +0 -13
- package/.dist/cjs/src/createRunTypeFunctions.d.ts.map +0 -1
- package/.dist/cjs/src/formats.runtype.cjs +0 -7
- package/.dist/cjs/src/formats.runtype.cjs.map +0 -1
- package/.dist/cjs/src/formats.runtype.d.ts +0 -7
- package/.dist/cjs/src/formats.runtype.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs +0 -109
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +0 -31
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs +0 -383
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +0 -8
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs +0 -338
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +0 -8
- package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs +0 -37
- package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +0 -5
- package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs +0 -56
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +0 -28
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs +0 -399
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +0 -11
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs +0 -51
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +0 -28
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs +0 -131
- package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs.map +0 -1
- package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +0 -6
- package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts.map +0 -1
- package/.dist/cjs/src/lib/baseRunTypeFormat.cjs +0 -200
- package/.dist/cjs/src/lib/baseRunTypeFormat.cjs.map +0 -1
- package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +0 -51
- package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts.map +0 -1
- package/.dist/cjs/src/lib/baseRunTypes.cjs +0 -277
- package/.dist/cjs/src/lib/baseRunTypes.cjs.map +0 -1
- package/.dist/cjs/src/lib/baseRunTypes.d.ts +0 -74
- package/.dist/cjs/src/lib/baseRunTypes.d.ts.map +0 -1
- package/.dist/cjs/src/lib/createJitFunction.cjs +0 -60
- package/.dist/cjs/src/lib/createJitFunction.cjs.map +0 -1
- package/.dist/cjs/src/lib/createJitFunction.d.ts +0 -6
- package/.dist/cjs/src/lib/createJitFunction.d.ts.map +0 -1
- package/.dist/cjs/src/lib/dkProxy.cjs +0 -23
- package/.dist/cjs/src/lib/dkProxy.cjs.map +0 -1
- package/.dist/cjs/src/lib/dkProxy.d.ts +0 -5
- package/.dist/cjs/src/lib/dkProxy.d.ts.map +0 -1
- package/.dist/cjs/src/lib/formats.cjs +0 -89
- package/.dist/cjs/src/lib/formats.cjs.map +0 -1
- package/.dist/cjs/src/lib/formats.d.ts +0 -19
- package/.dist/cjs/src/lib/formats.d.ts.map +0 -1
- package/.dist/cjs/src/lib/guards.cjs +0 -243
- package/.dist/cjs/src/lib/guards.cjs.map +0 -1
- package/.dist/cjs/src/lib/guards.d.ts +0 -121
- package/.dist/cjs/src/lib/guards.d.ts.map +0 -1
- package/.dist/cjs/src/lib/jitFnCompiler.cjs +0 -650
- package/.dist/cjs/src/lib/jitFnCompiler.cjs.map +0 -1
- package/.dist/cjs/src/lib/jitFnCompiler.d.ts +0 -110
- package/.dist/cjs/src/lib/jitFnCompiler.d.ts.map +0 -1
- package/.dist/cjs/src/lib/jitFnsRegistry.cjs +0 -41
- package/.dist/cjs/src/lib/jitFnsRegistry.cjs.map +0 -1
- package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +0 -7
- package/.dist/cjs/src/lib/jitFnsRegistry.d.ts.map +0 -1
- package/.dist/cjs/src/lib/typeId.cjs +0 -205
- package/.dist/cjs/src/lib/typeId.cjs.map +0 -1
- package/.dist/cjs/src/lib/typeId.d.ts +0 -7
- package/.dist/cjs/src/lib/typeId.d.ts.map +0 -1
- package/.dist/cjs/src/lib/utils.cjs +0 -325
- package/.dist/cjs/src/lib/utils.cjs.map +0 -1
- package/.dist/cjs/src/lib/utils.d.ts +0 -33
- package/.dist/cjs/src/lib/utils.d.ts.map +0 -1
- package/.dist/cjs/src/mocking/constants.mock.cjs +0 -108
- package/.dist/cjs/src/mocking/constants.mock.cjs.map +0 -1
- package/.dist/cjs/src/mocking/constants.mock.d.ts +0 -86
- package/.dist/cjs/src/mocking/constants.mock.d.ts.map +0 -1
- package/.dist/cjs/src/mocking/mockRegistry.cjs +0 -12
- package/.dist/cjs/src/mocking/mockRegistry.cjs.map +0 -1
- package/.dist/cjs/src/mocking/mockRegistry.d.ts +0 -4
- package/.dist/cjs/src/mocking/mockRegistry.d.ts.map +0 -1
- package/.dist/cjs/src/mocking/mockType.cjs +0 -355
- package/.dist/cjs/src/mocking/mockType.cjs.map +0 -1
- package/.dist/cjs/src/mocking/mockType.d.ts +0 -4
- package/.dist/cjs/src/mocking/mockType.d.ts.map +0 -1
- package/.dist/cjs/src/mocking/mockUtils.cjs +0 -62
- package/.dist/cjs/src/mocking/mockUtils.cjs.map +0 -1
- package/.dist/cjs/src/mocking/mockUtils.d.ts +0 -16
- package/.dist/cjs/src/mocking/mockUtils.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/any.cjs +0 -18
- package/.dist/cjs/src/nodes/atomic/any.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/any.d.ts +0 -9
- package/.dist/cjs/src/nodes/atomic/any.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/bigInt.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/bigInt.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/bigInt.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/boolean.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/boolean.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/boolean.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/boolean.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/date.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/date.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/date.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/date.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/enum.cjs +0 -22
- package/.dist/cjs/src/nodes/atomic/enum.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/enum.d.ts +0 -9
- package/.dist/cjs/src/nodes/atomic/enum.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/enumMember.cjs +0 -24
- package/.dist/cjs/src/nodes/atomic/enumMember.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/enumMember.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/literal.cjs +0 -126
- package/.dist/cjs/src/nodes/atomic/literal.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/literal.d.ts +0 -21
- package/.dist/cjs/src/nodes/atomic/literal.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/never.cjs +0 -22
- package/.dist/cjs/src/nodes/atomic/never.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/never.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/never.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/null.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/null.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/null.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/null.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/number.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/number.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/number.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/number.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/object.cjs +0 -14
- package/.dist/cjs/src/nodes/atomic/object.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/object.d.ts +0 -9
- package/.dist/cjs/src/nodes/atomic/object.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/regexp.cjs +0 -23
- package/.dist/cjs/src/nodes/atomic/regexp.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/regexp.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/regexp.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/string.cjs +0 -14
- package/.dist/cjs/src/nodes/atomic/string.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/string.d.ts +0 -9
- package/.dist/cjs/src/nodes/atomic/string.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/symbol.cjs +0 -26
- package/.dist/cjs/src/nodes/atomic/symbol.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/symbol.d.ts +0 -12
- package/.dist/cjs/src/nodes/atomic/symbol.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/undefined.cjs +0 -17
- package/.dist/cjs/src/nodes/atomic/undefined.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/undefined.d.ts +0 -10
- package/.dist/cjs/src/nodes/atomic/undefined.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/unknown.cjs +0 -8
- package/.dist/cjs/src/nodes/atomic/unknown.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/unknown.d.ts +0 -4
- package/.dist/cjs/src/nodes/atomic/unknown.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/atomic/void.cjs +0 -20
- package/.dist/cjs/src/nodes/atomic/void.cjs.map +0 -1
- package/.dist/cjs/src/nodes/atomic/void.d.ts +0 -11
- package/.dist/cjs/src/nodes/atomic/void.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/class.cjs +0 -38
- package/.dist/cjs/src/nodes/collection/class.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/class.d.ts +0 -10
- package/.dist/cjs/src/nodes/collection/class.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/functionParams.cjs +0 -33
- package/.dist/cjs/src/nodes/collection/functionParams.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/functionParams.d.ts +0 -10
- package/.dist/cjs/src/nodes/collection/functionParams.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/interface.cjs +0 -241
- package/.dist/cjs/src/nodes/collection/interface.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/interface.d.ts +0 -44
- package/.dist/cjs/src/nodes/collection/interface.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/intersection.cjs +0 -21
- package/.dist/cjs/src/nodes/collection/intersection.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/intersection.d.ts +0 -10
- package/.dist/cjs/src/nodes/collection/intersection.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/templateLiteral.cjs +0 -73
- package/.dist/cjs/src/nodes/collection/templateLiteral.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts +0 -16
- package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/tuple.cjs +0 -74
- package/.dist/cjs/src/nodes/collection/tuple.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/tuple.d.ts +0 -19
- package/.dist/cjs/src/nodes/collection/tuple.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/union.cjs +0 -162
- package/.dist/cjs/src/nodes/collection/union.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/union.d.ts +0 -20
- package/.dist/cjs/src/nodes/collection/union.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs +0 -198
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs.map +0 -1
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +0 -22
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/function/function.cjs +0 -159
- package/.dist/cjs/src/nodes/function/function.cjs.map +0 -1
- package/.dist/cjs/src/nodes/function/function.d.ts +0 -35
- package/.dist/cjs/src/nodes/function/function.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/array.cjs +0 -154
- package/.dist/cjs/src/nodes/member/array.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/array.d.ts +0 -25
- package/.dist/cjs/src/nodes/member/array.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/callSignature.cjs +0 -40
- package/.dist/cjs/src/nodes/member/callSignature.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/callSignature.d.ts +0 -12
- package/.dist/cjs/src/nodes/member/callSignature.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/genericMember.cjs +0 -68
- package/.dist/cjs/src/nodes/member/genericMember.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/genericMember.d.ts +0 -16
- package/.dist/cjs/src/nodes/member/genericMember.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/indexProperty.cjs +0 -177
- package/.dist/cjs/src/nodes/member/indexProperty.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/indexProperty.d.ts +0 -23
- package/.dist/cjs/src/nodes/member/indexProperty.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/method.cjs +0 -41
- package/.dist/cjs/src/nodes/member/method.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/method.d.ts +0 -12
- package/.dist/cjs/src/nodes/member/method.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/methodSignature.cjs +0 -44
- package/.dist/cjs/src/nodes/member/methodSignature.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/methodSignature.d.ts +0 -13
- package/.dist/cjs/src/nodes/member/methodSignature.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/param.cjs +0 -17
- package/.dist/cjs/src/nodes/member/param.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/param.d.ts +0 -9
- package/.dist/cjs/src/nodes/member/param.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/property.cjs +0 -85
- package/.dist/cjs/src/nodes/member/property.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/property.d.ts +0 -20
- package/.dist/cjs/src/nodes/member/property.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/restParams.cjs +0 -15
- package/.dist/cjs/src/nodes/member/restParams.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/restParams.d.ts +0 -8
- package/.dist/cjs/src/nodes/member/restParams.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/member/tupleMember.cjs +0 -93
- package/.dist/cjs/src/nodes/member/tupleMember.cjs.map +0 -1
- package/.dist/cjs/src/nodes/member/tupleMember.d.ts +0 -21
- package/.dist/cjs/src/nodes/member/tupleMember.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/native/Iterable.cjs +0 -135
- package/.dist/cjs/src/nodes/native/Iterable.cjs.map +0 -1
- package/.dist/cjs/src/nodes/native/Iterable.d.ts +0 -19
- package/.dist/cjs/src/nodes/native/Iterable.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/native/map.cjs +0 -96
- package/.dist/cjs/src/nodes/native/map.cjs.map +0 -1
- package/.dist/cjs/src/nodes/native/map.d.ts +0 -43
- package/.dist/cjs/src/nodes/native/map.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/native/nonSerializable.cjs +0 -36
- package/.dist/cjs/src/nodes/native/nonSerializable.cjs.map +0 -1
- package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +0 -15
- package/.dist/cjs/src/nodes/native/nonSerializable.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/native/promise.cjs +0 -38
- package/.dist/cjs/src/nodes/native/promise.cjs.map +0 -1
- package/.dist/cjs/src/nodes/native/promise.d.ts +0 -16
- package/.dist/cjs/src/nodes/native/promise.d.ts.map +0 -1
- package/.dist/cjs/src/nodes/native/set.cjs +0 -60
- package/.dist/cjs/src/nodes/native/set.cjs.map +0 -1
- package/.dist/cjs/src/nodes/native/set.d.ts +0 -31
- package/.dist/cjs/src/nodes/native/set.d.ts.map +0 -1
- package/.dist/cjs/src/run-types-pure-fns.cjs +0 -112
- package/.dist/cjs/src/run-types-pure-fns.cjs.map +0 -1
- package/.dist/cjs/src/run-types-pure-fns.d.ts +0 -8
- package/.dist/cjs/src/run-types-pure-fns.d.ts.map +0 -1
- package/.dist/cjs/src/types.cjs +0 -59
- package/.dist/cjs/src/types.cjs.map +0 -1
- package/.dist/cjs/src/types.d.ts +0 -154
- package/.dist/cjs/src/types.d.ts.map +0 -1
- package/.dist/esm/index.d.ts +0 -61
- package/.dist/esm/index.d.ts.map +0 -1
- package/.dist/esm/index.js +0 -209
- package/.dist/esm/index.js.map +0 -1
- package/.dist/esm/src/constants.d.ts +0 -8
- package/.dist/esm/src/constants.d.ts.map +0 -1
- package/.dist/esm/src/constants.functions.d.ts +0 -386
- package/.dist/esm/src/constants.functions.d.ts.map +0 -1
- package/.dist/esm/src/constants.functions.js +0 -181
- package/.dist/esm/src/constants.functions.js.map +0 -1
- package/.dist/esm/src/constants.js +0 -79
- package/.dist/esm/src/constants.js.map +0 -1
- package/.dist/esm/src/constants.kind.d.ts +0 -22
- package/.dist/esm/src/constants.kind.d.ts.map +0 -1
- package/.dist/esm/src/constants.kind.js +0 -74
- package/.dist/esm/src/constants.kind.js.map +0 -1
- package/.dist/esm/src/createRunType.d.ts +0 -6
- package/.dist/esm/src/createRunType.d.ts.map +0 -1
- package/.dist/esm/src/createRunType.js +0 -286
- package/.dist/esm/src/createRunType.js.map +0 -1
- package/.dist/esm/src/createRunTypeFunctions.d.ts +0 -13
- package/.dist/esm/src/createRunTypeFunctions.d.ts.map +0 -1
- package/.dist/esm/src/createRunTypeFunctions.js +0 -78
- package/.dist/esm/src/createRunTypeFunctions.js.map +0 -1
- package/.dist/esm/src/formats.runtype.d.ts +0 -7
- package/.dist/esm/src/formats.runtype.d.ts.map +0 -1
- package/.dist/esm/src/formats.runtype.js +0 -7
- package/.dist/esm/src/formats.runtype.js.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +0 -31
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js +0 -109
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +0 -8
- package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js +0 -383
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +0 -8
- package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/binary/toBinary.js +0 -338
- package/.dist/esm/src/jitCompilers/binary/toBinary.js.map +0 -1
- package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +0 -5
- package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/equalsHelpers.js +0 -37
- package/.dist/esm/src/jitCompilers/equalsHelpers.js.map +0 -1
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +0 -28
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js +0 -56
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js.map +0 -1
- package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +0 -11
- package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js +0 -399
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js.map +0 -1
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +0 -28
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js +0 -51
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js.map +0 -1
- package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +0 -6
- package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts.map +0 -1
- package/.dist/esm/src/jitCompilers/json/toJsCode.js +0 -131
- package/.dist/esm/src/jitCompilers/json/toJsCode.js.map +0 -1
- package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +0 -51
- package/.dist/esm/src/lib/baseRunTypeFormat.d.ts.map +0 -1
- package/.dist/esm/src/lib/baseRunTypeFormat.js +0 -200
- package/.dist/esm/src/lib/baseRunTypeFormat.js.map +0 -1
- package/.dist/esm/src/lib/baseRunTypes.d.ts +0 -74
- package/.dist/esm/src/lib/baseRunTypes.d.ts.map +0 -1
- package/.dist/esm/src/lib/baseRunTypes.js +0 -277
- package/.dist/esm/src/lib/baseRunTypes.js.map +0 -1
- package/.dist/esm/src/lib/createJitFunction.d.ts +0 -6
- package/.dist/esm/src/lib/createJitFunction.d.ts.map +0 -1
- package/.dist/esm/src/lib/createJitFunction.js +0 -60
- package/.dist/esm/src/lib/createJitFunction.js.map +0 -1
- package/.dist/esm/src/lib/dkProxy.d.ts +0 -5
- package/.dist/esm/src/lib/dkProxy.d.ts.map +0 -1
- package/.dist/esm/src/lib/dkProxy.js +0 -23
- package/.dist/esm/src/lib/dkProxy.js.map +0 -1
- package/.dist/esm/src/lib/formats.d.ts +0 -19
- package/.dist/esm/src/lib/formats.d.ts.map +0 -1
- package/.dist/esm/src/lib/formats.js +0 -89
- package/.dist/esm/src/lib/formats.js.map +0 -1
- package/.dist/esm/src/lib/guards.d.ts +0 -121
- package/.dist/esm/src/lib/guards.d.ts.map +0 -1
- package/.dist/esm/src/lib/guards.js +0 -243
- package/.dist/esm/src/lib/guards.js.map +0 -1
- package/.dist/esm/src/lib/jitFnCompiler.d.ts +0 -110
- package/.dist/esm/src/lib/jitFnCompiler.d.ts.map +0 -1
- package/.dist/esm/src/lib/jitFnCompiler.js +0 -650
- package/.dist/esm/src/lib/jitFnCompiler.js.map +0 -1
- package/.dist/esm/src/lib/jitFnsRegistry.d.ts +0 -7
- package/.dist/esm/src/lib/jitFnsRegistry.d.ts.map +0 -1
- package/.dist/esm/src/lib/jitFnsRegistry.js +0 -41
- package/.dist/esm/src/lib/jitFnsRegistry.js.map +0 -1
- package/.dist/esm/src/lib/typeId.d.ts +0 -7
- package/.dist/esm/src/lib/typeId.d.ts.map +0 -1
- package/.dist/esm/src/lib/typeId.js +0 -205
- package/.dist/esm/src/lib/typeId.js.map +0 -1
- package/.dist/esm/src/lib/utils.d.ts +0 -33
- package/.dist/esm/src/lib/utils.d.ts.map +0 -1
- package/.dist/esm/src/lib/utils.js +0 -325
- package/.dist/esm/src/lib/utils.js.map +0 -1
- package/.dist/esm/src/mocking/constants.mock.d.ts +0 -86
- package/.dist/esm/src/mocking/constants.mock.d.ts.map +0 -1
- package/.dist/esm/src/mocking/constants.mock.js +0 -108
- package/.dist/esm/src/mocking/constants.mock.js.map +0 -1
- package/.dist/esm/src/mocking/mockRegistry.d.ts +0 -4
- package/.dist/esm/src/mocking/mockRegistry.d.ts.map +0 -1
- package/.dist/esm/src/mocking/mockRegistry.js +0 -12
- package/.dist/esm/src/mocking/mockRegistry.js.map +0 -1
- package/.dist/esm/src/mocking/mockType.d.ts +0 -4
- package/.dist/esm/src/mocking/mockType.d.ts.map +0 -1
- package/.dist/esm/src/mocking/mockType.js +0 -355
- package/.dist/esm/src/mocking/mockType.js.map +0 -1
- package/.dist/esm/src/mocking/mockUtils.d.ts +0 -16
- package/.dist/esm/src/mocking/mockUtils.d.ts.map +0 -1
- package/.dist/esm/src/mocking/mockUtils.js +0 -62
- package/.dist/esm/src/mocking/mockUtils.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/any.d.ts +0 -9
- package/.dist/esm/src/nodes/atomic/any.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/any.js +0 -18
- package/.dist/esm/src/nodes/atomic/any.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/bigInt.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/bigInt.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/bigInt.js +0 -20
- package/.dist/esm/src/nodes/atomic/bigInt.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/boolean.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/boolean.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/boolean.js +0 -20
- package/.dist/esm/src/nodes/atomic/boolean.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/date.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/date.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/date.js +0 -20
- package/.dist/esm/src/nodes/atomic/date.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/enum.d.ts +0 -9
- package/.dist/esm/src/nodes/atomic/enum.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/enum.js +0 -22
- package/.dist/esm/src/nodes/atomic/enum.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/enumMember.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/enumMember.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/enumMember.js +0 -24
- package/.dist/esm/src/nodes/atomic/enumMember.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/literal.d.ts +0 -21
- package/.dist/esm/src/nodes/atomic/literal.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/literal.js +0 -126
- package/.dist/esm/src/nodes/atomic/literal.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/never.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/never.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/never.js +0 -22
- package/.dist/esm/src/nodes/atomic/never.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/null.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/null.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/null.js +0 -20
- package/.dist/esm/src/nodes/atomic/null.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/number.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/number.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/number.js +0 -20
- package/.dist/esm/src/nodes/atomic/number.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/object.d.ts +0 -9
- package/.dist/esm/src/nodes/atomic/object.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/object.js +0 -14
- package/.dist/esm/src/nodes/atomic/object.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/regexp.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/regexp.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/regexp.js +0 -23
- package/.dist/esm/src/nodes/atomic/regexp.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/string.d.ts +0 -9
- package/.dist/esm/src/nodes/atomic/string.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/string.js +0 -14
- package/.dist/esm/src/nodes/atomic/string.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/symbol.d.ts +0 -12
- package/.dist/esm/src/nodes/atomic/symbol.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/symbol.js +0 -26
- package/.dist/esm/src/nodes/atomic/symbol.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/undefined.d.ts +0 -10
- package/.dist/esm/src/nodes/atomic/undefined.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/undefined.js +0 -17
- package/.dist/esm/src/nodes/atomic/undefined.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/unknown.d.ts +0 -4
- package/.dist/esm/src/nodes/atomic/unknown.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/unknown.js +0 -8
- package/.dist/esm/src/nodes/atomic/unknown.js.map +0 -1
- package/.dist/esm/src/nodes/atomic/void.d.ts +0 -11
- package/.dist/esm/src/nodes/atomic/void.d.ts.map +0 -1
- package/.dist/esm/src/nodes/atomic/void.js +0 -20
- package/.dist/esm/src/nodes/atomic/void.js.map +0 -1
- package/.dist/esm/src/nodes/collection/class.d.ts +0 -10
- package/.dist/esm/src/nodes/collection/class.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/class.js +0 -38
- package/.dist/esm/src/nodes/collection/class.js.map +0 -1
- package/.dist/esm/src/nodes/collection/functionParams.d.ts +0 -10
- package/.dist/esm/src/nodes/collection/functionParams.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/functionParams.js +0 -33
- package/.dist/esm/src/nodes/collection/functionParams.js.map +0 -1
- package/.dist/esm/src/nodes/collection/interface.d.ts +0 -44
- package/.dist/esm/src/nodes/collection/interface.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/interface.js +0 -241
- package/.dist/esm/src/nodes/collection/interface.js.map +0 -1
- package/.dist/esm/src/nodes/collection/intersection.d.ts +0 -10
- package/.dist/esm/src/nodes/collection/intersection.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/intersection.js +0 -21
- package/.dist/esm/src/nodes/collection/intersection.js.map +0 -1
- package/.dist/esm/src/nodes/collection/templateLiteral.d.ts +0 -16
- package/.dist/esm/src/nodes/collection/templateLiteral.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/templateLiteral.js +0 -73
- package/.dist/esm/src/nodes/collection/templateLiteral.js.map +0 -1
- package/.dist/esm/src/nodes/collection/tuple.d.ts +0 -19
- package/.dist/esm/src/nodes/collection/tuple.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/tuple.js +0 -74
- package/.dist/esm/src/nodes/collection/tuple.js.map +0 -1
- package/.dist/esm/src/nodes/collection/union.d.ts +0 -20
- package/.dist/esm/src/nodes/collection/union.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/union.js +0 -162
- package/.dist/esm/src/nodes/collection/union.js.map +0 -1
- package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +0 -22
- package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts.map +0 -1
- package/.dist/esm/src/nodes/collection/unionDiscriminator.js +0 -198
- package/.dist/esm/src/nodes/collection/unionDiscriminator.js.map +0 -1
- package/.dist/esm/src/nodes/function/function.d.ts +0 -35
- package/.dist/esm/src/nodes/function/function.d.ts.map +0 -1
- package/.dist/esm/src/nodes/function/function.js +0 -159
- package/.dist/esm/src/nodes/function/function.js.map +0 -1
- package/.dist/esm/src/nodes/member/array.d.ts +0 -25
- package/.dist/esm/src/nodes/member/array.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/array.js +0 -154
- package/.dist/esm/src/nodes/member/array.js.map +0 -1
- package/.dist/esm/src/nodes/member/callSignature.d.ts +0 -12
- package/.dist/esm/src/nodes/member/callSignature.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/callSignature.js +0 -40
- package/.dist/esm/src/nodes/member/callSignature.js.map +0 -1
- package/.dist/esm/src/nodes/member/genericMember.d.ts +0 -16
- package/.dist/esm/src/nodes/member/genericMember.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/genericMember.js +0 -68
- package/.dist/esm/src/nodes/member/genericMember.js.map +0 -1
- package/.dist/esm/src/nodes/member/indexProperty.d.ts +0 -23
- package/.dist/esm/src/nodes/member/indexProperty.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/indexProperty.js +0 -177
- package/.dist/esm/src/nodes/member/indexProperty.js.map +0 -1
- package/.dist/esm/src/nodes/member/method.d.ts +0 -12
- package/.dist/esm/src/nodes/member/method.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/method.js +0 -41
- package/.dist/esm/src/nodes/member/method.js.map +0 -1
- package/.dist/esm/src/nodes/member/methodSignature.d.ts +0 -13
- package/.dist/esm/src/nodes/member/methodSignature.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/methodSignature.js +0 -44
- package/.dist/esm/src/nodes/member/methodSignature.js.map +0 -1
- package/.dist/esm/src/nodes/member/param.d.ts +0 -9
- package/.dist/esm/src/nodes/member/param.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/param.js +0 -17
- package/.dist/esm/src/nodes/member/param.js.map +0 -1
- package/.dist/esm/src/nodes/member/property.d.ts +0 -20
- package/.dist/esm/src/nodes/member/property.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/property.js +0 -85
- package/.dist/esm/src/nodes/member/property.js.map +0 -1
- package/.dist/esm/src/nodes/member/restParams.d.ts +0 -8
- package/.dist/esm/src/nodes/member/restParams.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/restParams.js +0 -15
- package/.dist/esm/src/nodes/member/restParams.js.map +0 -1
- package/.dist/esm/src/nodes/member/tupleMember.d.ts +0 -21
- package/.dist/esm/src/nodes/member/tupleMember.d.ts.map +0 -1
- package/.dist/esm/src/nodes/member/tupleMember.js +0 -93
- package/.dist/esm/src/nodes/member/tupleMember.js.map +0 -1
- package/.dist/esm/src/nodes/native/Iterable.d.ts +0 -19
- package/.dist/esm/src/nodes/native/Iterable.d.ts.map +0 -1
- package/.dist/esm/src/nodes/native/Iterable.js +0 -135
- package/.dist/esm/src/nodes/native/Iterable.js.map +0 -1
- package/.dist/esm/src/nodes/native/map.d.ts +0 -43
- package/.dist/esm/src/nodes/native/map.d.ts.map +0 -1
- package/.dist/esm/src/nodes/native/map.js +0 -96
- package/.dist/esm/src/nodes/native/map.js.map +0 -1
- package/.dist/esm/src/nodes/native/nonSerializable.d.ts +0 -15
- package/.dist/esm/src/nodes/native/nonSerializable.d.ts.map +0 -1
- package/.dist/esm/src/nodes/native/nonSerializable.js +0 -36
- package/.dist/esm/src/nodes/native/nonSerializable.js.map +0 -1
- package/.dist/esm/src/nodes/native/promise.d.ts +0 -16
- package/.dist/esm/src/nodes/native/promise.d.ts.map +0 -1
- package/.dist/esm/src/nodes/native/promise.js +0 -38
- package/.dist/esm/src/nodes/native/promise.js.map +0 -1
- package/.dist/esm/src/nodes/native/set.d.ts +0 -31
- package/.dist/esm/src/nodes/native/set.d.ts.map +0 -1
- package/.dist/esm/src/nodes/native/set.js +0 -60
- package/.dist/esm/src/nodes/native/set.js.map +0 -1
- package/.dist/esm/src/run-types-pure-fns.d.ts +0 -8
- package/.dist/esm/src/run-types-pure-fns.d.ts.map +0 -1
- package/.dist/esm/src/run-types-pure-fns.js +0 -112
- package/.dist/esm/src/run-types-pure-fns.js.map +0 -1
- package/.dist/esm/src/types.d.ts +0 -154
- package/.dist/esm/src/types.d.ts.map +0 -1
- package/.dist/esm/src/types.js +0 -59
- package/.dist/esm/src/types.js.map +0 -1
- package/index.ts +0 -70
- package/src/constants.functions.ts +0 -196
- package/src/constants.kind.ts +0 -76
- package/src/constants.ts +0 -85
- package/src/createRunType.ts +0 -322
- package/src/createRunTypeFunctions.ts +0 -93
- package/src/formats.runtype.ts +0 -35
- package/src/jitCompilers/binary/binarySPEC.md +0 -138
- package/src/jitCompilers/binary/binarySpec/binaryHelpers.ts +0 -118
- package/src/jitCompilers/binary/fromBinary.ts +0 -493
- package/src/jitCompilers/binary/toBinary.ts +0 -436
- package/src/jitCompilers/equalsHelpers.ts +0 -62
- package/src/jitCompilers/json/jsonSpec/jsonHelpers.ts +0 -64
- package/src/jitCompilers/json/stringifyJson.ts +0 -476
- package/src/jitCompilers/json/stringifySpec/stringifyHelpers.ts +0 -59
- package/src/jitCompilers/json/toJsCode.ts +0 -182
- package/src/jitCompilers/serialization-suite.ts +0 -1689
- package/src/jitCompilers/xyz-Template/fromXYZ.ts +0 -212
- package/src/jitCompilers/xyz-Template/toXYZ.ts +0 -217
- package/src/jitCompilers/xyz-Template/xyzReadme.md +0 -6
- package/src/jitCompilers/xyz-Template/xyzSpec/xyzHelpers.ts +0 -66
- package/src/lib/baseRunTypeFormat.ts +0 -320
- package/src/lib/baseRunTypes.ts +0 -367
- package/src/lib/createJitFunction.ts +0 -87
- package/src/lib/dkProxy.ts +0 -47
- package/src/lib/formats.ts +0 -144
- package/src/lib/guards.ts +0 -290
- package/src/lib/jitFnCompiler.ts +0 -783
- package/src/lib/jitFnsRegistry.ts +0 -53
- package/src/lib/typeId.ts +0 -225
- package/src/lib/utils.ts +0 -402
- package/src/mocking/constants.mock.ts +0 -87
- package/src/mocking/mockRegistry.ts +0 -20
- package/src/mocking/mockType.ts +0 -409
- package/src/mocking/mockUtils.ts +0 -82
- package/src/nodes/atomic/any.ts +0 -22
- package/src/nodes/atomic/bigInt.ts +0 -26
- package/src/nodes/atomic/boolean.ts +0 -26
- package/src/nodes/atomic/date.ts +0 -26
- package/src/nodes/atomic/enum.ts +0 -23
- package/src/nodes/atomic/enumMember.ts +0 -29
- package/src/nodes/atomic/literal.ts +0 -125
- package/src/nodes/atomic/never.ts +0 -26
- package/src/nodes/atomic/null.ts +0 -26
- package/src/nodes/atomic/number.ts +0 -26
- package/src/nodes/atomic/object.ts +0 -20
- package/src/nodes/atomic/regexp.ts +0 -29
- package/src/nodes/atomic/string.ts +0 -20
- package/src/nodes/atomic/symbol.ts +0 -31
- package/src/nodes/atomic/undefined.ts +0 -23
- package/src/nodes/atomic/unknown.ts +0 -10
- package/src/nodes/atomic/void.ts +0 -26
- package/src/nodes/collection/class.ts +0 -36
- package/src/nodes/collection/functionParams.ts +0 -42
- package/src/nodes/collection/interface.ts +0 -300
- package/src/nodes/collection/intersection.ts +0 -30
- package/src/nodes/collection/templateLiteral.ts +0 -87
- package/src/nodes/collection/tuple.ts +0 -80
- package/src/nodes/collection/union.ts +0 -205
- package/src/nodes/collection/unionDiscriminator.ts +0 -259
- package/src/nodes/function/function.ts +0 -166
- package/src/nodes/member/array.ts +0 -150
- package/src/nodes/member/callSignature.ts +0 -34
- package/src/nodes/member/genericMember.ts +0 -63
- package/src/nodes/member/indexProperty.ts +0 -174
- package/src/nodes/member/method.ts +0 -30
- package/src/nodes/member/methodSignature.ts +0 -31
- package/src/nodes/member/param.ts +0 -22
- package/src/nodes/member/property.ts +0 -75
- package/src/nodes/member/restParams.ts +0 -22
- package/src/nodes/member/tupleMember.ts +0 -93
- package/src/nodes/native/Iterable.ts +0 -153
- package/src/nodes/native/map.ts +0 -91
- package/src/nodes/native/nonSerializable.ts +0 -42
- package/src/nodes/native/promise.ts +0 -43
- package/src/nodes/native/set.ts +0 -56
- package/src/run-types-pure-fns.ts +0 -116
- package/src/types.ts +0 -206
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rt-enrich-types
|
|
3
|
+
description: FriendlyText/MockData enrich loop: mion enrich CLI, @todo blanks, @rt* tags, i18n. Use to scaffold/fill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RunTypes enrichment: compiler scaffolds, you fill blanks
|
|
7
|
+
|
|
8
|
+
- Enrichment = committed, type-keyed data RunTypes cannot generate on its own.
|
|
9
|
+
- `FriendlyText<T>`: human labels + error messages. `MockData<T>`: realistic sample values.
|
|
10
|
+
- Validators/codecs: pure functions of the type, recomputed every build, never committed.
|
|
11
|
+
- Enrichment: authored once, committed, validated against the type forever after.
|
|
12
|
+
- Full design: [docs/AI_ENRICHMENT.md](https://github.com/MionKit/mion/blob/main/docs/AI_ENRICHMENT.md).
|
|
13
|
+
- Compiler writes the code: real, type-accurate file, every field in place, gaps marked `@todo`.
|
|
14
|
+
- You (the agent) fill the gaps with believable, valid content.
|
|
15
|
+
- ⚠️ Never call an LLM inside a build. Authoring = explicit out-of-band step → reviewable, committed diff.
|
|
16
|
+
|
|
17
|
+
## The loop
|
|
18
|
+
|
|
19
|
+
1. **`enrich`**: scaffold the mirror file. One entry per field, correctly typed, each blank marked `@todo`.
|
|
20
|
+
2. **Fill the `@todo`s**: labels, messages, sample values. Delete each `@todo` line when done.
|
|
21
|
+
3. **`enrich --no-emit`**: health check. Validates every authored value against the live type.
|
|
22
|
+
- FAILS on WRONG or stale content (dead field, leftover carcass).
|
|
23
|
+
- Only REPORTS unfilled blanks: `@todo` lines, empty `''` labels/messages, empty `[]` pools.
|
|
24
|
+
- (A fresh scaffold is expected to carry blanks.) Fix what fails, repeat until clean.
|
|
25
|
+
- **3b. `enrich --require-complete`**: the "am I done?" gate. All `--no-emit` checks + FAILS on any blank.
|
|
26
|
+
A blank value ships blank to the app → treated exactly like an unresolved `@todo`.
|
|
27
|
+
Run before calling enrichment finished. CI and a production bundler build enforce it.
|
|
28
|
+
4. **`enrich --update`**: type changed → value-preserving re-sync (property merge + field rename + orphaning).
|
|
29
|
+
Fill any new `@todo`s it adds.
|
|
30
|
+
5. **`enrich --prune`**: the only destructive op. Removes `@rtOrphan`/`@rtOrphanChild` carcasses
|
|
31
|
+
left by deleted types/fields.
|
|
32
|
+
6. **`enrich --i18n <locale|all> [<src.ts>] [--update|--prune]`**: scaffold, reconcile or prune
|
|
33
|
+
per-locale translation files of the friendly maps.
|
|
34
|
+
7. **`enrich --i18n <locale|all> --no-emit`**: translation status (enrich-i18n-\*, warnings by default).
|
|
35
|
+
**`--require-complete`** (or tsconfig `i18n.strict`) makes it FAIL for CI.
|
|
36
|
+
|
|
37
|
+
Translations (steps 6-7): CLI, `--update` rules, findings, tsconfig `i18n` block → [translations.md](translations.md).
|
|
38
|
+
|
|
39
|
+
## tsconfig
|
|
40
|
+
|
|
41
|
+
- Every verb takes **`--tsconfig <path>`**. Without it: found exactly as tsc does, searching upward from cwd.
|
|
42
|
+
- ONE resolved config feeds genDir/i18n settings AND type resolution (same compiler options as the build).
|
|
43
|
+
- Config named or discovered but missing/broken → command stops with an error.
|
|
44
|
+
- Only a project with no tsconfig at all falls back to built-in defaults.
|
|
45
|
+
|
|
46
|
+
## Mirror directory + JSDoc tags
|
|
47
|
+
|
|
48
|
+
Where files live, consumer imports, tag ownership table → [mirror.md](mirror.md). Read before editing a mirror file.
|
|
49
|
+
|
|
50
|
+
- `@rt`-prefixed tags = compiler-owned. Never edit by hand. Plain `@todo` = yours; compiler only emits it.
|
|
51
|
+
- `--update` never edits your values. `--prune` is the only command that deletes.
|
|
52
|
+
|
|
53
|
+
## `FriendlyText<T>`: labels + error messages
|
|
54
|
+
|
|
55
|
+
- Combined per-field map: `rt$label` (human name) + `rt$errors`.
|
|
56
|
+
- `rt$errors`: one template per declared failable constraint, or exclusive `{rt$default: '…'}` catch-all.
|
|
57
|
+
- `type` required. Other constraint keys optional in the type: `enrich` scaffolds each, a missing one is reported.
|
|
58
|
+
- Count-bearing constraints scaffold plural objects.
|
|
59
|
+
- Scaffold always per-constraint. Switch a node to `rt$default` by hand.
|
|
60
|
+
- Pure data. Rendered at runtime by `createFriendlyText<T>(map)`, or `createFriendlyTextI18n` + committed translations.
|
|
61
|
+
- Full DSL (node shape, constraint keys, `$[…]` placeholders, plurals, `rt$default`, enrich-text-\* checks,
|
|
62
|
+
runtime rendering) = **`runtypes-friendly-text`** skill. Use it whenever you author or fill a friendly map.
|
|
63
|
+
|
|
64
|
+
## `MockData<T>`: realistic sample data
|
|
65
|
+
|
|
66
|
+
- Per-field pools + ranges: `pool`, `min`/`max`, `rt$items`/`rt$length`, `rt$optional`.
|
|
67
|
+
- Feeds `createMockDataFn<T>(undefined, { data })`.
|
|
68
|
+
- Mechanical generator keeps handling structure + format-correctness; you supply _believable_ values.
|
|
69
|
+
- Full DSL (node shapes per field kind, enrich-mock-\* checks, end-to-end wiring) = **`runtypes-mock-data`** skill.
|
|
70
|
+
Use it whenever you author or fill a mock map.
|
|
71
|
+
|
|
72
|
+
## Authoring checklist
|
|
73
|
+
|
|
74
|
+
- `enrich` scaffold lays out every field. Write values that fit each field's kind + format.
|
|
75
|
+
- Fill **every `@todo`** AND every blank value (`''` label/message, `[]` pool), then **delete that `@todo` line**.
|
|
76
|
+
A leftover blank = unresolved `@todo` for the completeness gate.
|
|
77
|
+
- Never touch `@rt*` tags or `@rtOrphan`/`@rtOrphanChild` comment blocks. Compiler owns them; `--prune` clears orphans.
|
|
78
|
+
- After editing: `enrich --no-emit`, resolve every Error.
|
|
79
|
+
- Before calling it finished: `enrich --require-complete` (+ `enrich --i18n <locale|all> --require-complete`
|
|
80
|
+
for translations). Fails until every `@todo` and blank is filled.
|
|
81
|
+
- Type changed → prefer `enrich --update` (keeps your values) over regenerating.
|
|
82
|
+
- Family rules (friendly constraint keys, plural arms, translation fill discipline, mock pools/ranges):
|
|
83
|
+
**`runtypes-friendly-text`** and **`runtypes-mock-data`** skills' checklists.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Mirror directory + JSDoc tags
|
|
2
|
+
|
|
3
|
+
Where enrichment files live, how consumers import them, who owns each tag.
|
|
4
|
+
|
|
5
|
+
## Mirror directory: one file per family
|
|
6
|
+
|
|
7
|
+
- Enrichment is committed to a **mirror directory**: its tree shadows your source, split **per family**.
|
|
8
|
+
- Type defined in `src/models/user.ts`:
|
|
9
|
+
- `friendly<Name>` consts (`FriendlyText<Name>`) → `<genDir>/enriched/friendly/src/models/user.ts`.
|
|
10
|
+
- `mock<Name>` consts (`MockData<Name>`) → `<genDir>/enriched/mock/src/models/user.ts`.
|
|
11
|
+
- Path follows the source file from the tsconfig folder, or from `rootDir` when set.
|
|
12
|
+
`rootDir: "src"` gives `friendly/models/user.ts`.
|
|
13
|
+
- Default `genDir`: `.mion` in the source folder (`rootDir`, else the folder all program files share).
|
|
14
|
+
- Configure it via the `mion` entry under `compilerOptions.plugins` in `tsconfig.json`.
|
|
15
|
+
- One mirror file per family per source file. Anchored at the type's **definition**, not its call sites.
|
|
16
|
+
- One `export` per enriched type defined there: one enrichment home per type, however many files consume it.
|
|
17
|
+
- The two families never share a file. Each family file imports only its own wrapper type.
|
|
18
|
+
- First committed RunTypes artifact (every other output is gitignored cache). Hand-editable.
|
|
19
|
+
- `enrich --no-emit` flags a mirror outside its family folder: enrich-mirror-moved (location drift).
|
|
20
|
+
- `--out` writes one combined file instead: explicit escape hatch.
|
|
21
|
+
- Each family file: strict `import type` back to the source (the rename **breadcrumb**)
|
|
22
|
+
- committed consts you import by name.
|
|
23
|
+
- The `import type` is best-effort: consumed type not exported → file fails to compile → fix the export.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
// src/.mion/enriched/mock/src/models/user.ts: GENERATED, COMMITTED, hand-editable
|
|
27
|
+
import type {User} from '../../../../../models/user';
|
|
28
|
+
import type {MockData} from '@mionjs/run-types';
|
|
29
|
+
|
|
30
|
+
/** @rtType User#9f3a @rtIds {age: b2, name: a1} */
|
|
31
|
+
// @todo: generated skeleton — fill in real data, then delete this line
|
|
32
|
+
export const mockUser: MockData<User> = {name: {pool: []}, age: {pool: []}};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Consumers use a **real, committed import**. Never plugin-injected (enrichment is committed, so its link is too).
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// src/services/userForm.ts
|
|
39
|
+
import {createMockDataFn} from '@mionjs/run-types/mocking';
|
|
40
|
+
import {friendlyUser} from '../.mion/enriched/friendly/src/models/user';
|
|
41
|
+
import {mockUser} from '../.mion/enriched/mock/src/models/user';
|
|
42
|
+
import type {User} from '../models/user';
|
|
43
|
+
|
|
44
|
+
createMockDataFn<User>(undefined, {data: mockUser});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## The JSDoc tags
|
|
48
|
+
|
|
49
|
+
| Tag | Owner | Meaning |
|
|
50
|
+
| ----------------------- | -------- | ----------------------------------------------------------------------------- |
|
|
51
|
+
| `@rtType <Name>#<id>` | compiler | const's stable structural identity; reconcile matches by this, not var name |
|
|
52
|
+
| `@rtIds {field: id, …}` | compiler | each field's child type id: lets `--update` detect a **rename**, carry value |
|
|
53
|
+
| `@rtOrphan …` | compiler | whole const whose source type is gone: commented out (value kept), `--prune`d |
|
|
54
|
+
| `@rtOrphanChild …` | compiler | one field removed from the type: commented out (value kept), `--prune`d |
|
|
55
|
+
| `@todo …` | **you** | a blank the compiler scaffolded: fill it in, then **delete the line** |
|
|
56
|
+
|
|
57
|
+
- Hand-authored comments survive `--update` and travel with a renamed field.
|
|
58
|
+
- `--update` only adds blanks, flags stale values, orphans gone fields.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Translations: per-locale friendly files
|
|
2
|
+
|
|
3
|
+
CLI, file layout, reconcile rules and tsconfig block for `enrich --i18n`.
|
|
4
|
+
|
|
5
|
+
## Layout
|
|
6
|
+
|
|
7
|
+
- The friendly map you author IS the source language: tsconfig `i18n.sourceLocale`, default `en`.
|
|
8
|
+
- No separate default catalog, no separate translation type.
|
|
9
|
+
- Each target locale gets committed `FriendlyText<T>` files shadowing the friendly mirror tree:
|
|
10
|
+
`<i18nDir>/<locale>/<rel>.ts`.
|
|
11
|
+
- Default `i18nDir`: `<genDir>/enriched/i18n`, resolved under the project root.
|
|
12
|
+
- e.g. `src/.mion/enriched/i18n/pl/src/models/user.ts`.
|
|
13
|
+
- Locale is a path segment, so `pt-BR` works verbatim.
|
|
14
|
+
- Const per type: `<locale>_friendly<Name>`. BCP-47 `-` becomes `_`: `pt_BR_friendlyUser`.
|
|
15
|
+
- Annotated `FriendlyText<Name>`, SAME `@rtType <Name>#<id> @rtIds {…}` markers as the source.
|
|
16
|
+
- Path + const prefix carry the locale. No i18n marker.
|
|
17
|
+
- Every locale file is generated FROM THE SOURCE TYPE by the same driver as the friendly mirror.
|
|
18
|
+
- Mirror = discovery input only (which sources translate), never a content input.
|
|
19
|
+
- No generated file ever feeds the generation of another.
|
|
20
|
+
|
|
21
|
+
## CLI
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
mion enrich --i18n <locale> [<src.ts>] # scaffold (create-only)
|
|
25
|
+
mion enrich --i18n <locale> --update [<src.ts>] # reconcile from the SOURCE TYPE
|
|
26
|
+
mion enrich --i18n <locale> --prune [<src.ts>] # strip @rtOrphan carcasses (the only delete)
|
|
27
|
+
mion enrich --i18n all [--update] # fan out over tsconfig i18n.locales
|
|
28
|
+
mion enrich --i18n <locale|all> --no-emit # report status (warnings, exit 0)
|
|
29
|
+
mion enrich --i18n <locale|all> --require-complete # completeness gate (fails CI)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- No `<src.ts>` → targets = sources that have a friendly mirror (path math over `<genDir>/enriched/friendly/`).
|
|
33
|
+
Mirror content never read.
|
|
34
|
+
- Scaffold = type's tree, every string leaf + plural arm an `@todo` blank (`''`).
|
|
35
|
+
NEVER copies source text as if translated.
|
|
36
|
+
- Fill rules (translate only blank leaves, arms locale-owned, prune freely): **`runtypes-friendly-text`** skill,
|
|
37
|
+
translations page.
|
|
38
|
+
|
|
39
|
+
## `--update`
|
|
40
|
+
|
|
41
|
+
- Same value-preserving reconcile as `enrich --update`: one driver for every friendly-family file.
|
|
42
|
+
- Includes the one-level `rt$errors` descent:
|
|
43
|
+
- Newly declared constraint key → blank of the right kind (string, or plural with THAT FILE's locale arms).
|
|
44
|
+
- Dropped RECOGNIZED constraint key → `@rtOrphanChild` carcass. Unknown keys = author-owned, untouched.
|
|
45
|
+
- Same-key leaf kept byte-identical. `rt$default`-only node never descended.
|
|
46
|
+
- Plural arms never orphaned, renamed or down-scoped.
|
|
47
|
+
- Type renames carry across locales via shared `@rtType` id.
|
|
48
|
+
Const, annotation, marker AND intra-file references renamed in place.
|
|
49
|
+
|
|
50
|
+
## `enrich --i18n --no-emit` findings
|
|
51
|
+
|
|
52
|
+
- enrich-i18n-missing-translation: translation file missing.
|
|
53
|
+
- enrich-i18n-todo-left: unfilled `@todo` blanks.
|
|
54
|
+
- enrich-i18n-out-of-date: out of date vs the SOURCE TYPE (a src-driven reconcile would change the file).
|
|
55
|
+
- enrich-i18n-orphans: orphan carcasses awaiting review/prune.
|
|
56
|
+
- All Warnings (exit 0). tsconfig `i18n.strict: true` OR `--require-complete` → Errors (exit 1).
|
|
57
|
+
- Runtime always lenient regardless.
|
|
58
|
+
|
|
59
|
+
## tsconfig `i18n` block
|
|
60
|
+
|
|
61
|
+
Lives on the `mion` tsconfig plugin entry. Dormant by default: zero change when absent.
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"name": "mion",
|
|
66
|
+
|
|
67
|
+
"i18n": {
|
|
68
|
+
"sourceLocale": "en", // language the source FriendlyText maps are written in
|
|
69
|
+
"dir": "src/.mion/enriched/i18n", // translation subtree root (default <genDir>/enriched/i18n)
|
|
70
|
+
"locales": ["es", "pl", "pt-BR"], // target locales (the source locale is NOT listed)
|
|
71
|
+
"strict": false, // when true, the i18n check fails on incompleteness by default (same as --require-complete)
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Runtime rendering (`createFriendlyTextI18n`, `resolveLocale` matching, per-leaf fallback,
|
|
77
|
+
type-driven `$[val]` for Currency / date bounds): **`runtypes-friendly-text`** skill.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: runtypes-friendly-text
|
|
3
|
+
description: FriendlyText<T> rt$label/rt$errors ($[val], plurals, createFriendlyText). Use for friendly errors/labels.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Authoring & using `FriendlyText<T>`
|
|
7
|
+
|
|
8
|
+
- One of two AI-enrichment artifacts in RunTypes. Other: `MockData<T>` (`runtypes-mock-data` skill).
|
|
9
|
+
- Enrichment is authored once, committed, validated against the type. CLI loop: `rt-enrich-types` skill.
|
|
10
|
+
- Full design: [docs/AI_ENRICHMENT.md](https://github.com/MionKit/mion/blob/main/docs/AI_ENRICHMENT.md).
|
|
11
|
+
- `FriendlyText<T>` = combined per-field map of:
|
|
12
|
+
- **labels**: `rt$label`, human name per field (`'Full name'` for `name`).
|
|
13
|
+
- **error-message templates**: `rt$errors`, one template per failed constraint.
|
|
14
|
+
- **Pure data.** `createFriendlyText<T>(map)` renders `createGetValidationErrorsFn<T>()` output as readable messages.
|
|
15
|
+
- No type-id injection, no `rtUtils`: error rendering needs only `(map, errors)`.
|
|
16
|
+
|
|
17
|
+
## When to use it
|
|
18
|
+
|
|
19
|
+
- Turn `createGetValidationErrorsFn<T>()` errors into readable text, not raw `{ path, expected, format }`.
|
|
20
|
+
- You need stable human field **labels** (form building, error summaries).
|
|
21
|
+
- Scaffolding a type's committed friendly mirror file.
|
|
22
|
+
- Filling a locale's translation file (also typed `FriendlyText<T>`, rendered via `createFriendlyTextI18n`).
|
|
23
|
+
- Boolean pass/fail only → `createValidateFn<T>()` directly, no friendly map.
|
|
24
|
+
|
|
25
|
+
## Shipped vs designed
|
|
26
|
+
|
|
27
|
+
- **Shipped**, all exported from `@mionjs/run-types`:
|
|
28
|
+
- [`friendlyText.ts`][ft]: `FriendlyText<T>` + plural types `PluralTemplate`, `TemplateLeaf`, `PluralCategory`.
|
|
29
|
+
- [`createFriendlyText.ts`][cft]: plural-aware `createFriendlyText<T>(map)`, `createFriendlyTextI18n`,
|
|
30
|
+
`resolveLocale`.
|
|
31
|
+
- `enrich` / `enrich --no-emit` CLI (incl. `--i18n`) scaffolds + validates the committed maps.
|
|
32
|
+
- **Designed (not yet wired):** `ShapeCheckedArgs<T>` compile-time axis, `rtUtils` registry accessors.
|
|
33
|
+
|
|
34
|
+
## Node model: `{ rt$label, rt$errors, ...children }`
|
|
35
|
+
|
|
36
|
+
- One recursive node, uniform at every depth. No `fields:` wrapper: leaf nodes simply have no children.
|
|
37
|
+
- `rt$`-prefixed keys = **meta**. Every other key = **child field**. A plain `$foo` property is just a field.
|
|
38
|
+
- `rt$` prefix RESERVED: source-type property named `rt$…` is refused by `enrich` (enrich-text-reserved-prefix).
|
|
39
|
+
- `rt$label: string`: field's human name, always a plain string. REQUIRED.
|
|
40
|
+
- `rt$errors`: field's error templates. REQUIRED. Per-constraint record OR exclusive `{rt$default: '…'}` catch-all.
|
|
41
|
+
- Template leaf: plain string, or a **plural object** on count-bearing constraints (`TemplateLeaf`).
|
|
42
|
+
- Arrays + rest tuples: `rt$items` (element node). Fixed tuples: positional `rt$slots`.
|
|
43
|
+
- `Map`: `rt$keys` / `rt$values`. `Set`: `rt$values`.
|
|
44
|
+
- Nested objects recurse with the _same_ node shape, every field of `T` present.
|
|
45
|
+
- ⚠️ **The map is TOTAL.** Every field appears, every node carries both meta keys.
|
|
46
|
+
- Blank `''` = "no custom text" (renderer falls back gracefully), so blanks are always safe.
|
|
47
|
+
- Never delete a key to opt out: next `enrich --update` scaffolds it back. One type maps to exactly one shape.
|
|
48
|
+
- `FriendlyText<T>` mapped type checks structure against `T`: missing field, object node where `T` is scalar
|
|
49
|
+
(or vice-versa), unknown `rt$errors` key = TYPE errors, caught in the IDE before `enrich --no-emit` runs.
|
|
50
|
+
|
|
51
|
+
## Detail pages
|
|
52
|
+
|
|
53
|
+
- `rt$errors` keys, `rt$default` mode, `$[…]` placeholders, plurals:
|
|
54
|
+
[error-templates.md](references/error-templates.md). Read before writing any template.
|
|
55
|
+
- enrich-text-\* checks and levels → [checks.md](references/checks.md). Read when `enrich --no-emit` reports one.
|
|
56
|
+
- `createFriendlyText` / `createFriendlyTextI18n` runtime → [rendering.md](references/rendering.md).
|
|
57
|
+
- Locale files, fill rules → [translations.md](references/translations.md). Read before filling a translation.
|
|
58
|
+
- Full type → map → consumer example → [example.md](references/example.md).
|
|
59
|
+
|
|
60
|
+
## Where the map lives: friendly mirror file
|
|
61
|
+
|
|
62
|
+
- At the file where the type is **defined**, not consumed: `src/models/user.ts` →
|
|
63
|
+
`<genDir>/enriched/friendly/src/models/user.ts` (default `src/.mion/enriched/friendly/src/models/user.ts`).
|
|
64
|
+
- Holds `friendly<Name>` consts. `MockData<T>` consts live separately under `<genDir>/enriched/mock/…`.
|
|
65
|
+
- Mirrors the cache's "one canonical entry per structural id, app-wide" rule.
|
|
66
|
+
- Layout rules (genDir, `rootDir`, `import type` breadcrumb): `rt-enrich-types` skill.
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
// src/.mion/enriched/friendly/src/models/user.ts: committed, hand-editable
|
|
70
|
+
import type {User} from '../../../../../models/user';
|
|
71
|
+
import type {FriendlyText} from '@mionjs/run-types';
|
|
72
|
+
|
|
73
|
+
/** @rtType User#9f3a @rtIds {…} */
|
|
74
|
+
export const friendlyUser: FriendlyText<User> = {
|
|
75
|
+
/* … */
|
|
76
|
+
};
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Authoring checklist
|
|
80
|
+
|
|
81
|
+
- Map goes in the **definition's friendly mirror file** (`<genDir>/enriched/friendly/<rel>.ts`), not the consumer's.
|
|
82
|
+
- Type it `FriendlyText<T>` so structure is checked against `T`. Keep it TOTAL (Node model above).
|
|
83
|
+
- `rt$errors` key set = `type` + the field's **declared failable format params**.
|
|
84
|
+
Others optional in the type, any other key rejected. A bare `string` takes `type` only.
|
|
85
|
+
- One sentence per field? `rt$errors: {rt$default: '…'}`. Exclusive, never mixed with per-constraint keys
|
|
86
|
+
(enrich-text-default-and-messages). Scaffolds always per-constraint: switch a node by hand.
|
|
87
|
+
- Count-bearing constraints: fill scaffolded plural arms in place, never restructure the object.
|
|
88
|
+
Keep `other` (enrich-text-plural-missing-other), prune unused arms.
|
|
89
|
+
Count = the violated bound, not the received value's length.
|
|
90
|
+
- Locale file: translate only blank leaves, never copy source text, prune arms your language doesn't use
|
|
91
|
+
(they stay pruned).
|
|
92
|
+
|
|
93
|
+
[ft]: https://github.com/MionKit/mion/blob/main/packages/run-types/src/enrich/friendlyText.ts
|
|
94
|
+
[cft]: https://github.com/MionKit/mion/blob/main/packages/run-types/src/enrich/createFriendlyText.ts
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Build-time checks: enrich-text-\*
|
|
2
|
+
|
|
3
|
+
`enrich --no-emit` cross-references the authored literal against the live `RunType` and reports these.
|
|
4
|
+
|
|
5
|
+
## Shipped
|
|
6
|
+
|
|
7
|
+
- enrich-text-unknown-field (Warning): key is not a field of `T`. Stale (field renamed/removed), nothing reads it.
|
|
8
|
+
Catches drift: rename a field → this flags the now-stale entry.
|
|
9
|
+
- enrich-text-unknown-error-key (Warning): `rt$errors` key is not an error this field can produce.
|
|
10
|
+
TS catches keys the FORMAT never produces as an excess-property error.
|
|
11
|
+
- enrich-text-unknown-placeholder (Warning): unknown `$[…]` placeholder for this constraint/context.
|
|
12
|
+
Checked per plural arm.
|
|
13
|
+
- enrich-text-plural-missing-other (Warning): plural object missing the mandatory `other` arm.
|
|
14
|
+
- enrich-text-unknown-plural-arm (Warning): plural-object arm key is not a CLDR category.
|
|
15
|
+
- enrich-text-plural-without-count (Info): plural object on a non-count-bearing constraint (dead arms).
|
|
16
|
+
- enrich-text-default-and-messages (Warning): `rt$default` beside any other `rt$errors` key.
|
|
17
|
+
Modes are mutually exclusive; the catch-all silently wins.
|
|
18
|
+
- enrich-text-missing-message (Warning): a failure this field can produce has no `rt$errors` key
|
|
19
|
+
(and no `rt$default`) → shows a generic message.
|
|
20
|
+
- enrich-text-reserved-prefix (Error): a property of `T` is named `rt$…`, the reserved meta prefix.
|
|
21
|
+
`enrich` refuses the type up front, writes no mirror. Rename the property.
|
|
22
|
+
- Unfilled scaffold: enrich-text-todo-left / enrich-text-blank-value (Warning).
|
|
23
|
+
|
|
24
|
+
## Designed (not yet wired)
|
|
25
|
+
|
|
26
|
+
- enrich-text-missing-label (Info): field of `T` has no label (renders the raw name).
|
|
27
|
+
- enrich-text-shape-mismatch: object node where `T` is scalar, or vice-versa. `FriendlyText<T>` mapped type catches it.
|
|
28
|
+
- enrich-text-type-drift: `T`'s structural id changed since authored, review for drift.
|
|
29
|
+
|
|
30
|
+
## Levels
|
|
31
|
+
|
|
32
|
+
- Content checks are **Warnings** (one Info): message still renders, falls back to something less specific
|
|
33
|
+
(generic "value is invalid", the `other` plural arm, the raw field name).
|
|
34
|
+
- Degraded text = enrichment that did not apply, not a broken function.
|
|
35
|
+
- **enrich-text-reserved-prefix is the one Error**: enrich plan fails, no mirror file written at all.
|
|
36
|
+
- enrich-text-todo-left / enrich-text-blank-value fail `enrich --require-complete` through their
|
|
37
|
+
completeness flag, not their level.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Error templates: keys, modes, placeholders, plurals
|
|
2
|
+
|
|
3
|
+
What goes inside `rt$errors`.
|
|
4
|
+
|
|
5
|
+
## `rt$errors` keys = the failed-constraint name
|
|
6
|
+
|
|
7
|
+
- Each key names the sub-constraint that failed. Not an invented set:
|
|
8
|
+
maps 1:1 onto what `createGetValidationErrorsFn<T>()` emits.
|
|
9
|
+
- Renderer picks the template by the error's `(format.name, formatPath-tail)` discriminator.
|
|
10
|
+
- `type`: base type-shape failure (a `RunTypeError` with no `.format`), "not even the right kind of value".
|
|
11
|
+
Always present.
|
|
12
|
+
- Format sub-constraints, exactly as the type declares them:
|
|
13
|
+
- string: `minLength`, `maxLength`, `pattern`, `allowedChars`
|
|
14
|
+
- number: `min`, `max`, `lt`, `gt`, `integer`
|
|
15
|
+
- datetime: `date`, `time`, `splitChar`
|
|
16
|
+
- `Date` bound: `min` / `max`; `uuid`: `version`
|
|
17
|
+
- **Keys come from the format's own error code.** `ErrorTemplates<F>` reads the field's format NAME,
|
|
18
|
+
allows the keys in the generated `FormatErrorKeys` table (`src/go-generated/formatErrorKeys.generated.ts`,
|
|
19
|
+
built from each format's validation-errors code).
|
|
20
|
+
- Every constraint key is optional in the type. Unknown key = excess-property TYPE error.
|
|
21
|
+
- `enrich --no-emit` reports a missing key (enrich-text-missing-message)
|
|
22
|
+
or one this field can never fail on (enrich-text-unknown-error-key).
|
|
23
|
+
- `enrich --update` adds missing keys as blanks.
|
|
24
|
+
- Params that never fail (`float`, `isCurrency`, `mockSamples`, `separators`, the transformers) never become keys.
|
|
25
|
+
- JSON Schema bounds (`minimum`, `exclusiveMinimum`, ...) use `min` / `max` / `gt` / `lt`.
|
|
26
|
+
- Bare `name: string` takes `type` only. Richer friendly map requires a richer type annotation.
|
|
27
|
+
|
|
28
|
+
## Two exclusive modes: per-constraint vs `rt$default`
|
|
29
|
+
|
|
30
|
+
`rt$errors` is EITHER the per-constraint record OR the single catch-all. Never a mix.
|
|
31
|
+
Never a function: only data survives translation, reconcile and the checker.
|
|
32
|
+
|
|
33
|
+
- **Per-constraint**: `{type: '…', minLength: '…', …}`. **One message per failed constraint**.
|
|
34
|
+
Every key compiler-validated, placeholders too (enrich-text-unknown-placeholder).
|
|
35
|
+
- **`rt$default`**: `{rt$default: '…'}`. ONE message for the whole field, whatever failed.
|
|
36
|
+
Plain data: translates and reconciles like any other leaf.
|
|
37
|
+
- Mixing = TS union error + enrich-text-default-and-messages (Warning).
|
|
38
|
+
- Each node picks its own mode. `enrich` always scaffolds NEW nodes per-constraint: switch to `rt$default` by hand.
|
|
39
|
+
Once a node exists, every sync follows its authored mode.
|
|
40
|
+
- Errors **accumulate**: violating `minLength` _and_ `pattern` → two messages (a list).
|
|
41
|
+
A `rt$default` node collapses them to one message.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
// rt$default mode: one sentence covers every failure of the field
|
|
45
|
+
name: {
|
|
46
|
+
rt$label: 'Full name',
|
|
47
|
+
rt$errors: {rt$default: 'Enter a name between 2 and 60 characters'},
|
|
48
|
+
},
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Placeholder DSL
|
|
52
|
+
|
|
53
|
+
Templates are plain strings with `$[…]` tokens the renderer substitutes:
|
|
54
|
+
|
|
55
|
+
- `$[label]`: node's `rt$label`, falling back to the raw field name.
|
|
56
|
+
- `$[val]`: failed constraint's bound (`error.format.val`; e.g. `2`).
|
|
57
|
+
- `$[path]`: dotted path to the field (`profile.email`).
|
|
58
|
+
- `$[index]`: array element index, for `rt$items` failures.
|
|
59
|
+
- Type-driven: on the i18n path `$[val]` renders by the bound's TYPE, no per-template syntax.
|
|
60
|
+
`isCurrency`-marked bound (`TF.Currency`) → renderer's `currency` option. Date-family bound → `Intl.DateTimeFormat`.
|
|
61
|
+
- Unknown `$[…]` tokens left verbatim; `enrich --no-emit` flags them (enrich-text-unknown-placeholder).
|
|
62
|
+
- Literal colon in prose (`ratio 3:1`) never touched.
|
|
63
|
+
- `$[value]` (actual received value) out of scope for v1: `RunTypeError` carries no value.
|
|
64
|
+
|
|
65
|
+
## Plural templates on count-bearing constraints
|
|
66
|
+
|
|
67
|
+
- Count-bearing: `minLength`, `maxLength`, `min`, `max`, `lt`, `gt`.
|
|
68
|
+
- Their leaf = plain string or **plural object** with CLDR cardinal category arms.
|
|
69
|
+
- `TemplateLeaf = string | PluralTemplate`.
|
|
70
|
+
- `PluralTemplate` = `{other: string}` + optional `zero`/`one`/`two`/`few`/`many` arms.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
name: {
|
|
74
|
+
rt$label: 'Full name',
|
|
75
|
+
rt$errors: {
|
|
76
|
+
type: '$[label] must be text', // plain string, as before
|
|
77
|
+
minLength: { // plural object
|
|
78
|
+
one: '$[label] needs at least $[val] character',
|
|
79
|
+
other: '$[label] needs at least $[val] characters',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- `enrich` scaffolds the plural object (`minLength: {one: '', other: ''}`).
|
|
86
|
+
- Arms from the SOURCE locale's CLDR cardinal set (tsconfig `i18n.sourceLocale`, default `en`).
|
|
87
|
+
- Built-in table: en, es, zh, hi, ar, pt, ru, ja, de, fr, pl. Other locale → all six `zero one two few many other`.
|
|
88
|
+
- **Fill the arms; never restructure the object.** Only `other` mandatory. Prune arms you don't use.
|
|
89
|
+
- All other constraints (`type`, `pattern`, `allowedChars`, …) stay plain strings. `rt$label` always a plain string.
|
|
90
|
+
- Plain string on a count-bearing constraint stays legal.
|
|
91
|
+
- **Plural count = the VIOLATED BOUND** (`$[val]`: `minLength: 3` failure selects the arm for `3`).
|
|
92
|
+
NOT the received value's length.
|
|
93
|
+
- Arm picked via `Intl.PluralRules(locale)`. `other` = backstop. Non-finite bound → `other` directly.
|
|
94
|
+
- Plain `createFriendlyText` uses `en` rules (deterministic, matches default `sourceLocale`).
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# FriendlyText end-to-end example
|
|
2
|
+
|
|
3
|
+
Type definition → filled friendly mirror → consumer.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
// src/models/user.ts: the DEFINITION
|
|
7
|
+
import type * as TF from '@mionjs/run-types/formats';
|
|
8
|
+
|
|
9
|
+
export interface User {
|
|
10
|
+
name: TF.String<{minLength: 2; maxLength: 60}>;
|
|
11
|
+
age: TF.Number<{min: 0; max: 120}>;
|
|
12
|
+
isActive: boolean;
|
|
13
|
+
tags: string[];
|
|
14
|
+
profile: {
|
|
15
|
+
email: TF.Email;
|
|
16
|
+
score: TF.Number<{min: 0; max: 100}>;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
// src/.mion/enriched/friendly/src/models/user.ts: the committed friendly mirror
|
|
23
|
+
import type {User} from '../../../../../models/user';
|
|
24
|
+
import type {FriendlyText} from '@mionjs/run-types';
|
|
25
|
+
|
|
26
|
+
export const friendlyUser: FriendlyText<User> = {
|
|
27
|
+
rt$label: 'User account',
|
|
28
|
+
rt$errors: {type: '$[label] must be an object'},
|
|
29
|
+
|
|
30
|
+
name: {
|
|
31
|
+
rt$label: 'Full name',
|
|
32
|
+
rt$errors: {
|
|
33
|
+
type: '$[label] must be text',
|
|
34
|
+
minLength: '$[label] needs at least $[val] characters',
|
|
35
|
+
maxLength: '$[label] allows at most $[val] characters',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
age: {
|
|
39
|
+
rt$label: 'Age',
|
|
40
|
+
rt$errors: {
|
|
41
|
+
type: '$[label] must be a number',
|
|
42
|
+
min: '$[label] must be at least $[val]',
|
|
43
|
+
max: '$[label] must be no more than $[val]',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
isActive: {rt$label: 'Active?', rt$errors: {type: ''}},
|
|
47
|
+
|
|
48
|
+
tags: {
|
|
49
|
+
rt$label: 'Tags',
|
|
50
|
+
rt$errors: {type: ''},
|
|
51
|
+
rt$items: {rt$label: '', rt$errors: {type: 'each tag must be text'}}, // element node
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
profile: {
|
|
55
|
+
// nested object: recurse
|
|
56
|
+
rt$label: 'Profile',
|
|
57
|
+
rt$errors: {type: ''},
|
|
58
|
+
email: {
|
|
59
|
+
rt$label: 'Email',
|
|
60
|
+
rt$errors: {type: '', minLength: '', maxLength: '', pattern: 'Enter a valid email address'},
|
|
61
|
+
},
|
|
62
|
+
score: {rt$label: 'Score', rt$errors: {rt$default: 'Score must be between 0 and 100'}}, // rt$default mode
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
// src/services/userForm.ts: the CONSUMER
|
|
69
|
+
import {createGetValidationErrorsFn, createFriendlyText} from '@mionjs/run-types';
|
|
70
|
+
import {friendlyUser} from '../.mion/enriched/friendly/src/models/user';
|
|
71
|
+
import type {User} from '../models/user';
|
|
72
|
+
|
|
73
|
+
const getUserErrors = createGetValidationErrorsFn<User>();
|
|
74
|
+
const friendly = createFriendlyText<User>(friendlyUser);
|
|
75
|
+
|
|
76
|
+
const messages = friendly.errors(getUserErrors({name: 'A', age: 200, profile: {email: 'nope', score: 5}}));
|
|
77
|
+
// name → 'Full name needs at least 2 characters'
|
|
78
|
+
// age → 'Age must be no more than 120'
|
|
79
|
+
// profile.email → 'Enter a valid email address'
|
|
80
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Rendering at runtime
|
|
2
|
+
|
|
3
|
+
`createFriendlyText<T>(map)` for one language, `createFriendlyTextI18n` for locales.
|
|
4
|
+
|
|
5
|
+
## `createFriendlyText<T>(map)`
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
// src/services/userForm.ts
|
|
9
|
+
import {createGetValidationErrorsFn, createFriendlyText} from '@mionjs/run-types';
|
|
10
|
+
import {friendlyUser} from '../.mion/enriched/friendly/src/models/user';
|
|
11
|
+
import type {User} from '../models/user';
|
|
12
|
+
|
|
13
|
+
const getUserErrors = createGetValidationErrorsFn<User>();
|
|
14
|
+
const friendly = createFriendlyText<User>(friendlyUser);
|
|
15
|
+
|
|
16
|
+
const badInput: unknown = {name: 'A', age: 200, profile: {email: 'nope'}};
|
|
17
|
+
friendly.errors(getUserErrors(badInput));
|
|
18
|
+
// → [{ path: 'profile.email', label: 'Email', message: 'Enter a valid email address' }, …]
|
|
19
|
+
|
|
20
|
+
friendly.label('profile.email'); // → 'Email' (falls back to the raw field name)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Returns `{ errors(errs), label(path) }`:
|
|
24
|
+
|
|
25
|
+
- `errors(errs)`: groups `RunTypeError[]` by path, looks up the node,
|
|
26
|
+
interpolates the matching template per failed constraint.
|
|
27
|
+
- `rt$default` node → single message for the whole field.
|
|
28
|
+
- Returns `FriendlyMessage[]` (`{ path, label, message }`).
|
|
29
|
+
- `label(path)`: friendly label for a dotted path or a raw path-segment array.
|
|
30
|
+
|
|
31
|
+
## `createFriendlyTextI18n(source, options)`
|
|
32
|
+
|
|
33
|
+
Same `FriendlyRenderer` interface as `createFriendlyText`.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
// src/services/userForm.ts
|
|
37
|
+
import {createFriendlyTextI18n, createGetValidationErrorsFn} from '@mionjs/run-types';
|
|
38
|
+
import {friendlyUser} from '../.mion/enriched/friendly/src/models/user';
|
|
39
|
+
import {es_friendlyUser} from '../.mion/enriched/i18n/es/src/models/user';
|
|
40
|
+
import {pl_friendlyUser} from '../.mion/enriched/i18n/pl/src/models/user';
|
|
41
|
+
import type {User} from '../models/user';
|
|
42
|
+
|
|
43
|
+
const getUserErrors = createGetValidationErrorsFn<User>();
|
|
44
|
+
const currentLocale = navigator.language;
|
|
45
|
+
const badInput: unknown = {name: 'A', age: 200};
|
|
46
|
+
|
|
47
|
+
const friendly = createFriendlyTextI18n(friendlyUser, {
|
|
48
|
+
locale: currentLocale, // string | {value: string}: a {value} ref (e.g. a Vue Ref)
|
|
49
|
+
translations: {es: es_friendlyUser, pl: pl_friendlyUser},
|
|
50
|
+
currency: 'EUR', // optional ISO 4217 code (string or {value} ref) for TF.Currency bounds
|
|
51
|
+
sourceLocale: 'en', // optional (default 'en'): plural rules when rendering from the SOURCE map
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
friendly.errors(getUserErrors(badInput)); // arm + template picked per the active locale
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- `{value}` locale ref is re-read on EVERY render. Renderer itself is not reactivity-tracked:
|
|
58
|
+
call `errors()` per render / inside `computed()`.
|
|
59
|
+
- Locale matching: `resolveLocale(locale, translations)`, naive BCP-47 truncation.
|
|
60
|
+
- Exact tag, then subtags dropped right-to-left (`pt-BR` → `pt`).
|
|
61
|
+
- Then any available tag sharing the base language (`zh-Hant` matches a `zh-Hans` file when nothing closer).
|
|
62
|
+
- Nothing shares the base language → `undefined` → renderer uses the source.
|
|
63
|
+
- Fallback is per-leaf, never throws on a partial translation.
|
|
64
|
+
- Reserved `strict` option exists; runtime is always lenient.
|
|
65
|
+
- Blank (`''`) or missing translated leaf → source. `rt$label` and each `rt$errors` key independently.
|
|
66
|
+
- Node's own authored `rt$default` tried before falling cross-map.
|
|
67
|
+
- Plural leaf falls through as a WHOLE unit: never mixes a target arm with a source arm.
|
|
68
|
+
- Type-driven `$[val]`: the error's format payload says what the bound IS.
|
|
69
|
+
- `isCurrency`-marked number bound (`TF.Currency<P>` = `Number<P & {isCurrency: true}>`):
|
|
70
|
+
pure-metadata param echoed onto every error the field produces.
|
|
71
|
+
Renders via `Intl.NumberFormat(locale, {style: 'currency', currency})` with the app-supplied `currency` option.
|
|
72
|
+
- `currency` omitted → plain localized number, never a guessed symbol.
|
|
73
|
+
WHICH currency a value is in = app DATA, not fixed in the type.
|
|
74
|
+
- Date-family bound → `Intl.DateTimeFormat(locale)`. Unparseable relative bound (`now-P1D`) stays verbatim.
|
|
75
|
+
- Everything else → `String(val)`. Unknown tokens stay verbatim.
|
|
76
|
+
- `Intl` instances memoized: `PluralRules` per locale, bound formatters per locale + currency / style.
|
|
77
|
+
- Plain `createFriendlyText` stays byte-stable: `String(val)` everywhere.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Translations: per-locale `FriendlyText<T>` files
|
|
2
|
+
|
|
3
|
+
Filling locale files under `<genDir>/enriched/i18n`.
|
|
4
|
+
|
|
5
|
+
- Locale file = `FriendlyText<T>` map authored in another language.
|
|
6
|
+
The source map you authored IS the source language (tsconfig `i18n.sourceLocale`, default `en`).
|
|
7
|
+
- File: `<i18nDir>/<locale>/<rel>.ts`, e.g. `src/.mion/enriched/i18n/pl/src/models/user.ts`.
|
|
8
|
+
- Const: `<locale>_friendly<Name>` (`pt_BR_friendlyUser`), same `@rtType` / `@rtIds` markers as the source.
|
|
9
|
+
- Layout, CLI (`mion enrich --i18n <locale|all>`, `--update`, `--prune`, `--no-emit`), enrich-i18n-\* findings,
|
|
10
|
+
tsconfig `i18n` block: `rt-enrich-types` skill.
|
|
11
|
+
- Translation is optional per leaf: anything unfilled falls back to the source at render time.
|
|
12
|
+
|
|
13
|
+
## Scaffold
|
|
14
|
+
|
|
15
|
+
- Type's tree with every string leaf + plural arm as an `@todo` blank (`''`).
|
|
16
|
+
- NEVER copies source text as if translated (the type has no strings).
|
|
17
|
+
- Plural objects carry the TARGET locale's CLDR arm set.
|
|
18
|
+
- Const references rename to their locale siblings (`home: pl_friendlyAddress`).
|
|
19
|
+
|
|
20
|
+
## Filling a translation file
|
|
21
|
+
|
|
22
|
+
- Translate ONLY blank (`''`) leaves. Never edit an already-filled leaf. Never copy the source text across.
|
|
23
|
+
- Prune plural arms your language doesn't use. Arms are locale-owned: a pruned arm stays pruned across reconciles.
|
|
24
|
+
Only the mandatory `other` is ever re-inserted.
|
|
25
|
+
- `rt$default`-mode node: exactly one string to translate, never descended.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
// src/.mion/enriched/i18n/pl/src/models/user.ts: committed, filled by a translator/agent
|
|
29
|
+
import type {User} from '../../../../../../models/user';
|
|
30
|
+
import type {FriendlyText} from '@mionjs/run-types';
|
|
31
|
+
|
|
32
|
+
/** @rtType User#9f3a @rtIds {…} */
|
|
33
|
+
export const pl_friendlyUser: FriendlyText<User> = {
|
|
34
|
+
/* … */
|
|
35
|
+
};
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Rendering locale files: `createFriendlyTextI18n` → [rendering.md](rendering.md).
|