@warp-drive/legacy 5.6.0-alpha.15 → 5.6.0-alpha.17

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.
Files changed (193) hide show
  1. package/declarations/adapter/-private/build-url-mixin.d.ts +41 -29
  2. package/declarations/adapter/-private/fastboot-interface.d.ts +4 -5
  3. package/declarations/adapter/-private/utils/continue-on-reject.d.ts +5 -6
  4. package/declarations/adapter/-private/utils/determine-body-promise.d.ts +1 -2
  5. package/declarations/adapter/-private/utils/fetch.d.ts +2 -3
  6. package/declarations/adapter/-private/utils/parse-response-headers.d.ts +0 -1
  7. package/declarations/adapter/-private/utils/serialize-into-hash.d.ts +5 -6
  8. package/declarations/adapter/-private/utils/serialize-query-params.d.ts +5 -2
  9. package/declarations/adapter/-private.d.ts +5 -6
  10. package/declarations/adapter/error.d.ts +206 -178
  11. package/declarations/adapter/json-api.d.ts +206 -207
  12. package/declarations/adapter/rest.d.ts +805 -808
  13. package/declarations/adapter.d.ts +742 -766
  14. package/declarations/compat/-private.d.ts +10 -11
  15. package/declarations/compat/builders/find-all.d.ts +26 -24
  16. package/declarations/compat/builders/find-record.d.ts +41 -39
  17. package/declarations/compat/builders/query.d.ts +50 -45
  18. package/declarations/compat/builders/save-record.d.ts +26 -24
  19. package/declarations/compat/builders/utils.d.ts +1 -2
  20. package/declarations/compat/builders.d.ts +10 -11
  21. package/declarations/compat/extensions.d.ts +52 -106
  22. package/declarations/compat/legacy-network-handler/fetch-manager.d.ts +39 -38
  23. package/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +1 -2
  24. package/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +9 -10
  25. package/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +1 -2
  26. package/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +1 -2
  27. package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +521 -517
  28. package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +214 -215
  29. package/declarations/compat/legacy-network-handler/serializer-response.d.ts +5 -6
  30. package/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +83 -84
  31. package/declarations/compat/legacy-network-handler/snapshot.d.ts +228 -229
  32. package/declarations/compat/utils.d.ts +118 -119
  33. package/declarations/compat.d.ts +106 -104
  34. package/declarations/model/-private/attr.d.ts +164 -145
  35. package/declarations/model/-private/belongs-to.d.ts +135 -122
  36. package/declarations/model/-private/debug/assert-polymorphic-type.d.ts +15 -4
  37. package/declarations/model/-private/errors.d.ts +272 -267
  38. package/declarations/model/-private/has-many.d.ts +119 -116
  39. package/declarations/model/-private/hooks.d.ts +5 -6
  40. package/declarations/model/-private/legacy-relationships-support.d.ts +51 -52
  41. package/declarations/model/-private/model-for-mixin.d.ts +18 -3
  42. package/declarations/model/-private/model-methods.d.ts +29 -24
  43. package/declarations/model/-private/model.d.ts +1306 -1254
  44. package/declarations/model/-private/notify-changes.d.ts +3 -4
  45. package/declarations/model/-private/promise-belongs-to.d.ts +33 -27
  46. package/declarations/model/-private/promise-many-array.d.ts +125 -116
  47. package/declarations/model/-private/record-state.d.ts +63 -60
  48. package/declarations/model/-private/references/belongs-to.d.ts +491 -487
  49. package/declarations/model/-private/references/has-many.d.ts +495 -492
  50. package/declarations/model/-private/schema-provider.d.ts +53 -56
  51. package/declarations/model/-private/type-utils.d.ts +41 -41
  52. package/declarations/model/-private/util.d.ts +1 -2
  53. package/declarations/model/-private.d.ts +8 -8
  54. package/declarations/model/migration-support.d.ts +281 -279
  55. package/declarations/model.d.ts +48 -49
  56. package/declarations/serializer/-private/embedded-records-mixin.d.ts +70 -71
  57. package/declarations/serializer/-private/transforms/boolean.d.ts +37 -37
  58. package/declarations/serializer/-private/transforms/date.d.ts +22 -22
  59. package/declarations/serializer/-private/transforms/number.d.ts +22 -22
  60. package/declarations/serializer/-private/transforms/string.d.ts +22 -22
  61. package/declarations/serializer/-private/transforms/transform.d.ts +109 -110
  62. package/declarations/serializer/-private/utils.d.ts +0 -1
  63. package/declarations/serializer/json-api.d.ts +124 -494
  64. package/declarations/serializer/json.d.ts +62 -1031
  65. package/declarations/serializer/rest.d.ts +52 -552
  66. package/declarations/serializer/transform.d.ts +5 -6
  67. package/declarations/serializer.d.ts +217 -218
  68. package/dist/{-private-DFfBszo5.js → -private-CKrP0ogQ.js} +1 -1
  69. package/dist/adapter/-private.js +1 -1
  70. package/dist/adapter/error.js +17 -0
  71. package/dist/adapter/json-api.js +1 -1
  72. package/dist/adapter/rest.js +5 -7
  73. package/dist/adapter.js +6 -35
  74. package/dist/compat/-private.js +1 -1
  75. package/dist/compat/extensions.js +0 -2
  76. package/dist/compat.js +3 -4
  77. package/dist/{errors-_QQ7xpSn.js → errors-BX5wowuz.js} +11 -10
  78. package/dist/{json-DSOlH9A8.js → json-Et4mt_LM.js} +84 -157
  79. package/dist/model/-private.js +1 -1
  80. package/dist/model/migration-support.js +3 -4
  81. package/dist/model.js +3 -3
  82. package/dist/{schema-provider-D_P8ReX6.js → schema-provider-BdQhkT-Q.js} +20 -13
  83. package/dist/{serialize-into-hash-BxfqWC8u.js → serialize-into-hash-Bp58npke.js} +1 -1
  84. package/dist/serializer/json-api.js +42 -2
  85. package/dist/serializer/json.js +1 -1
  86. package/dist/serializer/rest.js +46 -41
  87. package/dist/serializer/transform.js +0 -44
  88. package/package.json +7 -7
  89. package/declarations/adapter/-private/build-url-mixin.d.ts.map +0 -1
  90. package/declarations/adapter/-private/fastboot-interface.d.ts.map +0 -1
  91. package/declarations/adapter/-private/utils/continue-on-reject.d.ts.map +0 -1
  92. package/declarations/adapter/-private/utils/determine-body-promise.d.ts.map +0 -1
  93. package/declarations/adapter/-private/utils/fetch.d.ts.map +0 -1
  94. package/declarations/adapter/-private/utils/parse-response-headers.d.ts.map +0 -1
  95. package/declarations/adapter/-private/utils/serialize-into-hash.d.ts.map +0 -1
  96. package/declarations/adapter/-private/utils/serialize-query-params.d.ts.map +0 -1
  97. package/declarations/adapter/-private.d.ts.map +0 -1
  98. package/declarations/adapter/error.d.ts.map +0 -1
  99. package/declarations/adapter/json-api.d.ts.map +0 -1
  100. package/declarations/adapter/rest.d.ts.map +0 -1
  101. package/declarations/adapter.d.ts.map +0 -1
  102. package/declarations/compat/-private.d.ts.map +0 -1
  103. package/declarations/compat/builders/find-all.d.ts.map +0 -1
  104. package/declarations/compat/builders/find-record.d.ts.map +0 -1
  105. package/declarations/compat/builders/query.d.ts.map +0 -1
  106. package/declarations/compat/builders/save-record.d.ts.map +0 -1
  107. package/declarations/compat/builders/utils.d.ts.map +0 -1
  108. package/declarations/compat/builders.d.ts.map +0 -1
  109. package/declarations/compat/extensions.d.ts.map +0 -1
  110. package/declarations/compat/legacy-network-handler/fetch-manager.d.ts.map +0 -1
  111. package/declarations/compat/legacy-network-handler/identifier-has-id.d.ts.map +0 -1
  112. package/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts.map +0 -1
  113. package/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts.map +0 -1
  114. package/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts.map +0 -1
  115. package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts.map +0 -1
  116. package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts.map +0 -1
  117. package/declarations/compat/legacy-network-handler/serializer-response.d.ts.map +0 -1
  118. package/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts.map +0 -1
  119. package/declarations/compat/legacy-network-handler/snapshot.d.ts.map +0 -1
  120. package/declarations/compat/utils.d.ts.map +0 -1
  121. package/declarations/compat.d.ts.map +0 -1
  122. package/declarations/model/-private/attr.d.ts.map +0 -1
  123. package/declarations/model/-private/attr.type-test.d.ts +0 -2
  124. package/declarations/model/-private/attr.type-test.d.ts.map +0 -1
  125. package/declarations/model/-private/belongs-to.d.ts.map +0 -1
  126. package/declarations/model/-private/belongs-to.type-test.d.ts +0 -2
  127. package/declarations/model/-private/belongs-to.type-test.d.ts.map +0 -1
  128. package/declarations/model/-private/debug/assert-polymorphic-type.d.ts.map +0 -1
  129. package/declarations/model/-private/errors.d.ts.map +0 -1
  130. package/declarations/model/-private/has-many.d.ts.map +0 -1
  131. package/declarations/model/-private/has-many.type-test.d.ts +0 -2
  132. package/declarations/model/-private/has-many.type-test.d.ts.map +0 -1
  133. package/declarations/model/-private/hooks.d.ts.map +0 -1
  134. package/declarations/model/-private/legacy-relationships-support.d.ts.map +0 -1
  135. package/declarations/model/-private/model-for-mixin.d.ts.map +0 -1
  136. package/declarations/model/-private/model-methods.d.ts.map +0 -1
  137. package/declarations/model/-private/model.d.ts.map +0 -1
  138. package/declarations/model/-private/model.type-test.d.ts +0 -2
  139. package/declarations/model/-private/model.type-test.d.ts.map +0 -1
  140. package/declarations/model/-private/notify-changes.d.ts.map +0 -1
  141. package/declarations/model/-private/promise-belongs-to.d.ts.map +0 -1
  142. package/declarations/model/-private/promise-many-array.d.ts.map +0 -1
  143. package/declarations/model/-private/promise-proxy-base.d.ts +0 -3
  144. package/declarations/model/-private/promise-proxy-base.d.ts.map +0 -1
  145. package/declarations/model/-private/record-state.d.ts.map +0 -1
  146. package/declarations/model/-private/references/belongs-to.d.ts.map +0 -1
  147. package/declarations/model/-private/references/has-many.d.ts.map +0 -1
  148. package/declarations/model/-private/schema-provider.d.ts.map +0 -1
  149. package/declarations/model/-private/type-utils.d.ts.map +0 -1
  150. package/declarations/model/-private/util.d.ts.map +0 -1
  151. package/declarations/model/-private.d.ts.map +0 -1
  152. package/declarations/model/migration-support.d.ts.map +0 -1
  153. package/declarations/model/migration-support.type-test.d.ts +0 -2
  154. package/declarations/model/migration-support.type-test.d.ts.map +0 -1
  155. package/declarations/model.d.ts.map +0 -1
  156. package/declarations/serializer/-private/embedded-records-mixin.d.ts.map +0 -1
  157. package/declarations/serializer/-private/transforms/boolean.d.ts.map +0 -1
  158. package/declarations/serializer/-private/transforms/boolean.type-test.d.ts +0 -2
  159. package/declarations/serializer/-private/transforms/boolean.type-test.d.ts.map +0 -1
  160. package/declarations/serializer/-private/transforms/date.d.ts.map +0 -1
  161. package/declarations/serializer/-private/transforms/number.d.ts.map +0 -1
  162. package/declarations/serializer/-private/transforms/string.d.ts.map +0 -1
  163. package/declarations/serializer/-private/transforms/transform.d.ts.map +0 -1
  164. package/declarations/serializer/-private/utils.d.ts.map +0 -1
  165. package/declarations/serializer/json-api.d.ts.map +0 -1
  166. package/declarations/serializer/json.d.ts.map +0 -1
  167. package/declarations/serializer/rest.d.ts.map +0 -1
  168. package/declarations/serializer/transform.d.ts.map +0 -1
  169. package/declarations/serializer.d.ts.map +0 -1
  170. package/dist/-private-DFfBszo5.js.map +0 -1
  171. package/dist/adapter/-private.js.map +0 -1
  172. package/dist/adapter/error.js.map +0 -1
  173. package/dist/adapter/json-api.js.map +0 -1
  174. package/dist/adapter/rest.js.map +0 -1
  175. package/dist/adapter.js.map +0 -1
  176. package/dist/compat/-private.js.map +0 -1
  177. package/dist/compat/builders.js.map +0 -1
  178. package/dist/compat/extensions.js.map +0 -1
  179. package/dist/compat/utils.js.map +0 -1
  180. package/dist/compat.js.map +0 -1
  181. package/dist/errors-_QQ7xpSn.js.map +0 -1
  182. package/dist/json-DSOlH9A8.js.map +0 -1
  183. package/dist/model/-private.js.map +0 -1
  184. package/dist/model/migration-support.js.map +0 -1
  185. package/dist/model.js.map +0 -1
  186. package/dist/runtime-BPCpkOf1-BKOwiRJp.js.map +0 -1
  187. package/dist/schema-provider-D_P8ReX6.js.map +0 -1
  188. package/dist/serialize-into-hash-BxfqWC8u.js.map +0 -1
  189. package/dist/serializer/json-api.js.map +0 -1
  190. package/dist/serializer/json.js.map +0 -1
  191. package/dist/serializer/rest.js.map +0 -1
  192. package/dist/serializer/transform.js.map +0 -1
  193. package/dist/serializer.js.map +0 -1
