@mionjs/run-types 0.13.0 → 0.14.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/README.md +3 -3
- package/dist/builders/atomic.js.map +1 -1
- package/dist/builders/compose.js.map +1 -1
- package/dist/builders/index.js.map +1 -1
- package/dist/builders/static.js.map +1 -1
- package/dist/builders/utility.js.map +1 -1
- package/dist/createRTFunctions.js.map +1 -1
- package/dist/enrich/createFriendlyText.js.map +1 -1
- package/dist/enrich/friendlyText.js.map +1 -1
- package/dist/enrich/mockData.js.map +1 -1
- package/dist/fnHash.js.map +1 -1
- package/dist/formats/bigintFormats.js.map +1 -1
- package/dist/formats/datetime/dateFormats.js.map +1 -1
- package/dist/formats/datetime/dateTime-pure-fns.d.ts +21 -21
- package/dist/formats/datetime/dateTime-pure-fns.js +7 -0
- package/dist/formats/datetime/dateTime-pure-fns.js.map +1 -1
- package/dist/formats/datetime/dateTimeParams.js.map +1 -1
- package/dist/formats/datetime/stringDateTimeFormats.js.map +1 -1
- package/dist/formats/datetime/temporalFormats.js.map +1 -1
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/numberFormats.js.map +1 -1
- package/dist/formats/refineFormat.js.map +1 -1
- package/dist/formats/scalars.js.map +1 -1
- package/dist/formats/string/credit-card-pure-fns.d.ts +4 -4
- package/dist/formats/string/credit-card-pure-fns.js.map +1 -1
- package/dist/formats/string/string-formats-pure-fns.d.ts +12 -12
- package/dist/formats/string/string-formats-pure-fns.js +9 -0
- package/dist/formats/string/string-formats-pure-fns.js.map +1 -1
- package/dist/formats/string/string-patterns.js.map +1 -1
- package/dist/formats/string/stringFormats.js.map +1 -1
- package/dist/formats/structural.js.map +1 -1
- package/dist/getRunType.js.map +1 -1
- package/dist/go-generated/fnHashes.generated.js.map +1 -1
- package/dist/go-generated/formatErrorKeys.generated.js.map +1 -1
- package/dist/go-generated/runTypeKind.generated.js.map +1 -1
- package/dist/go-generated/typeFormats.generated.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/markers.js.map +1 -1
- package/dist/mion-pure-fns/_rt/-yTRFuK01Y.js +2 -0
- package/dist/mion-pure-fns/_rt/0yJQ37XnmN.js +2 -0
- package/dist/mion-pure-fns/_rt/2xtQHAMu-y.js +1 -0
- package/dist/mion-pure-fns/_rt/3RndhrueRD.js +2 -0
- package/dist/mion-pure-fns/_rt/5oCqd7YyfA.js +1 -0
- package/dist/mion-pure-fns/_rt/6E7qWsIwaF.js +1 -0
- package/dist/mion-pure-fns/_rt/8AgZCCAhyw.js +1 -0
- package/dist/mion-pure-fns/_rt/AmEsDA-eXW.js +2 -0
- package/dist/mion-pure-fns/_rt/D503ooPt08.js +2 -0
- package/dist/mion-pure-fns/_rt/GA20s6bj41.js +1 -0
- package/dist/mion-pure-fns/_rt/GaLOTE4b_F.js +2 -0
- package/dist/mion-pure-fns/_rt/ICDNQUtC8e.js +1 -0
- package/dist/mion-pure-fns/_rt/IyjvBbz0zS.js +1 -0
- package/dist/mion-pure-fns/_rt/Nnf7kyDfjI.js +2 -0
- package/dist/mion-pure-fns/_rt/OCJ1B0-ZCA.js +1 -0
- package/dist/mion-pure-fns/_rt/OXVO2EpSFv.js +1 -0
- package/dist/mion-pure-fns/_rt/PZzwu-J2YB.js +2 -0
- package/dist/mion-pure-fns/_rt/Qd_9GJQlOC.js +1 -0
- package/dist/mion-pure-fns/_rt/T48n0wyjPx.js +2 -0
- package/dist/mion-pure-fns/_rt/VJiknJ2exR.js +1 -0
- package/dist/mion-pure-fns/_rt/Z2sc5xQPKB.js +1 -0
- package/dist/mion-pure-fns/_rt/ZPLfUKoTJQ.js +1 -0
- package/dist/mion-pure-fns/_rt/_abcB3do2M.js +1 -0
- package/dist/mion-pure-fns/_rt/cK87_2eKQW.js +1 -0
- package/dist/mion-pure-fns/_rt/cgwpjq6rGs.js +1 -0
- package/dist/mion-pure-fns/_rt/d8U9HjmMsN.js +1 -0
- package/dist/mion-pure-fns/_rt/eglb1lzTW9.js +1 -0
- package/dist/mion-pure-fns/_rt/eupKgBrCGt.js +2 -0
- package/dist/mion-pure-fns/_rt/gNpMnJMAUE.js +4 -0
- package/dist/mion-pure-fns/_rt/hiotRbfSKF.js +1 -0
- package/dist/mion-pure-fns/_rt/i-jWpjiwhL.js +1 -0
- package/dist/mion-pure-fns/_rt/iFXkEtW54e.js +1 -0
- package/dist/mion-pure-fns/_rt/jKlKNzqG2-.js +1 -0
- package/dist/mion-pure-fns/_rt/kSLD_nEHux.js +1 -0
- package/dist/mion-pure-fns/_rt/lBHf1kg5nQ.js +1 -0
- package/dist/mion-pure-fns/_rt/lFYcgG5ZSI.js +1 -0
- package/dist/mion-pure-fns/_rt/nLaf1XVvS4.js +2 -0
- package/dist/mion-pure-fns/_rt/n_ZOWff4X3.js +1 -0
- package/dist/mion-pure-fns/_rt/nsU8QeJCuC.js +1 -0
- package/dist/mion-pure-fns/_rt/oUfCfYMODo.js +2 -0
- package/dist/mion-pure-fns/_rt/t3CflNaUUJ.js +2 -0
- package/dist/mion-pure-fns/_rt/tfRjnFZVF8.js +1 -0
- package/dist/mion-pure-fns/_rt/u0Mw9bizvB.js +1 -0
- package/dist/mion-pure-fns/_rt/vPNeWxcCkj.js +3 -0
- package/dist/mion-pure-fns/_rt/wSBaXrUNw9.js +1 -0
- package/dist/mion-pure-fns/_rt/zaCgqTB_lJ.js +5 -0
- package/dist/mion-pure-fns/index.json +114 -114
- package/dist/mocking/childMatch.js.map +1 -1
- package/dist/mocking/constants.mock.d.ts +0 -1
- package/dist/mocking/constants.mock.js +0 -1
- package/dist/mocking/constants.mock.js.map +1 -1
- package/dist/mocking/createMockData.js.map +1 -1
- package/dist/mocking/index.js.map +1 -1
- package/dist/mocking/isMultipleOf.js.map +1 -1
- package/dist/mocking/mockBigIntFormat.js.map +1 -1
- package/dist/mocking/mockDateTimeBounds.js.map +1 -1
- package/dist/mocking/mockInvalid.js.map +1 -1
- package/dist/mocking/mockNumberFormat.js.map +1 -1
- package/dist/mocking/mockRandom.js.map +1 -1
- package/dist/mocking/mockRegistry.js.map +1 -1
- package/dist/mocking/mockStringFormat.js +1 -1
- package/dist/mocking/mockStringFormat.js.map +1 -1
- package/dist/mocking/mockTemporal.js.map +1 -1
- package/dist/mocking/mockType.js.map +1 -1
- package/dist/mocking/mockTypes.js.map +1 -1
- package/dist/mocking/structuralFormat.js.map +1 -1
- package/dist/modelTypes.js.map +1 -1
- package/dist/overrideRTFunctions.js.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtypes/builderCore.js.map +1 -1
- package/dist/runtypes/builderTypes.js.map +1 -1
- package/dist/runtypes/circular-pure-fns.d.ts +1 -1
- package/dist/runtypes/circular-pure-fns.js.map +1 -1
- package/dist/runtypes/circular.js.map +1 -1
- package/dist/runtypes/classSerializerRegistry.js.map +1 -1
- package/dist/runtypes/dataOnly.js.map +1 -1
- package/dist/runtypes/entryTuple.js +30 -3
- package/dist/runtypes/entryTuple.js.map +1 -1
- package/dist/runtypes/formatAnnotation.js.map +1 -1
- package/dist/runtypes/formatErrors.js.map +1 -1
- package/dist/runtypes/formatPattern.js.map +1 -1
- package/dist/runtypes/jsonShape.js.map +1 -1
- package/dist/runtypes/pure-fn-ids.generated.d.ts +47 -47
- package/dist/runtypes/pure-fn-ids.generated.js +47 -47
- package/dist/runtypes/pure-fn-ids.generated.js.map +1 -1
- package/dist/runtypes/pure-fns-utils.d.ts +8 -8
- package/dist/runtypes/pure-fns-utils.js +0 -1
- package/dist/runtypes/pure-fns-utils.js.map +1 -1
- package/dist/runtypes/pureFn.js.map +1 -1
- package/dist/runtypes/rtUtils.js +16 -3
- package/dist/runtypes/rtUtils.js.map +1 -1
- package/dist/runtypes/sentinelKeys.js.map +1 -1
- package/dist/runtypes/stripRunTypeMeta.js.map +1 -1
- package/dist/runtypes/typeFormat.js.map +1 -1
- package/dist/runtypes/types.js.map +1 -1
- package/dist/standard/createJsonSchemaFn.js.map +1 -1
- package/dist/standard/createStandardSchema.js.map +1 -1
- package/dist/standard/issueMapping.js +2 -0
- package/dist/standard/issueMapping.js.map +1 -1
- package/dist/standard/jsonSchemaDoc.js.map +1 -1
- package/dist/standard/spec.js.map +1 -1
- package/package.json +21 -58
- package/dist/cjs/builders/atomic.d.ts +0 -12
- package/dist/cjs/builders/atomic.js +0 -43
- package/dist/cjs/builders/compose.d.ts +0 -60
- package/dist/cjs/builders/compose.js +0 -122
- package/dist/cjs/builders/index.d.ts +0 -5
- package/dist/cjs/builders/index.js +0 -48
- package/dist/cjs/builders/static.d.ts +0 -137
- package/dist/cjs/builders/static.js +0 -2
- package/dist/cjs/builders/utility.d.ts +0 -12
- package/dist/cjs/builders/utility.js +0 -43
- package/dist/cjs/createRTFunctions.d.ts +0 -90
- package/dist/cjs/createRTFunctions.js +0 -38
- package/dist/cjs/enrich/createFriendlyText.d.ts +0 -25
- package/dist/cjs/enrich/createFriendlyText.js +0 -275
- package/dist/cjs/enrich/friendlyText.d.ts +0 -56
- package/dist/cjs/enrich/friendlyText.js +0 -2
- package/dist/cjs/enrich/mockData.d.ts +0 -53
- package/dist/cjs/enrich/mockData.js +0 -2
- package/dist/cjs/fnHash.d.ts +0 -8
- package/dist/cjs/fnHash.js +0 -41
- package/dist/cjs/formats/bigintFormats.d.ts +0 -41
- package/dist/cjs/formats/bigintFormats.js +0 -10
- package/dist/cjs/formats/datetime/dateFormats.d.ts +0 -10
- package/dist/cjs/formats/datetime/dateFormats.js +0 -2
- package/dist/cjs/formats/datetime/dateTime-pure-fns.d.ts +0 -21
- package/dist/cjs/formats/datetime/dateTime-pure-fns.js +0 -405
- package/dist/cjs/formats/datetime/dateTimeParams.d.ts +0 -14
- package/dist/cjs/formats/datetime/dateTimeParams.js +0 -2
- package/dist/cjs/formats/datetime/stringDateTimeFormats.d.ts +0 -33
- package/dist/cjs/formats/datetime/stringDateTimeFormats.js +0 -2
- package/dist/cjs/formats/datetime/temporalFormats.d.ts +0 -84
- package/dist/cjs/formats/datetime/temporalFormats.js +0 -23
- package/dist/cjs/formats/index.d.ts +0 -18
- package/dist/cjs/formats/index.js +0 -88
- package/dist/cjs/formats/numberFormats.d.ts +0 -82
- package/dist/cjs/formats/numberFormats.js +0 -16
- package/dist/cjs/formats/refineFormat.d.ts +0 -24
- package/dist/cjs/formats/refineFormat.js +0 -2
- package/dist/cjs/formats/scalars.d.ts +0 -32
- package/dist/cjs/formats/scalars.js +0 -30
- package/dist/cjs/formats/string/credit-card-pure-fns.d.ts +0 -26
- package/dist/cjs/formats/string/credit-card-pure-fns.js +0 -151
- package/dist/cjs/formats/string/string-formats-pure-fns.d.ts +0 -12
- package/dist/cjs/formats/string/string-formats-pure-fns.js +0 -517
- package/dist/cjs/formats/string/string-patterns.d.ts +0 -111
- package/dist/cjs/formats/string/string-patterns.js +0 -115
- package/dist/cjs/formats/string/stringFormats.d.ts +0 -489
- package/dist/cjs/formats/string/stringFormats.js +0 -84
- package/dist/cjs/formats/structural.d.ts +0 -105
- package/dist/cjs/formats/structural.js +0 -7
- package/dist/cjs/getRunType.d.ts +0 -4
- package/dist/cjs/getRunType.js +0 -20
- package/dist/cjs/go-generated/fnHashes.generated.d.ts +0 -196
- package/dist/cjs/go-generated/fnHashes.generated.js +0 -78
- package/dist/cjs/go-generated/formatErrorKeys.generated.d.ts +0 -78
- package/dist/cjs/go-generated/formatErrorKeys.generated.js +0 -40
- package/dist/cjs/go-generated/runTypeKind.generated.d.ts +0 -62
- package/dist/cjs/go-generated/runTypeKind.generated.js +0 -61
- package/dist/cjs/go-generated/typeFormats.generated.d.ts +0 -104
- package/dist/cjs/go-generated/typeFormats.generated.js +0 -30
- package/dist/cjs/index.d.ts +0 -28
- package/dist/cjs/index.js +0 -47
- package/dist/cjs/markers.d.ts +0 -33
- package/dist/cjs/markers.js +0 -14
- package/dist/cjs/mocking/childMatch.d.ts +0 -3
- package/dist/cjs/mocking/childMatch.js +0 -357
- package/dist/cjs/mocking/constants.mock.d.ts +0 -7
- package/dist/cjs/mocking/constants.mock.js +0 -87
- package/dist/cjs/mocking/createMockData.d.ts +0 -8
- package/dist/cjs/mocking/createMockData.js +0 -53
- package/dist/cjs/mocking/index.d.ts +0 -4
- package/dist/cjs/mocking/index.js +0 -9
- package/dist/cjs/mocking/isMultipleOf.d.ts +0 -2
- package/dist/cjs/mocking/isMultipleOf.js +0 -11
- package/dist/cjs/mocking/mockBigIntFormat.d.ts +0 -1
- package/dist/cjs/mocking/mockBigIntFormat.js +0 -38
- package/dist/cjs/mocking/mockDateTimeBounds.d.ts +0 -13
- package/dist/cjs/mocking/mockDateTimeBounds.js +0 -277
- package/dist/cjs/mocking/mockInvalid.d.ts +0 -15
- package/dist/cjs/mocking/mockInvalid.js +0 -233
- package/dist/cjs/mocking/mockNumberFormat.d.ts +0 -1
- package/dist/cjs/mocking/mockNumberFormat.js +0 -56
- package/dist/cjs/mocking/mockRandom.d.ts +0 -20
- package/dist/cjs/mocking/mockRandom.js +0 -106
- package/dist/cjs/mocking/mockRegistry.d.ts +0 -7
- package/dist/cjs/mocking/mockRegistry.js +0 -11
- package/dist/cjs/mocking/mockStringFormat.d.ts +0 -5
- package/dist/cjs/mocking/mockStringFormat.js +0 -238
- package/dist/cjs/mocking/mockTemporal.d.ts +0 -13
- package/dist/cjs/mocking/mockTemporal.js +0 -233
- package/dist/cjs/mocking/mockType.d.ts +0 -3
- package/dist/cjs/mocking/mockType.js +0 -810
- package/dist/cjs/mocking/mockTypes.d.ts +0 -54
- package/dist/cjs/mocking/mockTypes.js +0 -2
- package/dist/cjs/mocking/structuralFormat.d.ts +0 -5
- package/dist/cjs/mocking/structuralFormat.js +0 -82
- package/dist/cjs/modelTypes.d.ts +0 -11
- package/dist/cjs/modelTypes.js +0 -2
- package/dist/cjs/overrideRTFunctions.d.ts +0 -9
- package/dist/cjs/overrideRTFunctions.js +0 -20
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/runtime/index.d.ts +0 -10
- package/dist/cjs/runtime/index.js +0 -25
- package/dist/cjs/runtypes/builderCore.d.ts +0 -7
- package/dist/cjs/runtypes/builderCore.js +0 -39
- package/dist/cjs/runtypes/builderTypes.d.ts +0 -51
- package/dist/cjs/runtypes/builderTypes.js +0 -2
- package/dist/cjs/runtypes/circular-pure-fns.d.ts +0 -11
- package/dist/cjs/runtypes/circular-pure-fns.js +0 -117
- package/dist/cjs/runtypes/circular.d.ts +0 -6
- package/dist/cjs/runtypes/circular.js +0 -25
- package/dist/cjs/runtypes/classSerializerRegistry.d.ts +0 -28
- package/dist/cjs/runtypes/classSerializerRegistry.js +0 -141
- package/dist/cjs/runtypes/dataOnly.d.ts +0 -29
- package/dist/cjs/runtypes/dataOnly.js +0 -2
- package/dist/cjs/runtypes/entryTuple.d.ts +0 -101
- package/dist/cjs/runtypes/entryTuple.js +0 -395
- package/dist/cjs/runtypes/formatAnnotation.d.ts +0 -4
- package/dist/cjs/runtypes/formatAnnotation.js +0 -2
- package/dist/cjs/runtypes/formatErrors.d.ts +0 -18
- package/dist/cjs/runtypes/formatErrors.js +0 -2
- package/dist/cjs/runtypes/formatPattern.d.ts +0 -20
- package/dist/cjs/runtypes/formatPattern.js +0 -17
- package/dist/cjs/runtypes/jsonShape.d.ts +0 -22
- package/dist/cjs/runtypes/jsonShape.js +0 -2
- package/dist/cjs/runtypes/pure-fn-ids.generated.d.ts +0 -47
- package/dist/cjs/runtypes/pure-fn-ids.generated.js +0 -50
- package/dist/cjs/runtypes/pure-fns-utils.d.ts +0 -8
- package/dist/cjs/runtypes/pure-fns-utils.js +0 -147
- package/dist/cjs/runtypes/pureFn.d.ts +0 -7
- package/dist/cjs/runtypes/pureFn.js +0 -52
- package/dist/cjs/runtypes/rtUtils.d.ts +0 -45
- package/dist/cjs/runtypes/rtUtils.js +0 -218
- package/dist/cjs/runtypes/sentinelKeys.d.ts +0 -7
- package/dist/cjs/runtypes/sentinelKeys.js +0 -2
- package/dist/cjs/runtypes/stripRunTypeMeta.d.ts +0 -53
- package/dist/cjs/runtypes/stripRunTypeMeta.js +0 -2
- package/dist/cjs/runtypes/typeFormat.d.ts +0 -14
- package/dist/cjs/runtypes/typeFormat.js +0 -2
- package/dist/cjs/runtypes/types.d.ts +0 -114
- package/dist/cjs/runtypes/types.js +0 -2
- package/dist/cjs/standard/createJsonSchemaFn.d.ts +0 -8
- package/dist/cjs/standard/createJsonSchemaFn.js +0 -16
- package/dist/cjs/standard/createStandardSchema.d.ts +0 -18
- package/dist/cjs/standard/createStandardSchema.js +0 -30
- package/dist/cjs/standard/issueMapping.d.ts +0 -12
- package/dist/cjs/standard/issueMapping.js +0 -36
- package/dist/cjs/standard/jsonSchemaDoc.d.ts +0 -7
- package/dist/cjs/standard/jsonSchemaDoc.js +0 -95
- package/dist/cjs/standard/spec.d.ts +0 -47
- package/dist/cjs/standard/spec.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/-y__pOnrgnvRMz.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/0ofEnb55W0BDIY.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/18wDCH5CXZoQKV.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/2xtQHAMu-yOBo6.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/5oCqd7YyfA9rEw.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/6E7qWsIwaFRGn6.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/6xkN1Qfs9nqO79.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/8Mj42N3ytEEn67.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/A3KjzpjelkcBST.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/AgOXcprpjsrTKk.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/E29ul2pUOyD_Ay.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/EG8OkOOSnT9bZn.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/EYsxRHRDgAykA_.js +0 -3
- package/dist/mion-pure-fns/@mionjs/run-types/Eube1z0GFHuqlM.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/GA20s6bj41GC1A.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/GfQK19ktpvibuZ.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/IyjvBbz0zSlgCJ.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/LqTR2O-h6MYq9J.js +0 -4
- package/dist/mion-pure-fns/@mionjs/run-types/MnJ72PqkyXHiSP.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/NJ9TCGDnkv_9Mn.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/OCJ1B0-ZCAwagS.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/PQVLEBllZckw8I.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/Qd_9GJQlOCVqDe.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/R0IFkkw4SM2gvv.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/THkAA-KNR1HeAe.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/VJiknJ2exR2oMF.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/XYGjy-tcgDROBw.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/Z2sc5xQPKB0oav.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/_3Pmrr5aNmyNi4.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/cgwpjq6rGsI8jb.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/d8U9HjmMsNFd6Z.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/fL3v1v6aVZwJ7-.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/gFl-yXbCxJqWgQ.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/hiotRbfSKFAuK4.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/lFYcgG5ZSI-8em.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/n_ZOWff4X3qBMQ.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/ndkQPoji6DFHx2.js +0 -2
- package/dist/mion-pure-fns/@mionjs/run-types/nsU8QeJCuCF8Kr.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/qMsNYN8hy_sC8i.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/rXVwGkGDX08BsQ.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/rgWveqNi_HeFF8.js +0 -5
- package/dist/mion-pure-fns/@mionjs/run-types/s-tZDRlQfCG5m2.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/t-ntJ9S0FuxkC2.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/tfRjnFZVF8lqI_.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/vLId7t0J8HNWlN.js +0 -1
- package/dist/mion-pure-fns/@mionjs/run-types/zXMPEMyjGR4ZRc.js +0 -1
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mockBoundedDate = mockBoundedDate;
|
|
4
|
-
exports.mockBoundedTime = mockBoundedTime;
|
|
5
|
-
exports.mockBoundedDateTime = mockBoundedDateTime;
|
|
6
|
-
exports.mockBoundedNativeDate = mockBoundedNativeDate;
|
|
7
|
-
const FILL_YEAR = 2000;
|
|
8
|
-
const MS_PER_DAY = 86400000;
|
|
9
|
-
const MS_PER_HOUR = 3600000;
|
|
10
|
-
const MS_PER_MIN = 60000;
|
|
11
|
-
const MS_PER_SEC = 1000;
|
|
12
|
-
function randInt(min, max, random) {
|
|
13
|
-
if (max <= min)
|
|
14
|
-
return min;
|
|
15
|
-
return min + Math.floor(random.float() * (max - min + 1));
|
|
16
|
-
}
|
|
17
|
-
function isRelative(bound) {
|
|
18
|
-
return bound.startsWith('now');
|
|
19
|
-
}
|
|
20
|
-
function parseDuration(tail) {
|
|
21
|
-
const out = { years: 0, months: 0, weeks: 0, days: 0, hours: 0, minutes: 0, seconds: 0 };
|
|
22
|
-
const body = tail.substring(1);
|
|
23
|
-
const tIdx = body.indexOf('T');
|
|
24
|
-
const datePart = tIdx === -1 ? body : body.substring(0, tIdx);
|
|
25
|
-
const timePart = tIdx === -1 ? '' : body.substring(tIdx + 1);
|
|
26
|
-
const eat = (segment, map) => {
|
|
27
|
-
const re = /(\d+)([A-Z])/g;
|
|
28
|
-
let m;
|
|
29
|
-
while ((m = re.exec(segment)) !== null) {
|
|
30
|
-
const key = map[m[2]];
|
|
31
|
-
if (key)
|
|
32
|
-
out[key] = Number(m[1]);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
eat(datePart, { Y: 'years', M: 'months', W: 'weeks', D: 'days' });
|
|
36
|
-
eat(timePart, { H: 'hours', M: 'minutes', S: 'seconds' });
|
|
37
|
-
return out;
|
|
38
|
-
}
|
|
39
|
-
function resolveRelative(spec, scale, random) {
|
|
40
|
-
const now = new Date(random.now());
|
|
41
|
-
if (scale === 'timeOfDay') {
|
|
42
|
-
let ms = now.getUTCHours() * MS_PER_HOUR +
|
|
43
|
-
now.getUTCMinutes() * MS_PER_MIN +
|
|
44
|
-
now.getUTCSeconds() * MS_PER_SEC +
|
|
45
|
-
now.getUTCMilliseconds();
|
|
46
|
-
if (spec !== 'now') {
|
|
47
|
-
const sign = spec[3] === '-' ? -1 : 1;
|
|
48
|
-
const d = parseDuration(spec.substring(4));
|
|
49
|
-
ms += sign * (d.hours * MS_PER_HOUR + d.minutes * MS_PER_MIN + d.seconds * MS_PER_SEC);
|
|
50
|
-
}
|
|
51
|
-
return ms;
|
|
52
|
-
}
|
|
53
|
-
const result = new Date(now.getTime());
|
|
54
|
-
if (spec !== 'now') {
|
|
55
|
-
const sign = spec[3] === '-' ? -1 : 1;
|
|
56
|
-
const d = parseDuration(spec.substring(4));
|
|
57
|
-
result.setUTCFullYear(result.getUTCFullYear() + sign * d.years);
|
|
58
|
-
result.setUTCMonth(result.getUTCMonth() + sign * d.months);
|
|
59
|
-
result.setUTCDate(result.getUTCDate() + sign * (d.weeks * 7 + d.days));
|
|
60
|
-
result.setTime(result.getTime() + sign * (d.hours * MS_PER_HOUR + d.minutes * MS_PER_MIN + d.seconds * MS_PER_SEC));
|
|
61
|
-
}
|
|
62
|
-
if (scale === 'epochDate') {
|
|
63
|
-
return Date.UTC(result.getUTCFullYear(), result.getUTCMonth(), result.getUTCDate(), 0, 0, 0, 0);
|
|
64
|
-
}
|
|
65
|
-
return result.getTime();
|
|
66
|
-
}
|
|
67
|
-
function dateLiteralToMs(value, layout) {
|
|
68
|
-
const parts = value.split('-');
|
|
69
|
-
let year = FILL_YEAR;
|
|
70
|
-
let month = 1;
|
|
71
|
-
let day = 1;
|
|
72
|
-
switch (layout) {
|
|
73
|
-
case 'DD-MM-YYYY':
|
|
74
|
-
day = Number(parts[0]);
|
|
75
|
-
month = Number(parts[1]);
|
|
76
|
-
year = Number(parts[2]);
|
|
77
|
-
break;
|
|
78
|
-
case 'MM-DD-YYYY':
|
|
79
|
-
month = Number(parts[0]);
|
|
80
|
-
day = Number(parts[1]);
|
|
81
|
-
year = Number(parts[2]);
|
|
82
|
-
break;
|
|
83
|
-
case 'YYYY-MM':
|
|
84
|
-
year = Number(parts[0]);
|
|
85
|
-
month = Number(parts[1]);
|
|
86
|
-
break;
|
|
87
|
-
case 'MM-DD':
|
|
88
|
-
month = Number(parts[0]);
|
|
89
|
-
day = Number(parts[1]);
|
|
90
|
-
break;
|
|
91
|
-
case 'DD-MM':
|
|
92
|
-
day = Number(parts[0]);
|
|
93
|
-
month = Number(parts[1]);
|
|
94
|
-
break;
|
|
95
|
-
default:
|
|
96
|
-
year = Number(parts[0]);
|
|
97
|
-
month = Number(parts[1]);
|
|
98
|
-
day = Number(parts[2]);
|
|
99
|
-
}
|
|
100
|
-
return Date.UTC(year, month - 1, day, 0, 0, 0, 0);
|
|
101
|
-
}
|
|
102
|
-
function timeLiteralToMs(value, layout) {
|
|
103
|
-
let body = value;
|
|
104
|
-
if (layout === 'ISO' || layout === 'HH:mm:ss[.mmm]TZ') {
|
|
105
|
-
if (body.endsWith('Z') || body.endsWith('z'))
|
|
106
|
-
body = body.substring(0, body.length - 1);
|
|
107
|
-
else {
|
|
108
|
-
const plus = body.indexOf('+');
|
|
109
|
-
const minus = body.lastIndexOf('-');
|
|
110
|
-
const cut = plus !== -1 ? plus : minus;
|
|
111
|
-
if (cut > 0)
|
|
112
|
-
body = body.substring(0, cut);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (layout === 'HH')
|
|
116
|
-
return Number(body) * MS_PER_HOUR;
|
|
117
|
-
if (layout === 'mm')
|
|
118
|
-
return Number(body) * MS_PER_MIN;
|
|
119
|
-
if (layout === 'ss')
|
|
120
|
-
return Number(body) * MS_PER_SEC;
|
|
121
|
-
const parts = body.split(':');
|
|
122
|
-
if (layout === 'HH:mm')
|
|
123
|
-
return Number(parts[0]) * MS_PER_HOUR + Number(parts[1]) * MS_PER_MIN;
|
|
124
|
-
if (layout === 'mm:ss')
|
|
125
|
-
return Number(parts[0]) * MS_PER_MIN + Number(parts[1]) * MS_PER_SEC;
|
|
126
|
-
const secParts = (parts[2] ?? '').split('.');
|
|
127
|
-
return (Number(parts[0]) * MS_PER_HOUR +
|
|
128
|
-
Number(parts[1]) * MS_PER_MIN +
|
|
129
|
-
(secParts[0] ? Number(secParts[0]) : 0) * MS_PER_SEC +
|
|
130
|
-
(secParts[1] ? Number(secParts[1]) : 0));
|
|
131
|
-
}
|
|
132
|
-
function dateTimeLiteralToMs(value, splitChar) {
|
|
133
|
-
const sep = splitChar || 'T';
|
|
134
|
-
const idx = value.indexOf(sep);
|
|
135
|
-
if (idx < 0)
|
|
136
|
-
return Date.parse(value);
|
|
137
|
-
const dateMs = dateLiteralToMs(value.substring(0, idx), 'YYYY-MM-DD');
|
|
138
|
-
const timeMs = timeLiteralToMs(value.substring(idx + sep.length), 'ISO');
|
|
139
|
-
return dateMs + timeMs;
|
|
140
|
-
}
|
|
141
|
-
function resolveDateKey(bound, layout, random) {
|
|
142
|
-
return isRelative(bound) ? resolveRelative(bound, 'epochDate', random) : dateLiteralToMs(bound, layout);
|
|
143
|
-
}
|
|
144
|
-
function resolveTimeKey(bound, layout, random) {
|
|
145
|
-
return isRelative(bound) ? resolveRelative(bound, 'timeOfDay', random) : timeLiteralToMs(bound, layout);
|
|
146
|
-
}
|
|
147
|
-
function resolveEpochKey(bound, splitChar, random) {
|
|
148
|
-
return isRelative(bound) ? resolveRelative(bound, 'epoch', random) : dateTimeLiteralToMs(bound, splitChar);
|
|
149
|
-
}
|
|
150
|
-
function formatDate(ms, layout) {
|
|
151
|
-
const d = new Date(ms);
|
|
152
|
-
const year = String(d.getUTCFullYear()).padStart(4, '0');
|
|
153
|
-
const month = String(d.getUTCMonth() + 1).padStart(2, '0');
|
|
154
|
-
const day = String(d.getUTCDate()).padStart(2, '0');
|
|
155
|
-
switch (layout) {
|
|
156
|
-
case 'DD-MM-YYYY':
|
|
157
|
-
return `${day}-${month}-${year}`;
|
|
158
|
-
case 'MM-DD-YYYY':
|
|
159
|
-
return `${month}-${day}-${year}`;
|
|
160
|
-
case 'YYYY-MM':
|
|
161
|
-
return `${year}-${month}`;
|
|
162
|
-
case 'MM-DD':
|
|
163
|
-
return `${month}-${day}`;
|
|
164
|
-
case 'DD-MM':
|
|
165
|
-
return `${day}-${month}`;
|
|
166
|
-
default:
|
|
167
|
-
return `${year}-${month}-${day}`;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
function formatTime(msOfDay, layout) {
|
|
171
|
-
const h = Math.floor(msOfDay / MS_PER_HOUR);
|
|
172
|
-
const m = Math.floor((msOfDay % MS_PER_HOUR) / MS_PER_MIN);
|
|
173
|
-
const s = Math.floor((msOfDay % MS_PER_MIN) / MS_PER_SEC);
|
|
174
|
-
const ms = msOfDay % MS_PER_SEC;
|
|
175
|
-
const hh = String(h).padStart(2, '0');
|
|
176
|
-
const mm = String(m).padStart(2, '0');
|
|
177
|
-
const ss = String(s).padStart(2, '0');
|
|
178
|
-
const mmm = String(ms).padStart(3, '0');
|
|
179
|
-
switch (layout) {
|
|
180
|
-
case 'ISO':
|
|
181
|
-
case 'HH:mm:ss[.mmm]TZ':
|
|
182
|
-
return `${hh}:${mm}:${ss}.${mmm}Z`;
|
|
183
|
-
case 'HH:mm:ss[.mmm]':
|
|
184
|
-
return `${hh}:${mm}:${ss}.${mmm}`;
|
|
185
|
-
case 'HH:mm:ss':
|
|
186
|
-
return `${hh}:${mm}:${ss}`;
|
|
187
|
-
case 'HH:mm':
|
|
188
|
-
return `${hh}:${mm}`;
|
|
189
|
-
case 'mm:ss':
|
|
190
|
-
return `${mm}:${ss}`;
|
|
191
|
-
case 'HH':
|
|
192
|
-
return hh;
|
|
193
|
-
case 'mm':
|
|
194
|
-
return mm;
|
|
195
|
-
case 'ss':
|
|
196
|
-
return ss;
|
|
197
|
-
default:
|
|
198
|
-
return `${hh}:${mm}:${ss}`;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
const DATE_MIN_MS = Date.UTC(1, 0, 1, 0, 0, 0, 0);
|
|
202
|
-
const DATE_MAX_MS = Date.UTC(9999, 11, 31, 0, 0, 0, 0);
|
|
203
|
-
function timeMaxMs(layout) {
|
|
204
|
-
switch (layout) {
|
|
205
|
-
case 'HH':
|
|
206
|
-
return 23 * MS_PER_HOUR;
|
|
207
|
-
case 'mm':
|
|
208
|
-
return 59 * MS_PER_MIN;
|
|
209
|
-
case 'ss':
|
|
210
|
-
return 59 * MS_PER_SEC;
|
|
211
|
-
case 'HH:mm':
|
|
212
|
-
return 23 * MS_PER_HOUR + 59 * MS_PER_MIN;
|
|
213
|
-
case 'mm:ss':
|
|
214
|
-
return 59 * MS_PER_MIN + 59 * MS_PER_SEC;
|
|
215
|
-
case 'HH:mm:ss':
|
|
216
|
-
return 23 * MS_PER_HOUR + 59 * MS_PER_MIN + 59 * MS_PER_SEC;
|
|
217
|
-
default:
|
|
218
|
-
return 23 * MS_PER_HOUR + 59 * MS_PER_MIN + 59 * MS_PER_SEC + 999;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
function timeGridMs(layout) {
|
|
222
|
-
switch (layout) {
|
|
223
|
-
case 'HH':
|
|
224
|
-
return MS_PER_HOUR;
|
|
225
|
-
case 'mm':
|
|
226
|
-
case 'HH:mm':
|
|
227
|
-
return MS_PER_MIN;
|
|
228
|
-
case 'ss':
|
|
229
|
-
case 'mm:ss':
|
|
230
|
-
case 'HH:mm:ss':
|
|
231
|
-
return MS_PER_SEC;
|
|
232
|
-
default:
|
|
233
|
-
return 1;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
function resolveRange(bounds, resolve, defaultLo, defaultHi, grid) {
|
|
237
|
-
let lo = defaultLo;
|
|
238
|
-
let hi = defaultHi;
|
|
239
|
-
if (bounds.min !== undefined)
|
|
240
|
-
lo = Math.max(lo, resolve(bounds.min));
|
|
241
|
-
if (bounds.gt !== undefined)
|
|
242
|
-
lo = Math.max(lo, resolve(bounds.gt) + grid);
|
|
243
|
-
if (bounds.max !== undefined)
|
|
244
|
-
hi = Math.min(hi, resolve(bounds.max));
|
|
245
|
-
if (bounds.lt !== undefined)
|
|
246
|
-
hi = Math.min(hi, resolve(bounds.lt) - grid);
|
|
247
|
-
if (hi < lo)
|
|
248
|
-
hi = lo;
|
|
249
|
-
return { lo, hi };
|
|
250
|
-
}
|
|
251
|
-
function mockBoundedDate(layout, bounds, random) {
|
|
252
|
-
const { lo, hi } = resolveRange(bounds, (b) => resolveDateKey(b, layout, random), DATE_MIN_MS, DATE_MAX_MS, MS_PER_DAY);
|
|
253
|
-
return formatDate(randInt(lo, hi, random), layout);
|
|
254
|
-
}
|
|
255
|
-
function mockBoundedTime(layout, bounds, random) {
|
|
256
|
-
const grid = timeGridMs(layout);
|
|
257
|
-
const { lo, hi } = resolveRange(bounds, (b) => resolveTimeKey(b, layout, random), 0, timeMaxMs(layout), grid);
|
|
258
|
-
return formatTime(randInt(lo, hi, random), layout);
|
|
259
|
-
}
|
|
260
|
-
function mockBoundedDateTime(params, random) {
|
|
261
|
-
const dateLayout = (params.date?.format ?? 'ISO');
|
|
262
|
-
const timeLayout = (params.time?.format ?? 'ISO');
|
|
263
|
-
const splitChar = params.splitChar ?? 'T';
|
|
264
|
-
const bounds = { min: params.min, max: params.max, gt: params.gt, lt: params.lt };
|
|
265
|
-
if (bounds.min === undefined && bounds.max === undefined && bounds.gt === undefined && bounds.lt === undefined) {
|
|
266
|
-
return `${mockBoundedDate(dateLayout, {}, random)}${splitChar}${mockBoundedTime(timeLayout, {}, random)}`;
|
|
267
|
-
}
|
|
268
|
-
const { lo, hi } = resolveRange(bounds, (b) => resolveEpochKey(b, splitChar, random), DATE_MIN_MS, DATE_MAX_MS + timeMaxMs(timeLayout), timeGridMs(timeLayout));
|
|
269
|
-
const pick = randInt(lo, hi, random);
|
|
270
|
-
const dayMs = Math.floor(pick / MS_PER_DAY) * MS_PER_DAY;
|
|
271
|
-
const timeOfDay = pick - dayMs;
|
|
272
|
-
return `${formatDate(dayMs, dateLayout)}${splitChar}${formatTime(timeOfDay, timeLayout)}`;
|
|
273
|
-
}
|
|
274
|
-
function mockBoundedNativeDate(bounds, random) {
|
|
275
|
-
const { lo, hi } = resolveRange(bounds, (b) => resolveEpochKey(b, 'T', random), DATE_MIN_MS, random.now(), 1);
|
|
276
|
-
return new Date(randInt(lo, hi, random));
|
|
277
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { RunType } from '../runtypes/types.ts';
|
|
2
|
-
import type { RunTypeMockOptions } from './mockTypes.ts';
|
|
3
|
-
import type { MockRandom } from './mockRandom.ts';
|
|
4
|
-
export interface Target {
|
|
5
|
-
parent: Record<string | number, unknown> | undefined;
|
|
6
|
-
key: string | number | undefined;
|
|
7
|
-
node: RunType | undefined;
|
|
8
|
-
value: unknown;
|
|
9
|
-
depth: number;
|
|
10
|
-
isLeaf: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare function negativeFor(node: RunType | undefined, value: unknown, random?: MockRandom): unknown;
|
|
13
|
-
export declare function collectInvalidTargets(root: unknown, rootNode: RunType | undefined): Target[];
|
|
14
|
-
export declare function chooseInvalidTarget(targets: Target[], invalidLeafProbability: number, random?: MockRandom): Target | undefined;
|
|
15
|
-
export declare function mockRunTypeInvalid(runType: RunType, options: RunTypeMockOptions, stack?: RunType[]): unknown;
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.negativeFor = negativeFor;
|
|
4
|
-
exports.collectInvalidTargets = collectInvalidTargets;
|
|
5
|
-
exports.chooseInvalidTarget = chooseInvalidTarget;
|
|
6
|
-
exports.mockRunTypeInvalid = mockRunTypeInvalid;
|
|
7
|
-
const runTypeKind_generated_ts_1 = require("../go-generated/runTypeKind.generated.js");
|
|
8
|
-
const mockRandom_ts_1 = require("./mockRandom.js");
|
|
9
|
-
const mockType_ts_1 = require("./mockType.js");
|
|
10
|
-
const mockStringFormat_ts_1 = require("./mockStringFormat.js");
|
|
11
|
-
const K = runTypeKind_generated_ts_1.RunTypeKind;
|
|
12
|
-
const kindOf = (node) => node.kind;
|
|
13
|
-
function isContainer(value) {
|
|
14
|
-
if (typeof value !== 'object' || value === null)
|
|
15
|
-
return false;
|
|
16
|
-
if (Array.isArray(value))
|
|
17
|
-
return true;
|
|
18
|
-
return !(value instanceof Date ||
|
|
19
|
-
value instanceof Uint8Array ||
|
|
20
|
-
value instanceof Map ||
|
|
21
|
-
value instanceof Set ||
|
|
22
|
-
value instanceof RegExp);
|
|
23
|
-
}
|
|
24
|
-
function kindMatchesValue(node, candidate) {
|
|
25
|
-
switch (kindOf(node)) {
|
|
26
|
-
case K.string:
|
|
27
|
-
case K.templateLiteral:
|
|
28
|
-
return typeof candidate === 'string';
|
|
29
|
-
case K.regexp:
|
|
30
|
-
return candidate instanceof RegExp;
|
|
31
|
-
case K.number:
|
|
32
|
-
return typeof candidate === 'number';
|
|
33
|
-
case K.bigint:
|
|
34
|
-
return typeof candidate === 'bigint';
|
|
35
|
-
case K.boolean:
|
|
36
|
-
return typeof candidate === 'boolean';
|
|
37
|
-
case K.literal:
|
|
38
|
-
return candidate === node.literal;
|
|
39
|
-
case K.null:
|
|
40
|
-
return candidate === null;
|
|
41
|
-
case K.undefined:
|
|
42
|
-
case K.void:
|
|
43
|
-
return candidate === undefined;
|
|
44
|
-
case K.array:
|
|
45
|
-
case K.tuple:
|
|
46
|
-
return Array.isArray(candidate);
|
|
47
|
-
case K.object:
|
|
48
|
-
case K.objectLiteral:
|
|
49
|
-
case K.intersection:
|
|
50
|
-
case K.class:
|
|
51
|
-
return typeof candidate === 'object' && candidate !== null && !Array.isArray(candidate);
|
|
52
|
-
case K.enum:
|
|
53
|
-
return true;
|
|
54
|
-
default:
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function memberForValue(node, value) {
|
|
59
|
-
if (!node || kindOf(node) !== K.union)
|
|
60
|
-
return node;
|
|
61
|
-
const members = (node.children ?? []).filter((member) => !member.notSupported);
|
|
62
|
-
return members.find((member) => kindMatchesValue(member, value)) ?? members[0] ?? node;
|
|
63
|
-
}
|
|
64
|
-
function propChildNode(node, key) {
|
|
65
|
-
const children = node?.children ?? [];
|
|
66
|
-
for (const member of children) {
|
|
67
|
-
if ((kindOf(member) === K.property || kindOf(member) === K.propertySignature) && member.name === String(key)) {
|
|
68
|
-
return member.child;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
for (const member of children) {
|
|
72
|
-
if (kindOf(member) === K.indexSignature)
|
|
73
|
-
return member.child;
|
|
74
|
-
}
|
|
75
|
-
return undefined;
|
|
76
|
-
}
|
|
77
|
-
function elemNodeAt(node, i) {
|
|
78
|
-
if (!node)
|
|
79
|
-
return undefined;
|
|
80
|
-
if (kindOf(node) === K.tuple) {
|
|
81
|
-
const member = (node.children ?? [])[i];
|
|
82
|
-
return member?.child ?? member;
|
|
83
|
-
}
|
|
84
|
-
return node.child;
|
|
85
|
-
}
|
|
86
|
-
function typeofInverse(value) {
|
|
87
|
-
if (typeof value === 'string')
|
|
88
|
-
return 123;
|
|
89
|
-
if (typeof value === 'number' || typeof value === 'bigint')
|
|
90
|
-
return 'not-a-number';
|
|
91
|
-
if (typeof value === 'boolean')
|
|
92
|
-
return 'not-a-boolean';
|
|
93
|
-
if (value === null || value === undefined)
|
|
94
|
-
return 'unexpected';
|
|
95
|
-
if (Array.isArray(value))
|
|
96
|
-
return 'not-an-array';
|
|
97
|
-
return 'not-an-object';
|
|
98
|
-
}
|
|
99
|
-
const UNION_CANDIDATES = ['rt-invalid', 1234.5, true, { rtInvalid: true }, [], null];
|
|
100
|
-
function negativeForUnion(members, value) {
|
|
101
|
-
const live = members.filter((member) => !member.notSupported);
|
|
102
|
-
for (const candidate of UNION_CANDIDATES) {
|
|
103
|
-
if (!live.some((member) => kindMatchesValue(member, candidate)))
|
|
104
|
-
return candidate;
|
|
105
|
-
}
|
|
106
|
-
return typeofInverse(value);
|
|
107
|
-
}
|
|
108
|
-
function literalInverse(lit) {
|
|
109
|
-
if (typeof lit === 'string')
|
|
110
|
-
return 1;
|
|
111
|
-
return 'not-the-literal';
|
|
112
|
-
}
|
|
113
|
-
function negativeFor(node, value, random = mockRandom_ts_1.nativeMockRandom) {
|
|
114
|
-
if (!node)
|
|
115
|
-
return typeofInverse(value);
|
|
116
|
-
const kind = kindOf(node);
|
|
117
|
-
if (kind === K.union)
|
|
118
|
-
return negativeForUnion(node.children ?? [], value);
|
|
119
|
-
switch (kind) {
|
|
120
|
-
case K.string: {
|
|
121
|
-
if (random.float() < 0.5) {
|
|
122
|
-
const formatNegative = (0, mockStringFormat_ts_1.negativeForStringFormat)(node.formatAnnotation, value);
|
|
123
|
-
if (formatNegative !== undefined)
|
|
124
|
-
return formatNegative;
|
|
125
|
-
}
|
|
126
|
-
return 123;
|
|
127
|
-
}
|
|
128
|
-
case K.regexp:
|
|
129
|
-
case K.templateLiteral:
|
|
130
|
-
case K.symbol:
|
|
131
|
-
return 123;
|
|
132
|
-
case K.number:
|
|
133
|
-
case K.bigint:
|
|
134
|
-
return 'not-a-number';
|
|
135
|
-
case K.boolean:
|
|
136
|
-
return 'not-a-boolean';
|
|
137
|
-
case K.literal:
|
|
138
|
-
return literalInverse(node.literal);
|
|
139
|
-
case K.enum:
|
|
140
|
-
return {};
|
|
141
|
-
case K.null:
|
|
142
|
-
return 'not-null';
|
|
143
|
-
case K.undefined:
|
|
144
|
-
case K.void:
|
|
145
|
-
return 'should-be-undefined';
|
|
146
|
-
case K.object:
|
|
147
|
-
case K.objectLiteral:
|
|
148
|
-
case K.intersection:
|
|
149
|
-
case K.class:
|
|
150
|
-
return 'not-an-object';
|
|
151
|
-
case K.array:
|
|
152
|
-
case K.tuple:
|
|
153
|
-
return 'not-an-array';
|
|
154
|
-
case K.any:
|
|
155
|
-
case K.unknown:
|
|
156
|
-
return value;
|
|
157
|
-
default:
|
|
158
|
-
return typeofInverse(value);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
function collect(value, node, parent, key, depth, out) {
|
|
162
|
-
const leaf = !isContainer(value);
|
|
163
|
-
out.push({ parent, key, node, value, depth, isLeaf: leaf });
|
|
164
|
-
if (leaf)
|
|
165
|
-
return;
|
|
166
|
-
const resolved = memberForValue(node, value);
|
|
167
|
-
if (Array.isArray(value)) {
|
|
168
|
-
const arr = value;
|
|
169
|
-
value.forEach((child, index) => collect(child, elemNodeAt(resolved, index), arr, index, depth + 1, out));
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
const container = value;
|
|
173
|
-
for (const childKey of Object.keys(container)) {
|
|
174
|
-
collect(container[childKey], propChildNode(resolved, childKey), container, childKey, depth + 1, out);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
function collectInvalidTargets(root, rootNode) {
|
|
178
|
-
const out = [];
|
|
179
|
-
collect(root, rootNode, undefined, undefined, 0, out);
|
|
180
|
-
return out;
|
|
181
|
-
}
|
|
182
|
-
function canCorrupt(target) {
|
|
183
|
-
if (!target.node)
|
|
184
|
-
return true;
|
|
185
|
-
const kind = kindOf(target.node);
|
|
186
|
-
return kind !== K.any && kind !== K.unknown;
|
|
187
|
-
}
|
|
188
|
-
function levelWeight(nd, p) {
|
|
189
|
-
return (1 - p) * (1 - nd) + p * nd;
|
|
190
|
-
}
|
|
191
|
-
function chooseInvalidTarget(targets, invalidLeafProbability, random = mockRandom_ts_1.nativeMockRandom) {
|
|
192
|
-
const corruptible = targets.filter(canCorrupt);
|
|
193
|
-
if (corruptible.length === 0)
|
|
194
|
-
return undefined;
|
|
195
|
-
const root = corruptible.find((target) => target.parent === undefined);
|
|
196
|
-
if (invalidLeafProbability >= 1) {
|
|
197
|
-
const leaves = corruptible.filter((target) => target.isLeaf);
|
|
198
|
-
if (leaves.length > 0)
|
|
199
|
-
return leaves[random.int(0, leaves.length - 1)];
|
|
200
|
-
return root ?? corruptible[0];
|
|
201
|
-
}
|
|
202
|
-
if (invalidLeafProbability <= 0)
|
|
203
|
-
return root ?? corruptible[0];
|
|
204
|
-
const maxDepth = corruptible.reduce((max, target) => Math.max(max, target.depth), 0);
|
|
205
|
-
if (maxDepth === 0)
|
|
206
|
-
return root ?? corruptible[0];
|
|
207
|
-
const countAtDepth = new Map();
|
|
208
|
-
for (const target of corruptible)
|
|
209
|
-
countAtDepth.set(target.depth, (countAtDepth.get(target.depth) ?? 0) + 1);
|
|
210
|
-
const weights = corruptible.map((target) => levelWeight(target.depth / maxDepth, invalidLeafProbability) / countAtDepth.get(target.depth));
|
|
211
|
-
const total = weights.reduce((sum, weight) => sum + weight, 0);
|
|
212
|
-
let roll = random.float() * total;
|
|
213
|
-
for (let i = 0; i < corruptible.length; i++) {
|
|
214
|
-
roll -= weights[i];
|
|
215
|
-
if (roll < 0)
|
|
216
|
-
return corruptible[i];
|
|
217
|
-
}
|
|
218
|
-
return corruptible[corruptible.length - 1];
|
|
219
|
-
}
|
|
220
|
-
function injectInvalid(root, rootNode, invalidLeafProbability, random) {
|
|
221
|
-
const targets = collectInvalidTargets(root, rootNode);
|
|
222
|
-
const chosen = chooseInvalidTarget(targets, invalidLeafProbability, random);
|
|
223
|
-
if (!chosen || chosen.parent === undefined)
|
|
224
|
-
return negativeFor(rootNode, root, random);
|
|
225
|
-
chosen.parent[chosen.key] = negativeFor(chosen.node, chosen.value, random);
|
|
226
|
-
return root;
|
|
227
|
-
}
|
|
228
|
-
function mockRunTypeInvalid(runType, options, stack = []) {
|
|
229
|
-
const base = (0, mockType_ts_1.mockRunType)(runType, options, stack);
|
|
230
|
-
const mockOptions = options.mock;
|
|
231
|
-
const random = mockOptions.random ?? mockRandom_ts_1.nativeMockRandom;
|
|
232
|
-
return injectInvalid(base, runType, mockOptions.invalidLeafProbability ?? 0.85, random);
|
|
233
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const runTypeKind_generated_ts_1 = require("../go-generated/runTypeKind.generated.js");
|
|
4
|
-
const mockRegistry_ts_1 = require("./mockRegistry.js");
|
|
5
|
-
const mockRandom_ts_1 = require("./mockRandom.js");
|
|
6
|
-
const isMultipleOf_ts_1 = require("./isMultipleOf.js");
|
|
7
|
-
const mockNumberFormat = (annotation, random = mockRandom_ts_1.nativeMockRandom) => {
|
|
8
|
-
if (annotation.name !== 'numberFormat')
|
|
9
|
-
return undefined;
|
|
10
|
-
return mockNumberParams((annotation.params ?? {}), random);
|
|
11
|
-
};
|
|
12
|
-
(0, mockRegistry_ts_1.registerMockingFunction)(runTypeKind_generated_ts_1.RunTypeKind.number, mockNumberFormat);
|
|
13
|
-
function mockNumberParams(params, random) {
|
|
14
|
-
let min = params.min !== undefined ? numVal(params.min) : -99999;
|
|
15
|
-
let max = params.max !== undefined ? numVal(params.max) : 99999;
|
|
16
|
-
if (params.gt !== undefined) {
|
|
17
|
-
const epsilon = params.float ? 0.01 : 1;
|
|
18
|
-
min = Math.max(min, numVal(params.gt) + epsilon);
|
|
19
|
-
}
|
|
20
|
-
if (params.lt !== undefined) {
|
|
21
|
-
const epsilon = params.float ? 0.01 : 1;
|
|
22
|
-
max = Math.min(max, numVal(params.lt) - epsilon);
|
|
23
|
-
}
|
|
24
|
-
let result;
|
|
25
|
-
if (params.integer) {
|
|
26
|
-
min = Math.ceil(min);
|
|
27
|
-
max = Math.floor(max);
|
|
28
|
-
result = random.int(min, max);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
result = min + random.float() * (max - min);
|
|
32
|
-
}
|
|
33
|
-
if (params.multipleOf !== undefined) {
|
|
34
|
-
const tolerance = params.multipleOfTolerance !== undefined ? numVal(params.multipleOfTolerance) : undefined;
|
|
35
|
-
result = snapToMultiple(result, numVal(params.multipleOf), tolerance);
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
function snapToMultiple(value, multipleOf, tolerance) {
|
|
40
|
-
const quotient = Math.floor(value / multipleOf);
|
|
41
|
-
if (Number.isInteger(multipleOf))
|
|
42
|
-
return quotient * multipleOf;
|
|
43
|
-
for (let step = 0; step < 4; step++) {
|
|
44
|
-
const candidate = Number(((quotient - step) * multipleOf).toPrecision(15));
|
|
45
|
-
if ((0, isMultipleOf_ts_1.isMultipleOf)(candidate, multipleOf, tolerance))
|
|
46
|
-
return candidate;
|
|
47
|
-
}
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
function numVal(value) {
|
|
51
|
-
if (typeof value === 'number')
|
|
52
|
-
return value;
|
|
53
|
-
if (value !== null && typeof value === 'object' && 'val' in value)
|
|
54
|
-
return numVal(value.val);
|
|
55
|
-
return Number(value);
|
|
56
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export declare function mulberry32(state: number): () => number;
|
|
2
|
-
export declare class MockRandom {
|
|
3
|
-
private readonly next;
|
|
4
|
-
constructor(seed?: number);
|
|
5
|
-
float(): number;
|
|
6
|
-
int(min?: number, max?: number): number;
|
|
7
|
-
pick<T>(list: T[]): T;
|
|
8
|
-
boolean(): boolean;
|
|
9
|
-
bigint(min?: number, max?: number): bigint;
|
|
10
|
-
number(min?: number, max?: number): number;
|
|
11
|
-
string(length?: number, allowedChars?: string, disallowedChars?: string): string;
|
|
12
|
-
symbol(name?: string, length?: number, charsSet?: string): symbol;
|
|
13
|
-
regExp(list?: RegExp[]): RegExp;
|
|
14
|
-
date(minDate?: Date | number, maxDate?: Date | number): Date;
|
|
15
|
-
any(anyList?: unknown[]): unknown;
|
|
16
|
-
now(): number;
|
|
17
|
-
uuidV4(): string;
|
|
18
|
-
uuidV7(): string;
|
|
19
|
-
}
|
|
20
|
-
export declare const nativeMockRandom: MockRandom;
|