@warp-drive/legacy 5.8.0-alpha.30 → 5.8.0-alpha.34
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/declarations/adapter/error.d.ts +5 -5
- package/declarations/adapter/json-api.d.ts +2 -2
- package/declarations/compat/builders/find-all.d.ts +6 -6
- package/declarations/compat/builders/find-record.d.ts +8 -8
- package/declarations/compat/builders/query.d.ts +12 -12
- package/declarations/compat.d.ts +3 -3
- package/declarations/model/-private/references/belongs-to.d.ts +4 -4
- package/declarations/model/-private/references/has-many.d.ts +2 -2
- package/declarations/model/migration-support.d.ts +34 -18
- package/declarations/model.d.ts +2 -2
- package/declarations/serializer/-private/embedded-records-mixin.d.ts +1 -1
- package/declarations/serializer/json-api.d.ts +3 -3
- package/declarations/serializer/json.d.ts +1 -1
- package/declarations/serializer.d.ts +1 -1
- package/dist/adapter/error.js +7 -7
- package/dist/compat/builders.js +26 -26
- package/dist/compat/utils.js +0 -1
- package/dist/compat.js +3 -3
- package/dist/{errors-B9CDPh3R.js → errors-CIGPcDvd.js} +12 -12
- package/dist/{hooks-CQXyievu.js → hooks-QqRnX108.js} +1 -1
- package/dist/index.js +4 -4
- package/dist/{json-BHxlccxF.js → json-BNrV8EYG.js} +4 -4
- package/dist/model/-private.js +1 -1
- package/dist/model/migration-support.js +41 -24
- package/dist/{model-for-B0TSd9HU.js → model-for-CqXsIKws.js} +1 -1
- package/dist/model-fragments.js +2 -2
- package/dist/model.js +3 -3
- package/dist/{schema-provider-BnVr_CnJ.js → schema-provider-g5MfTj8n.js} +11 -11
- package/dist/serializer/json-api.js +7 -7
- package/dist/serializer/json.js +1 -1
- package/dist/serializer/rest.js +10 -10
- package/dist/serializer.js +1 -1
- package/dist/unpkg/dev/-private-B1pSSN52.js +1210 -0
- package/dist/unpkg/dev/adapter/-private.js +1 -0
- package/dist/unpkg/dev/adapter/error.js +336 -0
- package/dist/unpkg/dev/adapter/json-api.js +132 -0
- package/dist/unpkg/dev/adapter/rest.js +1257 -0
- package/dist/unpkg/dev/adapter.js +1253 -0
- package/dist/unpkg/dev/compat/-private.js +1 -0
- package/dist/unpkg/dev/compat/builders.js +273 -0
- package/dist/unpkg/dev/compat/extensions.js +243 -0
- package/dist/unpkg/dev/compat/utils.js +224 -0
- package/dist/unpkg/dev/compat.js +1020 -0
- package/dist/unpkg/dev/declarations/adapter/-private/build-url-mixin.d.ts +33 -0
- package/dist/unpkg/dev/declarations/adapter/-private/fastboot-interface.d.ts +8 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/continue-on-reject.d.ts +1 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/determine-body-promise.d.ts +4 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/fetch.d.ts +8 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/parse-response-headers.d.ts +1 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/serialize-into-hash.d.ts +6 -0
- package/dist/unpkg/dev/declarations/adapter/-private/utils/serialize-query-params.d.ts +5 -0
- package/dist/unpkg/dev/declarations/adapter/-private.d.ts +5 -0
- package/dist/unpkg/dev/declarations/adapter/error.d.ts +215 -0
- package/dist/unpkg/dev/declarations/adapter/json-api.d.ts +231 -0
- package/dist/unpkg/dev/declarations/adapter/rest.d.ts +815 -0
- package/dist/unpkg/dev/declarations/adapter.d.ts +770 -0
- package/dist/unpkg/dev/declarations/compat/-private.d.ts +13 -0
- package/dist/unpkg/dev/declarations/compat/builders/find-all.d.ts +35 -0
- package/dist/unpkg/dev/declarations/compat/builders/find-record.d.ts +56 -0
- package/dist/unpkg/dev/declarations/compat/builders/query.d.ts +66 -0
- package/dist/unpkg/dev/declarations/compat/builders/save-record.d.ts +34 -0
- package/dist/unpkg/dev/declarations/compat/builders/utils.d.ts +3 -0
- package/dist/unpkg/dev/declarations/compat/builders.d.ts +14 -0
- package/dist/unpkg/dev/declarations/compat/extensions.d.ts +59 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/fetch-manager.d.ts +55 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +2 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +11 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +5 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +2 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +524 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +213 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/serializer-response.d.ts +6 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +110 -0
- package/dist/unpkg/dev/declarations/compat/legacy-network-handler/snapshot.d.ts +255 -0
- package/dist/unpkg/dev/declarations/compat/utils.d.ts +137 -0
- package/dist/unpkg/dev/declarations/compat.d.ts +157 -0
- package/dist/unpkg/dev/declarations/index.d.ts +70 -0
- package/dist/unpkg/dev/declarations/model/-private/attr.d.ts +170 -0
- package/dist/unpkg/dev/declarations/model/-private/belongs-to.d.ts +174 -0
- package/dist/unpkg/dev/declarations/model/-private/debug/assert-polymorphic-type.d.ts +5 -0
- package/dist/unpkg/dev/declarations/model/-private/errors.d.ts +289 -0
- package/dist/unpkg/dev/declarations/model/-private/has-many.d.ts +162 -0
- package/dist/unpkg/dev/declarations/model/-private/hooks.d.ts +10 -0
- package/dist/unpkg/dev/declarations/model/-private/legacy-relationships-support.d.ts +47 -0
- package/dist/unpkg/dev/declarations/model/-private/model-for-mixin.d.ts +3 -0
- package/dist/unpkg/dev/declarations/model/-private/model-methods.d.ts +39 -0
- package/dist/unpkg/dev/declarations/model/-private/model.d.ts +1269 -0
- package/dist/unpkg/dev/declarations/model/-private/notify-changes.d.ts +4 -0
- package/dist/unpkg/dev/declarations/model/-private/promise-belongs-to.d.ts +40 -0
- package/dist/unpkg/dev/declarations/model/-private/promise-many-array.d.ts +124 -0
- package/dist/unpkg/dev/declarations/model/-private/record-state.d.ts +58 -0
- package/dist/unpkg/dev/declarations/model/-private/references/belongs-to.d.ts +498 -0
- package/dist/unpkg/dev/declarations/model/-private/references/has-many.d.ts +500 -0
- package/dist/unpkg/dev/declarations/model/-private/schema-provider.d.ts +56 -0
- package/dist/unpkg/dev/declarations/model/-private/type-utils.d.ts +57 -0
- package/dist/unpkg/dev/declarations/model/-private/util.d.ts +5 -0
- package/dist/unpkg/dev/declarations/model/-private.d.ts +8 -0
- package/dist/unpkg/dev/declarations/model/migration-support.d.ts +280 -0
- package/dist/unpkg/dev/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
- package/dist/unpkg/dev/declarations/model-fragments/extensions/fragment.d.ts +15 -0
- package/dist/unpkg/dev/declarations/model-fragments/hooks/model-for.d.ts +20 -0
- package/dist/unpkg/dev/declarations/model-fragments/index.d.ts +5 -0
- package/dist/unpkg/dev/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
- package/dist/unpkg/dev/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
- package/dist/unpkg/dev/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
- package/dist/unpkg/dev/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
- package/dist/unpkg/dev/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
- package/dist/unpkg/dev/declarations/model-fragments.d.ts +9 -0
- package/dist/unpkg/dev/declarations/model.d.ts +49 -0
- package/dist/unpkg/dev/declarations/serializer/-private/embedded-records-mixin.d.ts +91 -0
- package/dist/unpkg/dev/declarations/serializer/-private/transforms/boolean.d.ts +47 -0
- package/dist/unpkg/dev/declarations/serializer/-private/transforms/date.d.ts +28 -0
- package/dist/unpkg/dev/declarations/serializer/-private/transforms/number.d.ts +29 -0
- package/dist/unpkg/dev/declarations/serializer/-private/transforms/string.d.ts +29 -0
- package/dist/unpkg/dev/declarations/serializer/-private/transforms/transform.d.ts +118 -0
- package/dist/unpkg/dev/declarations/serializer/-private/utils.d.ts +3 -0
- package/dist/unpkg/dev/declarations/serializer/json-api.d.ts +123 -0
- package/dist/unpkg/dev/declarations/serializer/json.d.ts +75 -0
- package/dist/unpkg/dev/declarations/serializer/rest.d.ts +51 -0
- package/dist/unpkg/dev/declarations/serializer/transform.d.ts +5 -0
- package/dist/unpkg/dev/declarations/serializer.d.ts +254 -0
- package/dist/unpkg/dev/declarations/store/-private.d.ts +223 -0
- package/dist/unpkg/dev/declarations/store.d.ts +3 -0
- package/dist/unpkg/dev/errors-CIGPcDvd.js +2595 -0
- package/dist/unpkg/dev/hooks-QqRnX108.js +74 -0
- package/dist/unpkg/dev/index.js +195 -0
- package/dist/unpkg/dev/json-BNrV8EYG.js +1272 -0
- package/dist/unpkg/dev/model/-private.js +1 -0
- package/dist/unpkg/dev/model/migration-support.js +579 -0
- package/dist/unpkg/dev/model-for-CqXsIKws.js +221 -0
- package/dist/unpkg/dev/model-fragments.js +76 -0
- package/dist/unpkg/dev/model.js +667 -0
- package/dist/unpkg/dev/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
- package/dist/unpkg/dev/schema-provider-g5MfTj8n.js +2338 -0
- package/dist/unpkg/dev/serialize-into-hash-BnYvPex3.js +261 -0
- package/dist/unpkg/dev/serializer/json-api.js +527 -0
- package/dist/unpkg/dev/serializer/json.js +6 -0
- package/dist/unpkg/dev/serializer/rest.js +1243 -0
- package/dist/unpkg/dev/serializer/transform.js +278 -0
- package/dist/unpkg/dev/serializer.js +248 -0
- package/dist/unpkg/dev/store.js +636 -0
- package/dist/unpkg/dev/util-Dul6TZts.js +35 -0
- package/dist/unpkg/dev/utils-Cqw9eRj5.js +23 -0
- package/dist/unpkg/dev-deprecated/-private-B1pSSN52.js +1210 -0
- package/dist/unpkg/dev-deprecated/adapter/-private.js +1 -0
- package/dist/unpkg/dev-deprecated/adapter/error.js +336 -0
- package/dist/unpkg/dev-deprecated/adapter/json-api.js +132 -0
- package/dist/unpkg/dev-deprecated/adapter/rest.js +1257 -0
- package/dist/unpkg/dev-deprecated/adapter.js +1253 -0
- package/dist/unpkg/dev-deprecated/compat/-private.js +1 -0
- package/dist/unpkg/dev-deprecated/compat/builders.js +273 -0
- package/dist/unpkg/dev-deprecated/compat/extensions.js +243 -0
- package/dist/unpkg/dev-deprecated/compat/utils.js +224 -0
- package/dist/unpkg/dev-deprecated/compat.js +1020 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/build-url-mixin.d.ts +33 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/fastboot-interface.d.ts +8 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/continue-on-reject.d.ts +1 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/determine-body-promise.d.ts +4 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/fetch.d.ts +8 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/parse-response-headers.d.ts +1 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/serialize-into-hash.d.ts +6 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private/utils/serialize-query-params.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/-private.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/error.d.ts +215 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/json-api.d.ts +231 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter/rest.d.ts +815 -0
- package/dist/unpkg/dev-deprecated/declarations/adapter.d.ts +770 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/-private.d.ts +13 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders/find-all.d.ts +35 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders/find-record.d.ts +56 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders/query.d.ts +66 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders/save-record.d.ts +34 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders/utils.d.ts +3 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/builders.d.ts +14 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/extensions.d.ts +59 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/fetch-manager.d.ts +55 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +2 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +11 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +2 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +524 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +213 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/serializer-response.d.ts +6 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +110 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/legacy-network-handler/snapshot.d.ts +255 -0
- package/dist/unpkg/dev-deprecated/declarations/compat/utils.d.ts +137 -0
- package/dist/unpkg/dev-deprecated/declarations/compat.d.ts +157 -0
- package/dist/unpkg/dev-deprecated/declarations/index.d.ts +70 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/attr.d.ts +170 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/belongs-to.d.ts +174 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/debug/assert-polymorphic-type.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/errors.d.ts +289 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/has-many.d.ts +162 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/hooks.d.ts +10 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/legacy-relationships-support.d.ts +47 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/model-for-mixin.d.ts +3 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/model-methods.d.ts +39 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/model.d.ts +1269 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/notify-changes.d.ts +4 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/promise-belongs-to.d.ts +40 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/promise-many-array.d.ts +124 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/record-state.d.ts +58 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/references/belongs-to.d.ts +498 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/references/has-many.d.ts +500 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/schema-provider.d.ts +56 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/type-utils.d.ts +57 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private/util.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/model/-private.d.ts +8 -0
- package/dist/unpkg/dev-deprecated/declarations/model/migration-support.d.ts +280 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/extensions/fragment.d.ts +15 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/hooks/model-for.d.ts +20 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/index.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
- package/dist/unpkg/dev-deprecated/declarations/model-fragments.d.ts +9 -0
- package/dist/unpkg/dev-deprecated/declarations/model.d.ts +49 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/embedded-records-mixin.d.ts +91 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/transforms/boolean.d.ts +47 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/transforms/date.d.ts +28 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/transforms/number.d.ts +29 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/transforms/string.d.ts +29 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/transforms/transform.d.ts +118 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/-private/utils.d.ts +3 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/json-api.d.ts +123 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/json.d.ts +75 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/rest.d.ts +51 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer/transform.d.ts +5 -0
- package/dist/unpkg/dev-deprecated/declarations/serializer.d.ts +254 -0
- package/dist/unpkg/dev-deprecated/declarations/store/-private.d.ts +223 -0
- package/dist/unpkg/dev-deprecated/declarations/store.d.ts +3 -0
- package/dist/unpkg/dev-deprecated/errors-CIGPcDvd.js +2595 -0
- package/dist/unpkg/dev-deprecated/hooks-QqRnX108.js +74 -0
- package/dist/unpkg/dev-deprecated/index.js +195 -0
- package/dist/unpkg/dev-deprecated/json-BNrV8EYG.js +1272 -0
- package/dist/unpkg/dev-deprecated/model/-private.js +1 -0
- package/dist/unpkg/dev-deprecated/model/migration-support.js +579 -0
- package/dist/unpkg/dev-deprecated/model-for-CqXsIKws.js +221 -0
- package/dist/unpkg/dev-deprecated/model-fragments.js +76 -0
- package/dist/unpkg/dev-deprecated/model.js +667 -0
- package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
- package/dist/unpkg/dev-deprecated/schema-provider-g5MfTj8n.js +2338 -0
- package/dist/unpkg/dev-deprecated/serialize-into-hash-BnYvPex3.js +261 -0
- package/dist/unpkg/dev-deprecated/serializer/json-api.js +527 -0
- package/dist/unpkg/dev-deprecated/serializer/json.js +6 -0
- package/dist/unpkg/dev-deprecated/serializer/rest.js +1243 -0
- package/dist/unpkg/dev-deprecated/serializer/transform.js +278 -0
- package/dist/unpkg/dev-deprecated/serializer.js +248 -0
- package/dist/unpkg/dev-deprecated/store.js +636 -0
- package/dist/unpkg/dev-deprecated/util-Dul6TZts.js +35 -0
- package/dist/unpkg/dev-deprecated/utils-Cqw9eRj5.js +23 -0
- package/dist/unpkg/prod/-private-B1pSSN52.js +1210 -0
- package/dist/unpkg/prod/adapter/-private.js +1 -0
- package/dist/unpkg/prod/adapter/error.js +336 -0
- package/dist/unpkg/prod/adapter/json-api.js +132 -0
- package/dist/unpkg/prod/adapter/rest.js +1257 -0
- package/dist/unpkg/prod/adapter.js +1253 -0
- package/dist/unpkg/prod/compat/-private.js +1 -0
- package/dist/unpkg/prod/compat/builders.js +273 -0
- package/dist/unpkg/prod/compat/extensions.js +243 -0
- package/dist/unpkg/prod/compat/utils.js +224 -0
- package/dist/unpkg/prod/compat.js +1020 -0
- package/dist/unpkg/prod/declarations/adapter/-private/build-url-mixin.d.ts +33 -0
- package/dist/unpkg/prod/declarations/adapter/-private/fastboot-interface.d.ts +8 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/continue-on-reject.d.ts +1 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/determine-body-promise.d.ts +4 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/fetch.d.ts +8 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/parse-response-headers.d.ts +1 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/serialize-into-hash.d.ts +6 -0
- package/dist/unpkg/prod/declarations/adapter/-private/utils/serialize-query-params.d.ts +5 -0
- package/dist/unpkg/prod/declarations/adapter/-private.d.ts +5 -0
- package/dist/unpkg/prod/declarations/adapter/error.d.ts +215 -0
- package/dist/unpkg/prod/declarations/adapter/json-api.d.ts +231 -0
- package/dist/unpkg/prod/declarations/adapter/rest.d.ts +815 -0
- package/dist/unpkg/prod/declarations/adapter.d.ts +770 -0
- package/dist/unpkg/prod/declarations/compat/-private.d.ts +13 -0
- package/dist/unpkg/prod/declarations/compat/builders/find-all.d.ts +35 -0
- package/dist/unpkg/prod/declarations/compat/builders/find-record.d.ts +56 -0
- package/dist/unpkg/prod/declarations/compat/builders/query.d.ts +66 -0
- package/dist/unpkg/prod/declarations/compat/builders/save-record.d.ts +34 -0
- package/dist/unpkg/prod/declarations/compat/builders/utils.d.ts +3 -0
- package/dist/unpkg/prod/declarations/compat/builders.d.ts +14 -0
- package/dist/unpkg/prod/declarations/compat/extensions.d.ts +59 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/fetch-manager.d.ts +55 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +2 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +11 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +5 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +2 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +524 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +213 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/serializer-response.d.ts +6 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +110 -0
- package/dist/unpkg/prod/declarations/compat/legacy-network-handler/snapshot.d.ts +255 -0
- package/dist/unpkg/prod/declarations/compat/utils.d.ts +137 -0
- package/dist/unpkg/prod/declarations/compat.d.ts +157 -0
- package/dist/unpkg/prod/declarations/index.d.ts +70 -0
- package/dist/unpkg/prod/declarations/model/-private/attr.d.ts +170 -0
- package/dist/unpkg/prod/declarations/model/-private/belongs-to.d.ts +174 -0
- package/dist/unpkg/prod/declarations/model/-private/debug/assert-polymorphic-type.d.ts +5 -0
- package/dist/unpkg/prod/declarations/model/-private/errors.d.ts +289 -0
- package/dist/unpkg/prod/declarations/model/-private/has-many.d.ts +162 -0
- package/dist/unpkg/prod/declarations/model/-private/hooks.d.ts +10 -0
- package/dist/unpkg/prod/declarations/model/-private/legacy-relationships-support.d.ts +47 -0
- package/dist/unpkg/prod/declarations/model/-private/model-for-mixin.d.ts +3 -0
- package/dist/unpkg/prod/declarations/model/-private/model-methods.d.ts +39 -0
- package/dist/unpkg/prod/declarations/model/-private/model.d.ts +1269 -0
- package/dist/unpkg/prod/declarations/model/-private/notify-changes.d.ts +4 -0
- package/dist/unpkg/prod/declarations/model/-private/promise-belongs-to.d.ts +40 -0
- package/dist/unpkg/prod/declarations/model/-private/promise-many-array.d.ts +124 -0
- package/dist/unpkg/prod/declarations/model/-private/record-state.d.ts +58 -0
- package/dist/unpkg/prod/declarations/model/-private/references/belongs-to.d.ts +498 -0
- package/dist/unpkg/prod/declarations/model/-private/references/has-many.d.ts +500 -0
- package/dist/unpkg/prod/declarations/model/-private/schema-provider.d.ts +56 -0
- package/dist/unpkg/prod/declarations/model/-private/type-utils.d.ts +57 -0
- package/dist/unpkg/prod/declarations/model/-private/util.d.ts +5 -0
- package/dist/unpkg/prod/declarations/model/-private.d.ts +8 -0
- package/dist/unpkg/prod/declarations/model/migration-support.d.ts +280 -0
- package/dist/unpkg/prod/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
- package/dist/unpkg/prod/declarations/model-fragments/extensions/fragment.d.ts +15 -0
- package/dist/unpkg/prod/declarations/model-fragments/hooks/model-for.d.ts +20 -0
- package/dist/unpkg/prod/declarations/model-fragments/index.d.ts +5 -0
- package/dist/unpkg/prod/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
- package/dist/unpkg/prod/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
- package/dist/unpkg/prod/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
- package/dist/unpkg/prod/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
- package/dist/unpkg/prod/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
- package/dist/unpkg/prod/declarations/model-fragments.d.ts +9 -0
- package/dist/unpkg/prod/declarations/model.d.ts +49 -0
- package/dist/unpkg/prod/declarations/serializer/-private/embedded-records-mixin.d.ts +91 -0
- package/dist/unpkg/prod/declarations/serializer/-private/transforms/boolean.d.ts +47 -0
- package/dist/unpkg/prod/declarations/serializer/-private/transforms/date.d.ts +28 -0
- package/dist/unpkg/prod/declarations/serializer/-private/transforms/number.d.ts +29 -0
- package/dist/unpkg/prod/declarations/serializer/-private/transforms/string.d.ts +29 -0
- package/dist/unpkg/prod/declarations/serializer/-private/transforms/transform.d.ts +118 -0
- package/dist/unpkg/prod/declarations/serializer/-private/utils.d.ts +3 -0
- package/dist/unpkg/prod/declarations/serializer/json-api.d.ts +123 -0
- package/dist/unpkg/prod/declarations/serializer/json.d.ts +75 -0
- package/dist/unpkg/prod/declarations/serializer/rest.d.ts +51 -0
- package/dist/unpkg/prod/declarations/serializer/transform.d.ts +5 -0
- package/dist/unpkg/prod/declarations/serializer.d.ts +254 -0
- package/dist/unpkg/prod/declarations/store/-private.d.ts +223 -0
- package/dist/unpkg/prod/declarations/store.d.ts +3 -0
- package/dist/unpkg/prod/errors-CIGPcDvd.js +2595 -0
- package/dist/unpkg/prod/hooks-QqRnX108.js +74 -0
- package/dist/unpkg/prod/index.js +195 -0
- package/dist/unpkg/prod/json-BNrV8EYG.js +1272 -0
- package/dist/unpkg/prod/model/-private.js +1 -0
- package/dist/unpkg/prod/model/migration-support.js +579 -0
- package/dist/unpkg/prod/model-for-CqXsIKws.js +221 -0
- package/dist/unpkg/prod/model-fragments.js +76 -0
- package/dist/unpkg/prod/model.js +667 -0
- package/dist/unpkg/prod/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
- package/dist/unpkg/prod/schema-provider-g5MfTj8n.js +2338 -0
- package/dist/unpkg/prod/serialize-into-hash-BnYvPex3.js +261 -0
- package/dist/unpkg/prod/serializer/json-api.js +527 -0
- package/dist/unpkg/prod/serializer/json.js +6 -0
- package/dist/unpkg/prod/serializer/rest.js +1243 -0
- package/dist/unpkg/prod/serializer/transform.js +278 -0
- package/dist/unpkg/prod/serializer.js +248 -0
- package/dist/unpkg/prod/store.js +636 -0
- package/dist/unpkg/prod/util-Dul6TZts.js +35 -0
- package/dist/unpkg/prod/utils-Cqw9eRj5.js +23 -0
- package/dist/unpkg/prod-deprecated/-private-B1pSSN52.js +1210 -0
- package/dist/unpkg/prod-deprecated/adapter/-private.js +1 -0
- package/dist/unpkg/prod-deprecated/adapter/error.js +336 -0
- package/dist/unpkg/prod-deprecated/adapter/json-api.js +132 -0
- package/dist/unpkg/prod-deprecated/adapter/rest.js +1257 -0
- package/dist/unpkg/prod-deprecated/adapter.js +1253 -0
- package/dist/unpkg/prod-deprecated/compat/-private.js +1 -0
- package/dist/unpkg/prod-deprecated/compat/builders.js +273 -0
- package/dist/unpkg/prod-deprecated/compat/extensions.js +243 -0
- package/dist/unpkg/prod-deprecated/compat/utils.js +224 -0
- package/dist/unpkg/prod-deprecated/compat.js +1020 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/build-url-mixin.d.ts +33 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/fastboot-interface.d.ts +8 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/continue-on-reject.d.ts +1 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/determine-body-promise.d.ts +4 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/fetch.d.ts +8 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/parse-response-headers.d.ts +1 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/serialize-into-hash.d.ts +6 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private/utils/serialize-query-params.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/-private.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/error.d.ts +215 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/json-api.d.ts +231 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter/rest.d.ts +815 -0
- package/dist/unpkg/prod-deprecated/declarations/adapter.d.ts +770 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/-private.d.ts +13 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders/find-all.d.ts +35 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders/find-record.d.ts +56 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders/query.d.ts +66 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders/save-record.d.ts +34 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders/utils.d.ts +3 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/builders.d.ts +14 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/extensions.d.ts +59 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/fetch-manager.d.ts +55 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +2 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +11 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +2 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +524 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +213 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/serializer-response.d.ts +6 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +110 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/legacy-network-handler/snapshot.d.ts +255 -0
- package/dist/unpkg/prod-deprecated/declarations/compat/utils.d.ts +137 -0
- package/dist/unpkg/prod-deprecated/declarations/compat.d.ts +157 -0
- package/dist/unpkg/prod-deprecated/declarations/index.d.ts +70 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/attr.d.ts +170 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/belongs-to.d.ts +174 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/debug/assert-polymorphic-type.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/errors.d.ts +289 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/has-many.d.ts +162 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/hooks.d.ts +10 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/legacy-relationships-support.d.ts +47 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/model-for-mixin.d.ts +3 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/model-methods.d.ts +39 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/model.d.ts +1269 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/notify-changes.d.ts +4 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/promise-belongs-to.d.ts +40 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/promise-many-array.d.ts +124 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/record-state.d.ts +58 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/references/belongs-to.d.ts +498 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/references/has-many.d.ts +500 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/schema-provider.d.ts +56 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/type-utils.d.ts +57 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private/util.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/model/-private.d.ts +8 -0
- package/dist/unpkg/prod-deprecated/declarations/model/migration-support.d.ts +280 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/extensions/fragment.d.ts +15 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/hooks/model-for.d.ts +20 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/index.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
- package/dist/unpkg/prod-deprecated/declarations/model-fragments.d.ts +9 -0
- package/dist/unpkg/prod-deprecated/declarations/model.d.ts +49 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/embedded-records-mixin.d.ts +91 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/transforms/boolean.d.ts +47 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/transforms/date.d.ts +28 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/transforms/number.d.ts +29 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/transforms/string.d.ts +29 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/transforms/transform.d.ts +118 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/-private/utils.d.ts +3 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/json-api.d.ts +123 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/json.d.ts +75 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/rest.d.ts +51 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer/transform.d.ts +5 -0
- package/dist/unpkg/prod-deprecated/declarations/serializer.d.ts +254 -0
- package/dist/unpkg/prod-deprecated/declarations/store/-private.d.ts +223 -0
- package/dist/unpkg/prod-deprecated/declarations/store.d.ts +3 -0
- package/dist/unpkg/prod-deprecated/errors-CIGPcDvd.js +2595 -0
- package/dist/unpkg/prod-deprecated/hooks-QqRnX108.js +74 -0
- package/dist/unpkg/prod-deprecated/index.js +195 -0
- package/dist/unpkg/prod-deprecated/json-BNrV8EYG.js +1272 -0
- package/dist/unpkg/prod-deprecated/model/-private.js +1 -0
- package/dist/unpkg/prod-deprecated/model/migration-support.js +579 -0
- package/dist/unpkg/prod-deprecated/model-for-CqXsIKws.js +221 -0
- package/dist/unpkg/prod-deprecated/model-fragments.js +76 -0
- package/dist/unpkg/prod-deprecated/model.js +667 -0
- package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
- package/dist/unpkg/prod-deprecated/schema-provider-g5MfTj8n.js +2338 -0
- package/dist/unpkg/prod-deprecated/serialize-into-hash-BnYvPex3.js +261 -0
- package/dist/unpkg/prod-deprecated/serializer/json-api.js +527 -0
- package/dist/unpkg/prod-deprecated/serializer/json.js +6 -0
- package/dist/unpkg/prod-deprecated/serializer/rest.js +1243 -0
- package/dist/unpkg/prod-deprecated/serializer/transform.js +278 -0
- package/dist/unpkg/prod-deprecated/serializer.js +248 -0
- package/dist/unpkg/prod-deprecated/store.js +636 -0
- package/dist/unpkg/prod-deprecated/util-Dul6TZts.js +35 -0
- package/dist/unpkg/prod-deprecated/utils-Cqw9eRj5.js +23 -0
- package/package.json +30 -6
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import type { Store } from "@warp-drive/core";
|
|
2
|
+
import type { CAUTION_MEGA_DANGER_ZONE_Extension, ProcessedExtension } from "@warp-drive/core/reactive";
|
|
3
|
+
import type { ExtensibleField } from "@warp-drive/core/reactive/-private/schema";
|
|
4
|
+
import type { SchemaService } from "@warp-drive/core/types";
|
|
5
|
+
import type { ChangedAttributesHash } from "@warp-drive/core/types/cache";
|
|
6
|
+
import type { ResourceKey } from "@warp-drive/core/types/identifier";
|
|
7
|
+
import type { ObjectValue } from "@warp-drive/core/types/json/raw";
|
|
8
|
+
import type { TypedRecordInstance, TypeFromInstance } from "@warp-drive/core/types/record";
|
|
9
|
+
import type { Derivation, HashFn, Transformation } from "@warp-drive/core/types/schema/concepts";
|
|
10
|
+
import type { ArrayField, CacheableFieldSchema, DerivedField, FieldSchema, GenericField, HashField, IdentityField, LegacyResourceSchema, ObjectField, ObjectSchema, ResourceSchema } from "@warp-drive/core/types/schema/fields";
|
|
11
|
+
import type { WithPartial } from "@warp-drive/core/types/utils";
|
|
12
|
+
import type { Snapshot } from "../compat/-private.js";
|
|
13
|
+
import type { MinimalLegacyRecord } from "./-private/model-methods.js";
|
|
14
|
+
import { belongsTo, hasMany } from "./-private/model-methods.js";
|
|
15
|
+
import RecordState from "./-private/record-state.js";
|
|
16
|
+
import type BelongsToReference from "./-private/references/belongs-to.js";
|
|
17
|
+
import type HasManyReference from "./-private/references/has-many.js";
|
|
18
|
+
import type { _MaybeBelongsToFields, MaybeHasManyFields } from "./-private/type-utils.js";
|
|
19
|
+
export type WithLegacyDerivations<T extends TypedRecordInstance> = T & MinimalLegacyRecord & {
|
|
20
|
+
belongsTo: typeof belongsTo;
|
|
21
|
+
hasMany: typeof hasMany;
|
|
22
|
+
};
|
|
23
|
+
type AttributesSchema = ReturnType<Exclude<SchemaService["attributesDefinitionFor"], undefined>>;
|
|
24
|
+
type RelationshipsSchema = ReturnType<Exclude<SchemaService["relationshipsDefinitionFor"], undefined>>;
|
|
25
|
+
interface LegacyModeRecord<T extends TypedRecordInstance> {
|
|
26
|
+
id: string | null;
|
|
27
|
+
serialize(options?: Record<string, unknown>): unknown;
|
|
28
|
+
destroyRecord(options?: Record<string, unknown>): Promise<this>;
|
|
29
|
+
unloadRecord(): void;
|
|
30
|
+
changedAttributes(): ChangedAttributesHash;
|
|
31
|
+
rollbackAttributes(): void;
|
|
32
|
+
_createSnapshot(): Snapshot<T>;
|
|
33
|
+
save(options?: Record<string, unknown>): Promise<this>;
|
|
34
|
+
reload(options?: Record<string, unknown>): Promise<T>;
|
|
35
|
+
belongsTo<K extends _MaybeBelongsToFields<T>>(prop: K): BelongsToReference<T, K>;
|
|
36
|
+
hasMany<K extends MaybeHasManyFields<T>>(prop: K): HasManyReference<T, K>;
|
|
37
|
+
deleteRecord(): void;
|
|
38
|
+
adapterError: unknown;
|
|
39
|
+
constructor: {
|
|
40
|
+
modelName: TypeFromInstance<T>;
|
|
41
|
+
};
|
|
42
|
+
currentState: RecordState;
|
|
43
|
+
dirtyType: "deleted" | "created" | "updated" | "";
|
|
44
|
+
errors: unknown;
|
|
45
|
+
hasDirtyAttributes: boolean;
|
|
46
|
+
isDeleted: boolean;
|
|
47
|
+
isEmpty: boolean;
|
|
48
|
+
isError: boolean;
|
|
49
|
+
isLoaded: boolean;
|
|
50
|
+
isLoading: boolean;
|
|
51
|
+
isDestroying: boolean;
|
|
52
|
+
isDestroyed: boolean;
|
|
53
|
+
isNew: boolean;
|
|
54
|
+
isSaving: boolean;
|
|
55
|
+
isValid: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A Type utility that enables quickly adding type information for the fields
|
|
59
|
+
* defined by `import { withDefaults } from '@warp-drive/legacy/model/migration-support'`.
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { withDefaults, WithLegacy } from '@warp-drive/legacy/model/migration-support';
|
|
65
|
+
* import { Type } from '@warp-drive/core/types/symbols';
|
|
66
|
+
* import type { HasMany } from '@@warp-drive/legacy/model';
|
|
67
|
+
*
|
|
68
|
+
* export const UserSchema = withDefaults({
|
|
69
|
+
* type: 'user',
|
|
70
|
+
* fields: [
|
|
71
|
+
* { name: 'firstName', kind: 'attribute' },
|
|
72
|
+
* { name: 'lastName', kind: 'attribute' },
|
|
73
|
+
* { name: 'age', kind: 'attribute' },
|
|
74
|
+
* { name: 'friends',
|
|
75
|
+
* kind: 'hasMany',
|
|
76
|
+
* type: 'user',
|
|
77
|
+
* options: { inverse: 'friends', async: false }
|
|
78
|
+
* },
|
|
79
|
+
* { name: 'bestFriend',
|
|
80
|
+
* kind: 'belongsTo',
|
|
81
|
+
* type: 'user',
|
|
82
|
+
* options: { inverse: null, async: false }
|
|
83
|
+
* },
|
|
84
|
+
* ],
|
|
85
|
+
* });
|
|
86
|
+
*
|
|
87
|
+
* export type User = WithLegacy<{
|
|
88
|
+
* firstName: string;
|
|
89
|
+
* lastName: string;
|
|
90
|
+
* age: number;
|
|
91
|
+
* friends: HasMany<User>;
|
|
92
|
+
* bestFriend: User | null;
|
|
93
|
+
* [Type]: 'user';
|
|
94
|
+
* }>
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
export type WithLegacy<T extends TypedRecordInstance> = T & LegacyModeRecord<T>;
|
|
99
|
+
/**
|
|
100
|
+
* A function which adds the necessary fields to a schema and marks it as
|
|
101
|
+
* being in LegacyMode. This is used to support the legacy features of
|
|
102
|
+
* @warp-drive/legacy/model while migrating to WarpDrive.
|
|
103
|
+
*
|
|
104
|
+
* Example:
|
|
105
|
+
*
|
|
106
|
+
* ```ts
|
|
107
|
+
* import { withDefaults, WithLegacy } from '@warp-drive/legacy/model/migration-support';
|
|
108
|
+
* import { Type } from '@warp-drive/core/types/symbols';
|
|
109
|
+
* import type { HasMany } from '@warp-drive/legacy/model';
|
|
110
|
+
*
|
|
111
|
+
* export const UserSchema = withDefaults({
|
|
112
|
+
* type: 'user',
|
|
113
|
+
* fields: [
|
|
114
|
+
* { name: 'firstName', kind: 'attribute' },
|
|
115
|
+
* { name: 'lastName', kind: 'attribute' },
|
|
116
|
+
* { name: 'age', kind: 'attribute' },
|
|
117
|
+
* { name: 'friends',
|
|
118
|
+
* kind: 'hasMany',
|
|
119
|
+
* type: 'user',
|
|
120
|
+
* options: { inverse: 'friends', async: false }
|
|
121
|
+
* },
|
|
122
|
+
* { name: 'bestFriend',
|
|
123
|
+
* kind: 'belongsTo',
|
|
124
|
+
* type: 'user',
|
|
125
|
+
* options: { inverse: null, async: false }
|
|
126
|
+
* },
|
|
127
|
+
* ],
|
|
128
|
+
* });
|
|
129
|
+
*
|
|
130
|
+
* export type User = WithLegacy<{
|
|
131
|
+
* firstName: string;
|
|
132
|
+
* lastName: string;
|
|
133
|
+
* age: number;
|
|
134
|
+
* friends: HasMany<User>;
|
|
135
|
+
* bestFriend: User | null;
|
|
136
|
+
* [Type]: 'user';
|
|
137
|
+
* }>
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* Using this function require registering the derivations
|
|
141
|
+
* it requires with the schema service.
|
|
142
|
+
*
|
|
143
|
+
* ```ts
|
|
144
|
+
* import { registerDerivations } from '@warp-drive/legacy/model/migration-support';
|
|
145
|
+
*
|
|
146
|
+
* registerDerivations(schema);
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* @param schema The schema to add legacy support to.
|
|
150
|
+
* @return The schema with legacy support added.
|
|
151
|
+
* @public
|
|
152
|
+
*/
|
|
153
|
+
export declare function withDefaults(schema: WithPartial<LegacyResourceSchema, "legacy" | "identity">): LegacyResourceSchema;
|
|
154
|
+
/**
|
|
155
|
+
* Adds the necessasary fields to the schema for supporting
|
|
156
|
+
* the deprecated request methods on LegacyMode schemas.
|
|
157
|
+
*
|
|
158
|
+
* Use this instead of `withDefaults` to add the fields
|
|
159
|
+
* and behaviors necessary to support Model-Like capabilities.
|
|
160
|
+
*
|
|
161
|
+
* ```ts
|
|
162
|
+
* import { withRestoredDeprecatedModelRequestBehaviors } from '@warp-drive/legacy/model/migration-support';
|
|
163
|
+
*
|
|
164
|
+
* export const UserSchema = withRestoredDeprecatedModelRequestBehaviors({
|
|
165
|
+
* type: 'user',
|
|
166
|
+
* fields: [
|
|
167
|
+
* { name: 'firstName', kind: 'attribute' },
|
|
168
|
+
* { name: 'lastName', kind: 'attribute' },
|
|
169
|
+
* ]
|
|
170
|
+
* });
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export declare function withRestoredDeprecatedModelRequestBehaviors(schema: WithPartial<LegacyResourceSchema, "legacy" | "identity">): LegacyResourceSchema;
|
|
174
|
+
/**
|
|
175
|
+
* A function which registers the necessary derivations to support
|
|
176
|
+
* the LegacyMode features of @warp-drive/legacy/model while migrating to WarpDrive.
|
|
177
|
+
*
|
|
178
|
+
* This must be called in order to use the fields added by {@link withDefaults} or
|
|
179
|
+
* {@link withRestoredDeprecatedModelRequestBehaviors}.
|
|
180
|
+
*
|
|
181
|
+
* @param schema The schema service to register the derivations with.
|
|
182
|
+
* @public
|
|
183
|
+
*/
|
|
184
|
+
export declare function registerDerivations(schema: SchemaService): void;
|
|
185
|
+
/**
|
|
186
|
+
* A class which provides a schema service that delegates between
|
|
187
|
+
* a primary schema service and one that supports legacy model
|
|
188
|
+
* classes as its schema source.
|
|
189
|
+
*
|
|
190
|
+
* When the primary schema service has a schema for the given
|
|
191
|
+
* resource, it will be used. Otherwise, the fallback schema
|
|
192
|
+
* service will be used.
|
|
193
|
+
*
|
|
194
|
+
* This can be used when incrementally migrating from Models to
|
|
195
|
+
* ReactiveResources by enabling unmigrated Models to continue to
|
|
196
|
+
* provide their own schema information to the application.
|
|
197
|
+
*
|
|
198
|
+
* ```ts
|
|
199
|
+
* import { DelegatingSchemaService } from '@warp-drive/legacy/model/migration-support';
|
|
200
|
+
* import { SchemaService } from '@warp-drive/core/reactive';
|
|
201
|
+
*
|
|
202
|
+
* class AppStore extends Store {
|
|
203
|
+
* createSchemaService() {
|
|
204
|
+
* const schema = new SchemaService();
|
|
205
|
+
* return new DelegatingSchemaService(this, schema);
|
|
206
|
+
* }
|
|
207
|
+
* }
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* All calls to register resources, derivations, transformations, hash functions
|
|
211
|
+
* etc. will be delegated to the primary schema service.
|
|
212
|
+
*
|
|
213
|
+
* @class DelegatingSchemaService
|
|
214
|
+
* @public
|
|
215
|
+
*/
|
|
216
|
+
export interface DelegatingSchemaService {
|
|
217
|
+
attributesDefinitionFor?(resource: ResourceKey | {
|
|
218
|
+
type: string;
|
|
219
|
+
}): AttributesSchema;
|
|
220
|
+
relationshipsDefinitionFor?(resource: ResourceKey | {
|
|
221
|
+
type: string;
|
|
222
|
+
}): RelationshipsSchema;
|
|
223
|
+
doesTypeExist?(type: string): boolean;
|
|
224
|
+
}
|
|
225
|
+
export declare class DelegatingSchemaService implements SchemaService {
|
|
226
|
+
constructor(store: Store, schema: SchemaService);
|
|
227
|
+
isDelegated(resource: ResourceKey | {
|
|
228
|
+
type: string;
|
|
229
|
+
}): boolean;
|
|
230
|
+
resourceTypes(): Readonly<string[]>;
|
|
231
|
+
hasResource(resource: ResourceKey | {
|
|
232
|
+
type: string;
|
|
233
|
+
}): boolean;
|
|
234
|
+
hasTrait(type: string): boolean;
|
|
235
|
+
resourceHasTrait(resource: ResourceKey | {
|
|
236
|
+
type: string;
|
|
237
|
+
}, trait: string): boolean;
|
|
238
|
+
fields(resource: ResourceKey | {
|
|
239
|
+
type: string;
|
|
240
|
+
}): Map<string, FieldSchema>;
|
|
241
|
+
cacheFields?(resource: {
|
|
242
|
+
type: string;
|
|
243
|
+
}): Map<string, Exclude<CacheableFieldSchema, IdentityField>>;
|
|
244
|
+
transformation(field: GenericField | ObjectField | ArrayField | {
|
|
245
|
+
type: string;
|
|
246
|
+
}): Transformation;
|
|
247
|
+
hashFn(field: HashField | {
|
|
248
|
+
type: string;
|
|
249
|
+
}): HashFn;
|
|
250
|
+
derivation(field: DerivedField | {
|
|
251
|
+
type: string;
|
|
252
|
+
}): Derivation;
|
|
253
|
+
resource(resource: ResourceKey | {
|
|
254
|
+
type: string;
|
|
255
|
+
}): ResourceSchema | ObjectSchema;
|
|
256
|
+
registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
|
|
257
|
+
registerResource(schema: ResourceSchema | ObjectSchema): void;
|
|
258
|
+
registerTransformation(transform: Transformation): void;
|
|
259
|
+
registerDerivation<
|
|
260
|
+
R,
|
|
261
|
+
T,
|
|
262
|
+
FM extends ObjectValue | null
|
|
263
|
+
>(derivation: Derivation<R, T, FM>): void;
|
|
264
|
+
registerHashFn(hashFn: HashFn): void;
|
|
265
|
+
CAUTION_MEGA_DANGER_ZONE_hasExtension(ext: {
|
|
266
|
+
kind: "object" | "array";
|
|
267
|
+
name: string;
|
|
268
|
+
}): boolean;
|
|
269
|
+
CAUTION_MEGA_DANGER_ZONE_registerExtension(extension: CAUTION_MEGA_DANGER_ZONE_Extension): void;
|
|
270
|
+
CAUTION_MEGA_DANGER_ZONE_resourceExtensions(resource: ResourceKey | {
|
|
271
|
+
type: string;
|
|
272
|
+
}): null | ProcessedExtension["features"];
|
|
273
|
+
CAUTION_MEGA_DANGER_ZONE_objectExtensions(field: ExtensibleField, resolvedType: string | null): null | ProcessedExtension["features"];
|
|
274
|
+
CAUTION_MEGA_DANGER_ZONE_arrayExtensions(field: ExtensibleField): null | ProcessedExtension["features"];
|
|
275
|
+
}
|
|
276
|
+
export interface PrivateDelegatingSchemaService extends DelegatingSchemaService {
|
|
277
|
+
_preferred: SchemaService;
|
|
278
|
+
_secondary: SchemaService;
|
|
279
|
+
}
|
|
280
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Fragment } from "./fragment.js";
|
|
2
|
+
export declare class FragmentArray<T extends Fragment> {
|
|
3
|
+
isDestroying: boolean;
|
|
4
|
+
isDestroyed: boolean;
|
|
5
|
+
get hasDirtyAttributes(): boolean;
|
|
6
|
+
addFragment(fragment?: T): Fragment[] | undefined;
|
|
7
|
+
createFragment(fragment?: T): Fragment | undefined;
|
|
8
|
+
removeFragment(fragment?: T): void;
|
|
9
|
+
rollbackAttributes(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const FragmentArrayExtension: {
|
|
12
|
+
kind: "array";
|
|
13
|
+
name: "fragment-array";
|
|
14
|
+
features: typeof FragmentArray;
|
|
15
|
+
};
|
|
16
|
+
export default FragmentArrayExtension;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PrivateReactiveResource } from "@warp-drive/core/reactive/-private";
|
|
2
|
+
export declare class Fragment {
|
|
3
|
+
isDestroying: boolean;
|
|
4
|
+
isDestroyed: boolean;
|
|
5
|
+
get hasDirtyAttributes(): boolean;
|
|
6
|
+
get isFragment(): boolean;
|
|
7
|
+
get $type(): string | null | undefined;
|
|
8
|
+
rollbackAttributes(this: PrivateReactiveResource): void;
|
|
9
|
+
}
|
|
10
|
+
export declare const FragmentExtension: {
|
|
11
|
+
kind: "object";
|
|
12
|
+
name: "fragment";
|
|
13
|
+
features: typeof Fragment;
|
|
14
|
+
};
|
|
15
|
+
export default FragmentExtension;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Store } from "@warp-drive/core";
|
|
2
|
+
import type { ModelSchema } from "@warp-drive/core/types";
|
|
3
|
+
import type { TypedRecordInstance, TypeFromInstance } from "@warp-drive/core/types/record";
|
|
4
|
+
import type { LegacyAttributeField, LegacyRelationshipField } from "@warp-drive/core/types/schema/fields";
|
|
5
|
+
type KeyOrString<T> = keyof T & string extends never ? string : keyof T & string;
|
|
6
|
+
export declare function getShimClass<T>(store: Store, modelName: T extends TypedRecordInstance ? TypeFromInstance<T> : string): ShimModelClass<T>;
|
|
7
|
+
export declare class ShimModelClass<T = unknown> implements ModelSchema<T> {
|
|
8
|
+
__store: Store;
|
|
9
|
+
modelName: T extends TypedRecordInstance ? TypeFromInstance<T> : string;
|
|
10
|
+
constructor(store: Store, modelName: T extends TypedRecordInstance ? TypeFromInstance<T> : string);
|
|
11
|
+
get fields(): Map<KeyOrString<T>, "attribute" | "belongsTo" | "hasMany">;
|
|
12
|
+
get attributes(): Map<KeyOrString<T>, LegacyAttributeField>;
|
|
13
|
+
get relationshipsByName(): Map<KeyOrString<T>, LegacyRelationshipField>;
|
|
14
|
+
eachAttribute<K extends KeyOrString<T>>(callback: (key: K, attribute: LegacyAttributeField) => void, binding?: T): void;
|
|
15
|
+
eachRelationship<K extends KeyOrString<T>>(callback: (key: K, relationship: LegacyRelationshipField) => void, binding?: T): void;
|
|
16
|
+
eachTransformedAttribute<K extends KeyOrString<T>>(callback: (key: K, type: string | null) => void, binding?: T): void;
|
|
17
|
+
}
|
|
18
|
+
export declare function fragmentsModelFor<T extends TypedRecordInstance>(this: Store, modelName: T extends TypedRecordInstance ? TypeFromInstance<T> : string): ShimModelClass<T>;
|
|
19
|
+
export declare const modelFor: typeof fragmentsModelFor;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WithArrayLike, WithEmberObject } from "../compat/extensions.js";
|
|
2
|
+
import type { Fragment } from "./extensions/fragment.js";
|
|
3
|
+
import type { FragmentArray } from "./extensions/fragment-array.js";
|
|
4
|
+
export type WithFragment<T> = T & WithEmberObject<T> & Fragment;
|
|
5
|
+
export type WithFragmentArray<T extends Fragment> = T & WithArrayLike<T> & FragmentArray<T>;
|
package/dist/unpkg/dev/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type ApplicationInstance from "@ember/application/instance";
|
|
2
|
+
import type { SchemaService } from "@warp-drive/core/types";
|
|
3
|
+
export declare function registerFragmentExtensions(schema: SchemaService): void;
|
|
4
|
+
export declare function initialize(application: ApplicationInstance): void;
|
|
5
|
+
declare const _default: {
|
|
6
|
+
name: string;
|
|
7
|
+
initialize: (application: ApplicationInstance) => void;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used as a helper to setup the relevant parts of an array
|
|
3
|
+
* schema and add extensions etc.
|
|
4
|
+
*
|
|
5
|
+
* @param arrayName The name of the array
|
|
6
|
+
* @returns The schema for an array
|
|
7
|
+
*/
|
|
8
|
+
export declare function withArrayDefaults<ArrayName extends string>(arrayName: ArrayName): {
|
|
9
|
+
kind: "array";
|
|
10
|
+
name: ArrayName;
|
|
11
|
+
type: `array:${string}`;
|
|
12
|
+
options: {
|
|
13
|
+
arrayExtensions: string[];
|
|
14
|
+
};
|
|
15
|
+
};
|
package/dist/unpkg/dev/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used as a helper to setup the relevant parts of a fragment-array
|
|
3
|
+
* schema and add extensions etc.
|
|
4
|
+
*
|
|
5
|
+
* @param fragmentArrayType The type of the fragment-array
|
|
6
|
+
* @param fragmentArrayName The name of the fragment-array
|
|
7
|
+
* @returns The schema for a fragment-array
|
|
8
|
+
*/
|
|
9
|
+
export declare function withFragmentArrayDefaults<
|
|
10
|
+
FragmentArrayType extends string,
|
|
11
|
+
FragmentArrayName extends string
|
|
12
|
+
>(fragmentArrayType: FragmentArrayType, fragmentArrayName?: FragmentArrayName): {
|
|
13
|
+
kind: "schema-array";
|
|
14
|
+
type: `fragment:${string}`;
|
|
15
|
+
name: string;
|
|
16
|
+
options: {
|
|
17
|
+
arrayExtensions: string[];
|
|
18
|
+
defaultValue: boolean;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used as a helper to setup the relevant parts of a fragment schema
|
|
3
|
+
* and add extensions etc.
|
|
4
|
+
*
|
|
5
|
+
* @param fragmentType The type of the fragment
|
|
6
|
+
* @param fragmentName The optional name of the fragment. If not provided, it will default to the fragmentType.
|
|
7
|
+
* @returns The schema for a fragment
|
|
8
|
+
*/
|
|
9
|
+
export declare function withFragmentDefaults<
|
|
10
|
+
FragmentType extends string,
|
|
11
|
+
FragmentName extends string
|
|
12
|
+
>(fragmentType: FragmentType, fragmentName?: FragmentName): {
|
|
13
|
+
kind: "schema-object";
|
|
14
|
+
type: `fragment:${FragmentType}`;
|
|
15
|
+
name: FragmentType | FragmentName;
|
|
16
|
+
options: {
|
|
17
|
+
objectExtensions: string[];
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { LegacyResourceSchema, ResourceSchema } from "@warp-drive/core/types/schema/fields";
|
|
2
|
+
import type { WithPartial } from "@warp-drive/core/types/utils";
|
|
3
|
+
export declare function withLegacy(schema: WithPartial<LegacyResourceSchema, "legacy" | "identity">): ResourceSchema;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { withArrayDefaults } from "./model-fragments/utilities/with-array-defaults.js";
|
|
2
|
+
export { withFragmentDefaults } from "./model-fragments/utilities/with-fragment-defaults.js";
|
|
3
|
+
export { withFragmentArrayDefaults } from "./model-fragments/utilities/with-fragment-array-defaults.js";
|
|
4
|
+
export { withLegacy } from "./model-fragments/utilities/with-legacy.js";
|
|
5
|
+
export { registerFragmentExtensions } from "./model-fragments/instance-initializers/fragment-extensions.js";
|
|
6
|
+
export { modelFor } from "./model-fragments/hooks/model-for.js";
|
|
7
|
+
export { FragmentArray, FragmentArrayExtension } from "./model-fragments/extensions/fragment-array.js";
|
|
8
|
+
export { Fragment, FragmentExtension } from "./model-fragments/extensions/fragment.js";
|
|
9
|
+
export type { WithFragment, WithFragmentArray } from "./model-fragments/index.js";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This package provides a Presentation Model for resource data in an WarpDrive Cache.
|
|
3
|
+
*
|
|
4
|
+
* Models are defined as classes extending from `import Model from '@warp-drive/legacy/model';` and the
|
|
5
|
+
* attributes and relationships on these classes are parsed at runtime to supply static "schema"
|
|
6
|
+
* to WarpDrive's SchemaService.
|
|
7
|
+
*
|
|
8
|
+
* Resource data for individual resources fetched from your API is presented to the UI via instances
|
|
9
|
+
* of the `Model`s you define. An instantiated `Model` is referred to as a `record`.
|
|
10
|
+
|
|
11
|
+
When we refer to the `ModelClass` as opposed to a `Model` or `Record` we are referring
|
|
12
|
+
specifically to the class definition and the static schema methods present on it.
|
|
13
|
+
|
|
14
|
+
When we refer to a `record` we refer to a specific class instance presenting
|
|
15
|
+
the resource data for a given `type` and `id`.
|
|
16
|
+
|
|
17
|
+
### Defining a Model
|
|
18
|
+
|
|
19
|
+
```js [app/models/person.js]
|
|
20
|
+
import Model, { attr, belongsTo, hasMany } from '@warp-drive/legacy/model';
|
|
21
|
+
|
|
22
|
+
export default class PersonModel extends Model {
|
|
23
|
+
@attr name;
|
|
24
|
+
|
|
25
|
+
@belongsTo('pet', { inverse: 'owners', async: false }) dog;
|
|
26
|
+
|
|
27
|
+
@hasMany('person', { inverse: 'friends', async: true }) friends;
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### modelName convention
|
|
32
|
+
|
|
33
|
+
By convention, the name of a given model (its `type`) matches the name
|
|
34
|
+
of the file in the `app/models` folder and should be lowercase, singular
|
|
35
|
+
and dasherized.
|
|
36
|
+
|
|
37
|
+
@module
|
|
38
|
+
*/
|
|
39
|
+
export { attr } from "./model/-private/attr.js";
|
|
40
|
+
export { belongsTo } from "./model/-private/belongs-to.js";
|
|
41
|
+
export { hasMany } from "./model/-private/has-many.js";
|
|
42
|
+
export { Model, restoreDeprecatedModelRequestBehaviors } from "./model/-private/model.js";
|
|
43
|
+
export { Model as default } from "./model/-private/model.js";
|
|
44
|
+
export type { PromiseBelongsTo as AsyncBelongsTo } from "./model/-private/promise-belongs-to.js";
|
|
45
|
+
export type { PromiseManyArray as AsyncHasMany } from "./model/-private/promise-many-array.js";
|
|
46
|
+
export type { RelatedCollection as ManyArray } from "@warp-drive/core/store/-private";
|
|
47
|
+
export type { RelatedCollection as HasMany } from "@warp-drive/core/store/-private";
|
|
48
|
+
export { instantiateRecord, teardownRecord, modelFor } from "./model/-private/hooks.js";
|
|
49
|
+
export { buildSchema } from "./model/-private/schema-provider.js";
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import Mixin from "@ember/object/mixin";
|
|
2
|
+
/**
|
|
3
|
+
## Using Embedded Records
|
|
4
|
+
|
|
5
|
+
`EmbeddedRecordsMixin` supports serializing embedded records.
|
|
6
|
+
|
|
7
|
+
To set up embedded records, include the mixin when extending a serializer,
|
|
8
|
+
then define and configure embedded (model) relationships.
|
|
9
|
+
|
|
10
|
+
Note that embedded records will serialize with the serializer for their model instead of the serializer in which they are defined.
|
|
11
|
+
|
|
12
|
+
Note also that this mixin does not work with JSONAPISerializer because the JSON:API specification does not describe how to format embedded resources.
|
|
13
|
+
|
|
14
|
+
Below is an example of a per-type serializer (`post` type).
|
|
15
|
+
|
|
16
|
+
```js [app/serializers/post.js]
|
|
17
|
+
import RESTSerializer, { EmbeddedRecordsMixin } from '@warp-drive/legacy/serializer/rest';
|
|
18
|
+
|
|
19
|
+
export default class PostSerializer extends RESTSerializer.extend(EmbeddedRecordsMixin) {
|
|
20
|
+
attrs = {
|
|
21
|
+
author: { embedded: 'always' },
|
|
22
|
+
comments: { serialize: 'ids' }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
Note that this use of `{ embedded: 'always' }` is unrelated to
|
|
27
|
+
the `{ embedded: 'always' }` that is defined as an option on `attr` as part of
|
|
28
|
+
defining a model while working with the `ActiveModelSerializer`. Nevertheless,
|
|
29
|
+
using `{ embedded: 'always' }` as an option to `attr` is not a valid way to set up
|
|
30
|
+
embedded records.
|
|
31
|
+
|
|
32
|
+
The `attrs` option for a resource `{ embedded: 'always' }` is shorthand for:
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
{
|
|
36
|
+
serialize: 'records',
|
|
37
|
+
deserialize: 'records'
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Configuring Attrs
|
|
42
|
+
|
|
43
|
+
A resource's `attrs` option may be set to use `ids`, `records` or false for the
|
|
44
|
+
`serialize` and `deserialize` settings.
|
|
45
|
+
|
|
46
|
+
The `attrs` property can be set on the `ApplicationSerializer` or a per-type
|
|
47
|
+
serializer.
|
|
48
|
+
|
|
49
|
+
In the case where embedded JSON is expected while extracting a payload (reading)
|
|
50
|
+
the setting is `deserialize: 'records'`, there is no need to use `ids` when
|
|
51
|
+
extracting as that is the default behaviour without this mixin if you are using
|
|
52
|
+
the vanilla `EmbeddedRecordsMixin`. Likewise, to embed JSON in the payload while
|
|
53
|
+
serializing `serialize: 'records'` is the setting to use. There is an option of
|
|
54
|
+
not embedding JSON in the serialized payload by using `serialize: 'ids'`. If you
|
|
55
|
+
do not want the relationship sent at all, you can use `serialize: false`.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### EmbeddedRecordsMixin defaults
|
|
59
|
+
If you do not overwrite `attrs` for a specific relationship, the `EmbeddedRecordsMixin`
|
|
60
|
+
will behave in the following way:
|
|
61
|
+
|
|
62
|
+
BelongsTo: `{ serialize: 'id', deserialize: 'id' }`
|
|
63
|
+
HasMany: `{ serialize: false, deserialize: 'ids' }`
|
|
64
|
+
|
|
65
|
+
### Model Relationships
|
|
66
|
+
|
|
67
|
+
Embedded records must have a model defined to be extracted and serialized. Note that
|
|
68
|
+
when defining any relationships on your model such as `belongsTo` and `hasMany`, you
|
|
69
|
+
should not both specify `async: true` and also indicate through the serializer's
|
|
70
|
+
`attrs` attribute that the related model should be embedded for deserialization.
|
|
71
|
+
If a model is declared embedded for deserialization (`embedded: 'always'` or `deserialize: 'records'`),
|
|
72
|
+
then do not use `async: true`.
|
|
73
|
+
|
|
74
|
+
To successfully extract and serialize embedded records the model relationships
|
|
75
|
+
must be set up correctly. See the
|
|
76
|
+
[defining relationships](https://guides.emberjs.com/current/models/relationships)
|
|
77
|
+
section of the **Defining Models** guide page.
|
|
78
|
+
|
|
79
|
+
Records without an `id` property are not considered embedded records, model
|
|
80
|
+
instances must have an `id` property to be used with Ember Data.
|
|
81
|
+
|
|
82
|
+
### Example JSON payloads, Models and Serializers
|
|
83
|
+
|
|
84
|
+
**When customizing a serializer it is important to grok what the customizations
|
|
85
|
+
are. Please read the docs for the methods this mixin provides, in case you need
|
|
86
|
+
to modify it to fit your specific needs.**
|
|
87
|
+
|
|
88
|
+
@class EmbeddedRecordsMixin
|
|
89
|
+
@public
|
|
90
|
+
*/
|
|
91
|
+
export declare const EmbeddedRecordsMixin: Mixin;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { TransformName } from "@warp-drive/core/types/symbols";
|
|
2
|
+
export interface BooleanTransform {
|
|
3
|
+
[TransformName]: "boolean";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
The `BooleanTransform` class is used to serialize and deserialize
|
|
7
|
+
boolean attributes on Ember Data record objects. This transform is
|
|
8
|
+
used when `'boolean'` is passed as the type parameter to the
|
|
9
|
+
{@link attr}function.
|
|
10
|
+
|
|
11
|
+
Usage
|
|
12
|
+
|
|
13
|
+
```js [app/models/user.js]
|
|
14
|
+
import { Model, attr } from '@warp-drive/legacy/model';
|
|
15
|
+
|
|
16
|
+
export default class UserModel extends Model {
|
|
17
|
+
@attr('boolean') isAdmin;
|
|
18
|
+
@attr('string') name;
|
|
19
|
+
@attr('string') email;
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
By default, the boolean transform only allows for values of `true` or
|
|
24
|
+
`false`. You can opt into allowing `null` values for
|
|
25
|
+
boolean attributes via `attr('boolean', { allowNull: true })`
|
|
26
|
+
|
|
27
|
+
```js [app/models/user.js]
|
|
28
|
+
import { Model, attr } from '@warp-drive/legacy/model';
|
|
29
|
+
|
|
30
|
+
export default class UserModel extends Model {
|
|
31
|
+
@attr('string') email;
|
|
32
|
+
@attr('string') username;
|
|
33
|
+
@attr('boolean', { allowNull: true }) wantsWeeklyEmail;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
@public
|
|
38
|
+
*/
|
|
39
|
+
export declare class BooleanTransform {
|
|
40
|
+
deserialize(serialized: boolean | null | number | string, options?: {
|
|
41
|
+
allowNull?: boolean;
|
|
42
|
+
}): boolean | null;
|
|
43
|
+
serialize(deserialized: boolean | null, options?: {
|
|
44
|
+
allowNull?: boolean;
|
|
45
|
+
}): boolean | null;
|
|
46
|
+
static create(): BooleanTransform;
|
|
47
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { TransformName } from "@warp-drive/core/types/symbols";
|
|
2
|
+
export interface DateTransform {
|
|
3
|
+
[TransformName]: "date";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
The `DateTransform` class is used to serialize and deserialize
|
|
7
|
+
date attributes on Ember Data record objects. This transform is used
|
|
8
|
+
when `'date'` is passed as the type parameter to the
|
|
9
|
+
{@link attr} function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)
|
|
10
|
+
standard.
|
|
11
|
+
|
|
12
|
+
```js [app/models/score.js]
|
|
13
|
+
import Model, { attr, belongsTo } from '@ember-data/model';
|
|
14
|
+
|
|
15
|
+
export default class ScoreModel extends Model {
|
|
16
|
+
@attr('number') value;
|
|
17
|
+
@belongsTo('player') player;
|
|
18
|
+
@attr('date') date;
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
@public
|
|
23
|
+
*/
|
|
24
|
+
export declare class DateTransform {
|
|
25
|
+
deserialize(serialized: string | number | null, _options?: Record<string, unknown>): Date | null;
|
|
26
|
+
serialize(date: Date, _options?: Record<string, unknown>): string | null;
|
|
27
|
+
static create(): DateTransform;
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { TransformName } from "@warp-drive/core/types/symbols";
|
|
2
|
+
export interface NumberTransform {
|
|
3
|
+
[TransformName]: "number";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
The `NumberTransform` class is used to serialize and deserialize
|
|
7
|
+
numeric attributes on Ember Data record objects. This transform is
|
|
8
|
+
used when `number` is passed as the type parameter to the
|
|
9
|
+
{@link attr} function.
|
|
10
|
+
|
|
11
|
+
Usage
|
|
12
|
+
|
|
13
|
+
```js [app/models/score.js]
|
|
14
|
+
import Model, { attr, belongsTo } from '@ember-data/model';
|
|
15
|
+
|
|
16
|
+
export default class ScoreModel extends Model {
|
|
17
|
+
@attr('number') value;
|
|
18
|
+
@belongsTo('player') player;
|
|
19
|
+
@attr('date') date;
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
@public
|
|
24
|
+
*/
|
|
25
|
+
export declare class NumberTransform {
|
|
26
|
+
deserialize(serialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
|
|
27
|
+
serialize(deserialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
|
|
28
|
+
static create(): NumberTransform;
|
|
29
|
+
}
|