@@ -1,295 +1,297 @@
1
1
  /**
2
- * This module provides support for migrating away from @ember-data/model
3
- * to @warp-drive/schema-record.
4
- *
5
- * It includes:
6
- *
7
- * - A `withDefaults` function to assist in creating a schema in LegacyMode
8
- * - A `registerDerivations` function to register the derivations necessary to support LegacyMode
9
- * - A `DelegatingSchemaService` that can be used to provide a schema service that works with both
10
- * @ember-data/model and @warp-drive/schema-record simultaneously for migration purposes.
11
- * - A `WithLegacy` type util that can be used to create a type that includes the legacy
12
- * properties and methods of a record.
13
- *
14
- * Using LegacyMode features on a ReactiveResource *requires* the use of these derivations and schema
15
- * additions. LegacyMode is not intended to be a long-term solution, but rather a stepping stone
16
- * to assist in more rapidly adopting modern WarpDrive features.
17
- *
18
- * @module
19
- */
20
- import type { Store } from '@warp-drive/core';
21
- import type { CAUTION_MEGA_DANGER_ZONE_Extension, ProcessedExtension } from '@warp-drive/core/reactive';
22
- import type { ExtensibleField } from '@warp-drive/core/reactive/-private/schema.js';
23
- import type { SchemaService } from '@warp-drive/core/types';
24
- import type { ChangedAttributesHash } from '@warp-drive/core/types/cache';
25
- import type { StableRecordIdentifier } from '@warp-drive/core/types/identifier';
26
- import type { ObjectValue } from '@warp-drive/core/types/json/raw';
27
- import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';
28
- import type { Derivation, HashFn, Transformation } from '@warp-drive/core/types/schema/concepts';
29
- import type { ArrayField, DerivedField, FieldSchema, GenericField, HashField, LegacyResourceSchema, ObjectField, ObjectSchema, ResourceSchema } from '@warp-drive/core/types/schema/fields';
30
- import type { WithPartial } from '@warp-drive/core/types/utils';
31
- import type { Snapshot } from '../compat/-private.ts';
32
- import type { MinimalLegacyRecord } from './-private/model-methods.ts';
33
- import { belongsTo, hasMany } from './-private/model-methods.ts';
34
- import RecordState from './-private/record-state.ts';
35
- import type BelongsToReference from './-private/references/belongs-to.ts';
36
- import type HasManyReference from './-private/references/has-many.ts';
37
- import type { _MaybeBelongsToFields, MaybeHasManyFields } from './-private/type-utils.ts';
2
+ * This module provides support for migrating away from @ember-data/model
3
+ * to @warp-drive/schema-record.
4
+ *
5
+ * It includes:
6
+ *
7
+ * - A `withDefaults` function to assist in creating a schema in LegacyMode
8
+ * - A `registerDerivations` function to register the derivations necessary to support LegacyMode
9
+ * - A `DelegatingSchemaService` that can be used to provide a schema service that works with both
10
+ * @ember-data/model and @warp-drive/schema-record simultaneously for migration purposes.
11
+ * - A `WithLegacy` type util that can be used to create a type that includes the legacy
12
+ * properties and methods of a record.
13
+ *
14
+ * Using LegacyMode features on a ReactiveResource *requires* the use of these derivations and schema
15
+ * additions. LegacyMode is not intended to be a long-term solution, but rather a stepping stone
16
+ * to assist in more rapidly adopting modern WarpDrive features.
17
+ *
18
+ * @module
19
+ */
20
+ import type { Store } from "@warp-drive/core";
21
+ import type { CAUTION_MEGA_DANGER_ZONE_Extension, ProcessedExtension } from "@warp-drive/core/reactive";
22
+ import type { ExtensibleField } from "@warp-drive/core/reactive/-private/schema";
23
+ import type { SchemaService } from "@warp-drive/core/types";
24
+ import type { ChangedAttributesHash } from "@warp-drive/core/types/cache";
25
+ import type { StableRecordIdentifier } from "@warp-drive/core/types/identifier";
26
+ import type { ObjectValue } from "@warp-drive/core/types/json/raw";
27
+ import type { TypedRecordInstance, TypeFromInstance } from "@warp-drive/core/types/record";
28
+ import type { Derivation, HashFn, Transformation } from "@warp-drive/core/types/schema/concepts";
29
+ import type { ArrayField, DerivedField, FieldSchema, GenericField, HashField, LegacyResourceSchema, ObjectField, ObjectSchema, ResourceSchema } from "@warp-drive/core/types/schema/fields";
30
+ import type { WithPartial } from "@warp-drive/core/types/utils";
31
+ import type { Snapshot } from "../compat/-private.js";
32
+ import type { MinimalLegacyRecord } from "./-private/model-methods.js";
33
+ import { belongsTo, hasMany } from "./-private/model-methods.js";
34
+ import RecordState from "./-private/record-state.js";
35
+ import type BelongsToReference from "./-private/references/belongs-to.js";
36
+ import type HasManyReference from "./-private/references/has-many.js";
37
+ import type { _MaybeBelongsToFields, MaybeHasManyFields } from "./-private/type-utils.js";
38
38
  export type WithLegacyDerivations<T extends TypedRecordInstance> = T & MinimalLegacyRecord & {
39
- belongsTo: typeof belongsTo;
40
- hasMany: typeof hasMany;
39
+ belongsTo: typeof belongsTo;
40
+ hasMany: typeof hasMany;
41
41
  };
