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