@ember-data/legacy-compat 5.4.0-alpha.6 → 5.4.0-alpha.61

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 (51) hide show
  1. package/README.md +8 -0
  2. package/addon/{fetch-manager-0744e8e9.js → -private-DmhhlB_x.js} +83 -70
  3. package/addon/-private-DmhhlB_x.js.map +1 -0
  4. package/addon/-private.js +1 -1
  5. package/addon/builders.js +274 -0
  6. package/addon/builders.js.map +1 -0
  7. package/addon/index.js +311 -77
  8. package/addon/index.js.map +1 -1
  9. package/addon/utils.js +246 -0
  10. package/addon/utils.js.map +1 -0
  11. package/addon-main.js +1 -0
  12. package/package.json +79 -28
  13. package/unstable-preview-types/-private.d.ts +17 -0
  14. package/unstable-preview-types/-private.d.ts.map +1 -0
  15. package/unstable-preview-types/builders/find-all.d.ts +38 -0
  16. package/unstable-preview-types/builders/find-all.d.ts.map +1 -0
  17. package/unstable-preview-types/builders/find-record.d.ts +59 -0
  18. package/unstable-preview-types/builders/find-record.d.ts.map +1 -0
  19. package/unstable-preview-types/builders/query.d.ts +69 -0
  20. package/unstable-preview-types/builders/query.d.ts.map +1 -0
  21. package/unstable-preview-types/builders/save-record.d.ts +37 -0
  22. package/unstable-preview-types/builders/save-record.d.ts.map +1 -0
  23. package/unstable-preview-types/builders/utils.d.ts +6 -0
  24. package/unstable-preview-types/builders/utils.d.ts.map +1 -0
  25. package/unstable-preview-types/builders.d.ts +18 -0
  26. package/unstable-preview-types/builders.d.ts.map +1 -0
  27. package/unstable-preview-types/index.d.ts +161 -0
  28. package/unstable-preview-types/index.d.ts.map +1 -0
  29. package/unstable-preview-types/legacy-network-handler/fetch-manager.d.ts +49 -0
  30. package/unstable-preview-types/legacy-network-handler/fetch-manager.d.ts.map +1 -0
  31. package/unstable-preview-types/legacy-network-handler/identifier-has-id.d.ts +5 -0
  32. package/unstable-preview-types/legacy-network-handler/identifier-has-id.d.ts.map +1 -0
  33. package/unstable-preview-types/legacy-network-handler/legacy-data-fetch.d.ts +14 -0
  34. package/unstable-preview-types/legacy-network-handler/legacy-data-fetch.d.ts.map +1 -0
  35. package/unstable-preview-types/legacy-network-handler/legacy-data-utils.d.ts +8 -0
  36. package/unstable-preview-types/legacy-network-handler/legacy-data-utils.d.ts.map +1 -0
  37. package/unstable-preview-types/legacy-network-handler/legacy-network-handler.d.ts +5 -0
  38. package/unstable-preview-types/legacy-network-handler/legacy-network-handler.d.ts.map +1 -0
  39. package/unstable-preview-types/legacy-network-handler/minimum-adapter-interface.d.ts +549 -0
  40. package/unstable-preview-types/legacy-network-handler/minimum-adapter-interface.d.ts.map +1 -0
  41. package/unstable-preview-types/legacy-network-handler/minimum-serializer-interface.d.ts +235 -0
  42. package/unstable-preview-types/legacy-network-handler/minimum-serializer-interface.d.ts.map +1 -0
  43. package/unstable-preview-types/legacy-network-handler/serializer-response.d.ts +9 -0
  44. package/unstable-preview-types/legacy-network-handler/serializer-response.d.ts.map +1 -0
  45. package/unstable-preview-types/legacy-network-handler/snapshot-record-array.d.ts +97 -0
  46. package/unstable-preview-types/legacy-network-handler/snapshot-record-array.d.ts.map +1 -0
  47. package/unstable-preview-types/legacy-network-handler/snapshot.d.ts +248 -0
  48. package/unstable-preview-types/legacy-network-handler/snapshot.d.ts.map +1 -0
  49. package/unstable-preview-types/utils.d.ts +159 -0
  50. package/unstable-preview-types/utils.d.ts.map +1 -0
  51. package/addon/fetch-manager-0744e8e9.js.map +0 -1
