@warp-drive-mirror/core 5.10.0-alpha.2 → 5.10.0-alpha.21
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 +116 -6
- package/dist/{-private-ffnwf62T.js → -private-BiuED7nc.js} +5 -4
- package/dist/{-private-ffnwf62T.js.map → -private-BiuED7nc.js.map} +1 -1
- package/dist/{-private-CArItnX4.js → -private-CvZfrDZl.js} +566 -179
- package/dist/-private-CvZfrDZl.js.map +1 -0
- package/dist/{aliases-BWYW5EhX.d.ts → aliases-BG5TxALl.d.ts} +4 -3
- package/dist/aliases-BG5TxALl.d.ts.map +1 -0
- package/dist/{change-C7kqv2kW.d.ts → change-INHMiZ2a.d.ts} +4 -4
- package/dist/change-INHMiZ2a.d.ts.map +1 -0
- package/dist/{concepts-DFldVwEM.d.ts → concepts-vh86nAcd.d.ts} +14 -7
- package/dist/concepts-vh86nAcd.d.ts.map +1 -0
- package/dist/{configure-B_F639tN.d.ts → configure-BfXDuPUb.d.ts} +57 -10
- package/dist/configure-BfXDuPUb.d.ts.map +1 -0
- package/dist/configure.d.ts +2 -2
- package/dist/configure.js +2 -2
- package/dist/{document-Ca4ZZBd9.d.ts → document-B8Fup751.d.ts} +22 -6
- package/dist/document-B8Fup751.d.ts.map +1 -0
- package/dist/{error-0uD6GkNX.d.ts → error-j5n1yL9m.d.ts} +4 -4
- package/dist/error-j5n1yL9m.d.ts.map +1 -0
- package/dist/{fields-FM7peCiM.d.ts → fields-r1rZJB9d.d.ts} +134 -9
- package/dist/fields-r1rZJB9d.d.ts.map +1 -0
- package/dist/graph/-private.d.ts +1 -1
- package/dist/graph/-private.js +25 -40
- package/dist/graph/-private.js.map +1 -1
- package/dist/{graph-DLqYXP2z.d.ts → graph-BqxaFjEb.d.ts} +25 -7
- package/dist/graph-BqxaFjEb.d.ts.map +1 -0
- package/dist/{identifier-DQnqOSJK.d.ts → identifier-DmgDehQK.d.ts} +29 -6
- package/dist/identifier-DmgDehQK.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{internal-BrqYbG_y.d.ts → internal-D_WIXC4r.d.ts} +1524 -1121
- package/dist/internal-D_WIXC4r.d.ts.map +1 -0
- package/dist/{json-api-raw-C5APJHHB.d.ts → json-api-raw-juUdIITO.d.ts} +44 -4
- package/dist/json-api-raw-juUdIITO.d.ts.map +1 -0
- package/dist/{mutations-CqtoGB4t.d.ts → mutations-CA39mior.d.ts} +18 -4
- package/dist/mutations-CA39mior.d.ts.map +1 -0
- package/dist/{operations-D1qA6r0_.d.ts → operations-C1WAEKKq.d.ts} +39 -7
- package/dist/operations-C1WAEKKq.d.ts.map +1 -0
- package/dist/{params-DrEx3bf8.d.ts → params-CNLjCRyH.d.ts} +11 -3
- package/dist/params-CNLjCRyH.d.ts.map +1 -0
- package/dist/{raw-D5hnjiq7.d.ts → raw-adYGuEGM.d.ts} +10 -3
- package/dist/raw-adYGuEGM.d.ts.map +1 -0
- package/dist/reactive/-private.d.ts +1 -1
- package/dist/reactive/-private.js +1 -1
- package/dist/reactive.d.ts +2 -2
- package/dist/reactive.js +3 -3
- package/dist/{record-D3QQcaIR.d.ts → record-f5-uOgHt.d.ts} +22 -4
- package/dist/record-f5-uOgHt.d.ts.map +1 -0
- package/dist/{relationship-CmHzMPKf.d.ts → relationship-99pc4CaS.d.ts} +10 -5
- package/dist/relationship-99pc4CaS.d.ts.map +1 -0
- package/dist/{request-o_qGAoFV.js → request-CxtnNIIp.js} +52 -23
- package/dist/request-CxtnNIIp.js.map +1 -0
- package/dist/request.d.ts +1 -1
- package/dist/request.js +1 -1
- package/dist/signals/-leaked.d.ts +86 -18
- package/dist/signals/-leaked.d.ts.map +1 -1
- package/dist/signals/-leaked.js +1 -1
- package/dist/{src-C-xK8l3f.js → src-ccp1WKyt.js} +350 -456
- package/dist/src-ccp1WKyt.js.map +1 -0
- package/dist/store/-private.d.ts +2 -2
- package/dist/store/-private.js +2 -2
- package/dist/{store-DNF9Rgoh.js → store-C8iKKtQK.js} +17 -3
- package/dist/store-C8iKKtQK.js.map +1 -0
- package/dist/store.d.ts +1 -1
- package/dist/store.js +1 -1
- package/dist/{symbols-DjRDCeX0.d.ts → symbols-DVa1PMFG.d.ts} +10 -3
- package/dist/symbols-DVa1PMFG.d.ts.map +1 -0
- package/dist/types/-private.d.ts +1 -2
- package/dist/types/-private.d.ts.map +1 -1
- package/dist/types/-private.js +115 -2
- package/dist/types/-private.js.map +1 -0
- package/dist/types/cache/aliases.d.ts +1 -1
- package/dist/types/cache/change.d.ts +1 -1
- package/dist/types/cache/mutations.d.ts +1 -1
- package/dist/types/cache/operations.d.ts +1 -1
- package/dist/types/cache/relationship.d.ts +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/graph.d.ts +1 -1
- package/dist/types/identifier.d.ts +1 -1
- package/dist/types/identifier.js +34 -5
- package/dist/types/identifier.js.map +1 -1
- package/dist/types/json/raw.d.ts +1 -1
- package/dist/types/params.d.ts +1 -1
- package/dist/types/record.d.ts +1 -1
- package/dist/types/record.js +26 -2
- package/dist/types/record.js.map +1 -1
- package/dist/types/request.d.ts +1 -1
- package/dist/types/request.js +82 -3
- package/dist/types/request.js.map +1 -1
- package/dist/types/runtime.d.ts +10 -7
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/runtime.js +9 -6
- package/dist/types/runtime.js.map +1 -1
- package/dist/types/schema/concepts.d.ts +1 -1
- package/dist/types/schema/fields.d.ts +1 -1
- package/dist/types/schema/fields.js +133 -5
- package/dist/types/schema/fields.js.map +1 -1
- package/dist/types/schema/schema-service.d.ts +1 -1
- package/dist/types/spec/document.d.ts +1 -1
- package/dist/types/spec/error.d.ts +1 -1
- package/dist/types/spec/json-api-raw.d.ts +1 -1
- package/dist/types/symbols.d.ts +1 -1
- package/dist/types/symbols.js +16 -3
- package/dist/types/symbols.js.map +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/unpkg/{dev-deprecated/-private-CM5N2rtZ.js → dev/-private-B4pCmkq-.js} +566 -179
- package/dist/unpkg/dev/-private-B4pCmkq-.js.map +1 -0
- package/dist/unpkg/{prod-deprecated/-private-207KndDu.js → dev/-private-BiuED7nc.js} +5 -4
- package/dist/unpkg/{dev-deprecated/-private-BO-nArRb.js.map → dev/-private-BiuED7nc.js.map} +1 -1
- package/dist/unpkg/dev/configure.js +2 -2
- package/dist/unpkg/dev/graph/-private.js +26 -41
- package/dist/unpkg/dev/graph/-private.js.map +1 -1
- package/dist/unpkg/dev/index.js +1 -1
- package/dist/unpkg/dev/reactive/-private.js +1 -1
- package/dist/unpkg/dev/reactive.js +3 -3
- package/dist/unpkg/{dev-deprecated/request-DXPAtRhE.js → dev/request-oWpijCPQ.js} +52 -23
- package/dist/unpkg/dev/request-oWpijCPQ.js.map +1 -0
- package/dist/unpkg/dev/request.js +1 -1
- package/dist/unpkg/dev/{runtime-DW881fpw.js → runtime-RYvEtg99.js} +2 -3
- package/dist/unpkg/dev/{runtime-DW881fpw.js.map → runtime-RYvEtg99.js.map} +1 -1
- package/dist/unpkg/dev/signals/-leaked.js +1 -1
- package/dist/unpkg/dev/{src-kn6qfEPI.js → src-C4ET4R1n.js} +339 -444
- package/dist/unpkg/dev/src-C4ET4R1n.js.map +1 -0
- package/dist/unpkg/dev/store/-private.js +2 -2
- package/dist/unpkg/{dev-deprecated/store-D-z_1Jxe.js → dev/store-dZViNfMK.js} +18 -4
- package/dist/unpkg/dev/store-dZViNfMK.js.map +1 -0
- package/dist/unpkg/dev/store.js +1 -1
- package/dist/unpkg/dev/types/-private.js +106 -2
- package/dist/unpkg/dev/types/-private.js.map +1 -0
- package/dist/unpkg/dev/types/identifier.js +34 -5
- package/dist/unpkg/dev/types/identifier.js.map +1 -1
- package/dist/unpkg/dev/types/record.js +26 -2
- package/dist/unpkg/dev/types/record.js.map +1 -1
- package/dist/unpkg/dev/types/request.js +82 -3
- package/dist/unpkg/dev/types/request.js.map +1 -1
- package/dist/unpkg/dev/types/runtime.js +9 -6
- package/dist/unpkg/dev/types/runtime.js.map +1 -1
- package/dist/unpkg/dev/types/schema/fields.js +133 -5
- package/dist/unpkg/dev/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev/types/symbols.js +16 -3
- package/dist/unpkg/dev/types/symbols.js.map +1 -1
- package/dist/unpkg/dev/utils/string.js +1 -2
- package/dist/unpkg/{dev/-private-CM5N2rtZ.js → dev-deprecated/-private-B4pCmkq-.js} +566 -179
- package/dist/unpkg/dev-deprecated/-private-B4pCmkq-.js.map +1 -0
- package/dist/unpkg/dev-deprecated/{-private-BO-nArRb.js → -private-BiuED7nc.js} +5 -4
- package/dist/unpkg/{prod/-private-207KndDu.js.map → dev-deprecated/-private-BiuED7nc.js.map} +1 -1
- package/dist/unpkg/dev-deprecated/configure.js +2 -2
- package/dist/unpkg/dev-deprecated/graph/-private.js +26 -41
- package/dist/unpkg/dev-deprecated/graph/-private.js.map +1 -1
- package/dist/unpkg/dev-deprecated/index.js +1 -1
- package/dist/unpkg/dev-deprecated/reactive/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/reactive.js +3 -3
- package/dist/unpkg/{dev/request-DXPAtRhE.js → dev-deprecated/request-oWpijCPQ.js} +52 -23
- package/dist/unpkg/dev-deprecated/request-oWpijCPQ.js.map +1 -0
- package/dist/unpkg/dev-deprecated/request.js +1 -1
- package/dist/unpkg/dev-deprecated/{runtime-BIra6K31.js → runtime-DZVuMuzL.js} +2 -3
- package/dist/unpkg/dev-deprecated/{runtime-BIra6K31.js.map → runtime-DZVuMuzL.js.map} +1 -1
- package/dist/unpkg/dev-deprecated/signals/-leaked.js +1 -1
- package/dist/unpkg/dev-deprecated/{src-DXwW-R57.js → src-jHpowq3S.js} +344 -450
- package/dist/unpkg/dev-deprecated/src-jHpowq3S.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store/-private.js +2 -2
- package/dist/unpkg/{dev/store-C0p6sclI.js → dev-deprecated/store-I7YB0_rC.js} +18 -4
- package/dist/unpkg/dev-deprecated/store-I7YB0_rC.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store.js +1 -1
- package/dist/unpkg/dev-deprecated/types/-private.js +106 -2
- package/dist/unpkg/dev-deprecated/types/-private.js.map +1 -0
- package/dist/unpkg/dev-deprecated/types/identifier.js +34 -5
- package/dist/unpkg/dev-deprecated/types/identifier.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/record.js +26 -2
- package/dist/unpkg/dev-deprecated/types/record.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/request.js +82 -3
- package/dist/unpkg/dev-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/runtime.js +9 -6
- package/dist/unpkg/dev-deprecated/types/runtime.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.js +133 -5
- package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/symbols.js +16 -3
- package/dist/unpkg/dev-deprecated/types/symbols.js.map +1 -1
- package/dist/unpkg/dev-deprecated/utils/string.js +1 -2
- package/dist/unpkg/prod/-private-BiuED7nc.js +23 -0
- package/dist/unpkg/{prod-deprecated/-private-207KndDu.js.map → prod/-private-BiuED7nc.js.map} +1 -1
- package/dist/unpkg/{prod-deprecated/-private-CdDed4yB.js → prod/-private-CrUi_3E_.js} +539 -173
- package/dist/unpkg/prod/-private-CrUi_3E_.js.map +1 -0
- package/dist/unpkg/prod/configure.js +2 -2
- package/dist/unpkg/prod/graph/-private.js +24 -35
- package/dist/unpkg/prod/graph/-private.js.map +1 -1
- package/dist/unpkg/prod/index.js +1 -1
- package/dist/unpkg/prod/reactive/-private.js +1 -1
- package/dist/unpkg/prod/reactive.js +3 -3
- package/dist/unpkg/prod/{request-C7WZg-zk.js → request-Cgw3j6Dx.js} +51 -21
- package/dist/unpkg/prod/request-Cgw3j6Dx.js.map +1 -0
- package/dist/unpkg/prod/request.js +1 -1
- package/dist/unpkg/prod/signals/-leaked.js +1 -1
- package/dist/unpkg/prod/{src-B-GfFQcx.js → src-DFmPDGQ6.js} +311 -414
- package/dist/unpkg/prod/src-DFmPDGQ6.js.map +1 -0
- package/dist/unpkg/prod/store/-private.js +2 -2
- package/dist/unpkg/prod/{store-BWhmb7Ob.js → store-Bz9R5hGB.js} +17 -3
- package/dist/unpkg/prod/store-Bz9R5hGB.js.map +1 -0
- package/dist/unpkg/prod/store.js +1 -1
- package/dist/unpkg/prod/types/-private.js +94 -2
- package/dist/unpkg/prod/types/-private.js.map +1 -0
- package/dist/unpkg/prod/types/identifier.js +34 -5
- package/dist/unpkg/prod/types/identifier.js.map +1 -1
- package/dist/unpkg/prod/types/record.js +26 -2
- package/dist/unpkg/prod/types/record.js.map +1 -1
- package/dist/unpkg/prod/types/request.js +82 -3
- package/dist/unpkg/prod/types/request.js.map +1 -1
- package/dist/unpkg/prod/types/runtime.js +9 -6
- package/dist/unpkg/prod/types/runtime.js.map +1 -1
- package/dist/unpkg/prod/types/schema/fields.js +133 -5
- package/dist/unpkg/prod/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod/types/symbols.js +16 -3
- package/dist/unpkg/prod/types/symbols.js.map +1 -1
- package/dist/unpkg/prod/utils/string.js +1 -2
- package/dist/unpkg/{dev/-private-BO-nArRb.js → prod-deprecated/-private-BiuED7nc.js} +5 -4
- package/dist/unpkg/{dev/-private-BO-nArRb.js.map → prod-deprecated/-private-BiuED7nc.js.map} +1 -1
- package/dist/unpkg/{prod/-private-CdDed4yB.js → prod-deprecated/-private-CrUi_3E_.js} +539 -173
- package/dist/unpkg/prod-deprecated/-private-CrUi_3E_.js.map +1 -0
- package/dist/unpkg/prod-deprecated/configure.js +2 -2
- package/dist/unpkg/prod-deprecated/graph/-private.js +24 -35
- package/dist/unpkg/prod-deprecated/graph/-private.js.map +1 -1
- package/dist/unpkg/prod-deprecated/index.js +1 -1
- package/dist/unpkg/prod-deprecated/reactive/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/reactive.js +3 -3
- package/dist/unpkg/prod-deprecated/{request-C7WZg-zk.js → request-Cgw3j6Dx.js} +51 -21
- package/dist/unpkg/prod-deprecated/request-Cgw3j6Dx.js.map +1 -0
- package/dist/unpkg/prod-deprecated/request.js +1 -1
- package/dist/unpkg/prod-deprecated/signals/-leaked.js +1 -1
- package/dist/unpkg/prod-deprecated/{src-Bp8ZJctZ.js → src-BgQLcshl.js} +316 -420
- package/dist/unpkg/prod-deprecated/src-BgQLcshl.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store/-private.js +2 -2
- package/dist/unpkg/prod-deprecated/{store-BWhmb7Ob.js → store-Bz9R5hGB.js} +17 -3
- package/dist/unpkg/prod-deprecated/store-Bz9R5hGB.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store.js +1 -1
- package/dist/unpkg/prod-deprecated/types/-private.js +94 -2
- package/dist/unpkg/prod-deprecated/types/-private.js.map +1 -0
- package/dist/unpkg/prod-deprecated/types/identifier.js +34 -5
- package/dist/unpkg/prod-deprecated/types/identifier.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/record.js +26 -2
- package/dist/unpkg/prod-deprecated/types/record.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/request.js +82 -3
- package/dist/unpkg/prod-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/runtime.js +9 -6
- package/dist/unpkg/prod-deprecated/types/runtime.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.js +133 -5
- package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/symbols.js +16 -3
- package/dist/unpkg/prod-deprecated/types/symbols.js.map +1 -1
- package/dist/unpkg/prod-deprecated/utils/string.js +1 -2
- package/dist/utils/string.d.ts +0 -2
- package/dist/utils/string.d.ts.map +1 -1
- package/dist/utils/string.js +1 -2
- package/dist/{utils-BtURiy8l.d.ts → utils-BVKvrO6e.d.ts} +8 -3
- package/dist/utils-BVKvrO6e.d.ts.map +1 -0
- package/logos/README.md +1 -1
- package/package.json +9 -9
- package/dist/-private-CArItnX4.js.map +0 -1
- package/dist/-private-CWh7qdp_.js +0 -120
- package/dist/-private-CWh7qdp_.js.map +0 -1
- package/dist/aliases-BWYW5EhX.d.ts.map +0 -1
- package/dist/change-C7kqv2kW.d.ts.map +0 -1
- package/dist/concepts-DFldVwEM.d.ts.map +0 -1
- package/dist/configure-B_F639tN.d.ts.map +0 -1
- package/dist/document-Ca4ZZBd9.d.ts.map +0 -1
- package/dist/error-0uD6GkNX.d.ts.map +0 -1
- package/dist/fields-FM7peCiM.d.ts.map +0 -1
- package/dist/graph-DLqYXP2z.d.ts.map +0 -1
- package/dist/identifier-DQnqOSJK.d.ts.map +0 -1
- package/dist/internal-BrqYbG_y.d.ts.map +0 -1
- package/dist/json-api-raw-C5APJHHB.d.ts.map +0 -1
- package/dist/mutations-CqtoGB4t.d.ts.map +0 -1
- package/dist/operations-D1qA6r0_.d.ts.map +0 -1
- package/dist/params-DrEx3bf8.d.ts.map +0 -1
- package/dist/raw-D5hnjiq7.d.ts.map +0 -1
- package/dist/record-D3QQcaIR.d.ts.map +0 -1
- package/dist/relationship-CmHzMPKf.d.ts.map +0 -1
- package/dist/request-o_qGAoFV.js.map +0 -1
- package/dist/src-C-xK8l3f.js.map +0 -1
- package/dist/store-DNF9Rgoh.js.map +0 -1
- package/dist/symbols-DjRDCeX0.d.ts.map +0 -1
- package/dist/types/schema/fields.type-test.d.ts +0 -1
- package/dist/types/schema/fields.type-test.js +0 -79
- package/dist/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/dev/-private-BP52H-vC.js +0 -111
- package/dist/unpkg/dev/-private-BP52H-vC.js.map +0 -1
- package/dist/unpkg/dev/-private-CM5N2rtZ.js.map +0 -1
- package/dist/unpkg/dev/request-DXPAtRhE.js.map +0 -1
- package/dist/unpkg/dev/src-kn6qfEPI.js.map +0 -1
- package/dist/unpkg/dev/store-C0p6sclI.js.map +0 -1
- package/dist/unpkg/dev/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/dev/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/dev-deprecated/-private-BP52H-vC.js +0 -111
- package/dist/unpkg/dev-deprecated/-private-BP52H-vC.js.map +0 -1
- package/dist/unpkg/dev-deprecated/-private-CM5N2rtZ.js.map +0 -1
- package/dist/unpkg/dev-deprecated/request-DXPAtRhE.js.map +0 -1
- package/dist/unpkg/dev-deprecated/src-DXwW-R57.js.map +0 -1
- package/dist/unpkg/dev-deprecated/store-D-z_1Jxe.js.map +0 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/prod/-private-207KndDu.js +0 -22
- package/dist/unpkg/prod/-private-CdDed4yB.js.map +0 -1
- package/dist/unpkg/prod/-private-JmhZBKGb.js +0 -99
- package/dist/unpkg/prod/-private-JmhZBKGb.js.map +0 -1
- package/dist/unpkg/prod/request-C7WZg-zk.js.map +0 -1
- package/dist/unpkg/prod/src-B-GfFQcx.js.map +0 -1
- package/dist/unpkg/prod/store-BWhmb7Ob.js.map +0 -1
- package/dist/unpkg/prod/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/prod/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/prod-deprecated/-private-CdDed4yB.js.map +0 -1
- package/dist/unpkg/prod-deprecated/-private-JmhZBKGb.js +0 -99
- package/dist/unpkg/prod-deprecated/-private-JmhZBKGb.js.map +0 -1
- package/dist/unpkg/prod-deprecated/request-C7WZg-zk.js.map +0 -1
- package/dist/unpkg/prod-deprecated/src-Bp8ZJctZ.js.map +0 -1
- package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js.map +0 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js.map +0 -1
- package/dist/utils-BtURiy8l.d.ts.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as setIdentifierGenerationMethod, M as setIdentifierUpdateMethod, N as setKeyInfoForResource, S as recordIdentifierFor, h as Store, j as setIdentifierResetMethod, k as setIdentifierForgetMethod, m as CacheHandler, n as RequestManager, r as Fetch, t as useRecommendedStore, w as storeFor } from "./src-jHpowq3S.js";
|
|
2
2
|
|
|
3
3
|
export { CacheHandler, Fetch, RequestManager, Store, recordIdentifierFor as cacheKeyFor, recordIdentifierFor, setIdentifierForgetMethod, setIdentifierGenerationMethod, setIdentifierResetMethod, setIdentifierUpdateMethod, setKeyInfoForResource, storeFor, useRecommendedStore };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as getRequestState, t as getPromiseState, u as createRequestSubscription } from "./-private-
|
|
2
|
-
import { t as Checkout } from "./-private-
|
|
3
|
-
import { a as fromIdentity, c as instantiateRecord, d as commit, i as SchemaService, l as teardownRecord, o as registerDerivations, s as withDefaults, u as checkout } from "./src-
|
|
1
|
+
import { d as getRequestState, t as getPromiseState, u as createRequestSubscription } from "./-private-B4pCmkq-.js";
|
|
2
|
+
import { t as Checkout } from "./-private-BiuED7nc.js";
|
|
3
|
+
import { a as fromIdentity, c as instantiateRecord, d as commit, i as SchemaService, l as teardownRecord, o as registerDerivations, s as withDefaults, u as checkout } from "./src-jHpowq3S.js";
|
|
4
4
|
|
|
5
5
|
export { Checkout, SchemaService, checkout, commit, createRequestSubscription, fromIdentity, getPromiseState, getRequestState, instantiateRecord, registerDerivations, teardownRecord, withDefaults };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getOrSetGlobal, getOrSetUniversal } from "./types/-private.js";
|
|
2
2
|
import { IS_FUTURE, STRUCTURED, SkipCache } from "./types/request.js";
|
|
3
3
|
import { CACHE_OWNER } from "./types/identifier.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/request/-private/debug.ts
|
|
6
6
|
const BODY_TYPES = {
|
|
7
7
|
type: "string",
|
|
8
8
|
klass: [
|
|
@@ -249,8 +249,7 @@ function assertValidRequest(request, isTopLevel) {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
//#region src/request/-private/context.ts
|
|
252
|
+
// src/request/-private/context.ts
|
|
254
253
|
function upgradeHeaders(headers) {
|
|
255
254
|
headers.clone = () => {
|
|
256
255
|
return new Headers(headers);
|
|
@@ -357,6 +356,8 @@ var ContextOwner = class {
|
|
|
357
356
|
* {@link StructuredDataDocument} that will ultimately be returned by the
|
|
358
357
|
* {@link RequestManager}.
|
|
359
358
|
*
|
|
359
|
+
* @summary The per-request object passed to each handler, exposing the immutable request plus methods to
|
|
360
|
+
* set the response, stream, and request key.
|
|
360
361
|
* @public
|
|
361
362
|
*/
|
|
362
363
|
var Context = class {
|
|
@@ -430,14 +431,15 @@ var Context = class {
|
|
|
430
431
|
}
|
|
431
432
|
};
|
|
432
433
|
|
|
433
|
-
|
|
434
|
-
//#region src/request/-private/promise-cache.ts
|
|
434
|
+
// src/request/-private/promise-cache.ts
|
|
435
435
|
/**
|
|
436
436
|
* The minimal, structural subset of the `Promise` interface required to be
|
|
437
437
|
* cached and inspected by {@link setPromiseResult} / {@link getPromiseResult}
|
|
438
438
|
* (and by `getPromiseState`). Anything that is at least `then`/`catch`/`finally`
|
|
439
439
|
* "shaped" (including a real `Promise` or {@link Future}) satisfies this.
|
|
440
440
|
*
|
|
441
|
+
* @summary Any promise-like value with `then`, `catch`, and `finally`, as accepted by the promise-result
|
|
442
|
+
* cache and `getPromiseState`.
|
|
441
443
|
* @public
|
|
442
444
|
*/
|
|
443
445
|
const PromiseCache = getOrSetUniversal("PromiseCache", /* @__PURE__ */ new WeakMap());
|
|
@@ -456,6 +458,8 @@ function getRequestResult(requestId) {
|
|
|
456
458
|
* outcome can be synchronously read later via {@link getPromiseResult},
|
|
457
459
|
* without needing to await it again.
|
|
458
460
|
*
|
|
461
|
+
* @summary Records a promise's settled value or error so it can later be read synchronously with
|
|
462
|
+
* `getPromiseResult`.
|
|
459
463
|
* @public
|
|
460
464
|
*/
|
|
461
465
|
function setPromiseResult(promise, result) {
|
|
@@ -465,14 +469,15 @@ function setPromiseResult(promise, result) {
|
|
|
465
469
|
* Synchronously read the settled result (or error) previously recorded for
|
|
466
470
|
* a promise-like value via {@link setPromiseResult}, if any.
|
|
467
471
|
*
|
|
472
|
+
* @summary Synchronously returns the settled value or error previously recorded for a promise, or
|
|
473
|
+
* `undefined` if none was recorded.
|
|
468
474
|
* @public
|
|
469
475
|
*/
|
|
470
476
|
function getPromiseResult(promise) {
|
|
471
477
|
return PromiseCache.get(promise);
|
|
472
478
|
}
|
|
473
479
|
|
|
474
|
-
|
|
475
|
-
//#region src/request/-private/utils.ts
|
|
480
|
+
// src/request/-private/utils.ts
|
|
476
481
|
const IS_CACHE_HANDLER = getOrSetGlobal("IS_CACHE_HANDLER", Symbol("IS_CACHE_HANDLER"));
|
|
477
482
|
/**
|
|
478
483
|
* A ponyfill for the global {@link DOMException} constructor.
|
|
@@ -545,6 +550,9 @@ function ensureDoc(owner, content, isError) {
|
|
|
545
550
|
* Else it extends from {@link AggregateError} if the
|
|
546
551
|
* response includes an array of errors, falling back
|
|
547
552
|
* to {@link Error} as its base.
|
|
553
|
+
*
|
|
554
|
+
* @summary The shape of errors thrown by the Fetch handler for failed, aborted, or network-errored
|
|
555
|
+
* requests, carrying the HTTP `status` and `statusText`.
|
|
548
556
|
*/
|
|
549
557
|
function enhanceReason(reason) {
|
|
550
558
|
const error = new DOMError(reason || "The user aborted a request.", "AbortError");
|
|
@@ -633,8 +641,7 @@ function executeNextHandler(wares, request, i, god) {
|
|
|
633
641
|
return handleOutcome(owner, outcome, future);
|
|
634
642
|
}
|
|
635
643
|
|
|
636
|
-
|
|
637
|
-
//#region src/request/-private/future.ts
|
|
644
|
+
// src/request/-private/future.ts
|
|
638
645
|
function isFuture(maybe) {
|
|
639
646
|
return Boolean(maybe && maybe instanceof Promise && maybe[IS_FUTURE] === true);
|
|
640
647
|
}
|
|
@@ -643,6 +650,8 @@ function isFuture(maybe) {
|
|
|
643
650
|
* callbacks that settle it, so the promise can be handed out before the
|
|
644
651
|
* work that will settle it has started.
|
|
645
652
|
*
|
|
653
|
+
* @summary Creates a promise together with its `resolve` and `reject` callbacks so it can be handed out
|
|
654
|
+
* before it is settled.
|
|
646
655
|
* @public
|
|
647
656
|
*/
|
|
648
657
|
function createDeferred() {
|
|
@@ -704,23 +713,31 @@ function createFuture(owner) {
|
|
|
704
713
|
return deferred;
|
|
705
714
|
}
|
|
706
715
|
|
|
707
|
-
|
|
708
|
-
//#region src/request.ts
|
|
716
|
+
// src/request.ts
|
|
709
717
|
/**
|
|
710
718
|
* Brands the supplied object with the supplied response type.
|
|
711
719
|
*
|
|
720
|
+
* Call it inside a [builder](/guides/the-manual/requests/builders), so the type is part of
|
|
721
|
+
* the builder's contract and every caller gets it through inference. Calling it inline
|
|
722
|
+
* where the request is made is a cast. The [Typing Requests](/guides/the-manual/requests/typing-requests)
|
|
723
|
+
* guide shows how to use it.
|
|
724
|
+
*
|
|
712
725
|
* ```ts
|
|
713
726
|
* import type { ReactiveDataDocument } from '@warp-drive-mirror/core/reactive';
|
|
714
727
|
* import { withResponseType } from '@warp-drive-mirror/core/request';
|
|
715
728
|
* import type { User } from '#/data/user.ts'
|
|
716
729
|
*
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
*
|
|
730
|
+
* export function getUser(id: string) {
|
|
731
|
+
* return withResponseType<ReactiveDataDocument<User>>({ url: `/users/${id}` });
|
|
732
|
+
* }
|
|
733
|
+
*
|
|
734
|
+
* const result = await store.request(getUser('1'));
|
|
720
735
|
*
|
|
721
736
|
* result.content.data; // will have type User
|
|
722
737
|
* ```
|
|
723
738
|
*
|
|
739
|
+
* @summary Types a request object with the response type that `store.request` or `RequestManager.request`
|
|
740
|
+
* should resolve with; no runtime effect.
|
|
724
741
|
*/
|
|
725
742
|
function withResponseType(obj) {
|
|
726
743
|
return obj;
|
|
@@ -730,13 +747,20 @@ function withResponseType(obj) {
|
|
|
730
747
|
* wrapped in {@link ReactiveDataDocument}. This is a convenience for
|
|
731
748
|
* the common case of using {@link withResponseType} with `ReactiveDataDocument`.
|
|
732
749
|
*
|
|
750
|
+
* Like `withResponseType`, call it inside a [builder](/guides/the-manual/requests/builders)
|
|
751
|
+
* rather than where the request is made. The
|
|
752
|
+
* [Typing Requests](/guides/the-manual/requests/typing-requests#typing-reactive-responses)
|
|
753
|
+
* guide shows how to use it.
|
|
754
|
+
*
|
|
733
755
|
* ```ts
|
|
734
756
|
* import { withReactiveResponse } from '@warp-drive-mirror/core/request';
|
|
735
757
|
* import type { User } from '#/data/user.ts'
|
|
736
758
|
*
|
|
737
|
-
*
|
|
738
|
-
* withReactiveResponse<User>({ url:
|
|
739
|
-
*
|
|
759
|
+
* export function getUser(id: string) {
|
|
760
|
+
* return withReactiveResponse<User>({ url: `/users/${id}` });
|
|
761
|
+
* }
|
|
762
|
+
*
|
|
763
|
+
* const result = await store.request(getUser('1'));
|
|
740
764
|
*
|
|
741
765
|
* result.content.data; // will have type User
|
|
742
766
|
* ```
|
|
@@ -746,23 +770,28 @@ function withResponseType(obj) {
|
|
|
746
770
|
* ```ts
|
|
747
771
|
* type PageMeta = { page: { limit: number; offset: number }; total?: number };
|
|
748
772
|
*
|
|
749
|
-
*
|
|
750
|
-
* withReactiveResponse<User[], PageMeta>({ url: '/users' })
|
|
751
|
-
*
|
|
773
|
+
* export function getUsers() {
|
|
774
|
+
* return withReactiveResponse<User[], PageMeta>({ url: '/users' });
|
|
775
|
+
* }
|
|
776
|
+
*
|
|
777
|
+
* const result = await store.request(getUsers());
|
|
752
778
|
*
|
|
753
779
|
* result.content.meta?.total; // number | undefined
|
|
754
780
|
* ```
|
|
755
781
|
*
|
|
782
|
+
* @summary Types a request object so its response resolves as a `ReactiveDataDocument` of the given
|
|
783
|
+
* data and meta types; no runtime effect.
|
|
756
784
|
* @public
|
|
757
785
|
*/
|
|
758
786
|
function withReactiveResponse(obj) {
|
|
759
787
|
return obj;
|
|
760
788
|
}
|
|
761
789
|
/**
|
|
790
|
+
* @summary Deprecated alias for `withResponseType`, which types a request object with its expected
|
|
791
|
+
* response type.
|
|
762
792
|
* @deprecated use {@link withResponseType} instead
|
|
763
793
|
*/
|
|
764
794
|
const withBrand = withResponseType;
|
|
765
795
|
|
|
766
|
-
//#endregion
|
|
767
796
|
export { upgradePromise as a, executeNextHandler as c, getRequestResult as d, setPromiseResult as f, createDeferred as i, clearRequestResult as l, assertValidRequest as m, withReactiveResponse as n, DOMError as o, cloneResponseProperties as p, withResponseType as r, IS_CACHE_HANDLER as s, withBrand as t, getPromiseResult as u };
|
|
768
|
-
//# sourceMappingURL=request-
|
|
797
|
+
//# sourceMappingURL=request-oWpijCPQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-oWpijCPQ.js","names":["getOrSetGlobal","CACHE_OWNER","Context","upgradeHeaders","BODY_TYPES","type","klass","ValidKeys","Map","IS_FROZEN","Symbol","IS_COLLECTION","for","freezeHeaders","headers","delete","set","append","Error","deepFreeze","value","_type","_niceType","niceTypeOf","arr","map","Object","freeze","keys","forEach","key","isMaybeContext","request","length","v","Array","isArray","Date","Set","ReadableStream","WritableStream","TransformStream","Headers","constructor","name","validateKey","errors","schema","get","IgnoredKeys","has","push","includes","join","JSON","stringify","e","message","k","String","assertValidRequest","isTopLevel","validationErrors","isLegacyRequest","Boolean","url","error","SkipCache","deepFreeze","createDeferred","upgradeHeaders","headers","clone","Headers","toJSON","Array","from","cloneResponseProperties","response","ok","redirected","status","statusText","type","url","ContextOwner","hasSetStream","hasSetResponse","hasSubscribers","stream","nextCalled","constructor","request","god","isRoot","requestId","id","controller","promise","sizeHint","signal","addEventListener","abort","reason","enhancedRequest","Object","assign","cacheOptions","then","hasRequestedStream","getResponse","getStream","hint","get","parseInt","setStream","Promise","resolve","resolveStream","setResponse","Error","Response","responseData","Context","owner","isCacheHandler","___owner","_isCacheHandler","_finalized","setIdentifier","identifier","test","_finalize","getOrSetUniversal","PromiseCache","WeakMap","RequestMap","Map","setRequestResult","requestId","result","set","clearRequestResult","delete","getRequestResult","get","setPromiseResult","promise","getPromiseResult","getOrSetGlobal","STRUCTURED","Context","ContextOwner","assertValidRequest","createFuture","isFuture","setRequestResult","IS_CACHE_HANDLER","Symbol","DOMError","DOMException","Error","curryFuture","owner","inbound","outbound","setStream","getStream","then","doc","document","request","response","content","resolve","error","isDoc","god","stream","e","Object","assign","message","getResponse","reject","promise","ensureDoc","isError","enhanceReason","reason","name","handleOutcome","controller","signal","aborted","isCacheHandler","handler","index","Boolean","executeNextHandler","wares","i","length","next","r","nextCalled","_isCacheHandler","context","outcome","_finalize","Promise","requestId","result","console","log","undefined","future","IS_FUTURE","enhanceReason","isFuture","maybe","Boolean","Promise","createDeferred","resolve","reject","promise","res","rej","upgradePromise","future","getStream","abort","onFinalize","id","lid","requester","toJSON","createFuture","owner","deferred","cbs","finally","resolveStream","forEach","cb","fn","push","reason","requestId","god","identifier","createDeferred","setPromiseResult","getPromiseResult","withResponseType","obj","withReactiveResponse","withBrand"],"sources":["../../../src/request/-private/debug.ts","../../../src/request/-private/context.ts","../../../src/request/-private/promise-cache.ts","../../../src/request/-private/utils.ts","../../../src/request/-private/future.ts","../../../src/request.ts"],"sourcesContent":["import { DEBUG } from '@warp-drive-mirror/core/build-config/env';\n\nimport { getOrSetGlobal } from '../../types/-private';\nimport { CACHE_OWNER } from '../../types/identifier';\nimport type { ImmutableHeaders, RequestInfo } from '../../types/request';\nimport { Context, upgradeHeaders } from './context';\n\nconst BODY_TYPES = {\n type: 'string',\n klass: ['Blob', 'ArrayBuffer', 'TypedArray', 'DataView', 'FormData', 'URLSearchParams', 'ReadableStream'],\n};\nconst ValidKeys = new Map<string, string | string[] | typeof BODY_TYPES>([\n ['duplex', ['half']],\n ['records', 'array'],\n ['data', 'json'],\n ['body', BODY_TYPES],\n ['disableTestWaiter', 'boolean'],\n ['options', 'object'],\n ['cacheOptions', 'object'],\n ['priority', ['high', 'low', 'auto']],\n ['op', 'string'],\n ['store', 'object'],\n ['url', 'string'],\n ['cache', ['default', 'force-cache', 'no-cache', 'no-store', 'only-if-cached', 'reload']],\n ['credentials', ['include', 'omit', 'same-origin']],\n [\n 'destination',\n [\n '',\n 'object',\n 'audio',\n 'audioworklet',\n 'document',\n 'embed',\n 'font',\n 'frame',\n 'iframe',\n 'image',\n 'manifest',\n 'paintworklet',\n 'report',\n 'script',\n 'sharedworker',\n 'style',\n 'track',\n 'video',\n 'worker',\n 'xslt',\n ],\n ],\n ['headers', 'headers'],\n ['integrity', 'string'],\n ['keepalive', 'boolean'],\n ['method', ['QUERY', 'GET', 'PUT', 'PATCH', 'DELETE', 'POST', 'OPTIONS', 'HEAD', 'CONNECT', 'TRACE']],\n ['mode', ['same-origin', 'cors', 'navigate', 'no-cors']],\n ['redirect', ['error', 'follow', 'manual']],\n ['referrer', 'string'],\n ['signal', 'AbortSignal'],\n ['controller', 'AbortController'],\n [\n 'referrerPolicy',\n [\n '',\n 'same-origin',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ],\n ],\n]);\n\nconst IS_FROZEN = getOrSetGlobal('IS_FROZEN', Symbol('FROZEN'));\nconst IS_COLLECTION = getOrSetGlobal('IS_COLLECTION', Symbol.for('Collection'));\n\nfunction freezeHeaders(headers: Headers | ImmutableHeaders): ImmutableHeaders {\n headers.delete =\n headers.set =\n headers.append =\n () => {\n throw new Error(`Cannot Mutate Immutatable Headers, use headers.clone to get a copy`);\n };\n upgradeHeaders(headers);\n return headers as ImmutableHeaders;\n}\n\nexport function deepFreeze<T = unknown>(value: T): T {\n if (value && (value as { [IS_FROZEN]?: true })[IS_FROZEN]) {\n return value;\n }\n const _type = typeof value;\n switch (_type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'undefined':\n case 'bigint':\n return value;\n case 'function':\n throw new Error(`Cannot deep-freeze a function`);\n case 'object': {\n const _niceType = niceTypeOf(value);\n switch (_niceType) {\n case 'array': {\n if ((value as unknown[] & { [IS_COLLECTION]?: true })[IS_COLLECTION]) {\n return value;\n }\n const arr = (value as unknown[]).map(deepFreeze);\n arr[IS_FROZEN as unknown as number] = true;\n return Object.freeze(arr) as T;\n }\n case 'null':\n return value;\n case 'object':\n Object.keys(value as Record<string, unknown>).forEach((key) => {\n try {\n (value as Record<string, unknown>)[key] = deepFreeze((value as Record<string, unknown>)[key]);\n } catch {\n // continue\n }\n });\n (value as Record<string | symbol, unknown>)[IS_FROZEN] = true;\n return Object.freeze(value);\n case 'headers':\n return freezeHeaders(value as Headers) as T;\n case 'Collection':\n case 'Store':\n case 'AbortSignal':\n case 'identifier':\n return value;\n case 'date':\n case 'map':\n case 'set':\n case 'error':\n case 'stream':\n default:\n // console.log(`Cannot deep-freeze ${_niceType}`);\n return value;\n }\n }\n }\n}\n\nfunction isMaybeContext(request: unknown) {\n if (request && typeof request === 'object') {\n const keys = Object.keys(request);\n if (keys.length === 1 && keys[0] === 'request') {\n return true;\n }\n }\n return false;\n}\n\nfunction niceTypeOf(v: unknown) {\n if (v === null) {\n return 'null';\n }\n if (typeof v === 'string') {\n return v ? 'non-empty-string' : 'empty-string';\n }\n if (!v) {\n return typeof v;\n }\n if (Array.isArray(v)) {\n return 'array';\n }\n if (v instanceof Date) {\n return 'date';\n }\n if (v instanceof Map) {\n return 'map';\n }\n if (v instanceof Set) {\n return 'set';\n }\n if (v instanceof Error) {\n return 'error';\n }\n if (v instanceof ReadableStream || v instanceof WritableStream || v instanceof TransformStream) {\n return 'stream';\n }\n if (v instanceof Headers) {\n return 'headers';\n }\n // ResourceKey/RequestKey identifiers are owned by the store's identity cache and must\n // remain mutable (e.g. `.id` is assigned once the server confirms it); deep-freezing a\n // request's `record`/`data` reference to one would freeze the store's live identifier,\n // not a copy of it.\n if (typeof v === 'object' && CACHE_OWNER in v) {\n return 'identifier';\n }\n if (typeof v === 'object' && v.constructor && v.constructor.name !== 'Object') {\n return v.constructor.name;\n }\n return typeof v;\n}\n\nfunction validateKey(key: string, value: unknown, errors: string[]) {\n const schema = ValidKeys.get(key);\n if (!schema && !IgnoredKeys.has(key)) {\n errors.push(`InvalidKey: '${key}'`);\n return;\n }\n if (schema) {\n if (schema === BODY_TYPES) {\n if (typeof value === 'string' || value instanceof ReadableStream) {\n return;\n }\n const type = niceTypeOf(value);\n if (schema.klass.includes(type)) {\n return;\n }\n errors.push(\n `InvalidValue: key 'body' should be a string or one of '${schema.klass.join(\"', '\")}', received ${\n '<a value of type ' + niceTypeOf(value) + '>'\n }`\n );\n return;\n }\n if (Array.isArray(schema)) {\n if (!schema.includes(value as string)) {\n errors.push(\n `InvalidValue: key ${key} should be one of '${schema.join(\"', '\")}', received ${\n typeof value === 'string' ? value : '<a value of type ' + niceTypeOf(value) + '>'\n }`\n );\n }\n return;\n } else if (schema === 'json') {\n try {\n JSON.stringify(value);\n } catch (e) {\n errors.push(\n `InvalidValue: key ${key} should be a JSON serializable value, but failed to serialize with Error - ${\n (e as Error).message\n }`\n );\n }\n return;\n } else if (schema === 'headers') {\n if (!(value instanceof Headers)) {\n errors.push(`InvalidValue: key ${key} should be an instance of Headers, received ${niceTypeOf(value)}`);\n }\n return;\n } else if (schema === 'record') {\n const _type = typeof value;\n // record must extend plain object or Object.create(null)\n if (!value || _type !== 'object' || (value.constructor && value.constructor !== Object)) {\n errors.push(\n `InvalidValue: key ${key} should be a dictionary of string keys to string values, received ${niceTypeOf(\n value\n )}`\n );\n return;\n }\n const keys = Object.keys(value);\n keys.forEach((k) => {\n const v: unknown = (value as Record<string, unknown>)[k];\n if (typeof k !== 'string') {\n errors.push(`\\tThe key ${String(k)} on ${key} should be a string key`);\n } else if (typeof v !== 'string') {\n errors.push(`\\tThe value of ${key}.${k} should be a string not ${niceTypeOf(v)}`);\n }\n });\n return;\n } else if (schema === 'string') {\n if (typeof value !== 'string' || value.length === 0) {\n errors.push(\n `InvalidValue: key ${key} should be a non-empty string, received ${\n typeof value === 'string' ? \"''\" : typeof value\n }`\n );\n }\n return;\n } else if (schema === 'object') {\n if (!value || Array.isArray(value) || typeof value !== 'object') {\n errors.push(`InvalidValue: key ${key} should be an object`);\n }\n return;\n } else if (schema === 'boolean') {\n if (typeof value !== 'boolean') {\n errors.push(`InvalidValue: key ${key} should be a boolean, received ${typeof value}`);\n }\n return;\n } else if (schema === 'array') {\n if (!Array.isArray(value)) {\n errors.push(`InvalidValue: key ${key} should be an array, received ${typeof value}`);\n }\n return;\n }\n }\n}\n\nconst IgnoredKeys = new Set<string>([]);\n\nexport function assertValidRequest(\n request: RequestInfo | Context,\n isTopLevel: boolean\n): asserts request is RequestInfo {\n if (DEBUG) {\n // handle basic shape\n if (!request) {\n throw new Error(\n `Expected ${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>) to be called with a request, but none was provided.`\n );\n }\n if (Array.isArray(request) || typeof request !== 'object') {\n throw new Error(\n `The \\`request\\` passed to \\`${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>)\\` should be an object, received \\`${niceTypeOf(request)}\\``\n );\n }\n if (Object.keys(request).length === 0) {\n throw new Error(\n `The \\`request\\` passed to \\`${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>)\\` was empty (\\`{}\\`). Requests need at least one valid key.`\n );\n }\n\n // handle accidentally passing context entirely\n if (request instanceof Context) {\n throw new Error(\n `Expected a request passed to \\`${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>)\\` but received the previous handler's context instead`\n );\n }\n // handle Object.assign({}, context);\n if (isMaybeContext(request)) {\n throw new Error(\n `Expected a request passed to \\`${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>)\\` but received an object with a request key instead.`\n );\n }\n\n // handle schema\n const keys = Object.keys(request) as Array<keyof RequestInfo>;\n const validationErrors: string[] = [];\n const isLegacyRequest = Boolean('op' in request && !request.url);\n keys.forEach((key) => {\n if (isLegacyRequest && key === 'data') {\n return;\n }\n validateKey(key, request[key], validationErrors);\n });\n if (validationErrors.length) {\n const error: Error & { errors: string[] } = new Error(\n `Invalid Request passed to \\`${\n isTopLevel ? 'RequestManager.request' : 'next'\n }(<request>)\\`.\\n\\nThe following issues were found:\\n\\n\\t${validationErrors.join('\\n\\t')}`\n ) as Error & { errors: string[] };\n error.errors = validationErrors;\n throw error;\n }\n }\n}\n","import { DEBUG } from '@warp-drive-mirror/core/build-config/env';\nimport { assert } from '@warp-drive-mirror/core/build-config/macros';\n\nimport type { RequestKey } from '../../types/identifier';\nimport type { ImmutableHeaders, ImmutableRequestInfo, RequestInfo, ResponseInfo } from '../../types/request';\nimport { SkipCache } from '../../types/request';\nimport { deepFreeze } from './debug';\nimport { createDeferred } from './future';\nimport type { DeferredStream, GodContext } from './types';\n\nexport function upgradeHeaders(headers: Headers | ImmutableHeaders): ImmutableHeaders {\n (headers as ImmutableHeaders).clone = () => {\n return new Headers(headers);\n };\n (headers as ImmutableHeaders).toJSON = () => {\n return Array.from(headers as unknown as Iterable<[string, string]>);\n };\n return headers as ImmutableHeaders;\n}\n\nexport function cloneResponseProperties(response: Response): ResponseInfo {\n const { headers, ok, redirected, status, statusText, type, url } = response;\n upgradeHeaders(headers);\n return {\n headers: headers as ImmutableHeaders,\n ok,\n redirected,\n status,\n statusText,\n type,\n url,\n };\n}\n\nexport class ContextOwner {\n hasSetStream = false;\n hasSetResponse = false;\n hasSubscribers = false;\n stream: DeferredStream = createDeferred<ReadableStream | null>();\n response: ResponseInfo | null = null;\n declare request: ImmutableRequestInfo;\n declare enhancedRequest: ImmutableRequestInfo;\n nextCalled = 0;\n declare god: GodContext;\n declare controller: AbortController;\n declare requestId: number;\n declare isRoot: boolean;\n\n constructor(request: RequestInfo, god: GodContext, isRoot = false) {\n this.isRoot = isRoot;\n this.requestId = god.id;\n this.controller = request.controller || god.controller;\n this.stream.promise.sizeHint = 0;\n\n if (request.controller) {\n if (request.controller !== god.controller) {\n god.controller.signal.addEventListener('abort', () => {\n this.controller.abort(god.controller.signal.reason);\n });\n }\n delete request.controller;\n }\n let enhancedRequest: ImmutableRequestInfo = Object.assign(\n { signal: this.controller.signal },\n request\n ) as ImmutableRequestInfo;\n if (DEBUG) {\n if (!request?.cacheOptions?.[SkipCache]) {\n request = deepFreeze(request);\n enhancedRequest = deepFreeze(enhancedRequest);\n }\n } else {\n if (request.headers) {\n upgradeHeaders(request.headers);\n }\n }\n this.enhancedRequest = enhancedRequest;\n this.request = request as ImmutableRequestInfo;\n this.god = god;\n this.stream.promise = this.stream.promise.then((stream: ReadableStream | null) => {\n if (this.god.stream === stream && this.hasSubscribers) {\n this.god.stream = null;\n }\n return stream;\n });\n }\n\n get hasRequestedStream(): boolean {\n return this.god.hasRequestedStream;\n }\n\n getResponse(): ResponseInfo | null {\n if (this.hasSetResponse) {\n return this.response;\n }\n if (this.nextCalled === 1) {\n return this.god.response;\n }\n return null;\n }\n getStream(): Promise<ReadableStream | null> {\n if (this.isRoot) {\n this.god.hasRequestedStream = true;\n }\n if (!this.hasSetResponse) {\n const hint = this.god.response?.headers?.get('content-length');\n this.stream.promise.sizeHint = hint ? parseInt(hint, 10) : 0;\n }\n this.hasSubscribers = true;\n return this.stream.promise;\n }\n abort(reason: DOMException): void {\n this.controller.abort(reason);\n }\n\n setStream(stream: ReadableStream | Promise<ReadableStream | null> | null): void {\n if (!this.hasSetStream) {\n this.hasSetStream = true;\n\n if (!(stream instanceof Promise)) {\n this.god.stream = stream;\n }\n // @ts-expect-error\n this.stream.resolve(stream);\n }\n }\n\n resolveStream(): void {\n this.setStream(this.nextCalled === 1 ? this.god.stream : null);\n }\n\n setResponse(response: ResponseInfo | Response | null): void {\n if (this.hasSetResponse) {\n if (DEBUG) {\n throw new Error(`Cannot setResponse when a response has already been set`);\n }\n return;\n }\n this.hasSetResponse = true;\n if (response instanceof Response) {\n // TODO potentially avoid cloning in prod\n let responseData = cloneResponseProperties(response);\n\n if (DEBUG) {\n responseData = deepFreeze(responseData);\n }\n this.response = responseData;\n this.god.response = responseData;\n const sizeHint = response.headers?.get('content-length');\n this.stream.promise.sizeHint = sizeHint ? parseInt(sizeHint, 10) : 0;\n } else {\n this.response = response;\n this.god.response = response;\n }\n }\n}\n\n/**\n * The context object given to each {@link Handler} (or {@link CacheHandler})\n * as it processes a request. It exposes the (immutable, enhanced) request\n * along with the methods a handler uses to build up the {@link Future} and\n * {@link StructuredDataDocument} that will ultimately be returned by the\n * {@link RequestManager}.\n *\n * @summary The per-request object passed to each handler, exposing the immutable request plus methods to\n * set the response, stream, and request key.\n * @public\n */\nexport class Context {\n /** @internal */\n declare private ___owner: ContextOwner;\n /**\n * A readonly, immutable version of the request being handled, including\n * any defaults or enhancements applied by the {@link RequestManager}.\n *\n * @public\n */\n declare request: ImmutableRequestInfo;\n /**\n * The id of this request as assigned by the {@link RequestManager}. Not\n * unique across manager instances.\n *\n * @public\n */\n declare id: number;\n /** @internal */\n declare private _isCacheHandler: boolean;\n /** @internal */\n declare private _finalized: boolean;\n\n constructor(owner: ContextOwner, isCacheHandler: boolean) {\n this.id = owner.requestId;\n this.___owner = owner;\n this.request = owner.enhancedRequest;\n this._isCacheHandler = isCacheHandler;\n this._finalized = false;\n }\n /**\n * Set the response stream for this request. May be called at most once,\n * and may be called at any point up until the handler's `request` method\n * resolves.\n *\n * @public\n */\n setStream(stream: ReadableStream | Promise<ReadableStream | null>): void {\n this.___owner.setStream(stream);\n }\n /**\n * Set the {@link ResponseInfo} (or raw `Response`) associated with this\n * request. Used to populate the response information available on the\n * resulting {@link StructuredDataDocument}.\n *\n * @public\n */\n setResponse(response: ResponseInfo | Response | null): void {\n this.___owner.setResponse(response);\n }\n\n /**\n * Associate a {@link RequestKey} with this request. May only be called\n * synchronously from a {@link CacheHandler}.\n *\n * @public\n */\n setIdentifier(identifier: RequestKey): void {\n assert(\n `setIdentifier may only be used synchronously from a CacheHandler`,\n identifier && this._isCacheHandler && !this._finalized\n );\n this.___owner.god.identifier = identifier;\n }\n\n /**\n * Whether the application (or a downstream handler) has requested access\n * to the response stream via {@link Future.getStream}. Handlers can use\n * this to avoid the cost of streaming when nothing will consume it.\n *\n * @public\n */\n get hasRequestedStream(): boolean {\n return this.___owner.hasRequestedStream;\n }\n\n /** @private */\n _finalize(): void {\n this._finalized = true;\n }\n}\nexport type HandlerRequestContext = Context;\n","import { getOrSetUniversal } from '../../types/-private';\n\nexport type CacheResult<T = unknown, E = unknown> = { isError: true; result: E } | { isError: false; result: T };\n\n/**\n * The minimal, structural subset of the `Promise` interface required to be\n * cached and inspected by {@link setPromiseResult} / {@link getPromiseResult}\n * (and by `getPromiseState`). Anything that is at least `then`/`catch`/`finally`\n * \"shaped\" (including a real `Promise` or {@link Future}) satisfies this.\n *\n * @summary Any promise-like value with `then`, `catch`, and `finally`, as accepted by the promise-result\n * cache and `getPromiseState`.\n * @public\n */\nexport type Awaitable<T = unknown, E = unknown> = {\n /**\n * Registers fulfillment/rejection handlers, `Promise.prototype.then`-style.\n *\n * @public\n */\n then: (onFulfilled: (value: T) => unknown, onRejected: (reason: E) => unknown) => unknown;\n /**\n * Registers a rejection handler, `Promise.prototype.catch`-style.\n *\n * @public\n */\n catch: (onRejected: (reason: E) => unknown) => unknown;\n /**\n * Registers a handler run on settlement, `Promise.prototype.finally`-style.\n *\n * @public\n */\n finally: (onFinally: () => unknown) => unknown;\n};\n\nexport const PromiseCache: WeakMap<Awaitable, CacheResult> = getOrSetUniversal(\n 'PromiseCache',\n new WeakMap<Awaitable, CacheResult>()\n);\nexport const RequestMap: Map<number, CacheResult> = getOrSetUniversal('RequestMap', new Map<number, CacheResult>());\n\nexport function setRequestResult(requestId: number, result: CacheResult): void {\n RequestMap.set(requestId, result);\n}\nexport function clearRequestResult(requestId: number): void {\n RequestMap.delete(requestId);\n}\nexport function getRequestResult(requestId: number): CacheResult | undefined {\n return RequestMap.get(requestId);\n}\n\n/**\n * Cache the settled result (or error) of a promise-like value so that its\n * outcome can be synchronously read later via {@link getPromiseResult},\n * without needing to await it again.\n *\n * @summary Records a promise's settled value or error so it can later be read synchronously with\n * `getPromiseResult`.\n * @public\n */\nexport function setPromiseResult(promise: Promise<unknown> | Awaitable, result: CacheResult): void {\n PromiseCache.set(promise, result);\n}\n\n/**\n * Synchronously read the settled result (or error) previously recorded for\n * a promise-like value via {@link setPromiseResult}, if any.\n *\n * @summary Synchronously returns the settled value or error previously recorded for a promise, or\n * `undefined` if none was recorded.\n * @public\n */\nexport function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>): CacheResult<T, E> | undefined {\n return PromiseCache.get(promise) as CacheResult<T, E> | undefined;\n}\n","import { DEBUG } from '@warp-drive-mirror/core/build-config/env';\n\nimport { getOrSetGlobal } from '../../types/-private';\nimport type {\n RequestInfo,\n StructuredDataDocument,\n StructuredDocument,\n StructuredErrorDocument,\n} from '../../types/request';\nimport { STRUCTURED } from '../../types/request';\nimport { Context, ContextOwner } from './context';\nimport { assertValidRequest } from './debug';\n// oxlint-disable-next-line no-unused-vars\nimport type { Fetch } from './fetch.ts';\nimport { createFuture, isFuture } from './future';\nimport { setRequestResult } from './promise-cache';\nimport type { DeferredFuture, Future, GodContext, Handler } from './types';\n\nexport const IS_CACHE_HANDLER: '___(unique) Symbol(IS_CACHE_HANDLER)' = getOrSetGlobal(\n 'IS_CACHE_HANDLER',\n Symbol('IS_CACHE_HANDLER')\n);\n\n/**\n * A ponyfill for the global {@link DOMException} constructor.\n *\n * Some non-DOM environments (e.g. React Native, some Node/worker\n * environments) don't provide `DOMException` as a global, which would\n * otherwise throw a `ReferenceError` the first time any code referenced it\n * (for instance when classifying an abort/network error). `DOMError` falls\n * back to the global {@link Error} constructor in that case so callers can\n * uniformly use `new DOMError(...)` / `error instanceof DOMError` without\n * guarding for the global's presence themselves.\n *\n * @internal\n */\nexport const DOMError: typeof DOMException =\n typeof DOMException !== 'undefined' ? DOMException : (Error as unknown as typeof DOMException);\nexport function curryFuture<T>(owner: ContextOwner, inbound: Future<T>, outbound: DeferredFuture<T>): Future<T> {\n owner.setStream(inbound.getStream());\n\n inbound.then(\n (doc: StructuredDataDocument<T>) => {\n const document = {\n [STRUCTURED]: true as const,\n request: owner.request,\n response: doc.response,\n content: doc.content,\n };\n outbound.resolve(document);\n },\n (error: Error & StructuredErrorDocument) => {\n if (isDoc(error)) {\n owner.setStream(owner.god.stream);\n }\n if (!error || !(error instanceof Error)) {\n try {\n throw new Error(error ? error : `Request Rejected with an Unknown Error`);\n } catch (e: unknown) {\n if (error && typeof error === 'object') {\n Object.assign(e as Error, error);\n (e as Error & StructuredErrorDocument).message =\n (error as Error).message || `Request Rejected with an Unknown Error`;\n }\n error = e as Error & StructuredErrorDocument;\n }\n }\n\n error[STRUCTURED] = true;\n error.request = owner.request;\n error.response = owner.getResponse();\n error.error = error.error || error.message;\n\n outbound.reject(error);\n }\n );\n return outbound.promise;\n}\n\nfunction isDoc<T>(doc: T | StructuredDataDocument<T>): doc is StructuredDataDocument<T> {\n return doc && (doc as StructuredDataDocument<T>)[STRUCTURED] === true;\n}\n\nfunction ensureDoc<T>(owner: ContextOwner, content: T | Error, isError: boolean): StructuredDocument<T> {\n if (isDoc(content)) {\n return content as StructuredDocument<T>;\n }\n\n if (isError) {\n return {\n [STRUCTURED]: true,\n request: owner.request,\n response: owner.getResponse(),\n error: content as Error,\n } as StructuredErrorDocument<T>;\n }\n\n return {\n [STRUCTURED]: true,\n request: owner.request,\n response: owner.getResponse(),\n content: content as T,\n };\n}\n\n/**\n * Additional properties exposed on errors thrown by the\n * {@link Fetch | Fetch Handler}.\n *\n * In the case of an Abort or system/browser level issue,\n * this extends {@link DOMException}.\n *\n * Else it extends from {@link AggregateError} if the\n * response includes an array of errors, falling back\n * to {@link Error} as its base.\n *\n * @summary The shape of errors thrown by the Fetch handler for failed, aborted, or network-errored\n * requests, carrying the HTTP `status` and `statusText`.\n */\nexport interface FetchError extends DOMException {\n /**\n * Alias for {@link FetchError.status | status}.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)\n */\n code: number;\n /**\n * The name associated to the {@link FetchError.status | status code}.\n *\n * Typically this will be of the formula `StatusTextError` for instance\n * a 404 status with status text of `Not Found` would have the name\n * `NotFoundError`.\n */\n name: string;\n /**\n * The http status code associated to the returned error.\n *\n * Browser/System level network errors will often have an error code of `0` or `5`.\n * Aborted requests will have an error code of `20`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)\n */\n status: number;\n /**\n * The Status Text associated to the {@link FetchError.status | status code}\n * for the error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText)\n *\n */\n statusText: string;\n /**\n * A property signifying that an Error uses the {@link FetchError}\n * interface.\n */\n isRequestError: true;\n}\n\nexport function enhanceReason(reason?: string): DOMException {\n const error = new DOMError(reason || 'The user aborted a request.', 'AbortError');\n // `DOMError` may be the `Error` constructor as a fallback, whose\n // constructor doesn't accept a `name`, so set it explicitly in that case.\n // We can't unconditionally assign `error.name` here: when `DOMError` is\n // the real `DOMException`, `name` is already `'AbortError'` (set by its\n // constructor) *and* `DOMException.prototype.name` is a getter-only\n // accessor with no setter, so reassigning it throws a `TypeError` in\n // strict-mode JS (which is how our ES modules run) - even when assigning\n // the very same value it already holds.\n if (error.name !== 'AbortError') {\n (error as unknown as { name: string }).name = 'AbortError';\n }\n return error;\n}\n\nexport function handleOutcome<T>(\n owner: ContextOwner,\n inbound: Promise<T | StructuredDataDocument<T>>,\n outbound: DeferredFuture<T>\n): Future<T> {\n inbound.then(\n (content: T | StructuredDataDocument<T>) => {\n if (owner.controller.signal.aborted) {\n // the next function did not respect the signal, we handle it here\n outbound.reject(enhanceReason(owner.controller.signal.reason as string));\n return;\n }\n if (isDoc(content)) {\n owner.setStream(owner.god.stream);\n content = content.content;\n }\n const document = {\n [STRUCTURED]: true as const,\n request: owner.request,\n response: owner.getResponse(),\n content,\n };\n outbound.resolve(document);\n },\n (error: Error & StructuredErrorDocument) => {\n if (isDoc(error)) {\n owner.setStream(owner.god.stream);\n }\n if (!error || !(error instanceof Error)) {\n try {\n throw new Error(error ? error : `Request Rejected with an Unknown Error`);\n } catch (e: unknown) {\n if (error && typeof error === 'object') {\n Object.assign(e as Error, error);\n (e as Error & StructuredErrorDocument).message =\n (error as Error).message || `Request Rejected with an Unknown Error`;\n }\n error = e as Error & StructuredErrorDocument;\n }\n }\n\n error[STRUCTURED] = true;\n error.request = owner.request;\n error.response = owner.getResponse();\n error.error = error.error || error.message;\n outbound.reject(error);\n }\n );\n return outbound.promise;\n}\n\nfunction isCacheHandler(handler: Handler & { [IS_CACHE_HANDLER]?: boolean }, index: number): boolean {\n return index === 0 && Boolean(handler[IS_CACHE_HANDLER]);\n}\n\nexport function executeNextHandler<T>(\n wares: Readonly<Handler[]>,\n request: RequestInfo,\n i: number,\n god: GodContext\n): Future<T> {\n if (DEBUG) {\n if (i === wares.length) {\n throw new Error(`No handler was able to handle this request.`);\n }\n assertValidRequest(request, false);\n }\n const owner = new ContextOwner(request, god, i === 0);\n\n function next(r: RequestInfo): Future<T> {\n owner.nextCalled++;\n return executeNextHandler(wares, r, i + 1, god);\n }\n\n const _isCacheHandler = isCacheHandler(wares[i], i);\n const context = new Context(owner, _isCacheHandler);\n let outcome: Promise<T | StructuredDataDocument<T>> | Future<T>;\n try {\n outcome = wares[i].request<T>(context, next);\n if (_isCacheHandler) {\n context._finalize();\n }\n if (!!outcome && _isCacheHandler) {\n if (!(outcome instanceof Promise)) {\n setRequestResult(owner.requestId, { isError: false, result: ensureDoc(owner, outcome, false) });\n outcome = Promise.resolve(outcome);\n }\n } else if (DEBUG) {\n if (!outcome || (!(outcome instanceof Promise) && !(typeof outcome === 'object' && 'then' in outcome))) {\n // oxlint-disable-next-line no-console\n console.log({ request, handler: wares[i], outcome });\n if (outcome === undefined) {\n throw new Error(`Expected handler.request to return a promise, instead received undefined.`);\n }\n throw new Error(`Expected handler.request to return a promise, instead received a synchronous value.`);\n }\n }\n } catch (e) {\n if (_isCacheHandler) {\n setRequestResult(owner.requestId, { isError: true, result: ensureDoc(owner, e, true) });\n }\n // oxlint-disable-next-line typescript/prefer-promise-reject-errors\n outcome = Promise.reject<StructuredDataDocument<T>>(e);\n }\n const future = createFuture<T>(owner);\n\n if (isFuture<T>(outcome)) {\n return curryFuture(owner, outcome, future);\n }\n\n return handleOutcome(owner, outcome, future);\n}\n","import { DEBUG } from '@warp-drive-mirror/build-config/env';\n\nimport { IS_FUTURE, type StructuredDocument } from '../../types/request';\nimport type { ContextOwner } from './context';\nimport type { Deferred, DeferredFuture, Future } from './types';\nimport { enhanceReason } from './utils';\n\nexport function isFuture<T>(maybe: unknown): maybe is Future<T> {\n return Boolean(maybe && maybe instanceof Promise && (maybe as Future<T>)[IS_FUTURE] === true);\n}\n\n/**\n * Create a {@link Deferred}: a promise along with the `resolve`/`reject`\n * callbacks that settle it, so the promise can be handed out before the\n * work that will settle it has started.\n *\n * @summary Creates a promise together with its `resolve` and `reject` callbacks so it can be handed out\n * before it is settled.\n * @public\n */\nexport function createDeferred<T>(): Deferred<T> {\n let resolve!: (v: T) => void;\n let reject!: (v: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { resolve, reject, promise };\n}\n\nexport function upgradePromise<T>(promise: Promise<StructuredDocument<T>>, future: Future<T>): Future<T> {\n (promise as Future<T>)[IS_FUTURE] = true;\n // oxlint-disable-next-line typescript/unbound-method\n (promise as Future<T>).getStream = future.getStream;\n // oxlint-disable-next-line typescript/unbound-method\n (promise as Future<T>).abort = future.abort;\n // oxlint-disable-next-line typescript/unbound-method\n (promise as Future<T>).onFinalize = future.onFinalize;\n (promise as Future<T>).id = future.id;\n (promise as Future<T>).lid = future.lid;\n (promise as Future<T>).requester = future.requester;\n\n if (DEBUG) {\n // @ts-expect-error\n promise.toJSON = () => {\n const id = 'Future<' + (promise as Future<T>).id + '>';\n if ((promise as Future<T>).lid) {\n return `${id} (${(promise as Future<T>).lid!.lid})`;\n }\n return id;\n };\n }\n\n return promise as Future<T>;\n}\n\nexport function createFuture<T>(owner: ContextOwner): DeferredFuture<T> {\n const deferred = createDeferred<T>() as unknown as DeferredFuture<T>;\n let { promise } = deferred;\n let cbs: Array<() => void> | undefined;\n promise = promise.finally(() => {\n owner.resolveStream();\n if (cbs) {\n cbs.forEach((cb) => cb());\n }\n }) as Future<T>;\n promise.onFinalize = (fn: () => void) => {\n cbs = cbs || [];\n cbs.push(fn);\n };\n promise[IS_FUTURE] = true;\n promise.getStream = () => {\n return owner.getStream();\n };\n promise.abort = (reason?: string) => {\n owner.abort(enhanceReason(reason));\n };\n promise.id = owner.requestId;\n promise.lid = owner.god.identifier;\n promise.requester = owner.god.requester;\n\n if (DEBUG) {\n // @ts-expect-error\n promise.toJSON = () => {\n const id = 'Future<' + promise.id + '>';\n if (promise.lid) {\n return `${id} (${promise.lid.lid})`;\n }\n return id;\n };\n }\n\n deferred.promise = promise;\n return deferred;\n}\n","/**\n * The [Making Requests](/guides/the-manual/requests/) guide teaches the request layer\n * these types and helpers belong to.\n *\n * @module\n * @summary Request-layer types such as `Future`, `Handler` and `Context`, plus `withResponseType` and\n * `withReactiveResponse` for typing the response a request resolves with.\n */\n\nimport type { ReactiveDataDocument } from './reactive.ts';\nimport type { RequestInfo } from './types/request.ts';\nimport type { Meta } from './types/spec/json-api-raw.ts';\nimport type { RequestSignature } from './types/symbols.ts';\n\nexport { createDeferred } from './request/-private/future.ts';\nexport type {\n Future,\n Handler,\n CacheHandler,\n NextFn,\n Deferred,\n ManagedRequestPriority,\n} from './request/-private/types.ts';\nexport { setPromiseResult, getPromiseResult } from './request/-private/promise-cache.ts';\nexport type { Awaitable } from './request/-private/promise-cache.ts';\nexport type { Context } from './request/-private/context.ts';\n\n/**\n * Brands the supplied object with the supplied response type.\n *\n * Call it inside a [builder](/guides/the-manual/requests/builders), so the type is part of\n * the builder's contract and every caller gets it through inference. Calling it inline\n * where the request is made is a cast. The [Typing Requests](/guides/the-manual/requests/typing-requests)\n * guide shows how to use it.\n *\n * ```ts\n * import type { ReactiveDataDocument } from '@warp-drive-mirror/core/reactive';\n * import { withResponseType } from '@warp-drive-mirror/core/request';\n * import type { User } from '#/data/user.ts'\n *\n * export function getUser(id: string) {\n * return withResponseType<ReactiveDataDocument<User>>({ url: `/users/${id}` });\n * }\n *\n * const result = await store.request(getUser('1'));\n *\n * result.content.data; // will have type User\n * ```\n *\n * @summary Types a request object with the response type that `store.request` or `RequestManager.request`\n * should resolve with; no runtime effect.\n */\nexport function withResponseType<T>(obj: RequestInfo): RequestInfo<T> & {\n /** The branded response type. Present only at the type level; carries no runtime value. */\n [RequestSignature]: T;\n} {\n return obj as RequestInfo<T> & {\n [RequestSignature]: T;\n };\n}\n\n/**\n * Brands the supplied object with the supplied response type\n * wrapped in {@link ReactiveDataDocument}. This is a convenience for\n * the common case of using {@link withResponseType} with `ReactiveDataDocument`.\n *\n * Like `withResponseType`, call it inside a [builder](/guides/the-manual/requests/builders)\n * rather than where the request is made. The\n * [Typing Requests](/guides/the-manual/requests/typing-requests#typing-reactive-responses)\n * guide shows how to use it.\n *\n * ```ts\n * import { withReactiveResponse } from '@warp-drive-mirror/core/request';\n * import type { User } from '#/data/user.ts'\n *\n * export function getUser(id: string) {\n * return withReactiveResponse<User>({ url: `/users/${id}` });\n * }\n *\n * const result = await store.request(getUser('1'));\n *\n * result.content.data; // will have type User\n * ```\n *\n * Pass a second type param to declare the `meta` the endpoint returns:\n *\n * ```ts\n * type PageMeta = { page: { limit: number; offset: number }; total?: number };\n *\n * export function getUsers() {\n * return withReactiveResponse<User[], PageMeta>({ url: '/users' });\n * }\n *\n * const result = await store.request(getUsers());\n *\n * result.content.meta?.total; // number | undefined\n * ```\n *\n * @summary Types a request object so its response resolves as a `ReactiveDataDocument` of the given\n * data and meta types; no runtime effect.\n * @public\n */\nexport function withReactiveResponse<\n T,\n M extends Meta | undefined = Meta | undefined,\n E extends object = object,\n EM extends Meta | undefined = M,\n>(\n obj: RequestInfo\n): RequestInfo<ReactiveDataDocument<T, M, E, EM>> & {\n /** The branded response type. Present only at the type level; carries no runtime value. */\n [RequestSignature]: ReactiveDataDocument<T, M, E, EM>;\n} {\n return obj as RequestInfo<ReactiveDataDocument<T, M, E, EM>> & {\n [RequestSignature]: ReactiveDataDocument<T, M, E, EM>;\n };\n}\n\n/**\n * @summary Deprecated alias for `withResponseType`, which types a request object with its expected\n * response type.\n * @deprecated use {@link withResponseType} instead\n */\nexport const withBrand: typeof withResponseType = withResponseType;\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { f as setPromiseResult, i as createDeferred, n as withReactiveResponse, r as withResponseType, t as withBrand, u as getPromiseResult } from "./request-
|
|
1
|
+
import { f as setPromiseResult, i as createDeferred, n as withReactiveResponse, r as withResponseType, t as withBrand, u as getPromiseResult } from "./request-oWpijCPQ.js";
|
|
2
2
|
|
|
3
3
|
export { createDeferred, getPromiseResult, setPromiseResult, withBrand, withReactiveResponse, withResponseType };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// ../../node_modules/.pnpm/@embroider+macros@1.21.4/node_modules/@embroider/macros/src/addon/runtime.js
|
|
2
2
|
function config(packageRoot) {
|
|
3
3
|
return runtimeConfig.packages[packageRoot];
|
|
4
4
|
}
|
|
@@ -105,6 +105,5 @@ if (updaters) {
|
|
|
105
105
|
for (let updater of updaters) updater(methods);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
//#endregion
|
|
109
108
|
export { getGlobalConfig as t };
|
|
110
|
-
//# sourceMappingURL=runtime-
|
|
109
|
+
//# sourceMappingURL=runtime-DZVuMuzL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-
|
|
1
|
+
{"version":3,"file":"runtime-DZVuMuzL.js","names":["each","array","Array","isArray","Error","macroCondition","predicate","config","packageRoot","runtimeConfig","packages","getGlobalConfig","global","isTesting","g","e","Boolean","setTesting","globalThis","__embroider_macros__runtime_config__","localConfig","initializeRuntimeMacrosConfig","Object","assign","updaterMethods","setConfig","value","setGlobalConfig","key","updaters","window","_embroider_macros_runtime_config","undefined","methods","updater"],"sources":["../../../../../node_modules/.pnpm/@embroider+macros@1.21.4/node_modules/@embroider/macros/src/addon/runtime.js"],"sourcesContent":["/*\n These are the runtime implementations for the javascript macros that have\n runtime implementations.\n\n Not every macro has a runtime implementation, some only make sense in the\n build and always run there.\n\n Even when we have runtime implementations, we are still careful to emit static\n errors during the build wherever possible, and runtime errors when necessary,\n so that you're not surprised when you switch from runtime-mode to compile-time\n mode.\n*/\n\n/*\n CAUTION: in classic builds, this file gets shared by all present copies of\n @embroider/macros. If you want to change its public API, you need to rename it\n and update `pathToRuntime` in ../babel/state.ts to point at it, so that your\n babel plugin and runtime will match.\n*/\n\nexport function each(array) {\n if (!Array.isArray(array)) {\n throw new Error(`the argument to the each() macro must be an array`);\n }\n return array;\n}\n\nexport function macroCondition(predicate) {\n return predicate;\n}\n\n// This is here as a compile target for `getConfig` and `getOwnConfig` when\n// we're in runtime mode. This is not public API to call from your own code.\nexport function config(packageRoot) {\n return runtimeConfig.packages[packageRoot];\n}\n\nexport function getGlobalConfig() {\n return runtimeConfig.global;\n}\n\nexport function isTesting() {\n let g = runtimeConfig.global;\n let e = g && g['@embroider/macros'];\n return Boolean(e && e.isTesting);\n}\n\nexport function setTesting(isTesting) {\n if (!runtimeConfig.global) {\n runtimeConfig.global = {};\n }\n if (!runtimeConfig.global['@embroider/macros']) {\n runtimeConfig.global['@embroider/macros'] = {};\n }\n runtimeConfig.global['@embroider/macros'].isTesting = Boolean(isTesting);\n}\n\n// Welcome intrepid developer!\n//\n// While this data is \"global\", this is a private variable.\n//\n// do not build features based off of its contents,\n// or assume it will have the same name in future releases.\nconst runtimeConfig = globalThis.__embroider_macros__runtime_config__ ||= {};\n\nruntimeConfig.packages ||= {};\nruntimeConfig.global ||= {};\n\n// In the off chance there are duplicate copies of @embroider/macros in the dep graph\n// (due to the package manager messing up)\n// Let's try to merge them together via the above global well known variable\nconst localConfig = initializeRuntimeMacrosConfig();\n\nObject.assign(runtimeConfig.packages, localConfig.packages);\nObject.assign(runtimeConfig.global, localConfig.global);\n\n// this exists to be targeted by our babel plugin\nfunction initializeRuntimeMacrosConfig() {\n return { packages: {}, global: {} };\n}\n\nfunction updaterMethods() {\n return {\n config,\n getGlobalConfig,\n setConfig(packageRoot, value) {\n runtimeConfig.packages[packageRoot] = value;\n },\n setGlobalConfig(key, value) {\n runtimeConfig.global[key] = value;\n },\n };\n}\n\n// this is how runtime config can get injected at boot. I'm not sure yet if this\n// should be public API, but we certainly need it internally to set things like\n// the global fastboot.isRunning.\n//\n// consumers of this API push a function onto\n// window._embroider_macros_runtime_config. The function is given four methods\n// which allow it to read and write the per-package and global configs. The\n// reason for allowing both read & write is that merging strategies are up to\n// each consumers -- read first, then merge, then write.\n//\n// For an example user of this API, see where we generate\n// embroider_macros_fastboot_init.js' in @embroider/core.\nlet updaters = typeof window !== 'undefined' ? window._embroider_macros_runtime_config : undefined;\nif (updaters) {\n let methods = updaterMethods();\n for (let updater of updaters) {\n updater(methods);\n }\n}\n"],"ignoreList":[0],"mappings":";AAiCA,SAAgBO,OAAOC,aAAa;CAClC,OAAOC,cAAcC,SAASF;AAChC;AAEA,SAAgBG,kBAAkB;CAChC,OAAOF,cAAcG;AACvB;AAwBA,MAAMH,gBAAgBS,WAAWC,yCAAyC,CAAC;AAE3EV,cAAcC,aAAa,CAAC;AAC5BD,cAAcG,WAAW,CAAC;AAK1B,MAAMQ,cAAcC,8BAA8B;AAElDC,OAAOC,OAAOd,cAAcC,UAAUU,YAAYV,QAAQ;AAC1DY,OAAOC,OAAOd,cAAcG,QAAQQ,YAAYR,MAAM;AAGtD,SAASS,gCAAgC;CAAA,OA7EvC;EAAC,YAAW,CAAC;EAAE,UAAS;GAAC,qBAAoB,EAAC,aAAY,MAAK;GAAE,aAAY;IAAC,SAAQ;KAAC,oCAAmC;KAAM,aAAY;KAAM,oBAAmB;KAAM,aAAY;KAAM,mBAAkB;KAAM,sBAAqB;KAAM,qBAAoB;KAAM,iBAAgB;KAAM,qBAAoB;KAAM,kBAAiB;KAAM,gBAAe;KAAM,gCAA+B;KAAM,gBAAe;KAAM,sBAAqB;KAAM,wCAAuC;IAAK;IAAE,gBAAe;IAAM,sBAAqB;IAAK,cAAa;IAAK,gBAAe;KAAC,uBAAsB;KAAK,6BAA4B;KAAK,6BAA4B;KAAK,4BAA2B;KAAK,mCAAkC;KAAK,2BAA0B;KAAK,8BAA6B;KAAK,iCAAgC;KAAK,6DAA4D;KAAK,wCAAuC;KAAK,8BAA6B;KAAK,2BAA0B;KAAK,iCAAgC;KAAK,gCAA+B;IAAI;IAAE,YAAW;KAAC,wCAAuC;KAAM,oCAAmC;KAAM,uBAAsB;IAAI;IAAE,iBAAgB;KAAC,oCAAmC;KAAK,aAAY;KAAK,oBAAmB;KAAK,aAAY;KAAK,mBAAkB;KAAK,sBAAqB;KAAK,qBAAoB;KAAK,iBAAgB;KAAK,qBAAoB;KAAK,kBAAiB;KAAK,gBAAe;KAAK,gCAA+B;KAAK,gBAAe;KAAK,sBAAqB;KAAK,wCAAuC;IAAI;IAAE,OAAM;KAAC,WAAU;KAAK,cAAa;KAAM,SAAQ;KAAK,gBAAe;KAAM,SAAQ;KAAK,iBAAgB;IAAK;GAAC;EAAC;CAAC;AA+EhsD;AAEA,SAASG,iBAAiB;CACxB,OAAO;EACLjB;EACAI;EACAc,UAAUjB,aAAakB,OAAO;GAC5BjB,cAAcC,SAASF,eAAekB;EACxC;EACAC,gBAAgBC,KAAKF,OAAO;GAC1BjB,cAAcG,OAAOgB,OAAOF;EAC9B;CACF;AACF;AAcA,IAAIG,WAAW,OAAOC,WAAW,cAAcA,OAAOC,mCAAmCC;AACzF,IAAIH,UAAU;CACZ,IAAII,UAAUT,eAAe;CAC7B,KAAK,IAAIU,WAAWL,UAClBK,QAAQD,OAAO;AAEnB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { D as notifyInternalSignal, E as makeInitializer,
|
|
1
|
+
import { D as notifyInternalSignal, E as makeInitializer, O as peekInternalSignal, P as waitFor, T as getOrCreateInternalSignal, _ as entangleSignal, a as getPaginationState, b as signal, c as getPaginationCache, h as defineSignal, i as getPaginationLinks, k as withSignalStore, l as DISPOSE, m as defineNonEnumerableSignal, n as createPaginationLinksSubscription, o as clearPaginationCache, p as defineGate, r as createPaginationSubscription, s as defaultPageHints, v as gate, y as memoized } from "../-private-B4pCmkq-.js";
|
|
2
2
|
|
|
3
3
|
export { DISPOSE, clearPaginationCache, createPaginationLinksSubscription, createPaginationSubscription, defaultPageHints, defineGate, defineNonEnumerableSignal, defineSignal, entangleSignal, gate, getOrCreateInternalSignal, getPaginationCache, getPaginationLinks, getPaginationState, makeInitializer, memoized, notifyInternalSignal, peekInternalSignal, signal, waitFor, withSignalStore };
|