42
- type AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;
43
- type RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;
42
+ type AttributesSchema = ReturnType<Exclude<SchemaService["attributesDefinitionFor"], undefined>>;
43
+ type RelationshipsSchema = ReturnType<Exclude<SchemaService["relationshipsDefinitionFor"], undefined>>;
44
44
  interface LegacyModeRecord<T extends TypedRecordInstance> {
45
- id: string | null;
46
- serialize(options?: Record<string, unknown>): unknown;
47
- destroyRecord(options?: Record<string, unknown>): Promise<this>;
48
- unloadRecord(): void;
49
- changedAttributes(): ChangedAttributesHash;
50
- rollbackAttributes(): void;
51
- _createSnapshot(): Snapshot<T>;
52
- save(options?: Record<string, unknown>): Promise<this>;
53
- reload(options?: Record<string, unknown>): Promise<T>;
54
- belongsTo<K extends _MaybeBelongsToFields<T>>(prop: K): BelongsToReference<T, K>;
55
- hasMany<K extends MaybeHasManyFields<T>>(prop: K): HasManyReference<T, K>;
56
- deleteRecord(): void;
57
- adapterError: unknown;
58
- constructor: {
59
- modelName: TypeFromInstance<T>;
60
- };
61
- currentState: RecordState;
62
- dirtyType: 'deleted' | 'created' | 'updated' | '';
63
- errors: unknown;
64
- hasDirtyAttributes: boolean;
65
- isDeleted: boolean;
66
- isEmpty: boolean;
67
- isError: boolean;
68
- isLoaded: boolean;
69
- isLoading: boolean;
70
- isDestroying: boolean;
71
- isDestroyed: boolean;
72
- isNew: boolean;
73
- isSaving: boolean;
74
- isValid: boolean;
45
+ id: string | null;
46
+ serialize(options?: Record<string, unknown>): unknown;
47
+ destroyRecord(options?: Record<string, unknown>): Promise<this>;
48
+ unloadRecord(): void;
49
+ changedAttributes(): ChangedAttributesHash;
50
+ rollbackAttributes(): void;
51
+ _createSnapshot(): Snapshot<T>;
52
+ save(options?: Record<string, unknown>): Promise<this>;
53
+ reload(options?: Record<string, unknown>): Promise<T>;
54
+ belongsTo<K extends _MaybeBelongsToFields<T>>(prop: K): BelongsToReference<T, K>;
55
+ hasMany<K extends MaybeHasManyFields<T>>(prop: K): HasManyReference<T, K>;
56
+ deleteRecord(): void;
57
+ adapterError: unknown;
58
+ constructor: {
59
+ modelName: TypeFromInstance<T>;
60
+ };
61
+ currentState: RecordState;
62
+ dirtyType: "deleted" | "created" | "updated" | "";
63
+ errors: unknown;
64
+ hasDirtyAttributes: boolean;
65
+ isDeleted: boolean;
66
+ isEmpty: boolean;
67
+ isError: boolean;
68
+ isLoaded: boolean;
69
+ isLoading: boolean;
70
+ isDestroying: boolean;
71
+ isDestroyed: boolean;
72
+ isNew: boolean;
73
+ isSaving: boolean;
74
+ isValid: boolean;
75
75
  }
