@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,47 +0,0 @@
|
|
|
1
|
-
export interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
2
|
-
readonly '~standard': StandardSchemaProps<Input, Output>;
|
|
3
|
-
}
|
|
4
|
-
export interface StandardSchemaProps<Input = unknown, Output = Input> {
|
|
5
|
-
readonly version: 1;
|
|
6
|
-
readonly vendor: string;
|
|
7
|
-
readonly validate: (value: unknown) => StandardSchemaResult<Output> | Promise<StandardSchemaResult<Output>>;
|
|
8
|
-
readonly types?: StandardSchemaTypes<Input, Output> | undefined;
|
|
9
|
-
}
|
|
10
|
-
export type StandardSchemaResult<Output> = StandardSchemaSuccessResult<Output> | StandardSchemaFailureResult;
|
|
11
|
-
export interface StandardSchemaSuccessResult<Output> {
|
|
12
|
-
readonly value: Output;
|
|
13
|
-
readonly issues?: undefined;
|
|
14
|
-
}
|
|
15
|
-
export interface StandardSchemaFailureResult {
|
|
16
|
-
readonly issues: ReadonlyArray<StandardSchemaIssue>;
|
|
17
|
-
}
|
|
18
|
-
export interface StandardSchemaIssue {
|
|
19
|
-
readonly message: string;
|
|
20
|
-
readonly path?: ReadonlyArray<PropertyKey | StandardSchemaPathSegment> | undefined;
|
|
21
|
-
}
|
|
22
|
-
export interface StandardSchemaPathSegment {
|
|
23
|
-
readonly key: PropertyKey;
|
|
24
|
-
}
|
|
25
|
-
export interface StandardSchemaTypes<Input = unknown, Output = Input> {
|
|
26
|
-
readonly input: Input;
|
|
27
|
-
readonly output: Output;
|
|
28
|
-
}
|
|
29
|
-
export type StandardSchemaInferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
|
|
30
|
-
export type StandardSchemaInferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
|
|
31
|
-
export interface StandardJSONSchemaV1<Input = unknown, Output = Input> {
|
|
32
|
-
readonly '~standard': StandardJSONSchemaProps<Input, Output>;
|
|
33
|
-
}
|
|
34
|
-
export interface StandardJSONSchemaProps<Input = unknown, Output = Input> {
|
|
35
|
-
readonly version: 1;
|
|
36
|
-
readonly vendor: string;
|
|
37
|
-
readonly jsonSchema: StandardJSONSchemaConverter;
|
|
38
|
-
readonly types?: StandardSchemaTypes<Input, Output> | undefined;
|
|
39
|
-
}
|
|
40
|
-
export interface StandardJSONSchemaConverter {
|
|
41
|
-
readonly input: (options?: StandardJSONSchemaOptions) => Record<string, unknown>;
|
|
42
|
-
readonly output: (options?: StandardJSONSchemaOptions) => Record<string, unknown>;
|
|
43
|
-
}
|
|
44
|
-
export interface StandardJSONSchemaOptions {
|
|
45
|
-
readonly target?: string;
|
|
46
|
-
readonly libraryOptions?: Record<string, unknown> | undefined;
|
|
47
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F$2Dy__pOnrgnvRMz=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_-y__pOnrgnvRMz',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_mdy(value) {\n const parts = value.split(\'-\');\n return parts.length === 3 && isDate(parts[2], parts[0], parts[1]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67} from './8Mj42N3ytEEn67.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F0ofEnb55W0BDIY=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67],,'@mionjs/run-types#pf_0ofEnb55W0BDIY',['utl'],'const canonicalJsonFn = utl.getPureFn(\'@mionjs/run-types#pf_8Mj42N3ytEEn67\');\n // An array compares its ITEMS, and nothing in it is unique by construction.\n // Primitives key a Set directly, since SameValueZero is exactly the partition the canonical form produces, so they build no strings at all.\n // The two sets stay SEPARATE so a raw string cannot collide with an object\'s canonical form.\n return function _uniqueArrayItems(arr) {\n const len = arr.length;\n if (len < 2) return true;\n const primitives = new Set();\n let objects = null;\n for (let i = 0; i < len; i++) {\n const item = arr[i];\n if (item === null || typeof item !== \'object\') {\n if (primitives.has(item)) return false;\n primitives.add(item);\n continue;\n }\n if (objects === null) objects = new Set();\n const key = canonicalJsonFn(item);\n if (objects.has(key)) return false;\n objects.add(key);\n }\n return true;\n };',['@mionjs/run-types#pf_8Mj42N3ytEEn67']];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FVJiknJ2exR2oMF} from './VJiknJ2exR2oMF.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F18wDCH5CXZoQKV=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FVJiknJ2exR2oMF],,'@mionjs/run-types#pf_18wDCH5CXZoQKV',['utl'],'const luhnSumFn = utl.getPureFn(\'@mionjs/run-types#pf_VJiknJ2exR2oMF\');\n return function _is_credit_card(value, params) {\n if (typeof value !== \'string\' || value === \'\') return \'format\';\n const separators = params.separators;\n let count = 0;\n // A separator only ever sits BETWEEN digits, so the character to the right of the cursor must be a\n // digit whenever a separator is consumed, which rejects a leading / trailing one and two in a row.\n let expectDigit = true;\n for (let i = value.length - 1; i >= 0; i--) {\n const charCode = value.charCodeAt(i);\n if (charCode >= 48 && charCode <= 57) {\n count++;\n expectDigit = false;\n continue;\n }\n if (expectDigit) return \'format\';\n if (separators === undefined || separators.indexOf(value[i]) === -1) return \'format\';\n expectDigit = true;\n }\n if (expectDigit) return \'format\';\n if (count < 12 || count > 19) return \'format\';\n return luhnSumFn(value) % 10 === 0 ? \'\' : \'checksum\';\n };',['@mionjs/run-types#pf_VJiknJ2exR2oMF']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F2xtQHAMu$2DyOBo6=[2,,,'@mionjs/run-types#pf_2xtQHAMu-yOBo6',[],'function twoDigitsLE(s, at, max) {\n const tens = s.charCodeAt(at) - 48;\n const ones = s.charCodeAt(at + 1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= max;\n }\n return function _is_mmss(value) {\n return value.length === 5 && value.charCodeAt(2) === 58 && twoDigitsLE(value, 0, 59) && twoDigitsLE(value, 3, 59);\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F5oCqd7YyfA9rEw=[2,,,'@mionjs/run-types#pf_5oCqd7YyfA9rEw',[],'const BASE = 36;\n const TMIN = 1;\n const TMAX = 26;\n const SKEW = 38;\n const DAMP = 700;\n const INITIAL_BIAS = 72;\n const INITIAL_N = 128;\n const MAX_INT = 0x7fffffff;\n function adapt(delta, numPoints, firstTime) {\n let scaled = firstTime ? Math.floor(delta / DAMP) : delta >> 1;\n scaled += Math.floor(scaled / numPoints);\n let k = 0;\n while (scaled > ((BASE - TMIN) * TMAX) >> 1) {\n scaled = Math.floor(scaled / (BASE - TMIN));\n k += BASE;\n }\n return k + Math.floor(((BASE - TMIN + 1) * scaled) / (scaled + SKEW));\n }\n function digitChar(digit) {\n return String.fromCharCode(digit < 26 ? digit + 0x61 : digit - 26 + 0x30);\n }\n return function _punycode_encode(input) {\n const points = [...input].map((char) => char.codePointAt(0));\n const basic = points.filter((code) => code < 0x80);\n let handled = basic.length;\n let out = basic.map((code) => String.fromCharCode(code)).join(\'\');\n if (handled) out += \'-\';\n let n = INITIAL_N;\n let delta = 0;\n let bias = INITIAL_BIAS;\n while (handled < points.length) {\n let next = MAX_INT;\n for (const code of points) if (code >= n && code < next) next = code;\n if (next - n > Math.floor((MAX_INT - delta) / (handled + 1))) return false;\n delta += (next - n) * (handled + 1);\n n = next;\n for (const code of points) {\n if (code < n && ++delta > MAX_INT) return false;\n if (code !== n) continue;\n let remaining = delta;\n for (let k = BASE; ; k += BASE) {\n const threshold = k <= bias ? TMIN : k >= bias + TMAX ? TMAX : k - bias;\n if (remaining < threshold) break;\n out += digitChar(threshold + ((remaining - threshold) % (BASE - threshold)));\n remaining = Math.floor((remaining - threshold) / (BASE - threshold));\n }\n out += digitChar(remaining);\n bias = adapt(delta, handled + 1, handled === basic.length);\n delta = 0;\n handled++;\n }\n delta++;\n n++;\n }\n return out;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F6E7qWsIwaFRGn6=[2,,,'@mionjs/run-types#pf_6E7qWsIwaFRGn6',[],'function digitsRun(s, start, end) {\n for (let i = start; i < end; i++) {\n const code = s.charCodeAt(i);\n if (code < 48 || code > 57) return false;\n }\n return true;\n }\n return function _is_s_ms(secsAndMs) {\n const len = secsAndMs.length;\n if (len !== 2 && !(len === 6 && secsAndMs.charCodeAt(2) === 46)) return false;\n const tens = secsAndMs.charCodeAt(0) - 48;\n const ones = secsAndMs.charCodeAt(1) - 48;\n if (tens < 0 || tens > 9 || ones < 0 || ones > 9 || tens * 10 + ones > 59) return false;\n return len === 2 || digitsRun(secsAndMs, 3, 6);\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F6xkN1Qfs9nqO79=[2,,,'@mionjs/run-types#pf_6xkN1Qfs9nqO79',[],'// Backs the `checkUnknowns` key-count fast path: after validation an all-required object is clean iff its\n // key count equals the declared prop count.\n // Which counter is fastest inverts by engine: for-in on V8 (~19 vs ~25 ns/op), `Object.keys` on JavaScriptCore (~16 vs ~25).\n // The factory runs ONCE at materialisation inside the target runtime, so the engine test is paid once and the counter stays branch-free.\n // The two are NOT interchangeable: for-in also counts INHERITED enumerable properties, so the JSC arm tests the prototype per call.\n // The "is Object.prototype itself clean" half cannot vary per input, so it is hoisted up here.\n // The `!= null` half is for the same equivalence reason, not safety: for-in over null counts 0 where `Object.getPrototypeOf` throws.\n // Together both branches answer identically for EVERY input, and the per-call guard measured free on JSC.\n if (typeof Bun !== \'undefined\' && Object.keys(Object.prototype).length === 0) {\n const objectProto = Object.prototype;\n return function _countEnumKeys(obj) {\n const proto = obj != null ? Object.getPrototypeOf(obj) : undefined;\n if (proto === objectProto || proto === null) return Object.keys(obj).length;\n let count = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _key in obj) count++;\n return count;\n };\n }\n return function _countEnumKeys(obj) {\n let count = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _key in obj) count++;\n return count;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67=[2,,,'@mionjs/run-types#pf_8Mj42N3ytEEn67',[],'// JSON equality as a string key: numbers by mathematical value (0 and -0 collide), objects by unordered key set, arrays by order.\n // The runtime twin the mock walker uses is `canonicalJson` in mocking/structuralFormat.ts; the two MUST agree or mocks drift from validators.\n // A primitive\'s key carries its `typeof` prefix, so the string \'{}\' and the value {} are different entries.\n // Recursion rides a factory-LOCAL const: a factory body is inlined without its lexical environment, so self-naming reads as an outer capture (purefn-reads-outer-variable).\n const canonical = (value) => {\n if (value === null || typeof value !== \'object\') {\n return typeof value === \'string\' ? JSON.stringify(value) : typeof value + \':\' + String(value);\n }\n if (Array.isArray(value)) return \'[\' + value.map(canonical).join(\',\') + \']\';\n return (\n \'{\' +\n Object.keys(value)\n .sort()\n .map((key) => JSON.stringify(key) + \':\' + canonical(value[key]))\n .join(\',\') +\n \'}\'\n );\n };\n return function _canonicalJson(value) {\n return canonical(value);\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FnsU8QeJCuCF8Kr} from './nsU8QeJCuCF8Kr.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FA3KjzpjelkcBST=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FnsU8QeJCuCF8Kr],,'@mionjs/run-types#pf_A3KjzpjelkcBST',['utl'],'const NETWORK_RULES = (utl.getPureFn(\'@mionjs/run-types#pf_nsU8QeJCuCF8Kr\'))();\n return function _matches_card_network(value, params) {\n const networks = params.networks;\n if (networks === undefined || networks.length === 0) return false;\n const separators = params.separators;\n let digits = value;\n if (separators !== undefined) {\n digits = \'\';\n for (let i = 0; i < value.length; i++) {\n if (separators.indexOf(value[i]) === -1) digits += value[i];\n }\n }\n for (const network of networks) {\n const rule = NETWORK_RULES[network];\n if (rule === undefined) continue;\n if (rule.lengths.indexOf(digits.length) === -1) continue;\n for (const [low, high] of rule.prefixes) {\n const head = digits.slice(0, low.length);\n if (head >= low && head <= high) return true;\n }\n }\n return false;\n };',['@mionjs/run-types#pf_nsU8QeJCuCF8Kr']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FAgOXcprpjsrTKk=[2,,,'@mionjs/run-types#pf_AgOXcprpjsrTKk',[],'return function _isUUID(value, params) {\n if (typeof value !== \'string\' || value.length !== 36) return false;\n for (let i = 0; i < 36; i++) {\n if (i === 8 || i === 13 || i === 18 || i === 23) {\n if (value[i] !== \'-\') return false;\n } else if (i === 14 && params.version !== \'any\') {\n // The version-agnostic UUID (\'any\', JSON Schema `format: uuid`) treats slot 14 as ordinary hex.\n if (value[i] !== params.version) return false;\n } else {\n const charCode = value.charCodeAt(i);\n const is09 = charCode >= 48 && charCode <= 57;\n const isaf = charCode >= 97 && charCode <= 102;\n const isAF = charCode >= 65 && charCode <= 70;\n if (!(is09 || isaf || isAF)) return false;\n }\n }\n return true;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FE29ul2pUOyD_Ay=[2,,,'@mionjs/run-types#pf_E29ul2pUOyD_Ay',[],'// RFC 5892 section 2.6 exception tables: derivable from no Unicode property, so spelled out.\n const PVALID_EXCEPTIONS = [0x00df, 0x03c2, 0x06fd, 0x06fe, 0x0f0b, 0x3007];\n const DISALLOWED_EXCEPTIONS = [0x0640, 0x07fa, 0x302e, 0x302f, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x303b];\n // Canonical_Combining_Class=Virama. JS regex has no escape for it.\n const VIRAMA = [\n 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84,\n 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa8c4, 0xa953,\n 0xa9c0, 0xaaf6, 0xabed, 0x10a3f, 0x11046, 0x1107f, 0x110b9, 0x11133, 0x11134, 0x111c0, 0x11235, 0x112ea, 0x1134d, 0x11442,\n 0x114c2, 0x115bf, 0x1163f, 0x116b6, 0x1172b, 0x11839, 0x119e0, 0x11a34, 0x11a99, 0x11c3f, 0x11d44, 0x11d45, 0x11d97,\n ];\n const greekRegexp = /\\p{Script=Greek}/u;\n const hebrewRegexp = /\\p{Script=Hebrew}/u;\n const katakanaContextRegexp = /[\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Han}]/u;\n const allowedRegexp = /[\\p{L}\\p{M}\\p{N}]/u;\n const markRegexp = /\\p{M}/u;\n const arabicIndicRegexp = /[٠-٩]/u;\n const extendedArabicIndicRegexp = /[۰-۹]/u;\n // Joining_Type is not a JS regex property either, so the joining SCRIPTS stand in for it: enough to\n // tell an Arabic neighbour from a Latin one.\n const joiningRegexp = /[\\p{Script=Arabic}\\p{Script=Syriac}\\p{Script=Nko}\\p{Script=Mandaic}\\p{Script=Adlam}]\\p{M}*$/u;\n return function _is_idna_label(label) {\n if (label === \'\') return false;\n if (label.startsWith(\'-\') || label.endsWith(\'-\')) return false;\n // `--` in the 3rd and 4th position is reserved for the A-label prefix.\n if (label.length > 3 && label[2] === \'-\' && label[3] === \'-\') return false;\n const chars = [...label];\n if (markRegexp.test(chars[0])) return false;\n for (let i = 0; i < chars.length; i++) {\n const char = chars[i];\n const code = char.codePointAt(0);\n if (DISALLOWED_EXCEPTIONS.indexOf(code) !== -1) return false;\n if (PVALID_EXCEPTIONS.indexOf(code) !== -1) continue;\n if (char === \'-\') continue;\n if (code === 0x200c || code === 0x200d) {\n // CONTEXTJ: a joiner is allowed directly after a Virama, and ZWNJ also\n // between joining letters (RFC 5892 A.1 rule 2).\n if (i === 0) return false;\n if (VIRAMA.indexOf(chars[i - 1].codePointAt(0)) !== -1) continue;\n if (code !== 0x200c) return false;\n if (!joiningRegexp.test(chars.slice(0, i).join(\'\'))) return false;\n continue;\n }\n // CONTEXTO, one rule per character, each decided by its neighbours.\n if (code === 0x00b7) {\n if (chars[i - 1] !== \'l\' || chars[i + 1] !== \'l\') return false;\n continue;\n }\n if (code === 0x0375) {\n if (!chars[i + 1] || !greekRegexp.test(chars[i + 1])) return false;\n continue;\n }\n if (code === 0x05f3 || code === 0x05f4) {\n if (!chars[i - 1] || !hebrewRegexp.test(chars[i - 1])) return false;\n continue;\n }\n if (code === 0x30fb) {\n if (!katakanaContextRegexp.test(label)) return false;\n continue;\n }\n if (arabicIndicRegexp.test(char)) {\n if (extendedArabicIndicRegexp.test(label)) return false;\n continue;\n }\n if (extendedArabicIndicRegexp.test(char)) {\n if (arabicIndicRegexp.test(label)) return false;\n continue;\n }\n if (!allowedRegexp.test(char)) return false;\n }\n return true;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEG8OkOOSnT9bZn=[2,,,'@mionjs/run-types#pf_EG8OkOOSnT9bZn',[],'// Length gate first: this runs on EVERY ip validation, and a case-blind regex call costs more than\n // the answer is worth when the length already says no.\n return function _is_local_host(ip) {\n return ip.length === 9 && ip.toLowerCase() === \'localhost\';\n };',[]];
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fcgwpjq6rGsI8jb} from './cgwpjq6rGsI8jb.js';
|
|
2
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fd8U9HjmMsNFd6Z} from './d8U9HjmMsNFd6Z.js';
|
|
3
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEYsxRHRDgAykA_=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fcgwpjq6rGsI8jb,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fd8U9HjmMsNFd6Z],,'@mionjs/run-types#pf_EYsxRHRDgAykA_',['utl'],'const isH = utl.getPureFn(\'@mionjs/run-types#pf_d8U9HjmMsNFd6Z\');\n const isM = utl.getPureFn(\'@mionjs/run-types#pf_cgwpjq6rGsI8jb\');\n return function _is_tz(timeZone) {\n if (timeZone === \'Z\' || timeZone === \'z\') return true;\n const parts = timeZone.split(\':\');\n return parts.length === 2 && isH(parts[0]) && isM(parts[1]);\n };',['@mionjs/run-types#pf_cgwpjq6rGsI8jb','@mionjs/run-types#pf_d8U9HjmMsNFd6Z']];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEube1z0GFHuqlM=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_Eube1z0GFHuqlM',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_dm(value) {\n const parts = value.split(\'-\');\n return parts.length === 2 && isDate(undefined, parts[1], parts[0]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FGA20s6bj41GC1A=[2,,,'@mionjs/run-types#pf_GA20s6bj41GC1A',[],'const BASE = 36;\n const TMIN = 1;\n const TMAX = 26;\n const SKEW = 38;\n const DAMP = 700;\n const INITIAL_BIAS = 72;\n const INITIAL_N = 128;\n const MAX_INT = 0x7fffffff;\n function adapt(delta, numPoints, firstTime) {\n let scaled = firstTime ? Math.floor(delta / DAMP) : delta >> 1;\n scaled += Math.floor(scaled / numPoints);\n let k = 0;\n while (scaled > ((BASE - TMIN) * TMAX) >> 1) {\n scaled = Math.floor(scaled / (BASE - TMIN));\n k += BASE;\n }\n return k + Math.floor(((BASE - TMIN + 1) * scaled) / (scaled + SKEW));\n }\n return function _punycode_decode(input) {\n const out = [];\n let index = input.lastIndexOf(\'-\');\n if (index > 0) {\n for (let i = 0; i < index; i++) {\n const code = input.charCodeAt(i);\n if (code >= 0x80) return false;\n out.push(code);\n }\n index++;\n } else index = 0;\n let n = INITIAL_N;\n let bias = INITIAL_BIAS;\n let i = 0;\n while (index < input.length) {\n const previousI = i;\n for (let weight = 1, k = BASE; ; k += BASE) {\n if (index >= input.length) return false;\n const code = input.charCodeAt(index++);\n const digit =\n code >= 0x30 && code <= 0x39\n ? code - 0x30 + 26\n : code >= 0x61 && code <= 0x7a\n ? code - 0x61\n : code >= 0x41 && code <= 0x5a\n ? code - 0x41\n : -1;\n if (digit < 0 || digit > (MAX_INT - i) / weight) return false;\n i += digit * weight;\n const threshold = k <= bias ? TMIN : k >= bias + TMAX ? TMAX : k - bias;\n if (digit < threshold) break;\n if (weight > Math.floor(MAX_INT / (BASE - threshold))) return false;\n weight *= BASE - threshold;\n }\n bias = adapt(i - previousI, out.length + 1, previousI === 0);\n if (Math.floor(i / (out.length + 1)) > MAX_INT - n) return false;\n n += Math.floor(i / (out.length + 1));\n i %= out.length + 1;\n if (n > 0x10ffff || (n >= 0xd800 && n <= 0xdfff)) return false;\n out.splice(i++, 0, n);\n }\n return String.fromCodePoint(...out);\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FGfQK19ktpvibuZ=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_GfQK19ktpvibuZ',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_ym(value) {\n const parts = value.split(\'-\');\n return parts.length === 2 && isDate(parts[0], parts[1]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FIyjvBbz0zSlgCJ=[2,,,'@mionjs/run-types#pf_IyjvBbz0zSlgCJ',[],'function twoDigitsLE(s, at, max) {\n const tens = s.charCodeAt(at) - 48;\n const ones = s.charCodeAt(at + 1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= max;\n }\n return function _is_hhmmss(value) {\n return (\n value.length === 8 &&\n value.charCodeAt(2) === 58 &&\n value.charCodeAt(5) === 58 &&\n twoDigitsLE(value, 0, 23) &&\n twoDigitsLE(value, 3, 59) &&\n twoDigitsLE(value, 6, 59)\n );\n };',[]];
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F_3Pmrr5aNmyNi4} from './_3Pmrr5aNmyNi4.js';
|
|
2
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FndkQPoji6DFHx2} from './ndkQPoji6DFHx2.js';
|
|
3
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FrgWveqNi_HeFF8} from './rgWveqNi_HeFF8.js';
|
|
4
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FLqTR2O$2Dh6MYq9J=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F_3Pmrr5aNmyNi4,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FndkQPoji6DFHx2,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FrgWveqNi_HeFF8],,'@mionjs/run-types#pf_LqTR2O-h6MYq9J',['utl'],'// The three engines return a failure MODE (\'\' when good), not a boolean.\n const isIPV4Fn = utl.getPureFn(\'@mionjs/run-types#pf__3Pmrr5aNmyNi4\');\n const isIPV6Fn = utl.getPureFn(\'@mionjs/run-types#pf_ndkQPoji6DFHx2\');\n const isIdnHostnameFn = utl.getPureFn(\'@mionjs/run-types#pf_rgWveqNi_HeFF8\');\n // Same label separators the host-name engine splits on, redeclared here because each factory keeps\n // its own tables: the extractor lifts the body alone.\n const idnDotRegexp = /[.。.。]/;\n const asciiAtextRegexp = /^[A-Za-z0-9!#$%&\'*+/=?^_`{|}~-]+$/;\n // The internationalized local part widens the repertoire rather than listing it: anything that is\n // not a separator, a space, or a bracket.\n const idnAtextRegexp = /^[^ \\t\\r\\n@.[\\]]+$/u;\n const bareQuoteRegexp = /(^|[^\\\\])"/;\n function isQuoted(local) {\n if (local.length < 2 || local[0] !== \'"\' || local[local.length - 1] !== \'"\') return false;\n // A bare quote inside would have ended the string early.\n return !bareQuoteRegexp.test(local.substring(1, local.length - 1));\n }\n function isLocalPart(local, idn) {\n if (local === \'\') return false;\n if (isQuoted(local)) return true;\n const atextRegexp = idn ? idnAtextRegexp : asciiAtextRegexp;\n const parts = local.split(\'.\');\n // A dot separates atoms, so it may not lead, trail, or repeat.\n for (const part of parts) if (part === \'\' || !atextRegexp.test(part)) return false;\n return true;\n }\n // Returns the FAILURE MODE rather than a boolean, naming WHICH PART is wrong: \'\' good, \'format\' (no\n // \'@\' at all), \'localPart\' (before the last \'@\'), \'domain\' (a named domain after it) or\n // \'addressLiteral\' (a bracketed IP literal after it). That feeds the `errorType` of the emitted\n // format error; validate compares against \'\' and pays nothing for it.\n return function _is_email_address(value, params) {\n // The LAST \'@\' separates: a quoted local part may contain one of its own.\n const at = value.lastIndexOf(\'@\');\n if (at === -1) return \'format\';\n if (at === 0 || !isLocalPart(value.substring(0, at), params.idn === true)) return \'localPart\';\n if (at === value.length - 1) return \'domain\';\n const domain = value.substring(at + 1);\n if (domain[0] === \'[\' && domain[domain.length - 1] === \']\') {\n const literal = domain.substring(1, domain.length - 1);\n const literalMode =\n literal.substring(0, 5) === \'IPv6:\'\n ? isIPV6Fn(literal.substring(5), {version: 6, allowLocalHost: true})\n : isIPV4Fn(literal, {version: 4, allowLocalHost: false});\n return literalMode === \'\' ? \'\' : \'addressLiteral\';\n }\n // The dotted-TLD rule (see the factory comment): a bare one-label domain\n // is a valid HOST NAME but not an address\'s domain.\n if (params.idn === true ? !idnDotRegexp.test(domain) : domain.indexOf(\'.\') === -1) return \'domain\';\n return isIdnHostnameFn(domain, {idn: params.idn === true}) === \'\' ? \'\' : \'domain\';\n };',['@mionjs/run-types#pf__3Pmrr5aNmyNi4','@mionjs/run-types#pf_ndkQPoji6DFHx2','@mionjs/run-types#pf_rgWveqNi_HeFF8']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP=[2,,,'@mionjs/run-types#pf_MnJ72PqkyXHiSP',[],'return function _isDateString(year, month, day) {\n let y;\n if (year) {\n if (year.length !== 4) return false;\n y = Number(year);\n if (isNaN(y) || y < 0 || y > 9999) return false;\n }\n if (month.length !== 2) return false;\n const m = Number(month);\n if (isNaN(m) || m < 1 || m > 12) return false;\n if (day) {\n if (day.length !== 2) return false;\n const d = Number(day);\n if (isNaN(d) || d < 1 || d > 31) return false;\n if (m === 2) {\n if (d > 29) return false;\n if (y && d === 29 && !(y % 4 === 0 && (y % 100 !== 0 || y % 400 === 0))) return false;\n } else if ((m === 4 || m === 6 || m === 9 || m === 11) && d > 30) {\n return false;\n }\n }\n return true;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FNJ9TCGDnkv_9Mn=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_NJ9TCGDnkv_9Mn',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_md(value) {\n const parts = value.split(\'-\');\n return parts.length === 2 && isDate(undefined, parts[0], parts[1]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FOCJ1B0$2DZCAwagS=[2,,,'@mionjs/run-types#pf_OCJ1B0-ZCAwagS',[],'function twoDigitsLE(s, at, max) {\n const tens = s.charCodeAt(at) - 48;\n const ones = s.charCodeAt(at + 1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= max;\n }\n return function _is_iso(value) {\n const len = value.length;\n if (len !== 8 && !(len === 12 && value.charCodeAt(8) === 46)) return false;\n if (value.charCodeAt(2) !== 58 || value.charCodeAt(5) !== 58) return false;\n if (!twoDigitsLE(value, 0, 23) || !twoDigitsLE(value, 3, 59) || !twoDigitsLE(value, 6, 59)) return false;\n for (let i = 9; i < len; i++) {\n const code = value.charCodeAt(i);\n if (code < 48 || code > 57) return false;\n }\n return true;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FPQVLEBllZckw8I=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_PQVLEBllZckw8I',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_dmy(value) {\n const parts = value.split(\'-\');\n return parts.length === 3 && isDate(parts[2], parts[1], parts[0]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FQd_9GJQlOCVqDe=[2,,,'@mionjs/run-types#pf_Qd_9GJQlOCVqDe',[],'return function _is_ecma_regex(value) {\n try {\n new RegExp(value, \'u\');\n return true;\n } catch {\n return false;\n }\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67} from './8Mj42N3ytEEn67.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FR0IFkkw4SM2gvv=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67],,'@mionjs/run-types#pf_R0IFkkw4SM2gvv',['utl'],'const canonicalJsonFn = utl.getPureFn(\'@mionjs/run-types#pf_8Mj42N3ytEEn67\');\n // A Map compares its ENTRIES, the `[key, value]` PAIRS that are its wire form.\n // A primitive key is unique by construction, so its whole pair is too and is skipped: `Map<string, BigObject>` canonicalises nothing.\n // An object key may repeat by content, so its pair is canonicalised whole: two content-equal keys with DIFFERENT values pass.\n return function _uniqueMapEntries(map) {\n let objects = null;\n for (const [key, value] of map) {\n if (key === null || typeof key !== \'object\') continue;\n if (objects === null) objects = new Set();\n const pairKey = canonicalJsonFn([key, value]);\n if (objects.has(pairKey)) return false;\n objects.add(pairKey);\n }\n return true;\n };',['@mionjs/run-types#pf_8Mj42N3ytEEn67']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FTHkAA$2DKNR1HeAe=[2,,,'@mionjs/run-types#pf_THkAA-KNR1HeAe',[],'return function _date_to_ms(value, layout) {\n const parts = value.split(\'-\');\n // Canonical fill for yearless layouts (MM-DD / DD-MM), which MUST match Go\'s defaultFillYear in\n // literals.go; 2000 is a leap year so \'02-29\' is representable. A literal, not an outer const:\n // pure-fn factories can\'t capture outer-scope bindings.\n let year = 2000;\n let month = 1;\n let day = 1;\n switch (layout) {\n case \'ISO\':\n case \'YYYY-MM-DD\':\n year = Number(parts[0]);\n month = Number(parts[1]);\n day = Number(parts[2]);\n break;\n case \'DD-MM-YYYY\':\n day = Number(parts[0]);\n month = Number(parts[1]);\n year = Number(parts[2]);\n break;\n case \'MM-DD-YYYY\':\n month = Number(parts[0]);\n day = Number(parts[1]);\n year = Number(parts[2]);\n break;\n case \'YYYY-MM\':\n year = Number(parts[0]);\n month = Number(parts[1]);\n break;\n case \'MM-DD\':\n month = Number(parts[0]);\n day = Number(parts[1]);\n break;\n case \'DD-MM\':\n day = Number(parts[0]);\n month = Number(parts[1]);\n break;\n }\n return Date.UTC(year, month - 1, day, 0, 0, 0, 0);\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FVJiknJ2exR2oMF=[2,,,'@mionjs/run-types#pf_VJiknJ2exR2oMF',[],'return function _luhn_sum(value) {\n let sum = 0;\n let double = false;\n for (let i = value.length - 1; i >= 0; i--) {\n const charCode = value.charCodeAt(i);\n if (charCode < 48 || charCode > 57) continue;\n let digit = charCode - 48;\n if (double) {\n digit *= 2;\n if (digit > 9) digit -= 9;\n }\n sum += digit;\n double = !double;\n }\n return sum;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67} from './8Mj42N3ytEEn67.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FXYGjy$2DtcgDROBw=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F8Mj42N3ytEEn67],,'@mionjs/run-types#pf_XYGjy-tcgDROBw',['utl'],'const canonicalJsonFn = utl.getPureFn(\'@mionjs/run-types#pf_8Mj42N3ytEEn67\');\n // A Set\'s primitive members are already unique by construction (SameValueZero), so only object members are canonicalised.\n // That is why `Set<{id: number}>` needs the keyword at all: it may hold two structurally equal objects.\n return function _uniqueSetMembers(set) {\n let objects = null;\n for (const member of set) {\n if (member === null || typeof member !== \'object\') continue;\n if (objects === null) objects = new Set();\n const key = canonicalJsonFn(member);\n if (objects.has(key)) return false;\n objects.add(key);\n }\n return true;\n };',['@mionjs/run-types#pf_8Mj42N3ytEEn67']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FZ2sc5xQPKB0oav=[2,,,'@mionjs/run-types#pf_Z2sc5xQPKB0oav',[],'const highSurrogateRegexp = /[\\uD800-\\uDBFF]/;\n return function _code_point_length(value) {\n const len = value.length;\n if (len > 24 && !highSurrogateRegexp.test(value)) return len;\n let count = len;\n for (let i = 0; i < len; i++) {\n const code = value.charCodeAt(i);\n if (code >= 0xd800 && code <= 0xdbff && i + 1 < len) {\n i++;\n count--;\n }\n }\n return count;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEG8OkOOSnT9bZn} from './EG8OkOOSnT9bZn.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2F_3Pmrr5aNmyNi4=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEG8OkOOSnT9bZn],,'@mionjs/run-types#pf__3Pmrr5aNmyNi4',['utl'],'const isLocalHostFn = utl.getPureFn(\'@mionjs/run-types#pf_EG8OkOOSnT9bZn\');\n // Dotted quad, ASCII digits only. Anchored and `Number`-free on purpose: `Number(\'\')` is 0,\n // `Number(\'0x7f\')` is 127 and `Number(\' 1\\n\')` is 1, so a coercion-based octet check silently accepts\n // `192.168..1`, `0x7f.0.0.1` and trailing whitespace. `\\d` stays ASCII under every flag, which keeps\n // full-width and Bengali digits out.\n const ipv4Regexp = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n return function _is_ip_v4(ip, params) {\n let address = ip;\n let portS;\n if (params.allowPort) {\n const parts = ip.split(\':\');\n if (parts.length > 2) return \'address\';\n address = parts[0];\n portS = parts[1];\n }\n // The address is judged BEFORE the port: "that is not an address" outranks\n // "bad port" when both are wrong.\n if (isLocalHostFn(address)) {\n if (params.allowLocalHost !== true) return \'address\';\n } else if (!ipv4Regexp.test(address)) return \'address\';\n if (portS && (!/^\\d{1,5}$/.test(portS) || Number(portS) > 65535)) return \'port\';\n return \'\';\n };',['@mionjs/run-types#pf_EG8OkOOSnT9bZn']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fcgwpjq6rGsI8jb=[2,,,'@mionjs/run-types#pf_cgwpjq6rGsI8jb',[],'return function _is_m(mins) {\n if (mins.length !== 2) return false;\n const tens = mins.charCodeAt(0) - 48;\n const ones = mins.charCodeAt(1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= 59;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fd8U9HjmMsNFd6Z=[2,,,'@mionjs/run-types#pf_d8U9HjmMsNFd6Z',[],'return function _is_h(hours) {\n if (hours.length !== 2) return false;\n const tens = hours.charCodeAt(0) - 48;\n const ones = hours.charCodeAt(1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= 23;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FfL3v1v6aVZwJ7$2D=[2,,,'@mionjs/run-types#pf_fL3v1v6aVZwJ7-',[],'const MAX_UNKNOWN_KEYS = 10;\n return function _getUnknownKeysFromArray(obj, keys) {\n const unknownKeys = [];\n for (const prop in obj) {\n let found = false;\n for (let j = 0; j < keys.length; j++) {\n if (keys[j] === prop) {\n found = true;\n break;\n }\n }\n if (!found) {\n unknownKeys.push(prop);\n if (unknownKeys.length >= MAX_UNKNOWN_KEYS) throw new Error(\'Too many unknown keys\');\n }\n }\n return unknownKeys;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP} from './MnJ72PqkyXHiSP.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FgFl$2DyXbCxJqWgQ=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FMnJ72PqkyXHiSP],,'@mionjs/run-types#pf_gFl-yXbCxJqWgQ',['utl'],'const isDate = utl.getPureFn(\'@mionjs/run-types#pf_MnJ72PqkyXHiSP\');\n return function _is_ymd(value) {\n const parts = value.split(\'-\');\n return parts.length === 3 && isDate(parts[0], parts[1], parts[2]);\n };',['@mionjs/run-types#pf_MnJ72PqkyXHiSP']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FhiotRbfSKFAuK4=[2,,,'@mionjs/run-types#pf_hiotRbfSKFAuK4',[],'function twoDigitsLE(s, at, max) {\n const tens = s.charCodeAt(at) - 48;\n const ones = s.charCodeAt(at + 1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= max;\n }\n return function _is_hhmm(value) {\n return value.length === 5 && value.charCodeAt(2) === 58 && twoDigitsLE(value, 0, 23) && twoDigitsLE(value, 3, 59);\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FlFYcgG5ZSI$2D8em=[2,,,'@mionjs/run-types#pf_lFYcgG5ZSI-8em',[],'return function _is_s_leap(secsAndMs) {\n const len = secsAndMs.length;\n if (len < 2) return false;\n const tens = secsAndMs.charCodeAt(0) - 48;\n const ones = secsAndMs.charCodeAt(1) - 48;\n if (tens < 0 || tens > 9 || ones < 0 || ones > 9 || tens * 10 + ones > 60) return false;\n if (len === 2) return true;\n if (secsAndMs.charCodeAt(2) !== 46 || len === 3) return false;\n for (let i = 3; i < len; i++) {\n const code = secsAndMs.charCodeAt(i);\n if (code < 48 || code > 57) return false;\n }\n return true;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fn_ZOWff4X3qBMQ=[2,,,'@mionjs/run-types#pf_n_ZOWff4X3qBMQ',[],'return function _is_s(secs) {\n if (secs.length !== 2) return false;\n const tens = secs.charCodeAt(0) - 48;\n const ones = secs.charCodeAt(1) - 48;\n return tens >= 0 && tens <= 9 && ones >= 0 && ones <= 9 && tens * 10 + ones <= 59;\n };',[]];
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEG8OkOOSnT9bZn} from './EG8OkOOSnT9bZn.js';
|
|
2
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FndkQPoji6DFHx2=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FEG8OkOOSnT9bZn],,'@mionjs/run-types#pf_ndkQPoji6DFHx2',['utl'],'const isLocalHostFn = utl.getPureFn(\'@mionjs/run-types#pf_EG8OkOOSnT9bZn\');\n const ipv6PortRegexp = /^\\[([^\\]]+)\\](?::(\\d+))?$/;\n // The group walkers work on index RANGES of the one address string: a split-and-regex version of the\n // same rules measured ~2x slower, all of it allocation and per-group regex overhead.\n // isIPv4Quad: dotted quad over [start, end) with the ipv4 octet rules, leading zeros tolerated.\n function isIPv4Quad(s, start, end) {\n let octets = 0;\n let val = 0;\n let digits = 0;\n for (let i = start; i <= end; i++) {\n if (i === end || s.charCodeAt(i) === 46) {\n if (digits === 0) return false;\n octets++;\n if (octets > 4) return false;\n if (i === end) return octets === 4;\n val = 0;\n digits = 0;\n continue;\n }\n const code = s.charCodeAt(i);\n if (code < 48 || code > 57) return false;\n if (digits === 3 || (val = val * 10 + (code - 48)) > 255) return false;\n digits++;\n }\n return false;\n }\n // isHexGroup: one 16-bit group over [start, end) — 1-4 hex digits.\n function isHexGroup(s, start, end) {\n const n = end - start;\n if (n < 1 || n > 4) return false;\n for (let i = start; i < end; i++) {\n const code = s.charCodeAt(i);\n if (!((code >= 48 && code <= 57) || (code >= 97 && code <= 102) || (code >= 65 && code <= 70))) return false;\n }\n return true;\n }\n // Counts the 16-bit groups in one `:`-separated run [start, end), or -1 when a group is malformed. A\n // dotted quad is accepted in the LAST position only (ipv4-mapped) and counts as the two groups it encodes.\n function countGroups(s, start, end, allowIPv4Tail) {\n if (start >= end) return 0;\n let count = 0;\n let groupStart = start;\n for (let i = start; i <= end; i++) {\n if (i === end || s.charCodeAt(i) === 58) {\n if (allowIPv4Tail && i === end && isIPv4Quad(s, groupStart, i)) count += 2;\n else if (isHexGroup(s, groupStart, i)) count += 1;\n else return -1;\n groupStart = i + 1;\n }\n }\n return count;\n }\n // isAddress: `::` elides one or more all-zero groups and may appear at most once; a lone leading /\n // trailing `:` is not an elision, so those runs come back with an empty group and are rejected.\n function isAddress(address) {\n const elision = address.indexOf(\'::\');\n if (elision === -1) return countGroups(address, 0, address.length, true) === 8;\n if (address.indexOf(\'::\', elision + 1) !== -1) return false;\n const head = countGroups(address, 0, elision, false);\n const tail = countGroups(address, elision + 2, address.length, true);\n if (head === -1 || tail === -1) return false;\n // The elision stands for at least one group, so the written ones must leave\n // room for it.\n return head + tail <= 7;\n }\n return function _is_ip_v6(ip, params) {\n let address = ip;\n let port;\n if (params.allowPort) {\n // With a port the address MUST be bracketed, `[addr]:port`; a bare `::1` is then not in the\n // accepted shape, which counts as an address problem.\n const match = ip.match(ipv6PortRegexp);\n if (!match) return \'address\';\n address = match[1];\n port = match[2];\n }\n // The address is judged BEFORE the port, same as isIPV4.\n if (isLocalHostFn(address)) {\n if (params.allowLocalHost !== true) return \'address\';\n } else if (!isAddress(address)) return \'address\';\n if (port && Number(port) > 65535) return \'port\';\n return \'\';\n };',['@mionjs/run-types#pf_EG8OkOOSnT9bZn']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FnsU8QeJCuCF8Kr=[2,,,'@mionjs/run-types#pf_nsU8QeJCuCF8Kr',[],'const RULES = {\n visa: {prefixes: [[\'4\', \'4\']], lengths: [13, 16, 19]},\n mastercard: {\n prefixes: [\n [\'51\', \'55\'],\n [\'2221\', \'2720\'],\n ],\n lengths: [16],\n },\n amex: {\n prefixes: [\n [\'34\', \'34\'],\n [\'37\', \'37\'],\n ],\n lengths: [15],\n },\n discover: {\n prefixes: [\n [\'6011\', \'6011\'],\n [\'644\', \'649\'],\n [\'65\', \'65\'],\n [\'622126\', \'622925\'],\n ],\n lengths: [16, 19],\n },\n jcb: {prefixes: [[\'3528\', \'3589\']], lengths: [16, 17, 18, 19]},\n diners: {\n prefixes: [\n [\'300\', \'305\'],\n [\'3095\', \'3095\'],\n [\'36\', \'36\'],\n [\'38\', \'39\'],\n ],\n lengths: [14, 15, 16, 17, 18, 19],\n },\n unionpay: {prefixes: [[\'62\', \'62\']], lengths: [16, 17, 18, 19]},\n maestro: {\n prefixes: [\n [\'5018\', \'5018\'],\n [\'5020\', \'5020\'],\n [\'5038\', \'5038\'],\n [\'5893\', \'5893\'],\n [\'6304\', \'6304\'],\n [\'6759\', \'6759\'],\n [\'6761\', \'6763\'],\n ],\n lengths: [12, 13, 14, 15, 16, 17, 18, 19],\n },\n };\n Object.freeze(RULES);\n return function _card_network_rules() {\n return RULES;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FqMsNYN8hy_sC8i=[2,,,'@mionjs/run-types#pf_qMsNYN8hy_sC8i',[],'const MINUTES_PER_DAY = 1440;\n // -1 when either character is not an ASCII digit, the value otherwise.\n function twoDigitsVal(s, at) {\n const tens = s.charCodeAt(at) - 48;\n const ones = s.charCodeAt(at + 1) - 48;\n if (tens < 0 || tens > 9 || ones < 0 || ones > 9) return -1;\n return tens * 10 + ones;\n }\n return function _is_iso_tz(value) {\n const len = value.length;\n if (len < 9) return false;\n let timeEnd;\n let offsetMinutes;\n const last = value.charCodeAt(len - 1);\n if (last === 90 || last === 122) {\n // \'Z\' / \'z\'\n timeEnd = len - 1;\n offsetMinutes = 0;\n } else {\n // An offset is always exactly `±HH:MM`, so its sign sits six from the end.\n const at = len - 6;\n if (at < 8) return false;\n const sign = value.charCodeAt(at);\n if (sign !== 43 && sign !== 45) return false;\n if (value.charCodeAt(at + 3) !== 58) return false;\n const offsetHours = twoDigitsVal(value, at + 1);\n const offsetMins = twoDigitsVal(value, at + 4);\n if (offsetHours < 0 || offsetHours > 23 || offsetMins < 0 || offsetMins > 59) return false;\n offsetMinutes = (offsetHours * 60 + offsetMins) * (sign === 45 ? -1 : 1);\n timeEnd = at;\n }\n // The time half: `HH:MM:SS` at 0-8, then an optional `.` + digit fraction.\n if (timeEnd < 8) return false;\n if (value.charCodeAt(2) !== 58 || value.charCodeAt(5) !== 58) return false;\n const hours = twoDigitsVal(value, 0);\n const mins = twoDigitsVal(value, 3);\n const secs = twoDigitsVal(value, 6);\n if (hours < 0 || hours > 23 || mins < 0 || mins > 59 || secs < 0 || secs > 60) return false;\n if (timeEnd > 8) {\n if (value.charCodeAt(8) !== 46 || timeEnd === 9) return false;\n for (let i = 9; i < timeEnd; i++) {\n const code = value.charCodeAt(i);\n if (code < 48 || code > 57) return false;\n }\n }\n if (secs !== 60) return true;\n const utcMinutes = (hours * 60 + mins - offsetMinutes + MINUTES_PER_DAY * 2) % MINUTES_PER_DAY;\n return utcMinutes === 23 * 60 + 59;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FrXVwGkGDX08BsQ=[2,,,'@mionjs/run-types#pf_rXVwGkGDX08BsQ',[],'return function _err(\n pλth,\n εrr,\n expected,\n accessPath\n ) {\n const path = accessPath?.length ? [...pλth, ...accessPath] : [...pλth];\n const runTypeErr = {expected, path};\n εrr.push(runTypeErr);\n };',[]];
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F5oCqd7YyfA9rEw} from './5oCqd7YyfA9rEw.js';
|
|
2
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FE29ul2pUOyD_Ay} from './E29ul2pUOyD_Ay.js';
|
|
3
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FGA20s6bj41GC1A} from './GA20s6bj41GC1A.js';
|
|
4
|
-
import {__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FvLId7t0J8HNWlN} from './vLId7t0J8HNWlN.js';
|
|
5
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FrgWveqNi_HeFF8=[2,()=>[__rt_pf$2F$40mionjs$2Frun$2Dtypes$2F5oCqd7YyfA9rEw,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FE29ul2pUOyD_Ay,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FGA20s6bj41GC1A,__rt_pf$2F$40mionjs$2Frun$2Dtypes$2FvLId7t0J8HNWlN],,'@mionjs/run-types#pf_rgWveqNi_HeFF8',['utl'],'const punycodeDecodeFn = utl.getPureFn(\'@mionjs/run-types#pf_GA20s6bj41GC1A\');\n const punycodeEncodeFn = utl.getPureFn(\'@mionjs/run-types#pf_5oCqd7YyfA9rEw\');\n const isIdnaLabelFn = utl.getPureFn(\'@mionjs/run-types#pf_E29ul2pUOyD_Ay\');\n const satisfiesBidiFn = utl.getPureFn(\'@mionjs/run-types#pf_vLId7t0J8HNWlN\');\n // The wide stops are label separators for an internationalized name only.\n const idnSeparatorRegexp = /[.。.。]/;\n const asciiSeparatorRegexp = /[.]/;\n const asciiLabelRegexp = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/;\n // Matched positively rather than as a negated ASCII range: naming the control characters trips\n // oxlint no-control-regex, and "is there a character above ASCII" says the same thing.\n const nonAsciiRegexp = /[\\u0080-\\u{10FFFF}]/u;\n // Returns the FAILURE MODE rather than a boolean: \'\' when the name is good, \'length\' (whole name or\n // one label too long, or empty), \'label\' (a label breaks the host-name rules), \'punycode\' (an `xn--`\n // label does not decode, or is not the canonical spelling of what it decodes to) or \'bidi\' (the\n // right-to-left rule across the whole name). That feeds the `errorType` of the emitted format error;\n // validate compares against \'\' and pays nothing for it.\n return function _is_idn_hostname(value, params) {\n if (value === \'\' || value.length > 253) return \'length\';\n const labels = value.split(params.idn ? idnSeparatorRegexp : asciiSeparatorRegexp);\n const decoded = [];\n for (const label of labels) {\n if (label === \'\') return \'label\';\n if (label.length > 3 && label.slice(0, 4).toLowerCase() === \'xn--\') {\n if (label.length > 63) return \'length\';\n const payload = punycodeDecodeFn(label.slice(4));\n // An A-label must decode, must not decode to something already ASCII,\n // must be the canonical encoding of what it decodes to, and what it\n // decodes to must itself be a valid label.\n if (payload === false || payload === \'\') return \'punycode\';\n if (!nonAsciiRegexp.test(payload)) return \'punycode\';\n if (punycodeEncodeFn(payload) !== label.slice(4).toLowerCase()) return \'punycode\';\n if (!isIdnaLabelFn(payload)) return \'label\';\n decoded.push(payload);\n continue;\n }\n if (asciiLabelRegexp.test(label)) {\n decoded.push(label);\n continue;\n }\n if (!params.idn) return \'label\';\n if (!isIdnaLabelFn(label)) return \'label\';\n // The 63-octet limit applies to the ENCODED form, so encode to measure.\n const encoded = punycodeEncodeFn(label);\n if (encoded === false) return \'label\';\n if (encoded.length + 4 > 63) return \'length\';\n decoded.push(label);\n }\n return satisfiesBidiFn(decoded) ? \'\' : \'bidi\';\n };',['@mionjs/run-types#pf_5oCqd7YyfA9rEw','@mionjs/run-types#pf_E29ul2pUOyD_Ay','@mionjs/run-types#pf_GA20s6bj41GC1A','@mionjs/run-types#pf_vLId7t0J8HNWlN']];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2Fs$2DtZDRlQfCG5m2=[2,,,'@mionjs/run-types#pf_s-tZDRlQfCG5m2',[],'// Parses the ISO-8601 duration tail into years, months, weeks, days, hours, minutes and seconds.\n function parseDuration(tail) {\n const out = {years: 0, months: 0, weeks: 0, days: 0, hours: 0, minutes: 0, seconds: 0};\n const body = tail.substring(1); // drop leading \'P\'\n const tIdx = body.indexOf(\'T\');\n const datePart = tIdx === -1 ? body : body.substring(0, tIdx);\n const timePart = tIdx === -1 ? \'\' : body.substring(tIdx + 1);\n const eat = (segment, map) => {\n const re = /(\\d+)([A-Z])/g;\n let m;\n while ((m = re.exec(segment)) !== null) {\n const key = map[m[2]];\n if (key) out[key] = Number(m[1]);\n }\n };\n eat(datePart, {Y: \'years\', M: \'months\', W: \'weeks\', D: \'days\'});\n eat(timePart, {H: \'hours\', M: \'minutes\', S: \'seconds\'});\n return out;\n }\n return function _relative_now_key(spec, scale) {\n const now = new Date();\n if (scale === \'timeOfDay\') {\n let ms = now.getUTCHours() * 3600000 + now.getUTCMinutes() * 60000 + now.getUTCSeconds() * 1000 + now.getUTCMilliseconds();\n if (spec !== \'now\') {\n const sign = spec[3] === \'-\' ? -1 : 1;\n const d = parseDuration(spec.substring(4));\n ms += sign * (d.hours * 3600000 + d.minutes * 60000 + d.seconds * 1000);\n }\n return ms;\n }\n const result = new Date(now.getTime());\n if (spec !== \'now\') {\n const sign = spec[3] === \'-\' ? -1 : 1;\n const d = parseDuration(spec.substring(4));\n // Calendar-correct: Y/M via setUTCMonth (handles month length), then W/D and time as fixed offsets.\n result.setUTCFullYear(result.getUTCFullYear() + sign * d.years);\n result.setUTCMonth(result.getUTCMonth() + sign * d.months);\n result.setUTCDate(result.getUTCDate() + sign * (d.weeks * 7 + d.days));\n result.setTime(result.getTime() + sign * (d.hours * 3600000 + d.minutes * 60000 + d.seconds * 1000));\n }\n if (scale === \'epochDate\') {\n // Floor to UTC midnight, the scale dateStrToMs uses (it builds dates at 00:00:00Z).\n return Date.UTC(result.getUTCFullYear(), result.getUTCMonth(), result.getUTCDate(), 0, 0, 0, 0);\n }\n return result.getTime();\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2Ft$2DntJ9S0FuxkC2=[2,,,'@mionjs/run-types#pf_t-ntJ9S0FuxkC2',[],'return function _time_to_ms(value, layout) {\n let body = value;\n if (layout === \'ISO\' || layout === \'HH:mm:ss[.mmm]TZ\') {\n if (body.endsWith(\'Z\') || body.endsWith(\'z\')) {\n body = body.substring(0, body.length - 1);\n } else {\n const plus = body.indexOf(\'+\');\n const minus = body.lastIndexOf(\'-\');\n const cut = plus !== -1 ? plus : minus;\n if (cut > 0) body = body.substring(0, cut);\n }\n }\n let hours = 0;\n let mins = 0;\n let secMs = 0;\n if (layout === \'HH\') return Number(body) * 3600000;\n if (layout === \'mm\') return Number(body) * 60000;\n if (layout === \'ss\') return Number(body) * 1000;\n const parts = body.split(\':\');\n if (layout === \'HH:mm\') {\n hours = Number(parts[0]);\n mins = Number(parts[1]);\n } else if (layout === \'mm:ss\') {\n mins = Number(parts[0]);\n secMs = Number(parts[1]) * 1000;\n } else {\n // A dateTime bound parses its time half as \'ISO\' regardless of the declared nested layout, so\n // the value may legitimately carry fewer segments (an \'HH:mm\' nested time → \'14:30\'). The\n // structural check already validated it, so a tolerant key is enough: absent segments are 0.\n hours = Number(parts[0]);\n mins = parts[1] ? Number(parts[1]) : 0;\n if (parts[2]) {\n const secParts = parts[2].split(\'.\');\n secMs = Number(secParts[0]) * 1000 + (secParts[1] ? Number(secParts[1]) : 0);\n }\n }\n return hours * 3600000 + mins * 60000 + secMs;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FtfRjnFZVF8lqI_=[2,,,'@mionjs/run-types#pf_tfRjnFZVF8lqI_',[],'return function _hasUnknownKeysFromArray(obj, keys) {\n for (const prop in obj) {\n let found = false;\n for (let j = 0; j < keys.length; j++) {\n if (keys[j] === prop) {\n found = true;\n break;\n }\n }\n if (!found) return true;\n }\n return false;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FvLId7t0J8HNWlN=[2,,,'@mionjs/run-types#pf_vLId7t0J8HNWlN',[],'const rtlRegexp =\n /[\\p{Script=Hebrew}\\p{Script=Arabic}\\p{Script=Syriac}\\p{Script=Thaana}\\p{Script=Nko}\\p{Script=Samaritan}\\p{Script=Mandaic}\\p{Script=Adlam}]/u;\n const letterRegexp = /\\p{L}/u;\n const arabicNumberRegexp = /[٠-٩٫٬]/u;\n const europeanNumberRegexp = /[0-9۰-۹]/u;\n return function _satisfies_bidi(labels) {\n // A right-to-left LETTER is what makes the whole name a Bidi domain; a\n // digit or sign that merely lives in an RTL script does not.\n const isRtlLetter = (char) => rtlRegexp.test(char) && letterRegexp.test(char);\n if (!labels.some((label) => [...label].some(isRtlLetter))) return true;\n for (const label of labels) {\n const chars = [...label];\n if (!letterRegexp.test(chars[0])) return false;\n if (isRtlLetter(chars[0])) {\n // An RTL label may carry European OR Arabic-Indic digits, never both.\n if (arabicNumberRegexp.test(label) && europeanNumberRegexp.test(label)) return false;\n } else if (chars.some(isRtlLetter)) {\n return false;\n }\n }\n return true;\n };',[]];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const __rt_pf$2F$40mionjs$2Frun$2Dtypes$2FzXMPEMyjGR4ZRc=[2,,,'@mionjs/run-types#pf_zXMPEMyjGR4ZRc',[],'// The `nav` / `dfs` closures are created ONCE at materialisation, but ALL mutable state rides the per-call `st`, so\n // invocations are fully isolated and the walked graph is GC-able the moment findCycle returns.\n\n // Follow one edge path from `val`, branching at iteration segments, then descend into the reached value as tracked node `toNode`.\n const nav = (val, segs, si, toNode, st) => {\n if (si === segs.length) return dfs(val, toNode, st);\n const seg = segs[si];\n const kind = seg[0];\n if (kind === \'k\') {\n const child = val === null || typeof val !== \'object\' ? undefined : (val)[seg[1]];\n if (child === undefined || child === null) return false;\n st.path.push(seg[1]);\n const hit = nav(child, segs, si + 1, toNode, st);\n if (hit) return true;\n st.path.pop();\n return false;\n }\n if (kind === \'a\') {\n if (!Array.isArray(val)) return false;\n for (let i = 0; i < val.length; i++) {\n const el = val[i];\n if (el === undefined || el === null) continue;\n st.path.push(i);\n if (nav(el, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n return false;\n }\n if (kind === \'i\') {\n if (val === null || typeof val !== \'object\') return false;\n for (const key of Object.keys(val)) {\n const pv = (val)[key];\n if (pv === undefined || pv === null) continue;\n st.path.push(key);\n if (nav(pv, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n return false;\n }\n if (kind === \'s\') {\n if (!(val instanceof Set)) return false;\n let index = 0;\n for (const el of val) {\n if (el !== undefined && el !== null) {\n st.path.push(index);\n if (nav(el, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n index++;\n }\n return false;\n }\n if (kind === \'mk\' || kind === \'mv\') {\n if (!(val instanceof Map)) return false;\n let index = 0;\n for (const entry of val) {\n const member = kind === \'mk\' ? entry[0] : entry[1];\n if (member !== undefined && member !== null) {\n st.path.push((kind === \'mk\' ? \'mapKey[\' : \'mapValue[\') + index + \']\');\n if (nav(member, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n index++;\n }\n return false;\n }\n return false;\n };\n\n // Non-tracked nodes (the root, when its own type isn\'t circular) are traversed without stacking.\n const dfs = (val, node, st) => {\n if (val === null || typeof val !== \'object\') return false;\n // Sound to skip: a cycle THROUGH `val` is caught during `val`\'s own descent, so an acyclic subtree is path-independent.\n const known = st.safe[node];\n if (known !== undefined && known.has(val)) return false;\n const isTracked = !!st.c[node];\n if (isTracked) {\n if (st.stack.indexOf(val) !== -1) return true;\n st.stack.push(val);\n }\n const outgoing = st.e[node];\n for (let i = 0; i < outgoing.length; i++) {\n if (nav(val, outgoing[i].p, 0, outgoing[i].t, st)) return true;\n }\n // LIFO: this frame pushed `val` on entry, so pop removes exactly it.\n if (isTracked) st.stack.pop();\n // Clean subtree → memoize so a shared / DAG re-arrival skips it.\n let bucket = st.safe[node];\n if (bucket === undefined) {\n bucket = new Set();\n st.safe[node] = bucket;\n }\n bucket.add(val);\n return false;\n };\n\n return function findCycle(value, skeleton) {\n if (value === null || typeof value !== \'object\' || !skeleton) return null;\n const st = {c: skeleton.c, e: skeleton.e, stack: [], path: [], safe: []};\n return dfs(value, 0, st) ? st.path.slice() : null;\n };',[]];
|