@warp-drive/legacy 5.9.0-alpha.21 → 5.9.0-alpha.22
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/dist/-private-DQ6Iap2t.js +193 -0
- package/dist/-private-DQ6Iap2t.js.map +1 -0
- package/dist/-private-DccRZQsm.js +904 -0
- package/dist/-private-DccRZQsm.js.map +1 -0
- package/dist/adapter/-private.d.ts +33 -0
- package/dist/adapter/-private.d.ts.map +1 -0
- package/dist/adapter/-private.js +3 -1
- package/dist/adapter/error.d.ts +2 -0
- package/dist/adapter/error.js +422 -453
- package/dist/adapter/error.js.map +1 -0
- package/{declarations → dist}/adapter/json-api.d.ts +30 -29
- package/dist/adapter/json-api.d.ts.map +1 -0
- package/dist/adapter/json-api.js +265 -143
- package/dist/adapter/json-api.js.map +1 -0
- package/dist/adapter/rest.d.ts +2 -0
- package/dist/adapter/rest.js +937 -1136
- package/dist/adapter/rest.js.map +1 -0
- package/dist/adapter-CARrK3-8.d.ts +784 -0
- package/dist/adapter-CARrK3-8.d.ts.map +1 -0
- package/dist/adapter-XgLAkYVs.js +1130 -0
- package/dist/adapter-XgLAkYVs.js.map +1 -0
- package/dist/adapter.d.ts +2 -0
- package/dist/adapter.js +1 -1248
- package/dist/compat/-private.d.ts +2 -0
- package/dist/compat/-private.js +3 -1
- package/dist/compat/builders.d.ts +169 -0
- package/dist/compat/builders.d.ts.map +1 -0
- package/dist/compat/builders.js +205 -245
- package/dist/compat/builders.js.map +1 -0
- package/dist/compat/extensions.d.ts +2 -0
- package/dist/compat/extensions.js +265 -304
- package/dist/compat/extensions.js.map +1 -0
- package/dist/compat/utils.d.ts +151 -0
- package/dist/compat/utils.d.ts.map +1 -0
- package/dist/compat/utils.js +187 -206
- package/dist/compat/utils.js.map +1 -0
- package/dist/compat-BbNNmTM-.d.ts +1386 -0
- package/dist/compat-BbNNmTM-.d.ts.map +1 -0
- package/dist/compat-g__Pfy2S.js +734 -0
- package/dist/compat-g__Pfy2S.js.map +1 -0
- package/dist/compat.d.ts +2 -0
- package/dist/compat.js +1 -1036
- package/dist/error-CzkyXr1Q.d.ts +435 -0
- package/dist/error-CzkyXr1Q.d.ts.map +1 -0
- package/dist/errors-LQhmDVdd.js +2134 -0
- package/dist/errors-LQhmDVdd.js.map +1 -0
- package/dist/extensions-DumNm4dA.d.ts +102 -0
- package/dist/extensions-DumNm4dA.d.ts.map +1 -0
- package/dist/index.d.ts +243 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +267 -339
- package/dist/index.js.map +1 -0
- package/dist/json-BXNPTlcH.js +1106 -0
- package/dist/json-BXNPTlcH.js.map +1 -0
- package/dist/model/-private.d.ts +3 -0
- package/dist/model/-private.js +3 -1
- package/dist/model/migration-support.d.ts +335 -0
- package/dist/model/migration-support.d.ts.map +1 -0
- package/dist/model/migration-support.js +504 -575
- package/dist/model/migration-support.js.map +1 -0
- package/dist/model-62hn5_PD.d.ts +3107 -0
- package/dist/model-62hn5_PD.d.ts.map +1 -0
- package/dist/model-BtIEHqYZ.js +683 -0
- package/dist/model-BtIEHqYZ.js.map +1 -0
- package/dist/model-fragments-Dpn9285r.js +334 -0
- package/dist/model-fragments-Dpn9285r.js.map +1 -0
- package/dist/model-fragments.d.ts +294 -0
- package/dist/model-fragments.d.ts.map +1 -0
- package/dist/model-fragments.js +2 -94
- package/dist/model.d.ts +404 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +3 -670
- package/{declarations/adapter/rest.d.ts → dist/rest-0NhtexIq.d.ts} +183 -173
- package/dist/rest-0NhtexIq.d.ts.map +1 -0
- package/dist/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
- package/dist/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
- package/dist/schema-provider-DsKuB5Wb.js +1929 -0
- package/dist/schema-provider-DsKuB5Wb.js.map +1 -0
- package/{declarations → dist}/serializer/json-api.d.ts +3 -0
- package/dist/serializer/json-api.d.ts.map +1 -0
- package/dist/serializer/json-api.js +527 -519
- package/dist/serializer/json-api.js.map +1 -0
- package/{declarations → dist}/serializer/json.d.ts +3 -0
- package/dist/serializer/json.d.ts.map +1 -0
- package/dist/serializer/json.js +3 -6
- package/{declarations/serializer/-private/embedded-records-mixin.d.ts → dist/serializer/rest.d.ts} +56 -1
- package/dist/serializer/rest.d.ts.map +1 -0
- package/dist/serializer/rest.js +958 -1199
- package/dist/serializer/rest.js.map +1 -0
- package/dist/serializer/transform.d.ts +313 -0
- package/dist/serializer/transform.d.ts.map +1 -0
- package/dist/serializer/transform.js +283 -308
- package/dist/serializer/transform.js.map +1 -0
- package/dist/serializer.d.ts +151 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/serializer.js +205 -205
- package/dist/serializer.js.map +1 -0
- package/dist/store-C4qYzXei.js +473 -0
- package/dist/store-C4qYzXei.js.map +1 -0
- package/dist/store.d.ts +13 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +1 -641
- package/dist/unpkg/dev/-private-CrEyBE-B.js +189 -0
- package/dist/unpkg/dev/-private-CrEyBE-B.js.map +1 -0
- package/dist/unpkg/dev/-private-vOhxVExH.js +896 -0
- package/dist/unpkg/dev/-private-vOhxVExH.js.map +1 -0
- package/dist/unpkg/dev/adapter/-private.js +3 -1
- package/dist/unpkg/dev/adapter/error.js +421 -452
- package/dist/unpkg/dev/adapter/error.js.map +1 -0
- package/dist/unpkg/dev/adapter/json-api.js +239 -257
- package/dist/unpkg/dev/adapter/json-api.js.map +1 -0
- package/dist/unpkg/dev/adapter/rest.js +935 -1134
- package/dist/unpkg/dev/adapter/rest.js.map +1 -0
- package/dist/unpkg/dev/adapter-Cw0uSl8d.js +1129 -0
- package/dist/unpkg/dev/adapter-Cw0uSl8d.js.map +1 -0
- package/dist/unpkg/dev/adapter.js +1 -1247
- package/dist/unpkg/dev/compat/-private.js +3 -1
- package/dist/unpkg/dev/compat/builders.js +204 -247
- package/dist/unpkg/dev/compat/builders.js.map +1 -0
- package/dist/unpkg/dev/compat/extensions.js +264 -303
- package/dist/unpkg/dev/compat/extensions.js.map +1 -0
- package/dist/unpkg/dev/compat/utils.js +186 -205
- package/dist/unpkg/dev/compat/utils.js.map +1 -0
- package/dist/unpkg/dev/compat-CeyxXB7K.js +825 -0
- package/dist/unpkg/dev/compat-CeyxXB7K.js.map +1 -0
- package/dist/unpkg/dev/compat.js +1 -1178
- package/dist/unpkg/dev/errors-1javxsPo.js +2127 -0
- package/dist/unpkg/dev/errors-1javxsPo.js.map +1 -0
- package/dist/unpkg/dev/index.js +266 -344
- package/dist/unpkg/dev/index.js.map +1 -0
- package/dist/unpkg/dev/json-DDJji3V3.js +1104 -0
- package/dist/unpkg/dev/json-DDJji3V3.js.map +1 -0
- package/dist/unpkg/dev/model/-private.js +3 -1
- package/dist/unpkg/dev/model/migration-support.js +481 -549
- package/dist/unpkg/dev/model/migration-support.js.map +1 -0
- package/dist/unpkg/dev/model-C9Xb1R1x.js +655 -0
- package/dist/unpkg/dev/model-C9Xb1R1x.js.map +1 -0
- package/dist/unpkg/dev/model-fragments-Dpn9285r.js +334 -0
- package/dist/unpkg/dev/model-fragments-Dpn9285r.js.map +1 -0
- package/dist/unpkg/dev/model-fragments.js +2 -94
- package/dist/unpkg/dev/model.js +3 -681
- package/dist/unpkg/dev/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
- package/dist/unpkg/dev/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
- package/dist/unpkg/dev/schema-provider-Dy6c1J5f.js +1834 -0
- package/dist/unpkg/dev/schema-provider-Dy6c1J5f.js.map +1 -0
- package/dist/unpkg/dev/serializer/json-api.js +514 -634
- package/dist/unpkg/dev/serializer/json-api.js.map +1 -0
- package/dist/unpkg/dev/serializer/json.js +3 -4
- package/dist/unpkg/dev/serializer/rest.js +954 -1196
- package/dist/unpkg/dev/serializer/rest.js.map +1 -0
- package/dist/unpkg/dev/serializer/transform.js +283 -308
- package/dist/unpkg/dev/serializer/transform.js.map +1 -0
- package/dist/unpkg/dev/serializer.js +205 -205
- package/dist/unpkg/dev/serializer.js.map +1 -0
- package/dist/unpkg/dev/store-D_V8-HQl.js +472 -0
- package/dist/unpkg/dev/store-D_V8-HQl.js.map +1 -0
- package/dist/unpkg/dev/store.js +1 -649
- package/dist/unpkg/dev/util-dSKEgQDp.js +12 -0
- package/dist/unpkg/dev/util-dSKEgQDp.js.map +1 -0
- package/dist/unpkg/dev/utils-DYC9utVJ.js +11 -0
- package/dist/unpkg/dev/utils-DYC9utVJ.js.map +1 -0
- package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js +189 -0
- package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js.map +1 -0
- package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js +896 -0
- package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js.map +1 -0
- package/dist/unpkg/dev-deprecated/adapter/-private.js +3 -1
- package/dist/unpkg/dev-deprecated/adapter/error.js +421 -452
- package/dist/unpkg/dev-deprecated/adapter/error.js.map +1 -0
- package/dist/unpkg/dev-deprecated/adapter/json-api.js +239 -257
- package/dist/unpkg/dev-deprecated/adapter/json-api.js.map +1 -0
- package/dist/unpkg/dev-deprecated/adapter/rest.js +935 -1134
- package/dist/unpkg/dev-deprecated/adapter/rest.js.map +1 -0
- package/dist/unpkg/dev-deprecated/adapter-Cw0uSl8d.js +1129 -0
- package/dist/unpkg/dev-deprecated/adapter-Cw0uSl8d.js.map +1 -0
- package/dist/unpkg/dev-deprecated/adapter.js +1 -1247
- package/dist/unpkg/dev-deprecated/compat/-private.js +3 -1
- package/dist/unpkg/dev-deprecated/compat/builders.js +204 -247
- package/dist/unpkg/dev-deprecated/compat/builders.js.map +1 -0
- package/dist/unpkg/dev-deprecated/compat/extensions.js +264 -303
- package/dist/unpkg/dev-deprecated/compat/extensions.js.map +1 -0
- package/dist/unpkg/dev-deprecated/compat/utils.js +186 -205
- package/dist/unpkg/dev-deprecated/compat/utils.js.map +1 -0
- package/dist/unpkg/dev-deprecated/compat-DmAgB2NS.js +825 -0
- package/dist/unpkg/dev-deprecated/compat-DmAgB2NS.js.map +1 -0
- package/dist/unpkg/dev-deprecated/compat.js +1 -1178
- package/dist/unpkg/dev-deprecated/errors-C4_aOhY5.js +2128 -0
- package/dist/unpkg/dev-deprecated/errors-C4_aOhY5.js.map +1 -0
- package/dist/unpkg/dev-deprecated/index.js +266 -343
- package/dist/unpkg/dev-deprecated/index.js.map +1 -0
- package/dist/unpkg/dev-deprecated/json-DDJji3V3.js +1104 -0
- package/dist/unpkg/dev-deprecated/json-DDJji3V3.js.map +1 -0
- package/dist/unpkg/dev-deprecated/model/-private.js +3 -1
- package/dist/unpkg/dev-deprecated/model/migration-support.js +492 -566
- package/dist/unpkg/dev-deprecated/model/migration-support.js.map +1 -0
- package/dist/unpkg/dev-deprecated/model-CvSMYkgs.js +660 -0
- package/dist/unpkg/dev-deprecated/model-CvSMYkgs.js.map +1 -0
- package/dist/unpkg/dev-deprecated/model-fragments-Dpn9285r.js +334 -0
- package/dist/unpkg/dev-deprecated/model-fragments-Dpn9285r.js.map +1 -0
- package/dist/unpkg/dev-deprecated/model-fragments.js +2 -94
- package/dist/unpkg/dev-deprecated/model.js +3 -685
- package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
- package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
- package/dist/unpkg/dev-deprecated/schema-provider-Cqttza94.js +1835 -0
- package/dist/unpkg/dev-deprecated/schema-provider-Cqttza94.js.map +1 -0
- package/dist/unpkg/dev-deprecated/serializer/json-api.js +514 -634
- package/dist/unpkg/dev-deprecated/serializer/json-api.js.map +1 -0
- package/dist/unpkg/dev-deprecated/serializer/json.js +3 -4
- package/dist/unpkg/dev-deprecated/serializer/rest.js +954 -1196
- package/dist/unpkg/dev-deprecated/serializer/rest.js.map +1 -0
- package/dist/unpkg/dev-deprecated/serializer/transform.js +283 -308
- package/dist/unpkg/dev-deprecated/serializer/transform.js.map +1 -0
- package/dist/unpkg/dev-deprecated/serializer.js +205 -205
- package/dist/unpkg/dev-deprecated/serializer.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js +472 -0
- package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store.js +1 -649
- package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js +18 -0
- package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js.map +1 -0
- package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js +17 -0
- package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js.map +1 -0
- package/dist/unpkg/prod/-private-B4bxoTuK.js +160 -0
- package/dist/unpkg/prod/-private-B4bxoTuK.js.map +1 -0
- package/dist/unpkg/prod/-private-SfXkkHKd.js +745 -0
- package/dist/unpkg/prod/-private-SfXkkHKd.js.map +1 -0
- package/dist/unpkg/prod/adapter/-private.js +3 -1
- package/dist/unpkg/prod/adapter/error.js +418 -447
- package/dist/unpkg/prod/adapter/error.js.map +1 -0
- package/dist/unpkg/prod/adapter/json-api.js +236 -252
- package/dist/unpkg/prod/adapter/json-api.js.map +1 -0
- package/dist/unpkg/prod/adapter/rest.js +911 -1097
- package/dist/unpkg/prod/adapter/rest.js.map +1 -0
- package/dist/unpkg/prod/adapter-Wnk7jizX.js +1111 -0
- package/dist/unpkg/prod/adapter-Wnk7jizX.js.map +1 -0
- package/dist/unpkg/prod/adapter.js +1 -1214
- package/dist/unpkg/prod/compat/-private.js +3 -1
- package/dist/unpkg/prod/compat/builders.js +165 -182
- package/dist/unpkg/prod/compat/builders.js.map +1 -0
- package/dist/unpkg/prod/compat/extensions.js +252 -283
- package/dist/unpkg/prod/compat/extensions.js.map +1 -0
- package/dist/unpkg/prod/compat/utils.js +183 -200
- package/dist/unpkg/prod/compat/utils.js.map +1 -0
- package/dist/unpkg/prod/compat-CJ87MzDn.js +547 -0
- package/dist/unpkg/prod/compat-CJ87MzDn.js.map +1 -0
- package/dist/unpkg/prod/compat.js +1 -742
- package/dist/unpkg/prod/errors-Co7YWHoA.js +1977 -0
- package/dist/unpkg/prod/errors-Co7YWHoA.js.map +1 -0
- package/dist/unpkg/prod/index.js +245 -308
- package/dist/unpkg/prod/index.js.map +1 -0
- package/dist/unpkg/prod/json-BD1kRTfB.js +1080 -0
- package/dist/unpkg/prod/json-BD1kRTfB.js.map +1 -0
- package/dist/unpkg/prod/model/-private.js +3 -1
- package/dist/unpkg/prod/model/migration-support.js +477 -542
- package/dist/unpkg/prod/model/migration-support.js.map +1 -0
- package/dist/unpkg/prod/model-BzoOmtka.js +603 -0
- package/dist/unpkg/prod/model-BzoOmtka.js.map +1 -0
- package/dist/unpkg/prod/model-fragments-Dpn9285r.js +334 -0
- package/dist/unpkg/prod/model-fragments-Dpn9285r.js.map +1 -0
- package/dist/unpkg/prod/model-fragments.js +2 -94
- package/dist/unpkg/prod/model.js +3 -596
- package/dist/unpkg/prod/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
- package/dist/unpkg/prod/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
- package/dist/unpkg/prod/schema-provider-CKZcqWyP.js +1622 -0
- package/dist/unpkg/prod/schema-provider-CKZcqWyP.js.map +1 -0
- package/dist/unpkg/prod/serializer/json-api.js +497 -592
- package/dist/unpkg/prod/serializer/json-api.js.map +1 -0
- package/dist/unpkg/prod/serializer/json.js +3 -4
- package/dist/unpkg/prod/serializer/rest.js +938 -1166
- package/dist/unpkg/prod/serializer/rest.js.map +1 -0
- package/dist/unpkg/prod/serializer/transform.js +283 -308
- package/dist/unpkg/prod/serializer/transform.js.map +1 -0
- package/dist/unpkg/prod/serializer.js +205 -205
- package/dist/unpkg/prod/serializer.js.map +1 -0
- package/dist/unpkg/prod/store-RGGc1ilN.js +392 -0
- package/dist/unpkg/prod/store-RGGc1ilN.js.map +1 -0
- package/dist/unpkg/prod/store.js +1 -517
- package/dist/unpkg/prod/util-dSKEgQDp.js +12 -0
- package/dist/unpkg/prod/util-dSKEgQDp.js.map +1 -0
- package/dist/unpkg/prod/utils-DYC9utVJ.js +11 -0
- package/dist/unpkg/prod/utils-DYC9utVJ.js.map +1 -0
- package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js +160 -0
- package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js.map +1 -0
- package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js +745 -0
- package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js.map +1 -0
- package/dist/unpkg/prod-deprecated/adapter/-private.js +3 -1
- package/dist/unpkg/prod-deprecated/adapter/error.js +418 -447
- package/dist/unpkg/prod-deprecated/adapter/error.js.map +1 -0
- package/dist/unpkg/prod-deprecated/adapter/json-api.js +236 -252
- package/dist/unpkg/prod-deprecated/adapter/json-api.js.map +1 -0
- package/dist/unpkg/prod-deprecated/adapter/rest.js +911 -1097
- package/dist/unpkg/prod-deprecated/adapter/rest.js.map +1 -0
- package/{declarations/adapter.d.ts → dist/unpkg/prod-deprecated/adapter-Wnk7jizX.js} +445 -110
- package/dist/unpkg/prod-deprecated/adapter-Wnk7jizX.js.map +1 -0
- package/dist/unpkg/prod-deprecated/adapter.js +1 -1214
- package/dist/unpkg/prod-deprecated/compat/-private.js +3 -1
- package/dist/unpkg/prod-deprecated/compat/builders.js +165 -182
- package/dist/unpkg/prod-deprecated/compat/builders.js.map +1 -0
- package/dist/unpkg/prod-deprecated/compat/extensions.js +252 -283
- package/dist/unpkg/prod-deprecated/compat/extensions.js.map +1 -0
- package/dist/unpkg/prod-deprecated/compat/utils.js +183 -200
- package/dist/unpkg/prod-deprecated/compat/utils.js.map +1 -0
- package/dist/unpkg/prod-deprecated/compat-CJ87MzDn.js +547 -0
- package/dist/unpkg/prod-deprecated/compat-CJ87MzDn.js.map +1 -0
- package/dist/unpkg/prod-deprecated/compat.js +1 -742
- package/dist/unpkg/prod-deprecated/errors-C-opde61.js +1978 -0
- package/dist/unpkg/prod-deprecated/errors-C-opde61.js.map +1 -0
- package/dist/unpkg/prod-deprecated/index.js +245 -307
- package/dist/unpkg/prod-deprecated/index.js.map +1 -0
- package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js +1080 -0
- package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js.map +1 -0
- package/dist/unpkg/prod-deprecated/model/-private.js +3 -1
- package/dist/unpkg/prod-deprecated/model/migration-support.js +488 -559
- package/dist/unpkg/prod-deprecated/model/migration-support.js.map +1 -0
- package/dist/unpkg/prod-deprecated/model-C0bTXzGn.js +604 -0
- package/dist/unpkg/prod-deprecated/model-C0bTXzGn.js.map +1 -0
- package/dist/unpkg/prod-deprecated/model-fragments-Dpn9285r.js +334 -0
- package/dist/unpkg/prod-deprecated/model-fragments-Dpn9285r.js.map +1 -0
- package/dist/unpkg/prod-deprecated/model-fragments.js +2 -94
- package/dist/unpkg/prod-deprecated/model.js +3 -599
- package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
- package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
- package/dist/unpkg/prod-deprecated/schema-provider-lH3qP5tw.js +1635 -0
- package/dist/unpkg/prod-deprecated/schema-provider-lH3qP5tw.js.map +1 -0
- package/dist/unpkg/prod-deprecated/serializer/json-api.js +497 -592
- package/dist/unpkg/prod-deprecated/serializer/json-api.js.map +1 -0
- package/dist/unpkg/prod-deprecated/serializer/json.js +3 -4
- package/dist/unpkg/prod-deprecated/serializer/rest.js +938 -1166
- package/dist/unpkg/prod-deprecated/serializer/rest.js.map +1 -0
- package/dist/unpkg/prod-deprecated/serializer/transform.js +283 -308
- package/dist/unpkg/prod-deprecated/serializer/transform.js.map +1 -0
- package/dist/unpkg/prod-deprecated/serializer.js +205 -205
- package/dist/unpkg/prod-deprecated/serializer.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js +392 -0
- package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store.js +1 -517
- package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js +14 -0
- package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js.map +1 -0
- package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js +13 -0
- package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js.map +1 -0
- package/dist/util-Bnx8nm-D.js +29 -0
- package/dist/util-Bnx8nm-D.js.map +1 -0
- package/dist/utils-ZAytYep8.js +28 -0
- package/dist/utils-ZAytYep8.js.map +1 -0
- package/package.json +13 -13
- package/declarations/adapter/-private/build-url-mixin.d.ts +0 -189
- package/declarations/adapter/-private/fastboot-interface.d.ts +0 -8
- package/declarations/adapter/-private/utils/continue-on-reject.d.ts +0 -1
- package/declarations/adapter/-private/utils/determine-body-promise.d.ts +0 -4
- package/declarations/adapter/-private/utils/fetch.d.ts +0 -8
- package/declarations/adapter/-private/utils/parse-response-headers.d.ts +0 -1
- package/declarations/adapter/-private/utils/serialize-into-hash.d.ts +0 -6
- package/declarations/adapter/-private/utils/serialize-query-params.d.ts +0 -5
- package/declarations/adapter/-private.d.ts +0 -5
- package/declarations/adapter/error.d.ts +0 -431
- package/declarations/compat/-private.d.ts +0 -13
- package/declarations/compat/builders/find-all.d.ts +0 -34
- package/declarations/compat/builders/find-record.d.ts +0 -56
- package/declarations/compat/builders/query.d.ts +0 -66
- package/declarations/compat/builders/save-record.d.ts +0 -34
- package/declarations/compat/builders/utils.d.ts +0 -3
- package/declarations/compat/builders.d.ts +0 -14
- package/declarations/compat/extensions.d.ts +0 -99
- package/declarations/compat/legacy-network-handler/fetch-manager.d.ts +0 -55
- package/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +0 -2
- package/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +0 -11
- package/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +0 -5
- package/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +0 -9
- package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +0 -528
- package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +0 -220
- package/declarations/compat/legacy-network-handler/serializer-response.d.ts +0 -6
- package/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +0 -110
- package/declarations/compat/legacy-network-handler/snapshot.d.ts +0 -255
- package/declarations/compat/utils.d.ts +0 -148
- package/declarations/compat.d.ts +0 -189
- package/declarations/index.d.ts +0 -244
- package/declarations/model/-private/attr.d.ts +0 -191
- package/declarations/model/-private/belongs-to.d.ts +0 -195
- package/declarations/model/-private/debug/assert-polymorphic-type.d.ts +0 -5
- package/declarations/model/-private/errors.d.ts +0 -289
- package/declarations/model/-private/has-many.d.ts +0 -162
- package/declarations/model/-private/hooks.d.ts +0 -36
- package/declarations/model/-private/legacy-relationships-support.d.ts +0 -47
- package/declarations/model/-private/model-for-mixin.d.ts +0 -3
- package/declarations/model/-private/model-methods.d.ts +0 -39
- package/declarations/model/-private/model.d.ts +0 -1279
- package/declarations/model/-private/notify-changes.d.ts +0 -4
- package/declarations/model/-private/promise-belongs-to.d.ts +0 -40
- package/declarations/model/-private/promise-many-array.d.ts +0 -130
- package/declarations/model/-private/record-state.d.ts +0 -58
- package/declarations/model/-private/references/belongs-to.d.ts +0 -488
- package/declarations/model/-private/references/has-many.d.ts +0 -498
- package/declarations/model/-private/schema-provider.d.ts +0 -66
- package/declarations/model/-private/type-utils.d.ts +0 -57
- package/declarations/model/-private/util.d.ts +0 -5
- package/declarations/model/-private.d.ts +0 -8
- package/declarations/model/migration-support.d.ts +0 -306
- package/declarations/model-fragments/extensions/fragment-array.d.ts +0 -54
- package/declarations/model-fragments/extensions/fragment.d.ts +0 -50
- package/declarations/model-fragments/hooks/model-for.d.ts +0 -27
- package/declarations/model-fragments/index.d.ts +0 -13
- package/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +0 -15
- package/declarations/model-fragments/utilities/with-array-defaults.d.ts +0 -56
- package/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +0 -38
- package/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +0 -34
- package/declarations/model-fragments/utilities/with-legacy.d.ts +0 -11
- package/declarations/model-fragments.d.ts +0 -9
- package/declarations/model.d.ts +0 -49
- package/declarations/serializer/-private/transforms/boolean.d.ts +0 -60
- package/declarations/serializer/-private/transforms/date.d.ts +0 -42
- package/declarations/serializer/-private/transforms/number.d.ts +0 -42
- package/declarations/serializer/-private/transforms/string.d.ts +0 -42
- package/declarations/serializer/-private/transforms/transform.d.ts +0 -118
- package/declarations/serializer/-private/utils.d.ts +0 -27
- package/declarations/serializer/rest.d.ts +0 -51
- package/declarations/serializer/transform.d.ts +0 -5
- package/declarations/serializer.d.ts +0 -252
- package/declarations/store/-private.d.ts +0 -223
- package/declarations/store.d.ts +0 -10
- package/dist/-private-BG3bMiKp.js +0 -1211
- package/dist/errors-DZKA206g.js +0 -2589
- package/dist/hooks-BvOqJBei.js +0 -105
- package/dist/json-DU8m1pGf.js +0 -1336
- package/dist/model-for-CXkJw59V.js +0 -297
- package/dist/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
- package/dist/schema-provider-DtPOp0d7.js +0 -2382
- package/dist/serialize-into-hash-DPZYoF-i.js +0 -261
- package/dist/unpkg/dev/-private-DtjBbEgy.js +0 -1206
- package/dist/unpkg/dev/errors-DngRU-If.js +0 -2585
- package/dist/unpkg/dev/hooks-UuiLxWxS.js +0 -104
- package/dist/unpkg/dev/json-K2Y9z6MN.js +0 -1333
- package/dist/unpkg/dev/model-for-CXkJw59V.js +0 -297
- package/dist/unpkg/dev/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
- package/dist/unpkg/dev/schema-provider-0D7f-QOn.js +0 -2272
- package/dist/unpkg/dev/serialize-into-hash-B2xDbuo5.js +0 -259
- package/dist/unpkg/dev/util-DvanW33H.js +0 -20
- package/dist/unpkg/dev/utils-BhvS1iTS.js +0 -8
- package/dist/unpkg/dev-deprecated/-private-DtjBbEgy.js +0 -1206
- package/dist/unpkg/dev-deprecated/errors-Bzidntpi.js +0 -2588
- package/dist/unpkg/dev-deprecated/hooks-DVXhMW14.js +0 -104
- package/dist/unpkg/dev-deprecated/json-K2Y9z6MN.js +0 -1333
- package/dist/unpkg/dev-deprecated/model-for-CXkJw59V.js +0 -297
- package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
- package/dist/unpkg/dev-deprecated/schema-provider-ZwO5_fZw.js +0 -2292
- package/dist/unpkg/dev-deprecated/serialize-into-hash-B2xDbuo5.js +0 -259
- package/dist/unpkg/dev-deprecated/util-CWr5WQOT.js +0 -24
- package/dist/unpkg/dev-deprecated/utils-C9PJehtL.js +0 -12
- package/dist/unpkg/prod/-private-BdyZaGEh.js +0 -971
- package/dist/unpkg/prod/errors-B-PWeYlW.js +0 -2337
- package/dist/unpkg/prod/hooks-Bx-zBziU.js +0 -72
- package/dist/unpkg/prod/json-Qewu-UN9.js +0 -1300
- package/dist/unpkg/prod/model-for-CXkJw59V.js +0 -297
- package/dist/unpkg/prod/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
- package/dist/unpkg/prod/schema-provider-BgRqk8i9.js +0 -1951
- package/dist/unpkg/prod/serialize-into-hash-DGlzQteF.js +0 -215
- package/dist/unpkg/prod/util-DvanW33H.js +0 -20
- package/dist/unpkg/prod/utils-BhvS1iTS.js +0 -8
- package/dist/unpkg/prod-deprecated/-private-BdyZaGEh.js +0 -971
- package/dist/unpkg/prod-deprecated/errors-Dl2J9d1D.js +0 -2340
- package/dist/unpkg/prod-deprecated/hooks-Cm60wWTf.js +0 -72
- package/dist/unpkg/prod-deprecated/json-Qewu-UN9.js +0 -1300
- package/dist/unpkg/prod-deprecated/model-for-CXkJw59V.js +0 -297
- package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
- package/dist/unpkg/prod-deprecated/schema-provider-Dh6tRqVI.js +0 -1980
- package/dist/unpkg/prod-deprecated/serialize-into-hash-DGlzQteF.js +0 -215
- package/dist/unpkg/prod-deprecated/util-B6cn-i93.js +0 -23
- package/dist/unpkg/prod-deprecated/utils-BUWwQwCh.js +0 -11
- package/dist/util-Dul6TZts.js +0 -35
- package/dist/utils-Cqw9eRj5.js +0 -23
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
//#region src/compat/utils.d.ts
|
|
2
|
+
type Reporter = (type: "formatted-id" | "formatted-type", actual: unknown, expected: unknown) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Configure a function to be called when an id or type
|
|
5
|
+
* changes during normalization. This is useful for instrumenting
|
|
6
|
+
* to discover places where usage in the app is not consistent.
|
|
7
|
+
*
|
|
8
|
+
* @param fn - a function which takes a mismatch-type ('formatted-id' | 'formatted-type'), actual, and expected value
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
declare function configureMismatchReporter(fn: Reporter): void;
|
|
12
|
+
/**
|
|
13
|
+
* Configure a function to be called when an id or type
|
|
14
|
+
* fails validation. This is useful for instrumenting
|
|
15
|
+
* to discover places where usage in the app is not consistent.
|
|
16
|
+
*
|
|
17
|
+
* @param fn - a function which takes a message and a condition
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
declare function configureAssertFn(fn: (message: string, condition: unknown) => void): void;
|
|
21
|
+
/**
|
|
22
|
+
* Configure a function to be called to normalize
|
|
23
|
+
* a resource type string. Used by both formattedType
|
|
24
|
+
* and isEquivType to ensure consistent normalization
|
|
25
|
+
* during comparison.
|
|
26
|
+
*
|
|
27
|
+
* If validation fails or the type turns out be unnormalized
|
|
28
|
+
* the configured mismatch reporter and assert functions will
|
|
29
|
+
* be called.
|
|
30
|
+
*
|
|
31
|
+
* @param fn - a function which takes a string and returns a string
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
declare function configureTypeNormalization(fn: (type: string) => string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Converts a potentially unnormalized type into the format expected
|
|
37
|
+
* by our WarpDrive Cache. Currently this is singular-dasherized.
|
|
38
|
+
*
|
|
39
|
+
* you should not rely on this function to give you an exact format
|
|
40
|
+
* for display purposes. Formatting for display should be handled
|
|
41
|
+
* differently if the exact format matters.
|
|
42
|
+
*
|
|
43
|
+
* Asserts invalid types (undefined, null, '') in dev.
|
|
44
|
+
*
|
|
45
|
+
* **Usage**
|
|
46
|
+
*
|
|
47
|
+
* ```js
|
|
48
|
+
* import formattedType from 'soxhub-client/helpers/formatted-type';
|
|
49
|
+
*
|
|
50
|
+
* formattedType('post'); // => 'post'
|
|
51
|
+
* formattedType('posts'); // => 'post'
|
|
52
|
+
* formattedType('Posts'); // => 'post'
|
|
53
|
+
* formattedType('post-comment'); // => 'post-comment'
|
|
54
|
+
* formattedType('post-comments'); // => 'post-comment'
|
|
55
|
+
* formattedType('post_comment'); // => 'post-comment'
|
|
56
|
+
* formattedType('postComment'); // => 'post-comment'
|
|
57
|
+
* formattedType('PostComment'); // => 'post-comment'
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @param type the potentially un-normalized type
|
|
61
|
+
* @return the normalized type
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
declare function formattedType<T extends string>(type: T | string): T;
|
|
65
|
+
/**
|
|
66
|
+
* Format an id to the format expected by the WarpDrive Cache.
|
|
67
|
+
* Currently this means that id should be `string | null`.
|
|
68
|
+
*
|
|
69
|
+
* Asserts invalid IDs (undefined, '', 0, '0') in dev.
|
|
70
|
+
*
|
|
71
|
+
* **Usage**
|
|
72
|
+
*
|
|
73
|
+
* ```js
|
|
74
|
+
* import formattedId from 'client/utils/formatted-id';
|
|
75
|
+
*
|
|
76
|
+
* formattedId('1'); // => '1'
|
|
77
|
+
* formattedId(1); // => '1'
|
|
78
|
+
* formattedId(null); // => null
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @param id the potentially un-normalized id
|
|
82
|
+
* @return the normalized id
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
declare function formattedId(id: string | number): string;
|
|
86
|
+
declare function formattedId(id: null): null;
|
|
87
|
+
declare function formattedId(id: string | number | null): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* Like {@link formattedId}, but asserts that `id` is not `null` rather
|
|
90
|
+
* than allowing and passing through `null`.
|
|
91
|
+
*
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
declare function expectId(id: string | number): string;
|
|
95
|
+
/**
|
|
96
|
+
* Throws, since `id` is `null`.
|
|
97
|
+
*
|
|
98
|
+
* @public
|
|
99
|
+
*/
|
|
100
|
+
declare function expectId(id: null): never;
|
|
101
|
+
/**
|
|
102
|
+
* Compares two types for strict equality, converting them to
|
|
103
|
+
* the format expected by the WarpDrive Cache to ensure
|
|
104
|
+
* differences in format are accounted for in the comparison.
|
|
105
|
+
*
|
|
106
|
+
* Asserts when expected or actual are invalid types in dev.
|
|
107
|
+
* Expected may never be null.
|
|
108
|
+
*
|
|
109
|
+
* ```js
|
|
110
|
+
* isEquivType('posts', 'post'); // true
|
|
111
|
+
* isEquivType('post', 'post'); // true
|
|
112
|
+
* isEquivType('posts', 'posts'); // true
|
|
113
|
+
* isEquivType('post-comment', 'postComment'); // true
|
|
114
|
+
* isEquivType('post-comment', 'PostComment'); // true
|
|
115
|
+
* isEquivType('post-comment', 'post_comment'); // true
|
|
116
|
+
* isEquivType('post-comment', 'post-comment'); // true
|
|
117
|
+
* isEquivType('post-comment', 'post'); // false
|
|
118
|
+
* isEquivType('posts', null); // false
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @param expected a potentially unnormalized type to match against
|
|
122
|
+
* @param actual a potentially unnormalized type to match against
|
|
123
|
+
* @return true if the types are equivalent
|
|
124
|
+
* @public
|
|
125
|
+
*/
|
|
126
|
+
declare function isEquivType(expected: string, actual: string): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Compares two IDs for strict equality, converting them to
|
|
129
|
+
* the format expected by the WarpDrive Cache to ensure
|
|
130
|
+
* differences in format are accounted for in the comparison.
|
|
131
|
+
*
|
|
132
|
+
* Asserts when expected or actual are invalid IDs in dev.
|
|
133
|
+
* Expected may never be null.
|
|
134
|
+
*
|
|
135
|
+
* ```js
|
|
136
|
+
* isEquivId('1', 1); // true
|
|
137
|
+
* isEquivId('2', '2'); // true
|
|
138
|
+
* isEquivId(3, '3'); // true
|
|
139
|
+
* isEquivId(4, '3'); // false
|
|
140
|
+
* isEquivId(1, null); // false
|
|
141
|
+
* ```
|
|
142
|
+
*
|
|
143
|
+
* @param expected a potentially un-normalized id to match against
|
|
144
|
+
* @param actual a potentially un-normalized id to match against
|
|
145
|
+
* @return true if the ids are equivalent
|
|
146
|
+
* @public
|
|
147
|
+
*/
|
|
148
|
+
declare function isEquivId(expected: string | number, actual: string | number | null): boolean;
|
|
149
|
+
//#endregion
|
|
150
|
+
export { configureAssertFn, configureMismatchReporter, configureTypeNormalization, expectId, formattedId, formattedType, isEquivId, isEquivType };
|
|
151
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","names":[],"sources":["../../src/compat/utils.ts"],"mappings":";KAcK,YAAY,yCAAyC,iBAAiB;;;;;;;;;iBA0B3D,0BAA0B,IAAI;;;;;;;;;iBAY9B,kBAAkB,KAAK,iBAAiB;;;;;;;;;;;;;;iBAiBxC,2BAA2B,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmChC,cAAc,kBAAkB,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;iBAuCnD,YAAY;iBACZ,YAAY;iBACZ,YAAY;;;;;;;iBA0BZ,SAAS;;;;;;iBAMT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCT,YAAY,kBAAkB;;;;;;;;;;;;;;;;;;;;;;iBAmC9B,UAAU,2BAA2B"}
|
package/dist/compat/utils.js
CHANGED
|
@@ -1,238 +1,219 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getGlobalConfig, macroCondition } from "@embroider/macros";
|
|
2
|
+
import { dasherize, singularize } from "@warp-drive/utilities/string";
|
|
3
3
|
|
|
4
|
+
//#region src/compat/utils.ts
|
|
4
5
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
Utilities for helping to migrate to stricter
|
|
7
|
+
and more consistent use of IDs and types.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
@module
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
let
|
|
12
|
-
|
|
13
|
-
// TODO: @runspired This pattern prevents AssertFn from being removed in production builds
|
|
14
|
-
// but we should enable that if we can.
|
|
15
|
-
let _AssertFn = function () {};
|
|
11
|
+
let MismatchReporter = function() {};
|
|
12
|
+
let _AssertFn = function() {};
|
|
16
13
|
const AssertFn = (message, condition) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (!test) {
|
|
22
|
-
throw new Error(message);
|
|
23
|
-
}
|
|
24
|
-
})(condition) : {};
|
|
14
|
+
if (!condition) _AssertFn(message, condition);
|
|
15
|
+
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) && ((test) => {
|
|
16
|
+
if (!test) throw new Error(message);
|
|
17
|
+
})(condition);
|
|
25
18
|
};
|
|
26
|
-
let NormalizedType = str => {
|
|
27
|
-
|
|
19
|
+
let NormalizedType = (str) => {
|
|
20
|
+
return singularize(dasherize(str));
|
|
28
21
|
};
|
|
29
|
-
|
|
30
22
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
* Configure a function to be called when an id or type
|
|
24
|
+
* changes during normalization. This is useful for instrumenting
|
|
25
|
+
* to discover places where usage in the app is not consistent.
|
|
26
|
+
*
|
|
27
|
+
* @param fn - a function which takes a mismatch-type ('formatted-id' | 'formatted-type'), actual, and expected value
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
38
30
|
function configureMismatchReporter(fn) {
|
|
39
|
-
|
|
31
|
+
MismatchReporter = fn;
|
|
40
32
|
}
|
|
41
|
-
|
|
42
33
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
* Configure a function to be called when an id or type
|
|
35
|
+
* fails validation. This is useful for instrumenting
|
|
36
|
+
* to discover places where usage in the app is not consistent.
|
|
37
|
+
*
|
|
38
|
+
* @param fn - a function which takes a message and a condition
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
50
41
|
function configureAssertFn(fn) {
|
|
51
|
-
|
|
42
|
+
_AssertFn = fn;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
44
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
* Configure a function to be called to normalize
|
|
46
|
+
* a resource type string. Used by both formattedType
|
|
47
|
+
* and isEquivType to ensure consistent normalization
|
|
48
|
+
* during comparison.
|
|
49
|
+
*
|
|
50
|
+
* If validation fails or the type turns out be unnormalized
|
|
51
|
+
* the configured mismatch reporter and assert functions will
|
|
52
|
+
* be called.
|
|
53
|
+
*
|
|
54
|
+
* @param fn - a function which takes a string and returns a string
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
67
57
|
function configureTypeNormalization(fn) {
|
|
68
|
-
|
|
58
|
+
NormalizedType = fn;
|
|
69
59
|
}
|
|
70
|
-
const NORMALIZED_TYPES = new Map();
|
|
71
|
-
|
|
60
|
+
const NORMALIZED_TYPES = /* @__PURE__ */ new Map();
|
|
72
61
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
62
|
+
* Converts a potentially unnormalized type into the format expected
|
|
63
|
+
* by our WarpDrive Cache. Currently this is singular-dasherized.
|
|
64
|
+
*
|
|
65
|
+
* you should not rely on this function to give you an exact format
|
|
66
|
+
* for display purposes. Formatting for display should be handled
|
|
67
|
+
* differently if the exact format matters.
|
|
68
|
+
*
|
|
69
|
+
* Asserts invalid types (undefined, null, '') in dev.
|
|
70
|
+
*
|
|
71
|
+
* **Usage**
|
|
72
|
+
*
|
|
73
|
+
* ```js
|
|
74
|
+
* import formattedType from 'soxhub-client/helpers/formatted-type';
|
|
75
|
+
*
|
|
76
|
+
* formattedType('post'); // => 'post'
|
|
77
|
+
* formattedType('posts'); // => 'post'
|
|
78
|
+
* formattedType('Posts'); // => 'post'
|
|
79
|
+
* formattedType('post-comment'); // => 'post-comment'
|
|
80
|
+
* formattedType('post-comments'); // => 'post-comment'
|
|
81
|
+
* formattedType('post_comment'); // => 'post-comment'
|
|
82
|
+
* formattedType('postComment'); // => 'post-comment'
|
|
83
|
+
* formattedType('PostComment'); // => 'post-comment'
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @param type the potentially un-normalized type
|
|
87
|
+
* @return the normalized type
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
101
90
|
function formattedType(type) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
return normalized;
|
|
91
|
+
AssertFn("formattedType: type must not be null", type !== null);
|
|
92
|
+
AssertFn("formattedType: type must not be undefined", type !== void 0);
|
|
93
|
+
AssertFn("formattedType: type must be a string", typeof type === "string");
|
|
94
|
+
AssertFn("formattedType: type must not be empty", type.length > 0);
|
|
95
|
+
let normalized = NORMALIZED_TYPES.get(type);
|
|
96
|
+
if (normalized === void 0) {
|
|
97
|
+
normalized = NormalizedType(type);
|
|
98
|
+
NORMALIZED_TYPES.set(type, normalized);
|
|
99
|
+
}
|
|
100
|
+
if (normalized !== type) MismatchReporter("formatted-type", type, normalized);
|
|
101
|
+
return normalized;
|
|
115
102
|
}
|
|
116
|
-
|
|
117
103
|
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
104
|
+
* Format an id to the format expected by the WarpDrive Cache.
|
|
105
|
+
* Currently this means that id should be `string | null`.
|
|
106
|
+
*
|
|
107
|
+
* Asserts invalid IDs (undefined, '', 0, '0') in dev.
|
|
108
|
+
*
|
|
109
|
+
* **Usage**
|
|
110
|
+
*
|
|
111
|
+
* ```js
|
|
112
|
+
* import formattedId from 'client/utils/formatted-id';
|
|
113
|
+
*
|
|
114
|
+
* formattedId('1'); // => '1'
|
|
115
|
+
* formattedId(1); // => '1'
|
|
116
|
+
* formattedId(null); // => null
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @param id the potentially un-normalized id
|
|
120
|
+
* @return the normalized id
|
|
121
|
+
* @public
|
|
122
|
+
*/
|
|
138
123
|
function formattedId(id) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
return id === null ? null : String(id);
|
|
124
|
+
AssertFn("formattedId: id must not be undefined", id !== void 0);
|
|
125
|
+
AssertFn("formattedId: id must be a number, string or null", typeof id === "number" || typeof id === "string" || id === null);
|
|
126
|
+
AssertFn("formattedId: id must not be empty", typeof id === "number" || id === null || typeof id === "string" && id.length > 0);
|
|
127
|
+
AssertFn("formattedId: id must not be 0", id !== "0" && id !== 0);
|
|
128
|
+
const formatted = id === null ? null : String(id);
|
|
129
|
+
if (formatted !== id) MismatchReporter("formatted-id", id, formatted);
|
|
130
|
+
return id === null ? null : String(id);
|
|
148
131
|
}
|
|
149
|
-
|
|
150
132
|
/**
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
133
|
+
* Like {@link formattedId}, but asserts that `id` is not `null` rather
|
|
134
|
+
* than allowing and passing through `null`.
|
|
135
|
+
*
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
157
138
|
/**
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
139
|
+
* Throws, since `id` is `null`.
|
|
140
|
+
*
|
|
141
|
+
* @public
|
|
142
|
+
*/
|
|
163
143
|
function expectId(id) {
|
|
164
|
-
|
|
165
|
-
|
|
144
|
+
AssertFn("expectId: id must not be null", id !== null);
|
|
145
|
+
return formattedId(id);
|
|
166
146
|
}
|
|
167
|
-
|
|
168
147
|
/**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
148
|
+
* Compares two types for strict equality, converting them to
|
|
149
|
+
* the format expected by the WarpDrive Cache to ensure
|
|
150
|
+
* differences in format are accounted for in the comparison.
|
|
151
|
+
*
|
|
152
|
+
* Asserts when expected or actual are invalid types in dev.
|
|
153
|
+
* Expected may never be null.
|
|
154
|
+
*
|
|
155
|
+
* ```js
|
|
156
|
+
* isEquivType('posts', 'post'); // true
|
|
157
|
+
* isEquivType('post', 'post'); // true
|
|
158
|
+
* isEquivType('posts', 'posts'); // true
|
|
159
|
+
* isEquivType('post-comment', 'postComment'); // true
|
|
160
|
+
* isEquivType('post-comment', 'PostComment'); // true
|
|
161
|
+
* isEquivType('post-comment', 'post_comment'); // true
|
|
162
|
+
* isEquivType('post-comment', 'post-comment'); // true
|
|
163
|
+
* isEquivType('post-comment', 'post'); // false
|
|
164
|
+
* isEquivType('posts', null); // false
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* @param expected a potentially unnormalized type to match against
|
|
168
|
+
* @param actual a potentially unnormalized type to match against
|
|
169
|
+
* @return true if the types are equivalent
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
193
172
|
function isEquivType(expected, actual) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
173
|
+
AssertFn("isEquivType: Expected type must not be null", expected !== null);
|
|
174
|
+
AssertFn("isEquivType: Expected type must not be undefined", expected !== void 0);
|
|
175
|
+
AssertFn("isEquivType: Expected type must be a string", typeof expected === "string");
|
|
176
|
+
AssertFn("isEquivType: Expected type must not be empty", expected.length > 0);
|
|
177
|
+
AssertFn("isEquivType: Actual type must not be null", actual !== null);
|
|
178
|
+
AssertFn("isEquivType: Actual type must not be undefined", actual !== void 0);
|
|
179
|
+
AssertFn("isEquivType: Actual type must be a string", typeof actual === "string");
|
|
180
|
+
AssertFn("isEquivType: Actual type must not be empty", actual.length > 0);
|
|
181
|
+
return expected === actual || formattedType(expected) === formattedType(actual);
|
|
203
182
|
}
|
|
204
|
-
|
|
205
183
|
/**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
184
|
+
* Compares two IDs for strict equality, converting them to
|
|
185
|
+
* the format expected by the WarpDrive Cache to ensure
|
|
186
|
+
* differences in format are accounted for in the comparison.
|
|
187
|
+
*
|
|
188
|
+
* Asserts when expected or actual are invalid IDs in dev.
|
|
189
|
+
* Expected may never be null.
|
|
190
|
+
*
|
|
191
|
+
* ```js
|
|
192
|
+
* isEquivId('1', 1); // true
|
|
193
|
+
* isEquivId('2', '2'); // true
|
|
194
|
+
* isEquivId(3, '3'); // true
|
|
195
|
+
* isEquivId(4, '3'); // false
|
|
196
|
+
* isEquivId(1, null); // false
|
|
197
|
+
* ```
|
|
198
|
+
*
|
|
199
|
+
* @param expected a potentially un-normalized id to match against
|
|
200
|
+
* @param actual a potentially un-normalized id to match against
|
|
201
|
+
* @return true if the ids are equivalent
|
|
202
|
+
* @public
|
|
203
|
+
*/
|
|
226
204
|
function isEquivId(expected, actual) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
205
|
+
AssertFn("isEquivId: Expected id must not be null", expected !== null);
|
|
206
|
+
AssertFn("isEquivId: Expected id must not be undefined", expected !== void 0);
|
|
207
|
+
AssertFn("isEquivId: Expected id must be a number or string", typeof expected === "number" || typeof expected === "string");
|
|
208
|
+
AssertFn("isEquivId: Expected id must not be empty", typeof expected === "number" || typeof expected === "string" && expected.length > 0);
|
|
209
|
+
AssertFn("isEquivId: Expected id must not be 0", expected !== "0" && expected !== 0);
|
|
210
|
+
AssertFn("isEquivId: Actual id must not be undefined", actual !== void 0);
|
|
211
|
+
AssertFn("isEquivId: Actual id must be a number, string or null", typeof actual === "number" || typeof actual === "string" || actual === null);
|
|
212
|
+
AssertFn("isEquivId: Actual id must not be empty", actual === null || typeof actual === "number" || typeof actual === "string" && actual.length > 0);
|
|
213
|
+
AssertFn("isEquivId: Actual id must not be 0", actual !== "0" && actual !== 0);
|
|
214
|
+
return expected === actual || formattedId(expected) === formattedId(actual);
|
|
237
215
|
}
|
|
238
|
-
|
|
216
|
+
|
|
217
|
+
//#endregion
|
|
218
|
+
export { configureAssertFn, configureMismatchReporter, configureTypeNormalization, expectId, formattedId, formattedType, isEquivId, isEquivType };
|
|
219
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["dasherize","singularize","macroCondition","getGlobalConfig","MismatchReporter","_AssertFn","AssertFn","message","condition","WarpDrive","env","DEBUG","test","Error","NormalizedType","str","configureMismatchReporter","fn","configureAssertFn","configureTypeNormalization","NORMALIZED_TYPES","Map","formattedType","type","undefined","length","normalized","get","set","formattedId","id","formatted","String","expectId","isEquivType","expected","actual","isEquivId"],"sources":["../../src/compat/utils.ts"],"sourcesContent":["/**\n Utilities for helping to migrate to stricter\n and more consistent use of IDs and types.\n\n @module\n*/\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport { dasherize, singularize } from '@warp-drive/utilities/string';\n\ninterface AssertFunc {\n (desc: string, condition: unknown): asserts condition;\n (desc: string): never;\n}\n\ntype Reporter = (type: 'formatted-id' | 'formatted-type', actual: unknown, expected: unknown) => void;\ntype Normalizer = (type: string) => string;\n\nlet MismatchReporter: Reporter = function () {};\n\n// TODO: @runspired This pattern prevents AssertFn from being removed in production builds\n// but we should enable that if we can.\nlet _AssertFn: (message: string, condition: unknown) => void = function () {};\nconst AssertFn: AssertFunc = ((message: string, condition: unknown) => {\n if (!condition) {\n _AssertFn(message, condition);\n }\n assert(message, condition);\n}) as unknown as AssertFunc;\nlet NormalizedType: Normalizer = (str: string) => {\n return singularize(dasherize(str));\n};\n\n/**\n * Configure a function to be called when an id or type\n * changes during normalization. This is useful for instrumenting\n * to discover places where usage in the app is not consistent.\n *\n * @param fn - a function which takes a mismatch-type ('formatted-id' | 'formatted-type'), actual, and expected value\n * @public\n */\nexport function configureMismatchReporter(fn: Reporter): void {\n MismatchReporter = fn;\n}\n\n/**\n * Configure a function to be called when an id or type\n * fails validation. This is useful for instrumenting\n * to discover places where usage in the app is not consistent.\n *\n * @param fn - a function which takes a message and a condition\n * @public\n */\nexport function configureAssertFn(fn: (message: string, condition: unknown) => void): void {\n _AssertFn = fn;\n}\n\n/**\n * Configure a function to be called to normalize\n * a resource type string. Used by both formattedType\n * and isEquivType to ensure consistent normalization\n * during comparison.\n *\n * If validation fails or the type turns out be unnormalized\n * the configured mismatch reporter and assert functions will\n * be called.\n *\n * @param fn - a function which takes a string and returns a string\n * @public\n */\nexport function configureTypeNormalization(fn: (type: string) => string): void {\n NormalizedType = fn;\n}\n\nconst NORMALIZED_TYPES = new Map<string, string>();\n\n/**\n * Converts a potentially unnormalized type into the format expected\n * by our WarpDrive Cache. Currently this is singular-dasherized.\n *\n * you should not rely on this function to give you an exact format\n * for display purposes. Formatting for display should be handled\n * differently if the exact format matters.\n *\n * Asserts invalid types (undefined, null, '') in dev.\n *\n * **Usage**\n *\n * ```js\n * import formattedType from 'soxhub-client/helpers/formatted-type';\n *\n * formattedType('post'); // => 'post'\n * formattedType('posts'); // => 'post'\n * formattedType('Posts'); // => 'post'\n * formattedType('post-comment'); // => 'post-comment'\n * formattedType('post-comments'); // => 'post-comment'\n * formattedType('post_comment'); // => 'post-comment'\n * formattedType('postComment'); // => 'post-comment'\n * formattedType('PostComment'); // => 'post-comment'\n * ```\n *\n * @param type the potentially un-normalized type\n * @return the normalized type\n * @public\n */\nexport function formattedType<T extends string>(type: T | string): T {\n AssertFn('formattedType: type must not be null', type !== null);\n AssertFn('formattedType: type must not be undefined', type !== undefined);\n AssertFn('formattedType: type must be a string', typeof type === 'string');\n AssertFn('formattedType: type must not be empty', type.length > 0);\n let normalized = NORMALIZED_TYPES.get(type);\n\n if (normalized === undefined) {\n normalized = NormalizedType(type);\n NORMALIZED_TYPES.set(type, normalized);\n }\n\n if (normalized !== type) {\n MismatchReporter('formatted-type', type, normalized);\n }\n\n return normalized as T;\n}\n\n/**\n * Format an id to the format expected by the WarpDrive Cache.\n * Currently this means that id should be `string | null`.\n *\n * Asserts invalid IDs (undefined, '', 0, '0') in dev.\n *\n * **Usage**\n *\n * ```js\n * import formattedId from 'client/utils/formatted-id';\n *\n * formattedId('1'); // => '1'\n * formattedId(1); // => '1'\n * formattedId(null); // => null\n *\t```\n *\n * @param id the potentially un-normalized id\n * @return the normalized id\n * @public\n */\nexport function formattedId(id: string | number): string;\nexport function formattedId(id: null): null;\nexport function formattedId(id: string | number | null): string | null;\nexport function formattedId(id: string | number | null): string | null {\n AssertFn('formattedId: id must not be undefined', id !== undefined);\n AssertFn(\n 'formattedId: id must be a number, string or null',\n typeof id === 'number' || typeof id === 'string' || id === null\n );\n AssertFn(\n 'formattedId: id must not be empty',\n typeof id === 'number' || id === null || (typeof id === 'string' && id.length > 0)\n );\n AssertFn('formattedId: id must not be 0', id !== '0' && id !== 0);\n\n const formatted = id === null ? null : String(id);\n if (formatted !== id) {\n MismatchReporter('formatted-id', id, formatted);\n }\n return id === null ? null : String(id);\n}\n\n/**\n * Like {@link formattedId}, but asserts that `id` is not `null` rather\n * than allowing and passing through `null`.\n *\n * @public\n */\nexport function expectId(id: string | number): string;\n/**\n * Throws, since `id` is `null`.\n *\n * @public\n */\nexport function expectId(id: null): never;\nexport function expectId(id: string | number | null): string {\n AssertFn('expectId: id must not be null', id !== null);\n\n return formattedId(id);\n}\n\n/**\n * Compares two types for strict equality, converting them to\n * the format expected by the WarpDrive Cache to ensure\n * differences in format are accounted for in the comparison.\n *\n * Asserts when expected or actual are invalid types in dev.\n * Expected may never be null.\n *\n * ```js\n * isEquivType('posts', 'post'); // true\n * isEquivType('post', 'post'); // true\n * isEquivType('posts', 'posts'); // true\n * isEquivType('post-comment', 'postComment'); // true\n * isEquivType('post-comment', 'PostComment'); // true\n * isEquivType('post-comment', 'post_comment'); // true\n * isEquivType('post-comment', 'post-comment'); // true\n * isEquivType('post-comment', 'post'); // false\n * isEquivType('posts', null); // false\n * ```\n *\n * @param expected a potentially unnormalized type to match against\n * @param actual a potentially unnormalized type to match against\n * @return true if the types are equivalent\n * @public\n */\nexport function isEquivType(expected: string, actual: string): boolean {\n AssertFn('isEquivType: Expected type must not be null', expected !== null);\n AssertFn('isEquivType: Expected type must not be undefined', expected !== undefined);\n AssertFn('isEquivType: Expected type must be a string', typeof expected === 'string');\n AssertFn('isEquivType: Expected type must not be empty', expected.length > 0);\n\n AssertFn('isEquivType: Actual type must not be null', actual !== null);\n AssertFn('isEquivType: Actual type must not be undefined', actual !== undefined);\n AssertFn('isEquivType: Actual type must be a string', typeof actual === 'string');\n AssertFn('isEquivType: Actual type must not be empty', actual.length > 0);\n\n return expected === actual || formattedType(expected) === formattedType(actual);\n}\n\n/**\n * Compares two IDs for strict equality, converting them to\n * the format expected by the WarpDrive Cache to ensure\n * differences in format are accounted for in the comparison.\n *\n * Asserts when expected or actual are invalid IDs in dev.\n * Expected may never be null.\n *\n * ```js\n * isEquivId('1', 1); // true\n * isEquivId('2', '2'); // true\n * isEquivId(3, '3'); // true\n * isEquivId(4, '3'); // false\n * isEquivId(1, null); // false\n * ```\n *\n * @param expected a potentially un-normalized id to match against\n * @param actual a potentially un-normalized id to match against\n * @return true if the ids are equivalent\n * @public\n */\nexport function isEquivId(expected: string | number, actual: string | number | null): boolean {\n AssertFn('isEquivId: Expected id must not be null', expected !== null);\n AssertFn('isEquivId: Expected id must not be undefined', expected !== undefined);\n AssertFn(\n 'isEquivId: Expected id must be a number or string',\n typeof expected === 'number' || typeof expected === 'string'\n );\n AssertFn(\n 'isEquivId: Expected id must not be empty',\n typeof expected === 'number' || (typeof expected === 'string' && expected.length > 0)\n );\n AssertFn('isEquivId: Expected id must not be 0', expected !== '0' && expected !== 0);\n\n AssertFn('isEquivId: Actual id must not be undefined', actual !== undefined);\n AssertFn(\n 'isEquivId: Actual id must be a number, string or null',\n typeof actual === 'number' || typeof actual === 'string' || actual === null\n );\n AssertFn(\n 'isEquivId: Actual id must not be empty',\n actual === null || typeof actual === 'number' || (typeof actual === 'string' && actual.length > 0)\n );\n AssertFn('isEquivId: Actual id must not be 0', actual !== '0' && actual !== 0);\n\n return expected === actual || formattedId(expected) === formattedId(actual);\n}\n"],"mappings":";;;;;;;;;;AAiBA,IAAII,mBAA6B,WAAY,CAAC;AAI9C,IAAIC,YAA2D,WAAY,CAAC;AAC5E,MAAMC,YAAyBC,SAAiBC,cAAuB;CACrE,IAAI,CAACA,WACHH,UAAUE,SAASC,SAAS;CAE9BN,eAAAC,gBAAA,CAAA,CAAAM,UAAAC,IAAAC,KAAA,OAAAC,SAAA;EAAA,IAAA,CAAAA,MAAA,MAAA,IAAAC,MAAON,OAAO;CAAA,EAAA,CAAEC,SAAS;AAC3B;AACA,IAAIM,kBAA8BC,QAAgB;CAChD,OAAOd,YAAYD,UAAUe,GAAG,CAAC;AACnC;;;;;;;;;AAUA,SAAgBC,0BAA0BC,IAAoB;CAC5Db,mBAAmBa;AACrB;;;;;;;;;AAUA,SAAgBC,kBAAkBD,IAAyD;CACzFZ,YAAYY;AACd;;;;;;;;;;;;;;AAeA,SAAgBE,2BAA2BF,IAAoC;CAC7EH,iBAAiBG;AACnB;AAEA,MAAMG,mCAAmB,IAAIC,IAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BjD,SAAgBC,cAAgCC,MAAqB;CACnEjB,SAAS,wCAAwCiB,SAAS,IAAI;CAC9DjB,SAAS,6CAA6CiB,SAASC,MAAS;CACxElB,SAAS,wCAAwC,OAAOiB,SAAS,QAAQ;CACzEjB,SAAS,yCAAyCiB,KAAKE,SAAS,CAAC;CACjE,IAAIC,aAAaN,iBAAiBO,IAAIJ,IAAI;CAE1C,IAAIG,eAAeF,QAAW;EAC5BE,aAAaZ,eAAeS,IAAI;EAChCH,iBAAiBQ,IAAIL,MAAMG,UAAU;CACvC;CAEA,IAAIA,eAAeH,MACjBnB,iBAAiB,kBAAkBmB,MAAMG,UAAU;CAGrD,OAAOA;AACT;;;;;;;;;;;;;;;;;;;;;AAyBA,SAAgBG,YAAYC,IAA2C;CACrExB,SAAS,yCAAyCwB,OAAON,MAAS;CAClElB,SACE,oDACA,OAAOwB,OAAO,YAAY,OAAOA,OAAO,YAAYA,OAAO,IAC7D;CACAxB,SACE,qCACA,OAAOwB,OAAO,YAAYA,OAAO,QAAS,OAAOA,OAAO,YAAYA,GAAGL,SAAS,CAClF;CACAnB,SAAS,iCAAiCwB,OAAO,OAAOA,OAAO,CAAC;CAEhE,MAAMC,YAAYD,OAAO,OAAO,OAAOE,OAAOF,EAAE;CAChD,IAAIC,cAAcD,IAChB1B,iBAAiB,gBAAgB0B,IAAIC,SAAS;CAEhD,OAAOD,OAAO,OAAO,OAAOE,OAAOF,EAAE;AACvC;;;;;;;;;;;;AAeA,SAAgBG,SAASH,IAAoC;CAC3DxB,SAAS,iCAAiCwB,OAAO,IAAI;CAErD,OAAOD,YAAYC,EAAE;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAgBI,YAAYC,UAAkBC,QAAyB;CACrE9B,SAAS,+CAA+C6B,aAAa,IAAI;CACzE7B,SAAS,oDAAoD6B,aAAaX,MAAS;CACnFlB,SAAS,+CAA+C,OAAO6B,aAAa,QAAQ;CACpF7B,SAAS,gDAAgD6B,SAASV,SAAS,CAAC;CAE5EnB,SAAS,6CAA6C8B,WAAW,IAAI;CACrE9B,SAAS,kDAAkD8B,WAAWZ,MAAS;CAC/ElB,SAAS,6CAA6C,OAAO8B,WAAW,QAAQ;CAChF9B,SAAS,8CAA8C8B,OAAOX,SAAS,CAAC;CAExE,OAAOU,aAAaC,UAAUd,cAAca,QAAQ,MAAMb,cAAcc,MAAM;AAChF;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgBC,UAAUF,UAA2BC,QAAyC;CAC5F9B,SAAS,2CAA2C6B,aAAa,IAAI;CACrE7B,SAAS,gDAAgD6B,aAAaX,MAAS;CAC/ElB,SACE,qDACA,OAAO6B,aAAa,YAAY,OAAOA,aAAa,QACtD;CACA7B,SACE,4CACA,OAAO6B,aAAa,YAAa,OAAOA,aAAa,YAAYA,SAASV,SAAS,CACrF;CACAnB,SAAS,wCAAwC6B,aAAa,OAAOA,aAAa,CAAC;CAEnF7B,SAAS,8CAA8C8B,WAAWZ,MAAS;CAC3ElB,SACE,yDACA,OAAO8B,WAAW,YAAY,OAAOA,WAAW,YAAYA,WAAW,IACzE;CACA9B,SACE,0CACA8B,WAAW,QAAQ,OAAOA,WAAW,YAAa,OAAOA,WAAW,YAAYA,OAAOX,SAAS,CAClG;CACAnB,SAAS,sCAAsC8B,WAAW,OAAOA,WAAW,CAAC;CAE7E,OAAOD,aAAaC,UAAUP,YAAYM,QAAQ,MAAMN,YAAYO,MAAM;AAC5E"}
|