76
76
  /**
77
- * A Type utility that enables quickly adding type information for the fields
78
- * defined by `import { withDefaults } from '@ember-data/model/migration-support'`.
79
- *
80
- * Example:
81
- *
82
- * ```ts
83
- * import { withDefaults, WithLegacy } from '@ember-data/model/migration-support';
84
- * import { Type } from '@warp-drive/core-types/symbols';
85
- * import type { HasMany } from '@ember-data/model';
86
- *
87
- * export const UserSchema = withDefaults({
88
- * type: 'user',
89
- * fields: [
90
- * { name: 'firstName', kind: 'attribute' },
91
- * { name: 'lastName', kind: 'attribute' },
92
- * { name: 'age', kind: 'attribute' },
93
- * { name: 'friends',
94
- * kind: 'hasMany',
95
- * type: 'user',
96
- * options: { inverse: 'friends', async: false }
97
- * },
98
- * { name: 'bestFriend',
99
- * kind: 'belongsTo',
100
- * type: 'user',
101
- * options: { inverse: null, async: false }
102
- * },
103
- * ],
104
- * });
105
- *
106
- * export type User = WithLegacy<{
107
- * firstName: string;
108
- * lastName: string;
109
- * age: number;
110
- * friends: HasMany<User>;
111
- * bestFriend: User | null;
112
- * [Type]: 'user';
113
- * }>
114
- * ```
115
- *
116
- */
77
+ * A Type utility that enables quickly adding type information for the fields
78
+ * defined by `import { withDefaults } from '@ember-data/model/migration-support'`.
79
+ *
80
+ * Example:
81
+ *
82
+ * ```ts
83
+ * import { withDefaults, WithLegacy } from '@ember-data/model/migration-support';
84
+ * import { Type } from '@warp-drive/core-types/symbols';
85
+ * import type { HasMany } from '@ember-data/model';
86
+ *
87
+ * export const UserSchema = withDefaults({
88
+ * type: 'user',
89
+ * fields: [
90
+ * { name: 'firstName', kind: 'attribute' },
91
+ * { name: 'lastName', kind: 'attribute' },
92
+ * { name: 'age', kind: 'attribute' },
93
+ * { name: 'friends',
94
+ * kind: 'hasMany',
95
+ * type: 'user',
96
+ * options: { inverse: 'friends', async: false }
97
+ * },
98
+ * { name: 'bestFriend',
99
+ * kind: 'belongsTo',
100
+ * type: 'user',
101
+ * options: { inverse: null, async: false }
102
+ * },
103
+ * ],
104
+ * });
105
+ *
106
+ * export type User = WithLegacy<{
107
+ * firstName: string;
108
+ * lastName: string;
109
+ * age: number;
110
+ * friends: HasMany<User>;
111
+ * bestFriend: User | null;
112
+ * [Type]: 'user';
113
+ * }>
114
+ * ```
115
+ *
116
+ */
117
117
  export type WithLegacy<T extends TypedRecordInstance> = T & LegacyModeRecord<T>;