package/addon-main.js CHANGED
@@ -58,6 +58,7 @@ module.exports = {
58
58
 
59
59
  // copy configs forward
60
60
  const ownConfig = this.options['@embroider/macros'].setOwnConfig;
61
+ ownConfig.polyfillUUID = hostOptions.polyfillUUID ?? false;
61
62
  ownConfig.compatWith = hostOptions.compatWith || null;
62
63
  ownConfig.debug = debugOptions;
63
64
  ownConfig.deprecations = Object.assign(DEPRECATIONS, ownConfig.deprecations || {}, hostOptions.deprecations || {});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ember-data/legacy-compat",
3
3
  "description": "Compatibility Shims for Older EmberData",
4
- "version": "5.4.0-alpha.6",
4
+ "version": "5.4.0-alpha.61",
5
5
  "license": "MIT",
6
6
  "author": "Chris Thoburn <runspired@users.noreply.github.com>",
7
7
  "repository": {
@@ -12,7 +12,7 @@
12
12
  "homepage": "https://github.com/emberjs/data",
13
13
  "bugs": "https://github.com/emberjs/data/issues",
14
14
  "engines": {
15
- "node": "16.* || >= 18"
15
+ "node": ">= 18.20.2"
16
16
  },
17
17
  "keywords": [
18
18
  "ember-addon"
@@ -21,6 +21,7 @@
21
21
  "extends": "../../package.json"
22
22
  },
23
23
  "files": [
24
+ "unstable-preview-types",
24
25
  "addon-main.js",
25
26
  "addon",
26
27
  "README.md",
@@ -28,24 +29,63 @@
28
29
  "ember-data-logo-dark.svg",
29
30
  "ember-data-logo-light.svg"
30
31
  ],
32
+ "scripts": {
33
+ "lint": "eslint . --quiet --cache --cache-strategy=content --ext .js,.ts,.mjs,.cjs --report-unused-disable-directives",
34
+ "build:types": "tsc --build",
35
+ "build:client": "rollup --config && babel ./addon --out-dir addon --plugins=../private-build-infra/src/transforms/babel-plugin-transform-ext.js",
36
+ "_build": "bun run build:client && bun run build:types",
37
+ "_syncPnpm": "bun run sync-dependencies-meta-injected"
38
+ },
31
39
  "ember-addon": {
32
40
  "main": "addon-main.js",
33
41
  "type": "addon",
34
42
  "version": 1
35
43
  },
36
44
  "dependencies": {
37
- "@ember-data/private-build-infra": "5.4.0-alpha.6",
38
- "@embroider/macros": "^1.13.1",
39
- "ember-cli-babel": "^8.0.0"
45
+ "@ember-data/private-build-infra": "5.4.0-alpha.61",
46
+ "@embroider/macros": "^1.15.1",
47
+ "ember-cli-babel": "^8.2.0"
40
48
  },
41
49
  "dependenciesMeta": {
42
50
  "@ember-data/private-build-infra": {
43
51
  "injected": true
52
+ },
53
+ "@ember-data/request": {
54
+ "injected": true
55
+ },
56
+ "@ember-data/graph": {
57
+ "injected": true
58
+ },
59
+ "@ember-data/json-api": {
60
+ "injected": true
61
+ },
62
+ "@ember-data/store": {
63
+ "injected": true
64
+ },
65
+ "@warp-drive/core-types": {
66
+ "injected": true
67
+ },
68
+ "ember-inflector": {
69
+ "injected": true
70
+ },
71
+ "@ember-data/tracking": {
72
+ "injected": true
73
+ },
74
+ "@ember/string": {
75
+ "injected": true
76
+ },
77
+ "@ember-data/request-utils": {
78
+ "injected": true
44
79
  }
45
80
  },
46
81
  "peerDependencies": {
47
- "@ember-data/graph": "5.4.0-alpha.6",
48
- "@ember-data/json-api": "5.4.0-alpha.6"
82
+ "@ember-data/graph": "5.4.0-alpha.61",
83
+ "@ember-data/json-api": "5.4.0-alpha.61",
84
+ "@ember-data/request": "5.4.0-alpha.61",
85
+ "@ember-data/store": "5.4.0-alpha.61",
86
+ "@ember/string": "^3.1.1",
87
+ "ember-inflector": "^4.0.2",
88
+ "@warp-drive/core-types": "0.0.0-alpha.47"
49
89
  },
50
90
  "peerDependenciesMeta": {
51
91
  "@ember-data/graph": {
@@ -53,32 +93,43 @@
53
93
  },
54
94
  "@ember-data/json-api": {
55
95
  "optional": true
96
+ },
97
+ "ember-inflector": {
98
+ "optional": true
56
99
  }
57
100
  },
58
101
  "devDependencies": {
59
- "@babel/cli": "^7.22.10",
60
- "@babel/core": "^7.22.11",
61
- "@babel/plugin-proposal-decorators": "^7.22.10",
62
- "@babel/plugin-transform-class-properties": "^7.22.5",
63
- "@babel/plugin-transform-private-methods": "^7.22.5",
64
- "@babel/plugin-transform-runtime": "^7.22.10",
65
- "@babel/plugin-transform-typescript": "^7.22.11",
66
- "@babel/preset-env": "^7.22.14",
67
- "@babel/preset-typescript": "^7.22.11",
68
- "@babel/runtime": "^7.22.11",
69
- "@embroider/addon-dev": "^4.1.0",
70
- "@rollup/plugin-babel": "^6.0.3",
71
- "@rollup/plugin-node-resolve": "^15.2.1",
72
- "rollup": "^3.28.1",
73
- "tslib": "^2.6.2",
74
- "typescript": "^5.2.2",
102
+ "@babel/cli": "^7.24.1",
103
+ "@babel/core": "^7.24.4",
104
+ "@babel/plugin-proposal-decorators": "^7.24.1",
105
+ "@babel/plugin-transform-class-properties": "^7.24.1",
106
+ "@babel/plugin-transform-private-methods": "^7.24.1",
107
+ "@babel/plugin-transform-runtime": "^7.24.3",
108
+ "@babel/plugin-transform-typescript": "^7.24.4",
109
+ "@babel/preset-env": "^7.24.4",
110
+ "@babel/preset-typescript": "^7.24.1",
111
+ "@babel/runtime": "^7.24.4",
112
+ "@ember-data/graph": "5.4.0-alpha.61",
113
+ "@ember-data/json-api": "5.4.0-alpha.61",
114
+ "@ember-data/request": "5.4.0-alpha.61",
115
+ "@ember-data/request-utils": "5.4.0-alpha.61",
116
+ "@ember-data/store": "5.4.0-alpha.61",
117
+ "@ember-data/tracking": "5.4.0-alpha.61",
118
+ "@ember/string": "^3.1.1",
119
+ "@embroider/addon-dev": "^4.3.1",
120
+ "@glimmer/component": "^1.1.2",
121
+ "@rollup/plugin-babel": "^6.0.4",
122
+ "@rollup/plugin-node-resolve": "^15.2.3",
123
+ "@warp-drive/core-types": "0.0.0-alpha.47",
124
+ "@warp-drive/internal-config": "5.4.0-alpha.61",
125
+ "ember-inflector": "^4.0.2",
126
+ "ember-source": "~5.7.0",
127
+ "pnpm-sync-dependencies-meta-injected": "0.0.10",
128
+ "rollup": "^4.14.3",
129
+ "typescript": "^5.4.5",
75
130
  "walk-sync": "^3.0.0"
76
131
  },
77
132
  "ember": {
78
133
  "edition": "octane"
79
- },
80
- "scripts": {
81
- "build": "rollup --config && babel ./addon --out-dir addon --plugins=../private-build-infra/src/transforms/babel-plugin-transform-ext.js",
82
- "start": "rollup --config --watch"
83
134
  }
84
- }
135
+ }
@@ -0,0 +1,17 @@
1
+ declare module '@ember-data/legacy-compat/-private' {
2
+ import type Store from '@ember-data/store';
3
+ import type { CompatStore } from '@ember-data/legacy-compat';
4
+ /**
5
+ * Utilities - often temporary - for maintaining backwards compatibility with
6
+ * older parts of EmberData.
7
+ *
8
+ @module @ember-data/legacy-compat
9
+ @main @ember-data/legacy-compat
10
+ */
11
+ export { default as SnapshotRecordArray } from '@ember-data/legacy-compat/legacy-network-handler/snapshot-record-array';
12
+ export { SaveOp } from '@ember-data/legacy-compat/legacy-network-handler/fetch-manager';
13
+ export { default as FetchManager } from '@ember-data/legacy-compat/legacy-network-handler/fetch-manager';
14
+ export { default as Snapshot } from '@ember-data/legacy-compat/legacy-network-handler/snapshot';
15
+ export function upgradeStore(store: Store): asserts store is CompatStore;
16
+ }
17
+ //# sourceMappingURL=-private.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-private.d.ts","sourceRoot":"","sources":["../src/-private.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAErC;;;;;;EAME;AACF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAExE,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAG"}
@@ -0,0 +1,38 @@
1
+ declare module '@ember-data/legacy-compat/builders/find-all' {
2
+ import type { StoreRequestInput } from '@ember-data/store';
3
+ import type { FindAllOptions } from '@ember-data/store/-types/q/store';
4
+ import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record';
5
+ import type { RequestSignature } from '@warp-drive/core-types/symbols';
6
+ type FindAllRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {
7
+ op: 'findAll';
8
+ data: {
9
+ type: T;
10
+ options: FindAllBuilderOptions;
11
+ };
12
+ [RequestSignature]?: RT;
13
+ };
14
+ type FindAllBuilderOptions = FindAllOptions;
15
+ /**
16
+ This function builds a request config to perform a `findAll` request for the given type.
17
+ When passed to `store.request`, this config will result in the same behavior as a `store.findAll` request.
18
+ Additionally, it takes the same options as `store.findAll`.
19
+
20
+ All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
21
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
22
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
23
+
24
+ @method findAll
25
+ @deprecated
26
+ @public
27
+ @static
28
+ @for @ember-data/legacy-compat/builders
29
+ @param {string} type the name of the resource
30
+ @param {object} query a query to be used by the adapter
31
+ @param {FindAllBuilderOptions} [options] optional, may include `adapterOptions` hash which will be passed to adapter.findAll
32
+ @return {FindAllRequestInput} request config
33
+ */
34
+ export function findAllBuilder<T extends TypedRecordInstance>(type: TypeFromInstance<T>, options?: FindAllBuilderOptions): FindAllRequestInput<TypeFromInstance<T>, T[]>;
35
+ export function findAllBuilder(type: string, options?: FindAllBuilderOptions): FindAllRequestInput;
36
+ export {};
37
+ }
38
+ //# sourceMappingURL=find-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-all.d.ts","sourceRoot":"","sources":["../../src/builders/find-all.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,iBAAiB,GAAG;IACxF,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC;QACR,OAAO,EAAE,qBAAqB,CAAC;KAChC,CAAC;IACF,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG,cAAc,CAAC;AAE5C;;;;;;;;;;;;;;;;;;EAkBE;AACF,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAC1D,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,59 @@
1
+ declare module '@ember-data/legacy-compat/builders/find-record' {
2
+ import type { StoreRequestInput } from '@ember-data/store';
3
+ import type { FindRecordOptions } from '@ember-data/store/-types/q/store';
4
+ import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record';
5
+ import type { ResourceIdentifierObject } from '@warp-drive/core-types/spec/raw';
6
+ import type { RequestSignature } from '@warp-drive/core-types/symbols';
7
+ type FindRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {
8
+ op: 'findRecord';
9
+ data: {
10
+ record: ResourceIdentifierObject<T>;
11
+ options: FindRecordBuilderOptions;
12
+ };
13
+ [RequestSignature]?: RT;
14
+ };
15
+ type FindRecordBuilderOptions = Omit<FindRecordOptions, 'preload'>;
16
+ /**
17
+ This function builds a request config to find the record for a given identifier or type and id combination.
18
+ When passed to `store.request`, this config will result in the same behavior as a `store.findRecord` request.
19
+ Additionally, it takes the same options as `store.findRecord`, with the exception of `preload` (which is unsupported).
20
+
21
+ **Example 1**
22
+
23
+ ```ts
24
+ import { findRecord } from '@ember-data/legacy-compat/builders';
25
+ const { content: post } = await store.request<Post>(findRecord<Post>('post', '1'));
26
+ ```
27
+
28
+ **Example 2**
29
+
30
+ `findRecord` can be called with a single identifier argument instead of the combination
31
+ of `type` (modelName) and `id` as separate arguments. You may recognize this combo as
32
+ the typical pairing from [JSON:API](https://jsonapi.org/format/#document-resource-object-identification)
33
+
34
+ ```ts
35
+ import { findRecord } from '@ember-data/legacy-compat/builders';
36
+ const { content: post } = await store.request<Post>(findRecord<Post>({ type: 'post', id }));
37
+ ```
38
+
39
+ All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
40
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
41
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
42
+
43
+ @method findRecord
44
+ @deprecated
45
+ @public
46
+ @static
47
+ @for @ember-data/legacy-compat/builders
48
+ @param {string|object} type - either a string representing the name of the resource or a ResourceIdentifier object containing both the type (a string) and the id (a string) for the record or an lid (a string) of an existing record
49
+ @param {string|number|object} id - optional object with options for the request only if the first param is a ResourceIdentifier, else the string id of the record to be retrieved
50
+ @param {FindRecordBuilderOptions} [options] - if the first param is a string this will be the optional options for the request. See examples for available options.
51
+ @return {FindRecordRequestInput} request config
52
+ */
53
+ export function findRecordBuilder<T extends TypedRecordInstance>(resource: TypeFromInstance<T>, id: string, options?: FindRecordBuilderOptions): FindRecordRequestInput<TypeFromInstance<T>, T>;
54
+ export function findRecordBuilder(resource: string, id: string, options?: FindRecordBuilderOptions): FindRecordRequestInput;
55
+ export function findRecordBuilder<T extends TypedRecordInstance>(resource: ResourceIdentifierObject<TypeFromInstance<T>>, options?: FindRecordBuilderOptions): FindRecordRequestInput<TypeFromInstance<T>, T>;
56
+ export function findRecordBuilder(resource: ResourceIdentifierObject, options?: FindRecordBuilderOptions): FindRecordRequestInput;
57
+ export {};
58
+ }
59
+ //# sourceMappingURL=find-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-record.d.ts","sourceRoot":"","sources":["../../src/builders/find-record.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,KAAK,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,iBAAiB,GAAG;IACzF,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE;QACJ,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,wBAAwB,CAAC;KACnC,CAAC;IACF,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCE;AACF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,mBAAmB,EAC7D,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,wBAAwB,GACjC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,wBAAwB,GACjC,sBAAsB,CAAC;AAC1B,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,mBAAmB,EAC7D,QAAQ,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACvD,OAAO,CAAC,EAAE,wBAAwB,GACjC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,wBAAwB,EAClC,OAAO,CAAC,EAAE,wBAAwB,GACjC,sBAAsB,CAAC"}
@@ -0,0 +1,69 @@
1
+ declare module '@ember-data/legacy-compat/builders/query' {
2
+ import type { StoreRequestInput } from '@ember-data/store';
3
+ import type { QueryOptions } from '@ember-data/store/-types/q/store';
4
+ import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record';
5
+ import type { RequestSignature } from '@warp-drive/core-types/symbols';
6
+ type QueryRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {
7
+ op: 'query';
8
+ data: {
9
+ type: T;
10
+ query: Record<string, unknown>;
11
+ options: QueryBuilderOptions;
12
+ };
13
+ [RequestSignature]?: RT;
14
+ };
15
+ type QueryBuilderOptions = QueryOptions;
16
+ /**
17
+ This function builds a request config for a given type and query object.
18
+ When passed to `store.request`, this config will result in the same behavior as a `store.query` request.
19
+ Additionally, it takes the same options as `store.query`.
20
+
21
+ All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
22
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
23
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
24
+
25
+ @method query
26
+ @deprecated
27
+ @public
28
+ @static
29
+ @for @ember-data/legacy-compat/builders
30
+ @param {string} type the name of the resource
31
+ @param {object} query a query to be used by the adapter
32
+ @param {QueryBuilderOptions} [options] optional, may include `adapterOptions` hash which will be passed to adapter.query
33
+ @return {QueryRequestInput} request config
34
+ */
35
+ export function queryBuilder<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query: Record<string, unknown>, options?: QueryBuilderOptions): QueryRequestInput<TypeFromInstance<T>, T[]>;
36
+ export function queryBuilder(type: string, query: Record<string, unknown>, options?: QueryBuilderOptions): QueryRequestInput;
37
+ type QueryRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {
38
+ op: 'queryRecord';
39
+ data: {
40
+ type: T;
41
+ query: Record<string, unknown>;
42
+ options: QueryBuilderOptions;
43
+ };
44
+ [RequestSignature]?: RT;
45
+ };
46
+ /**
47
+ This function builds a request config for a given type and query object.
48
+ When passed to `store.request`, this config will result in the same behavior as a `store.queryRecord` request.
49
+ Additionally, it takes the same options as `store.queryRecord`.
50
+
51
+ All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
52
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
53
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
54
+
55
+ @method queryRecord
56
+ @deprecated
57
+ @public
58
+ @static
59
+ @for @ember-data/legacy-compat/builders
60
+ @param {string} type the name of the resource
61
+ @param {object} query a query to be used by the adapter
62
+ @param {QueryBuilderOptions} [options] optional, may include `adapterOptions` hash which will be passed to adapter.query
63
+ @return {QueryRecordRequestInput} request config
64
+ */
65
+ export function queryRecordBuilder<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query: Record<string, unknown>, options?: QueryBuilderOptions): QueryRecordRequestInput<TypeFromInstance<T>, T | null>;
66
+ export function queryRecordBuilder(type: string, query: Record<string, unknown>, options?: QueryBuilderOptions): QueryRecordRequestInput;
67
+ export {};
68
+ }
69
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/builders/query.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,iBAAiB,GAAG;IACtF,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,EAAE,mBAAmB,CAAC;KAC9B,CAAC;IACF,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,mBAAmB,GAAG,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;;;EAkBE;AACF,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EACxD,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,iBAAiB,CAAC;AAwBrB,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,iBAAiB,GAAG;IAC1F,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC,CAAC;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,EAAE,mBAAmB,CAAC;KAC9B,CAAC;IACF,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;EAkBE;AACF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAC9D,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1D,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,uBAAuB,CAAC"}
@@ -0,0 +1,37 @@
1
+ declare module '@ember-data/legacy-compat/builders/save-record' {
2
+ import { type StoreRequestInput } from '@ember-data/store';
3
+ import type { StableRecordIdentifier } from '@warp-drive/core-types';
4
+ import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record';
5
+ import type { RequestSignature } from '@warp-drive/core-types/symbols';
6
+ type SaveRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {
7
+ op: 'createRecord' | 'deleteRecord' | 'updateRecord';
8
+ data: {
9
+ record: StableRecordIdentifier<T>;
10
+ options: SaveRecordBuilderOptions;
11
+ };
12
+ records: [StableRecordIdentifier<T>];
13
+ [RequestSignature]?: RT;
14
+ };
15
+ type SaveRecordBuilderOptions = Record<string, unknown>;
16
+ /**
17
+ This function builds a request config for saving the given record (e.g. creating, updating, or deleting the record).
18
+ When passed to `store.request`, this config will result in the same behavior as a legacy `store.saveRecord` request.
19
+ Additionally, it takes the same options as `store.saveRecord`.
20
+
21
+ All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
22
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
23
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
24
+
25
+ @method saveRecord
26
+ @deprecated
27
+ @public
28
+ @static
29
+ @for @ember-data/legacy-compat/builders
30
+ @param {object} record a record to save
31
+ @param {SaveRecordBuilderOptions} options optional, may include `adapterOptions` hash which will be passed to adapter.saveRecord
32
+ @return {SaveRecordRequestInput} request config
33
+ */
34
+ export function saveRecordBuilder<T extends TypedRecordInstance>(record: T, options?: Record<string, unknown>): SaveRecordRequestInput<TypeFromInstance<T>, T>;
35
+ export {};
36
+ }
37
+ //# sourceMappingURL=save-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-record.d.ts","sourceRoot":"","sources":["../../src/builders/save-record.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiC,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,KAAK,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,iBAAiB,GAAG;IACzF,EAAE,EAAE,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;IACrD,IAAI,EAAE;QACJ,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,EAAE,wBAAwB,CAAC;KACnC,CAAC;IACF,OAAO,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAWxD;;;;;;;;;;;;;;;;;EAiBE;AACF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,mBAAmB,EAC7D,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAuChD"}
@@ -0,0 +1,6 @@
1
+ declare module '@ember-data/legacy-compat/builders/utils' {
2
+ import type { ResourceIdentifierObject } from '@warp-drive/core-types/spec/raw';
3
+ export function isMaybeIdentifier(maybeIdentifier: string | ResourceIdentifierObject): maybeIdentifier is ResourceIdentifierObject;
4
+ export function normalizeModelName(type: string): string;
5
+ }
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/builders/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,GAAG,wBAAwB,GACjD,eAAe,IAAI,wBAAwB,CAO7C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBvD"}
@@ -0,0 +1,18 @@
1
+ declare module '@ember-data/legacy-compat/builders' {
2
+ /**
3
+ Builders for migrating from `store` methods to `store.request`.
4
+
5
+ These builders enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.
6
+ This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
7
+ To that end, these builders are deprecated and will be removed in a future version of Ember Data.
8
+
9
+ @module @ember-data/legacy-compat/builders
10
+ @main @ember-data/legacy-compat/builders
11
+ @deprecated
12
+ */
13
+ export { findAllBuilder as findAll } from '@ember-data/legacy-compat/builders/find-all';
14
+ export { findRecordBuilder as findRecord } from '@ember-data/legacy-compat/builders/find-record';
15
+ export { queryBuilder as query, queryRecordBuilder as queryRecord } from '@ember-data/legacy-compat/builders/query';
16
+ export { saveRecordBuilder as saveRecord } from '@ember-data/legacy-compat/builders/save-record';
17
+ }
18
+ //# sourceMappingURL=builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,YAAY,IAAI,KAAK,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,161 @@
1
+ /// <reference path="./utils.d.ts" />
2
+ /// <reference path="./builders.d.ts" />
3
+ /// <reference path="./-private.d.ts" />
4
+ /// <reference path="./legacy-network-handler/identifier-has-id.d.ts" />
5
+ /// <reference path="./legacy-network-handler/minimum-serializer-interface.d.ts" />
6
+ /// <reference path="./legacy-network-handler/legacy-data-fetch.d.ts" />
7
+ /// <reference path="./legacy-network-handler/snapshot.d.ts" />
8
+ /// <reference path="./legacy-network-handler/snapshot-record-array.d.ts" />
9
+ /// <reference path="./legacy-network-handler/minimum-adapter-interface.d.ts" />
10
+ /// <reference path="./legacy-network-handler/legacy-data-utils.d.ts" />
11
+ /// <reference path="./legacy-network-handler/legacy-network-handler.d.ts" />
12
+ /// <reference path="./legacy-network-handler/serializer-response.d.ts" />
13
+ /// <reference path="./legacy-network-handler/fetch-manager.d.ts" />
14
+ /// <reference path="./builders/save-record.d.ts" />
15
+ /// <reference path="./builders/find-all.d.ts" />
16
+ /// <reference path="./builders/query.d.ts" />
17
+ /// <reference path="./builders/utils.d.ts" />
18
+ /// <reference path="./builders/find-record.d.ts" />
19
+ declare module '@ember-data/legacy-compat' {
20
+ import type Store from '@ember-data/store';
21
+ import type { ObjectValue } from '@warp-drive/core-types/json/raw';
22
+ import { FetchManager } from '@ember-data/legacy-compat/-private';
23
+ import type { MinimumAdapterInterface } from '@ember-data/legacy-compat/legacy-network-handler/minimum-adapter-interface';
24
+ import type { MinimumSerializerInterface, SerializerOptions } from '@ember-data/legacy-compat/legacy-network-handler/minimum-serializer-interface';
25
+ export { LegacyNetworkHandler } from '@ember-data/legacy-compat/legacy-network-handler/legacy-network-handler';
26
+ /**
27
+ * @module @ember-data/store
28
+ * @class Store
29
+ */
30
+ export type LegacyStoreCompat = {
31
+ _fetchManager: FetchManager;
32
+ adapterFor(this: Store, modelName: string): MinimumAdapterInterface;
33
+ adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;
34
+ serializerFor<K extends string>(modelName: K, _allowMissing?: boolean): MinimumSerializerInterface | null;
35
+ normalize(modelName: string, payload: ObjectValue): ObjectValue;
36
+ pushPayload(modelName: string, payload: ObjectValue): void;
37
+ serializeRecord(record: unknown, options?: SerializerOptions): unknown;
38
+ _adapterCache: Record<string, MinimumAdapterInterface & {
39
+ store: Store;
40
+ }>;
41
+ _serializerCache: Record<string, MinimumSerializerInterface & {
42
+ store: Store;
43
+ }>;
44
+ };
45
+ export type CompatStore = Store & LegacyStoreCompat;
46
+ /**
47
+ Returns an instance of the adapter for a given type. For
48
+ example, `adapterFor('person')` will return an instance of
49
+ the adapter located at `app/adapters/person.js`
50
+
51
+ If no `person` adapter is found, this method will look
52
+ for an `application` adapter (the default adapter for
53
+ your entire application).
54
+
55
+ @method adapterFor
56
+ @public
57
+ @param {String} modelName
58
+ @return Adapter
59
+ */
60
+ export function adapterFor(this: Store, modelName: string): MinimumAdapterInterface;
61
+ export function adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;
62
+ /**
63
+ Returns an instance of the serializer for a given type. For
64
+ example, `serializerFor('person')` will return an instance of
65
+ `App.PersonSerializer`.
66
+
67
+ If no `App.PersonSerializer` is found, this method will look
68
+ for an `App.ApplicationSerializer` (the default serializer for
69
+ your entire application).
70
+
71
+ If a serializer cannot be found on the adapter, it will fall back
72
+ to an instance of `JSONSerializer`.
73
+
74
+ @method serializerFor
75
+ @public
76
+ @param {String} modelName the record to serialize
77
+ @return {Serializer}
78
+ */
79
+ export function serializerFor(this: Store, modelName: string): MinimumSerializerInterface | null;
80
+ /**
81
+ `normalize` converts a json payload into the normalized form that
82
+ [push](../methods/push?anchor=push) expects.
83
+
84
+ Example
85
+
86
+ ```js
87
+ socket.on('message', function(message) {
88
+ let modelName = message.model;
89
+ let data = message.data;
90
+ store.push(store.normalize(modelName, data));
91
+ });
92
+ ```
93
+
94
+ @method normalize
95
+ @public
96
+ @param {String} modelName The name of the model type for this payload
97
+ @param {Object} payload
98
+ @return {Object} The normalized payload
99
+ */
100
+ export function normalize(this: Store, modelName: string, payload: ObjectValue): import("@warp-drive/core-types/spec/raw").SingleResourceDocument<string>;
101
+ /**
102
+ Push some raw data into the store.
103
+
104
+ This method can be used both to push in brand new
105
+ records, as well as to update existing records. You
106
+ can push in more than one type of object at once.
107
+ All objects should be in the format expected by the
108
+ serializer.
109
+
110
+ ```app/serializers/application.js
111
+ import RESTSerializer from '@ember-data/serializer/rest';
112
+
113
+ export default class ApplicationSerializer extends RESTSerializer;
114
+ ```
115
+
116
+ ```js
117
+ let pushData = {
118
+ posts: [
119
+ { id: 1, postTitle: "Great post", commentIds: [2] }
120
+ ],
121
+ comments: [
122
+ { id: 2, commentBody: "Insightful comment" }
123
+ ]
124
+ }
125
+
126
+ store.pushPayload(pushData);
127
+ ```
128
+
129
+ By default, the data will be deserialized using a default
130
+ serializer (the application serializer if it exists).
131
+
132
+ Alternatively, `pushPayload` will accept a model type which
133
+ will determine which serializer will process the payload.
134
+
135
+ ```app/serializers/application.js
136
+ import RESTSerializer from '@ember-data/serializer/rest';
137
+
138
+ export default class ApplicationSerializer extends RESTSerializer;
139
+ ```
140
+
141
+ ```app/serializers/post.js
142
+ import JSONSerializer from '@ember-data/serializer/json';
143
+
144
+ export default JSONSerializer;
145
+ ```
146
+
147
+ ```js
148
+ store.pushPayload(pushData); // Will use the application serializer
149
+ store.pushPayload('post', pushData); // Will use the post serializer
150
+ ```
151
+
152
+ @method pushPayload
153
+ @public
154
+ @param {String} modelName Optionally, a model type used to determine which serializer will be used
155
+ @param {Object} inputPayload
156
+ */
157
+ export function pushPayload(this: Store, modelName: string, inputPayload: ObjectValue): void;
158
+ export function serializeRecord(this: Store, record: unknown, options?: SerializerOptions): unknown;
159
+ export function cleanup(this: Store): void;
160
+ }
161
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAClG,OAAO,KAAK,EACV,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,uBAAuB,CAAC;IACpE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,GAAG,uBAAuB,GAAG,SAAS,CAAC;IAErG,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC;IAE1G,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC;IAChE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3D,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAEvE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC1E,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;IAaI;AACJ,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,uBAAuB,CAAC;AACpF,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,GAAG,uBAAuB,GAAG,SAAS,CAAC;AA8CrH;;;;;;;;;;;;;;;;IAgBI;AACJ,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAwC/F;AAED;;;;;;;;;;;;;;;;;;;IAmBI;AAEJ,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,4EAmB7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuDI;AAEJ,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,IAAI,CAgB3F;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAQlG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,QAgBlC"}