118
118
  /**
119
- * A function which adds the necessary fields to a schema and marks it as
120
- * being in LegacyMode. This is used to support the legacy features of
121
- * @ember-data/model while migrating to WarpDrive.
122
- *
123
- * Example:
124
- *
125
- * ```ts
126
- * import { withDefaults, WithLegacy } from '@ember-data/model/migration-support';
127
- * import { Type } from '@warp-drive/core-types/symbols';
128
- * import type { HasMany } from '@ember-data/model';
129
- *
130
- * export const UserSchema = withDefaults({
131
- * type: 'user',
132
- * fields: [
133
- * { name: 'firstName', kind: 'attribute' },
134
- * { name: 'lastName', kind: 'attribute' },
135
- * { name: 'age', kind: 'attribute' },
136
- * { name: 'friends',
137
- * kind: 'hasMany',
138
- * type: 'user',
139
- * options: { inverse: 'friends', async: false }
140
- * },
141
- * { name: 'bestFriend',
142
- * kind: 'belongsTo',
143
- * type: 'user',
144
- * options: { inverse: null, async: false }
145
- * },
146
- * ],
147
- * });
148
- *
149
- * export type User = WithLegacy<{
150
- * firstName: string;
151
- * lastName: string;
152
- * age: number;
153
- * friends: HasMany<User>;
154
- * bestFriend: User | null;
155
- * [Type]: 'user';
156
- * }>
157
- * ```
158
- *
159
- * Using this function require registering the derivations
160
- * it requires with the schema service.
161
- *
162
- * ```ts
163
- * import { registerDerivations } from '@ember-data/model/migration-support';
164
- *
165
- * registerDerivations(schema);
166
- * ```
167
- *
168
- * @param {LegacyResourceSchema} schema The schema to add legacy support to.
169
- * @return {LegacyResourceSchema} The schema with legacy support added.
170
- * @public
171
- */
172
- export declare function withDefaults(schema: WithPartial<LegacyResourceSchema, 'legacy' | 'identity'>): LegacyResourceSchema;
119
+ * A function which adds the necessary fields to a schema and marks it as
120
+ * being in LegacyMode. This is used to support the legacy features of
121
+ * @ember-data/model while migrating to WarpDrive.
122
+ *
123
+ * Example:
124
+ *
125
+ * ```ts
126
+ * import { withDefaults, WithLegacy } from '@ember-data/model/migration-support';
127
+ * import { Type } from '@warp-drive/core-types/symbols';
128
+ * import type { HasMany } from '@ember-data/model';
129
+ *
130
+ * export const UserSchema = withDefaults({
131
+ * type: 'user',
132
+ * fields: [
133
+ * { name: 'firstName', kind: 'attribute' },
134
+ * { name: 'lastName', kind: 'attribute' },
135
+ * { name: 'age', kind: 'attribute' },
136
+ * { name: 'friends',
137
+ * kind: 'hasMany',
138
+ * type: 'user',
139
+ * options: { inverse: 'friends', async: false }
140
+ * },
141
+ * { name: 'bestFriend',
142
+ * kind: 'belongsTo',
143
+ * type: 'user',
144
+ * options: { inverse: null, async: false }
145
+ * },
146
+ * ],
147
+ * });
148
+ *
149
+ * export type User = WithLegacy<{
150
+ * firstName: string;
151
+ * lastName: string;
152
+ * age: number;
153
+ * friends: HasMany<User>;
154
+ * bestFriend: User | null;
155
+ * [Type]: 'user';
156
+ * }>
157
+ * ```
158
+ *
159
+ * Using this function require registering the derivations
160
+ * it requires with the schema service.
161
+ *
162
+ * ```ts
163
+ * import { registerDerivations } from '@ember-data/model/migration-support';
164
+ *
165
+ * registerDerivations(schema);
166
+ * ```
167
+ *
168
+ * @param {LegacyResourceSchema} schema The schema to add legacy support to.
169
+ * @return {LegacyResourceSchema} The schema with legacy support added.
170
+ * @public
171
+ */
172
+ export declare function withDefaults(schema: WithPartial<LegacyResourceSchema, "legacy" | "identity">): LegacyResourceSchema;
173
173
  /**
174
- * A function which registers the necessary derivations to support
175
- * the LegacyMode features of @ember-data/model while migrating to WarpDrive.
176
- *
177
- * This must be called in order to use the fields added by:
178
- *
179
- * ```ts
180
- * import { withDefaults } from '@ember-data/model/migration-support';
181
- * ```
182
- *
183
- * @param {SchemaService} schema The schema service to register the derivations with.
184
- * @return {void}
185
- * @public
186
- */
174
+ * A function which registers the necessary derivations to support
175
+ * the LegacyMode features of @ember-data/model while migrating to WarpDrive.
176
+ *
177
+ * This must be called in order to use the fields added by:
178
+ *
179
+ * ```ts
180
+ * import { withDefaults } from '@ember-data/model/migration-support';
181
+ * ```
182
+ *
183
+ * @param schema The schema service to register the derivations with.
184
+ * @public
185
+ */
187
186
  export declare function registerDerivations(schema: SchemaService): void;
188
187
  /**
189
- * A class which provides a schema service that delegates between
190
- * a primary schema service and one that supports legacy model
191
- * classes as its schema source.
192
- *
193
- * When the primary schema service has a schema for the given
194
- * resource, it will be used. Otherwise, the fallback schema
195
- * service will be used.
196
- *
197
- * This can be used when incrementally migrating from Models to
198
- * ReactiveResources by enabling unmigrated Models to continue to
199
- * provide their own schema information to the application.
200
- *
201
- * ```ts
202
- * import { DelegatingSchemaService } from '@ember-data/model/migration-support';
203
- * import { SchemaService } from '@warp-drive/schema-record';
204
- *
205
- * class AppStore extends Store {
206
- * createSchemaService() {
207
- * const schema = new SchemaService();
208
- * return new DelegatingSchemaService(this, schema);
209
- * }
210
- * }
211
- * ```
212
- *
213
- * All calls to register resources, derivations, transformations, hash functions
214
- * etc. will be delegated to the primary schema service.
215
- *
216
- * @class DelegatingSchemaService
217
- * @public
218
- */
188
+ * A class which provides a schema service that delegates between
189
+ * a primary schema service and one that supports legacy model
190
+ * classes as its schema source.
191
+ *
192
+ * When the primary schema service has a schema for the given
193
+ * resource, it will be used. Otherwise, the fallback schema
194
+ * service will be used.
195
+ *
196
+ * This can be used when incrementally migrating from Models to
197
+ * ReactiveResources by enabling unmigrated Models to continue to
198
+ * provide their own schema information to the application.
199
+ *
200
+ * ```ts
201
+ * import { DelegatingSchemaService } from '@ember-data/model/migration-support';
202
+ * import { SchemaService } from '@warp-drive/schema-record';
203
+ *
204
+ * class AppStore extends Store {
205
+ * createSchemaService() {
206
+ * const schema = new SchemaService();
207
+ * return new DelegatingSchemaService(this, schema);
208
+ * }
209
+ * }
210
+ * ```
211
+ *
212
+ * All calls to register resources, derivations, transformations, hash functions
213
+ * etc. will be delegated to the primary schema service.
214
+ *
215
+ * @class DelegatingSchemaService
216
+ * @public
217
+ */
219
218
  export interface DelegatingSchemaService {
220
- attributesDefinitionFor?(resource: StableRecordIdentifier | {
221
- type: string;
222
- }): AttributesSchema;
223
- relationshipsDefinitionFor?(resource: StableRecordIdentifier | {
224
- type: string;
225
- }): RelationshipsSchema;
226
- doesTypeExist?(type: string): boolean;
219
+ attributesDefinitionFor?(resource: StableRecordIdentifier | {
220
+ type: string;
221
+ }): AttributesSchema;
222
+ relationshipsDefinitionFor?(resource: StableRecordIdentifier | {
223
+ type: string;
224
+ }): RelationshipsSchema;
225
+ doesTypeExist?(type: string): boolean;
227
226
  }
228
227
  export declare class DelegatingSchemaService implements SchemaService {
229
- _preferred: SchemaService;
230
- _secondary: SchemaService;
231
- constructor(store: Store, schema: SchemaService);
232
- isDelegated(resource: StableRecordIdentifier | {
233
- type: string;
234
- }): boolean;
235
- resourceTypes(): Readonly<string[]>;
236
- hasResource(resource: StableRecordIdentifier | {
237
- type: string;
238
- }): boolean;
239
- hasTrait(type: string): boolean;
240
- resourceHasTrait(resource: StableRecordIdentifier | {
241
- type: string;
242
- }, trait: string): boolean;
243
- fields(resource: StableRecordIdentifier | {
244
- type: string;
245
- }): Map<string, FieldSchema>;
246
- transformation(field: GenericField | ObjectField | ArrayField | {
247
- type: string;
248
- }): Transformation;
249
- hashFn(field: HashField | {
250
- type: string;
251
- }): HashFn;
252
- derivation(field: DerivedField | {
253
- type: string;
254
- }): Derivation;
255
- resource(resource: StableRecordIdentifier | {
256
- type: string;
257
- }): ResourceSchema | ObjectSchema;
258
- registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
259
- registerResource(schema: ResourceSchema | ObjectSchema): void;
260
- registerTransformation(transform: Transformation): void;
261
- registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void;
262
- registerHashFn(hashFn: HashFn): void;
263
- CAUTION_MEGA_DANGER_ZONE_registerExtension(extension: CAUTION_MEGA_DANGER_ZONE_Extension): void;
264
- CAUTION_MEGA_DANGER_ZONE_resourceExtensions(resource: StableRecordIdentifier | {
265
- type: string;
266
- }): null | ProcessedExtension['features'];
267
- CAUTION_MEGA_DANGER_ZONE_objectExtensions(field: ExtensibleField): null | ProcessedExtension['features'];
268
- CAUTION_MEGA_DANGER_ZONE_arrayExtensions(field: ExtensibleField): null | ProcessedExtension['features'];
269
- /**
270
- * This is an internal method used to register behaviors for legacy mode.
271
- * It is not intended for public use.
272
- *
273
- * We do think a generalized `kind` registration system would be useful,
274
- * but we have not yet designed it.
275
- *
276
- * See https://github.com/emberjs/data/issues/9534
277
- *
278
- * @internal
279
- */
280
- _registerMode(mode: string, kinds: unknown): void;
281
- /**
282
- * This is an internal method used to enable legacy behaviors for legacy mode.
283
- * It is not intended for public use.
284
- *
285
- * We do think a generalized `kind` registration system would be useful,
286
- * but we have not yet designed it.
287
- *
288
- * See https://github.com/emberjs/data/issues/9534
289
- *
290
- * @internal
291
- */
292
- _kind(mode: string, kind: 'belongsTo' | 'hasMany'): () => unknown;
228
+ _preferred: SchemaService;
229
+ _secondary: SchemaService;
230
+ constructor(store: Store, schema: SchemaService);
231
+ isDelegated(resource: StableRecordIdentifier | {
232
+ type: string;
233
+ }): boolean;
234
+ resourceTypes(): Readonly<string[]>;
235
+ hasResource(resource: StableRecordIdentifier | {
236
+ type: string;
237
+ }): boolean;
238
+ hasTrait(type: string): boolean;
239
+ resourceHasTrait(resource: StableRecordIdentifier | {
240
+ type: string;
241
+ }, trait: string): boolean;
242
+ fields(resource: StableRecordIdentifier | {
243
+ type: string;
244
+ }): Map<string, FieldSchema>;
245
+ transformation(field: GenericField | ObjectField | ArrayField | {
246
+ type: string;
247
+ }): Transformation;
248
+ hashFn(field: HashField | {
249
+ type: string;
250
+ }): HashFn;
251
+ derivation(field: DerivedField | {
252
+ type: string;
253
+ }): Derivation;
254
+ resource(resource: StableRecordIdentifier | {
255
+ type: string;
256
+ }): ResourceSchema | ObjectSchema;
257
+ registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
258
+ registerResource(schema: ResourceSchema | ObjectSchema): void;
259
+ registerTransformation(transform: Transformation): void;
260
+ registerDerivation<
261
+ R,
262
+ T,
263
+ FM extends ObjectValue | null
264
+ >(derivation: Derivation<R, T, FM>): void;
265
+ registerHashFn(hashFn: HashFn): void;
266
+ CAUTION_MEGA_DANGER_ZONE_registerExtension(extension: CAUTION_MEGA_DANGER_ZONE_Extension): void;
267
+ CAUTION_MEGA_DANGER_ZONE_resourceExtensions(resource: StableRecordIdentifier | {
268
+ type: string;
269
+ }): null | ProcessedExtension["features"];
270
+ CAUTION_MEGA_DANGER_ZONE_objectExtensions(field: ExtensibleField): null | ProcessedExtension["features"];
271
+ CAUTION_MEGA_DANGER_ZONE_arrayExtensions(field: ExtensibleField): null | ProcessedExtension["features"];
272
+ /**
273
+ * This is an internal method used to register behaviors for legacy mode.
274
+ * It is not intended for public use.
275
+ *
276
+ * We do think a generalized `kind` registration system would be useful,
277
+ * but we have not yet designed it.
278
+ *
279
+ * See https://github.com/emberjs/data/issues/9534
280
+ *
281
+ * @internal
282
+ */
283
+ _registerMode(mode: string, kinds: unknown): void;
284
+ /**
285
+ * This is an internal method used to enable legacy behaviors for legacy mode.
286
+ * It is not intended for public use.
287
+ *
288
+ * We do think a generalized `kind` registration system would be useful,
289
+ * but we have not yet designed it.
290
+ *
291
+ * See https://github.com/emberjs/data/issues/9534
292
+ *
293
+ * @internal
294
+ */
295
+ _kind(mode: string, kind: "belongsTo" | "hasMany"): () => unknown;
293
296
  }
294
297
  export {};
295
- //# sourceMappingURL=migration-support.d.ts.map