@apollo/client 4.1.0-alpha.8 → 4.1.0-alpha.9

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 (124) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/__cjs/cache/core/cache.cjs +64 -24
  3. package/__cjs/cache/core/cache.cjs.map +1 -1
  4. package/__cjs/cache/core/cache.d.cts +47 -0
  5. package/__cjs/cache/core/types/Cache.d.cts +38 -0
  6. package/__cjs/cache/inmemory/entityStore.cjs +3 -3
  7. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  8. package/__cjs/cache/inmemory/inMemoryCache.cjs +47 -0
  9. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  10. package/__cjs/cache/inmemory/inMemoryCache.d.cts +47 -0
  11. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  12. package/__cjs/cache/inmemory/policies.cjs +14 -5
  13. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  14. package/__cjs/cache/inmemory/policies.d.cts +5 -0
  15. package/__cjs/cache/inmemory/readFromStore.cjs +3 -3
  16. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  17. package/__cjs/cache/inmemory/types.d.cts +1 -0
  18. package/__cjs/cache/inmemory/writeToStore.cjs +6 -5
  19. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  20. package/__cjs/cache/inmemory/writeToStore.d.cts +2 -1
  21. package/__cjs/core/ApolloClient.cjs +14 -14
  22. package/__cjs/core/ApolloClient.cjs.map +1 -1
  23. package/__cjs/core/ApolloClient.d.cts +21 -1
  24. package/__cjs/core/ObservableQuery.cjs +22 -8
  25. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  26. package/__cjs/core/ObservableQuery.d.cts +1 -0
  27. package/__cjs/core/QueryInfo.cjs +3 -0
  28. package/__cjs/core/QueryInfo.cjs.map +1 -1
  29. package/__cjs/core/QueryManager.cjs +27 -17
  30. package/__cjs/core/QueryManager.cjs.map +1 -1
  31. package/__cjs/core/QueryManager.d.cts +18 -2
  32. package/__cjs/invariantErrorCodes.cjs +39 -33
  33. package/__cjs/link/error/index.cjs +1 -1
  34. package/__cjs/link/error/index.cjs.map +1 -1
  35. package/__cjs/link/error/index.d.cts +1 -1
  36. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  37. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  38. package/__cjs/react/hooks/useLazyQuery.cjs +1 -0
  39. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  40. package/__cjs/react/hooks/useQuery.cjs +7 -4
  41. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  42. package/__cjs/react/hooks/useSuspenseQuery.cjs +2 -0
  43. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  44. package/__cjs/utilities/internal/checkDocument.cjs +2 -4
  45. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  46. package/__cjs/utilities/internal/constants.cjs +21 -0
  47. package/__cjs/utilities/internal/constants.cjs.map +1 -0
  48. package/__cjs/utilities/internal/constants.d.cts +18 -0
  49. package/__cjs/utilities/internal/index.cjs +6 -1
  50. package/__cjs/utilities/internal/index.cjs.map +1 -1
  51. package/__cjs/utilities/internal/index.d.cts +2 -0
  52. package/__cjs/utilities/internal/mapObservableFragment.cjs +27 -0
  53. package/__cjs/utilities/internal/mapObservableFragment.cjs.map +1 -0
  54. package/__cjs/utilities/internal/mapObservableFragment.d.cts +3 -0
  55. package/__cjs/utilities/internal/memoize.cjs +31 -0
  56. package/__cjs/utilities/internal/memoize.cjs.map +1 -0
  57. package/__cjs/utilities/internal/memoize.d.cts +8 -0
  58. package/__cjs/version.cjs +1 -1
  59. package/cache/core/cache.d.ts +47 -0
  60. package/cache/core/cache.js +65 -25
  61. package/cache/core/cache.js.map +1 -1
  62. package/cache/core/types/Cache.d.ts +38 -0
  63. package/cache/core/types/Cache.js.map +1 -1
  64. package/cache/inmemory/entityStore.js +3 -3
  65. package/cache/inmemory/entityStore.js.map +1 -1
  66. package/cache/inmemory/inMemoryCache.d.ts +47 -0
  67. package/cache/inmemory/inMemoryCache.js +47 -0
  68. package/cache/inmemory/inMemoryCache.js.map +1 -1
  69. package/cache/inmemory/key-extractor.js +1 -1
  70. package/cache/inmemory/policies.d.ts +5 -0
  71. package/cache/inmemory/policies.js +14 -5
  72. package/cache/inmemory/policies.js.map +1 -1
  73. package/cache/inmemory/readFromStore.js +3 -3
  74. package/cache/inmemory/readFromStore.js.map +1 -1
  75. package/cache/inmemory/types.d.ts +1 -0
  76. package/cache/inmemory/types.js.map +1 -1
  77. package/cache/inmemory/writeToStore.d.ts +2 -1
  78. package/cache/inmemory/writeToStore.js +6 -5
  79. package/cache/inmemory/writeToStore.js.map +1 -1
  80. package/core/ApolloClient.d.ts +21 -1
  81. package/core/ApolloClient.js +15 -15
  82. package/core/ApolloClient.js.map +1 -1
  83. package/core/ObservableQuery.d.ts +1 -0
  84. package/core/ObservableQuery.js +23 -9
  85. package/core/ObservableQuery.js.map +1 -1
  86. package/core/QueryInfo.js +3 -0
  87. package/core/QueryInfo.js.map +1 -1
  88. package/core/QueryManager.d.ts +18 -2
  89. package/core/QueryManager.js +28 -18
  90. package/core/QueryManager.js.map +1 -1
  91. package/invariantErrorCodes.js +39 -33
  92. package/link/error/index.d.ts +1 -1
  93. package/link/error/index.js +1 -1
  94. package/link/error/index.js.map +1 -1
  95. package/link/http/parseAndCheckHttpResponse.js +1 -1
  96. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  97. package/package.json +1 -1
  98. package/react/hooks/useLazyQuery.js +2 -1
  99. package/react/hooks/useLazyQuery.js.map +1 -1
  100. package/react/hooks/useQuery.js +8 -5
  101. package/react/hooks/useQuery.js.map +1 -1
  102. package/react/hooks/useSuspenseQuery.js +2 -0
  103. package/react/hooks/useSuspenseQuery.js.map +1 -1
  104. package/react/hooks-compiled/useLazyQuery.js +2 -1
  105. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  106. package/react/hooks-compiled/useQuery.js +9 -5
  107. package/react/hooks-compiled/useQuery.js.map +1 -1
  108. package/react/hooks-compiled/useSuspenseQuery.js +3 -1
  109. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  110. package/utilities/internal/checkDocument.js +2 -4
  111. package/utilities/internal/checkDocument.js.map +1 -1
  112. package/utilities/internal/constants.d.ts +18 -0
  113. package/utilities/internal/constants.js +18 -0
  114. package/utilities/internal/constants.js.map +1 -0
  115. package/utilities/internal/index.d.ts +2 -0
  116. package/utilities/internal/index.js +2 -0
  117. package/utilities/internal/index.js.map +1 -1
  118. package/utilities/internal/mapObservableFragment.d.ts +3 -0
  119. package/utilities/internal/mapObservableFragment.js +24 -0
  120. package/utilities/internal/mapObservableFragment.js.map +1 -0
  121. package/utilities/internal/memoize.d.ts +8 -0
  122. package/utilities/internal/memoize.js +28 -0
  123. package/utilities/internal/memoize.js.map +1 -0
  124. package/version.js +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @apollo/client
2
2
 
3
+ ## 4.1.0-alpha.9
4
+
5
+ ### Minor Changes
6
+
7
+ - [#13056](https://github.com/apollographql/apollo-client/pull/13056) [`b224efc`](https://github.com/apollographql/apollo-client/commit/b224efc25515370c68b514405762e68a443e4a4a) Thanks [@jerelmiller](https://github.com/jerelmiller)! - `InMemoryCache` no longer filters out explicitly returned `undefined` items from `read` functions for array fields. This now makes it possible to create `read` functions on array fields that return partial data and trigger a fetch for the full list.
8
+
9
+ - [#13058](https://github.com/apollographql/apollo-client/pull/13058) [`121a2cb`](https://github.com/apollographql/apollo-client/commit/121a2cb68820727186ecd74ce1041ef95284682e) Thanks [@jerelmiller](https://github.com/jerelmiller)! - Add an `extensions` option to `cache.write`, `cache.writeQuery`, and `client.writeQuery`. This makes `extensions` available in cache `merge` functions which can be accessed with the other merge function options.
10
+
11
+ As a result of this change, any `extensions` returned in GraphQL operations are now available in `merge` in the cache writes for these operations.
12
+
13
+ ### Patch Changes
14
+
15
+ - [#13053](https://github.com/apollographql/apollo-client/pull/13053) [`23ca0ba`](https://github.com/apollographql/apollo-client/commit/23ca0ba895473b397805e6bcc70e0fcf987547c5) Thanks [@phryneas](https://github.com/phryneas)! - Use memoized observable mapping when using `watchFragment`, `useFragment` or `useSuspenseFragment`.
16
+
17
+ ## 4.1.0-alpha.10
18
+
19
+ ### Patch Changes
20
+
21
+ - [#13053](https://github.com/apollographql/apollo-client/pull/13053) [`23ca0ba`](https://github.com/apollographql/apollo-client/commit/23ca0ba895473b397805e6bcc70e0fcf987547c5) Thanks [@phryneas](https://github.com/phryneas)! - Use memoized observable mapping when using `watchFragment`, `useFragment` or `useSuspenseFragment`.
22
+
23
+ ## 4.1.0-alpha.9
24
+
25
+ ### Minor Changes
26
+
27
+ - [#13056](https://github.com/apollographql/apollo-client/pull/13056) [`b224efc`](https://github.com/apollographql/apollo-client/commit/b224efc25515370c68b514405762e68a443e4a4a) Thanks [@jerelmiller](https://github.com/jerelmiller)! - `InMemoryCache` no longer filters out explicitly returned `undefined` items from `read` functions for array fields. This now makes it possible to create `read` functions on array fields that return partial data and trigger a fetch for the full list.
28
+
3
29
  ## 4.1.0-alpha.8
4
30
 
5
31
  ### Minor Changes
@@ -170,6 +196,25 @@
170
196
 
171
197
  - [#12923](https://github.com/apollographql/apollo-client/pull/12923) [`01cace0`](https://github.com/apollographql/apollo-client/commit/01cace0a6d4faf79e8a4188b93c7d13c4b26d6d4) Thanks [@jerelmiller](https://github.com/jerelmiller)! - Improve the cache data loss warning message when `existing` or `incoming` is an array.
172
198
 
199
+ ## 4.0.11
200
+
201
+ ### Patch Changes
202
+
203
+ - [#13050](https://github.com/apollographql/apollo-client/pull/13050) [`8020829`](https://github.com/apollographql/apollo-client/commit/8020829d8a3bdb3219a37e8d1f7b89179f721037) Thanks [@phryneas](https://github.com/phryneas)! - Replace usage of `findLast` with more backwards-compatible methods.
204
+
205
+ - [#13049](https://github.com/apollographql/apollo-client/pull/13049) [`05638de`](https://github.com/apollographql/apollo-client/commit/05638deaf598c5bf5d03b82d7deaf57468546229) Thanks [@phryneas](https://github.com/phryneas)! - Fixes an issue where queries starting with `skipToken` or lazy queries from `useLazyQuery` were included in `client.refetchQueries()` before they had been executed for the first time. While generally queries with a `standby` `fetchPolicy` should be included in refetch, these queries never had `variables` passed in, so they should be excluded until they have run once and received their actual variables.
206
+
207
+ These queries are now properly excluded from refetch operations until after their initial execution.
208
+
209
+ This change adds a new hidden option to `client.watchQuery`, `[variablesUnknownSymbol]`, which may be set `true` for queries starting with a `fetchPolicy` of `standby`. It will only be applied when creating the `ObservableQuery` instance and cannot be changed later. This flag indicates that the query's variables are not yet known, and thus it should be excluded from refetch operations until they are.
210
+ **This option is not meant for everyday use and is intended for framework integrations only.**
211
+
212
+ ## 4.0.10
213
+
214
+ ### Patch Changes
215
+
216
+ - [#13045](https://github.com/apollographql/apollo-client/pull/13045) [`af4acdc`](https://github.com/apollographql/apollo-client/commit/af4acdc88bd3bac0d697ab300816241e4065842c) Thanks [@phryneas](https://github.com/phryneas)! - Fix memory leak #13036
217
+
173
218
  ## 4.0.9
174
219
 
175
220
  ### Patch Changes
@@ -23,11 +23,53 @@ class ApolloCache {
23
23
  return null;
24
24
  }
25
25
  // Transactional API
26
- // The batch method is intended to replace/subsume both performTransaction
27
- // and recordOptimisticTransaction, but performTransaction came first, so we
28
- // provide a default batch implementation that's just another way of calling
29
- // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can
30
- // override the batch method to do more interesting things with its options.
26
+ /**
27
+ * Executes multiple cache operations as a single batch, ensuring that
28
+ * watchers are only notified once after all operations complete. This is
29
+ * useful for improving performance when making multiple cache updates, as it
30
+ * prevents unnecessary re-renders or query refetches between individual
31
+ * operations.
32
+ *
33
+ * The `batch` method supports both optimistic and non-optimistic updates, and
34
+ * provides fine-grained control over which cache layer receives the updates
35
+ * and when watchers are notified.
36
+ *
37
+ * For usage instructions, see [Interacting with cached data: `cache.batch`](https://www.apollographql.com/docs/react/caching/cache-interaction#using-cachebatch).
38
+ *
39
+ * @example
40
+ *
41
+ * ```js
42
+ * cache.batch({
43
+ * update(cache) {
44
+ * cache.writeQuery({
45
+ * query: GET_TODOS,
46
+ * data: { todos: updatedTodos },
47
+ * });
48
+ * cache.evict({ id: "Todo:123" });
49
+ * },
50
+ * });
51
+ * ```
52
+ *
53
+ * @example
54
+ *
55
+ * ```js
56
+ * // Optimistic update with a custom layer ID
57
+ * cache.batch({
58
+ * optimistic: "add-todo-optimistic",
59
+ * update(cache) {
60
+ * cache.modify({
61
+ * fields: {
62
+ * todos(existing = []) {
63
+ * return [...existing, newTodoRef];
64
+ * },
65
+ * },
66
+ * });
67
+ * },
68
+ * });
69
+ * ```
70
+ *
71
+ * @returns The return value of the `update` function.
72
+ */
31
73
  batch(options) {
32
74
  const optimisticId = typeof options.optimistic === "string" ? options.optimistic
33
75
  : options.optimistic === false ? null
@@ -86,7 +128,6 @@ class ApolloCache {
86
128
  watchFragment(options) {
87
129
  const { fragment, fragmentName, from } = options;
88
130
  const query = this.getFragmentDoc(fragment, fragmentName);
89
- const transformData = options[Symbol.for("apollo.transformData")] ?? ((data) => data);
90
131
  const fromArray = Array.isArray(from) ? from : [from];
91
132
  const ids = fromArray.map((value) => {
92
133
  // While our TypeScript types do not allow for `undefined` as a valid
@@ -99,26 +140,26 @@ class ApolloCache {
99
140
  if (environment_1.__DEV__) {
100
141
  const actualFragmentName = fragmentName || (0, internal_1.getFragmentDefinition)(fragment).name.value;
101
142
  if (id === undefined) {
102
- __DEV__ && invariant_1.invariant.warn(112, actualFragmentName);
143
+ __DEV__ && invariant_1.invariant.warn(113, actualFragmentName);
103
144
  }
104
145
  }
105
146
  return id;
106
147
  });
107
148
  if (!Array.isArray(from)) {
108
- return this.watchSingleFragment(ids[0], query, {
109
- ...options,
110
- transformData: (data) =>
111
- // Unfortunately we forgot to allow for `null` on watchFragment in 4.0
112
- // when `from` is a single record. As such, we need to fallback to {}
113
- // when diff.result is null to maintain backwards compatibility. We
114
- // should plan to change this in v5. We do however support `null` if
115
- // `from` is explicitly `null`.
116
- //
117
- // NOTE: Using `from` with an array will maintain `null` properly
118
- // without the need for a similar fallback since watchFragment with
119
- // arrays is new functionality in v4.1.
120
- transformData(from === null ? data : data ?? {}),
121
- });
149
+ const observable = this.watchSingleFragment(ids[0], query, options);
150
+ // Unfortunately we forgot to allow for `null` on watchFragment in 4.0
151
+ // when `from` is a single record. As such, we need to fallback to {}
152
+ // when diff.result is null to maintain backwards compatibility. We
153
+ // should plan to change this in v5. We do however support `null` if
154
+ // `from` is explicitly `null`.
155
+ //
156
+ // NOTE: Using `from` with an array will maintain `null` properly
157
+ // without the need for a similar fallback since watchFragment with
158
+ // arrays is new functionality in v4.1.
159
+ return from === null ? observable : ((0, internal_1.mapObservableFragmentMemoized)(observable, Symbol.for("apollo.transform.individualResult"), (result) => ({
160
+ ...result,
161
+ data: result.data ?? {},
162
+ })));
122
163
  }
123
164
  let currentResult;
124
165
  function toResult(results) {
@@ -136,7 +177,6 @@ class ApolloCache {
136
177
  dataState: "complete",
137
178
  complete: true,
138
179
  });
139
- result.data = transformData(result.data);
140
180
  if (!(0, equality_1.equal)(currentResult, result)) {
141
181
  currentResult = result;
142
182
  }
@@ -171,7 +211,7 @@ class ApolloCache {
171
211
  if (id === null) {
172
212
  return nullObservable;
173
213
  }
174
- const { optimistic = true, variables, transformData = (data) => data, } = options;
214
+ const { optimistic = true, variables } = options;
175
215
  const cacheKey = [
176
216
  fragmentQuery,
177
217
  (0, utilities_1.canonicalStringify)({ id, optimistic, variables }),
@@ -181,7 +221,7 @@ class ApolloCache {
181
221
  let subscribed = false;
182
222
  let currentResult;
183
223
  function getNewestResult(diff) {
184
- const data = transformData(diff.result);
224
+ const data = diff.result;
185
225
  if (!currentResult ||
186
226
  !(0, internal_1.equalByQuery)(fragmentQuery, { data: currentResult.data }, { data }, options.variables)) {
187
227
  currentResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"cache.cjs","sources":["../../../../src/cache/core/cache.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport { wrap } from \"optimism\";\nimport {\n distinctUntilChanged,\n map,\n Observable,\n ReplaySubject,\n share,\n shareReplay,\n tap,\n timer,\n} from \"rxjs\";\n\nimport type {\n DataValue,\n GetDataState,\n OperationVariables,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport type { FragmentType, Unmasked } from \"@apollo/client/masking\";\nimport type {\n DeepPartial,\n Reference,\n StoreObject,\n} from \"@apollo/client/utilities\";\nimport { cacheSizes, canonicalStringify } from \"@apollo/client/utilities\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type {\n IsAny,\n NoInfer,\n Prettify,\n} from \"@apollo/client/utilities/internal\";\nimport {\n combineLatestBatched,\n equalByQuery,\n getApolloCacheMemoryInternals,\n getFragmentDefinition,\n getFragmentQueryDocument,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\n\nimport type { Cache } from \"./types/Cache.js\";\nimport type { MissingTree } from \"./types/common.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\nexport declare namespace ApolloCache {\n /**\n * Acceptable values provided to the `from` option.\n */\n export type FromOptionValue<TData> =\n | StoreObject\n | Reference\n | FragmentType<NoInfer<TData>>\n | string;\n\n /**\n * Watched fragment options.\n */\n export interface WatchFragmentOptions<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /**\n * A GraphQL fragment document parsed into an AST with the `gql`\n * template literal.\n *\n * @docGroup 1. Required options\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;\n /**\n * An object containing a `__typename` and primary key fields\n * (such as `id`) identifying the entity object from which the fragment will\n * be retrieved, or a `{ __ref: \"...\" }` reference, or a `string` ID\n * (uncommon).\n *\n * @docGroup 1. Required options\n */\n from:\n | ApolloCache.FromOptionValue<TData>\n | Array<ApolloCache.FromOptionValue<TData> | null>\n | null;\n /**\n * Any variables that the GraphQL fragment may depend on.\n *\n * @docGroup 2. Cache options\n */\n variables?: TVariables;\n /**\n * The name of the fragment defined in the fragment document.\n *\n * Required if the fragment document includes more than one fragment,\n * optional otherwise.\n *\n * @docGroup 2. Cache options\n */\n fragmentName?: string;\n /**\n * If `true`, `watchFragment` returns optimistic results.\n *\n * The default value is `true`.\n *\n * @docGroup 2. Cache options\n */\n optimistic?: boolean;\n }\n\n /**\n * Watched fragment results.\n */\n export type WatchFragmentResult<TData = unknown> =\n true extends IsAny<TData> ?\n | ({\n complete: true;\n missing?: never;\n } & GetDataState<any, \"complete\">)\n | ({\n complete: false;\n missing?: MissingTree;\n } & GetDataState<any, \"partial\">)\n : TData extends null | null[] ?\n Prettify<\n {\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">\n >\n : | Prettify<\n {\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">\n >\n | {\n complete: false;\n missing?: MissingTree;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#data:member} */\n data: TData extends Array<infer TItem> ?\n Array<DataValue.Partial<TItem> | null>\n : DataValue.Partial<TData>;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#dataState:member} */\n dataState: \"partial\";\n };\n\n export interface ObservableFragment<TData = unknown>\n extends Observable<ApolloCache.WatchFragmentResult<TData>> {\n /**\n * Return the current result for the fragment.\n */\n getCurrentResult: () => ApolloCache.WatchFragmentResult<TData>;\n }\n}\n\nexport abstract class ApolloCache {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.ReadOptions<TData, TVariables>): Unmasked<TData> | null;\n public abstract write<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(write: Cache.WriteOptions<TData, TVariables>): Reference | undefined;\n\n /**\n * Returns data read from the cache for a given query along with information\n * about the cache result such as whether the result is complete and details\n * about missing fields.\n *\n * Will return `complete` as `true` if it can fulfill the full cache result or\n * `false` if not. When no data can be fulfilled from the cache, `null` is\n * returned. When `returnPartialData` is `true`, non-null partial results are\n * returned if it contains at least one field that can be fulfilled from the\n * cache.\n */\n public abstract diff<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.DiffOptions<TData, TVariables>): Cache.DiffResult<TData>;\n public abstract watch<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(watch: Cache.WatchOptions<TData, TVariables>): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise<void>;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(serializedState: unknown): this;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): unknown;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Used by data masking to determine if an inline fragment with a type\n // condition matches a given typename. Also used by local resolvers to match a\n // fragment against a typename.\n //\n // If not implemented by a cache subclass, data masking will effectively be\n // disabled since we will not be able to accurately determine if a given type\n // condition for a union or interface matches a particular type.\n public abstract fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string\n ): boolean;\n\n // Function used to lookup a fragment when a fragment definition is not part\n // of the GraphQL document. This is useful for caches, such as InMemoryCache,\n // that register fragments ahead of time so they can be referenced by name.\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return null;\n }\n\n // Local state API\n\n /**\n * Determines whether a `@client` field can be resolved by the cache. Used\n * when `LocalState` does not have a local resolver that can resolve the\n * field.\n *\n * @remarks Cache implementations should return `true` if a mechanism in the\n * cache is expected to provide a value for the field. `LocalState` will set\n * the value of the field to `undefined` in order for the cache to handle it.\n *\n * Cache implementations should return `false` to indicate that it cannot\n * handle resolving the field (either because it doesn't have a mechanism to\n * do so, or because the user hasn't provided enough information to resolve\n * the field). Returning `false` will emit a warning and set the value of the\n * field to `null`.\n *\n * A cache that doesn't implement `resolvesClientField` will be treated the\n * same as returning `false`.\n */\n public resolvesClientField?(typename: string, fieldName: string): boolean;\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch<U>(options: Cache.BatchOptions<this, U>): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify<Entity extends Record<string, any> = Record<string, any>>(\n options: Cache.ModifyOptions<Entity>\n ): boolean {\n return false;\n }\n\n /**\n * Read data from the cache for the specified query.\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n query,\n variables,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;\n /**\n * {@inheritDoc @apollo/client!ApolloCache#readQuery:member(1)}\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n private fragmentWatches = new Trie<{\n observable?: ApolloCache.ObservableFragment<any> & { dirty: boolean };\n }>(true);\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<ApolloCache.FromOptionValue<TData>>;\n }\n ): ApolloCache.ObservableFragment<Array<Unmasked<TData>>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<null>;\n }\n ): ApolloCache.ObservableFragment<Array<null>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<ApolloCache.FromOptionValue<TData> | null>;\n }\n ): ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: null;\n }\n ): ApolloCache.ObservableFragment<null>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: ApolloCache.FromOptionValue<TData>;\n }\n ): ApolloCache.ObservableFragment<Unmasked<TData>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables>\n ): ApolloCache.ObservableFragment<Unmasked<TData> | null>;\n\n /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables>\n ):\n | ApolloCache.ObservableFragment<Unmasked<TData> | null>\n | ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>> {\n const { fragment, fragmentName, from } = options;\n const query = this.getFragmentDoc(\n fragment,\n fragmentName\n ) as TypedDocumentNode<TData, TVariables>;\n const transformData: (\n data: TData | DeepPartial<TData> | null\n ) => TData | DeepPartial<TData> | null =\n (options as any)[Symbol.for(\"apollo.transformData\")] ?? ((data) => data);\n\n const fromArray = Array.isArray(from) ? from : [from];\n\n const ids = fromArray.map((value) => {\n // While our TypeScript types do not allow for `undefined` as a valid\n // `from`, its possible `useFragment` gives us an `undefined` since it\n // calls` cache.identify` and provides that value to `from`. We are\n // adding this fix here however to ensure those using plain JavaScript\n // and using `cache.identify` themselves will avoid seeing the obscure\n // warning.\n const id = value == null ? value : this.toCacheId(value);\n\n if (__DEV__) {\n const actualFragmentName =\n fragmentName || getFragmentDefinition(fragment).name.value;\n\n if (id === undefined) {\n invariant.warn(\n \"Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object.\",\n actualFragmentName\n );\n }\n }\n\n return id as string | null;\n });\n\n if (!Array.isArray(from)) {\n return this.watchSingleFragment(ids[0], query, {\n ...options,\n transformData: (data) =>\n // Unfortunately we forgot to allow for `null` on watchFragment in 4.0\n // when `from` is a single record. As such, we need to fallback to {}\n // when diff.result is null to maintain backwards compatibility. We\n // should plan to change this in v5. We do however support `null` if\n // `from` is explicitly `null`.\n //\n // NOTE: Using `from` with an array will maintain `null` properly\n // without the need for a similar fallback since watchFragment with\n // arrays is new functionality in v4.1.\n transformData(from === null ? data : data ?? ({} as any)),\n });\n }\n\n let currentResult: ApolloCache.WatchFragmentResult<TData>;\n function toResult(\n results: Array<ApolloCache.WatchFragmentResult<TData>>\n ): ApolloCache.WatchFragmentResult<any> {\n const result = results.reduce(\n (memo, result, idx) => {\n memo.data.push(result.data);\n memo.complete &&= result.complete;\n memo.dataState = memo.complete ? \"complete\" : \"partial\";\n\n if (result.missing) {\n memo.missing ||= {};\n (memo.missing as any)[idx] = result.missing;\n }\n\n return memo;\n },\n {\n data: [],\n dataState: \"complete\",\n complete: true,\n } as ApolloCache.WatchFragmentResult<TData>\n );\n\n result.data = transformData(result.data);\n\n if (!equal(currentResult, result)) {\n currentResult = result;\n }\n\n return currentResult;\n }\n\n if (ids.length === 0) {\n return emptyArrayObservable;\n }\n\n let subscribed = false;\n const observables = ids.map((id) =>\n this.watchSingleFragment(id, query, options)\n ) as Array<ApolloCache.ObservableFragment<TData>>;\n\n const observable = combineLatestBatched(observables).pipe(\n map(toResult),\n tap({\n subscribe: () => (subscribed = true),\n unsubscribe: () => (subscribed = false),\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n return Object.assign(observable, {\n getCurrentResult: () => {\n if (subscribed && currentResult) {\n return currentResult as any;\n }\n\n const results = observables.map((observable) =>\n observable.getCurrentResult()\n );\n\n return toResult(results);\n },\n } satisfies Pick<\n | ApolloCache.ObservableFragment<Unmasked<TData> | null>\n | ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>>,\n \"getCurrentResult\"\n >) as any;\n }\n\n /**\n * Can be overridden by subclasses to delay calling the provided callback\n * until after all broadcasts have been completed - e.g. in a cache scenario\n * where many watchers are notified in parallel.\n */\n protected onAfterBroadcast = (cb: () => void) => cb();\n private watchSingleFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n id: string | null,\n fragmentQuery: TypedDocumentNode<TData, TVariables>,\n options: Omit<\n ApolloCache.WatchFragmentOptions<TData, TVariables>,\n \"from\" | \"fragment\" | \"fragmentName\"\n > & {\n transformData?: (\n data: TData | DeepPartial<TData> | null\n ) => TData | DeepPartial<TData> | null;\n }\n ): ApolloCache.ObservableFragment<Unmasked<TData> | null> & {\n dirty: boolean;\n } {\n if (id === null) {\n return nullObservable as any;\n }\n\n const {\n optimistic = true,\n variables,\n transformData = (data) => data,\n } = options;\n\n const cacheKey = [\n fragmentQuery,\n canonicalStringify({ id, optimistic, variables }),\n ];\n const cacheEntry = this.fragmentWatches.lookupArray(cacheKey);\n\n if (!cacheEntry.observable) {\n let subscribed = false;\n let currentResult: ApolloCache.WatchFragmentResult<TData>;\n\n function getNewestResult(diff: Cache.DiffResult<TData>) {\n const data = transformData(diff.result);\n\n if (\n !currentResult ||\n !equalByQuery(\n fragmentQuery,\n { data: currentResult.data },\n { data },\n options.variables\n )\n ) {\n currentResult = {\n data,\n dataState: diff.complete ? \"complete\" : \"partial\",\n complete: diff.complete,\n } as ApolloCache.WatchFragmentResult<TData>;\n\n if (diff.missing) {\n currentResult.missing = diff.missing.missing;\n }\n }\n\n return currentResult;\n }\n\n const observable: Observable<ApolloCache.WatchFragmentResult<TData>> & {\n dirty?: boolean;\n } = new Observable<ApolloCache.WatchFragmentResult<TData>>((observer) => {\n subscribed = true;\n const cleanup = this.watch<TData, TVariables>({\n variables,\n returnPartialData: true,\n id,\n query: fragmentQuery,\n optimistic,\n immediate: true,\n callback: (diff) => {\n observable.dirty = true;\n this.onAfterBroadcast(() => {\n observer.next(getNewestResult(diff));\n observable.dirty = false;\n });\n },\n });\n return () => {\n subscribed = false;\n cleanup();\n this.fragmentWatches.removeArray(cacheKey);\n };\n }).pipe(\n distinctUntilChanged(),\n share({\n connector: () => new ReplaySubject(1),\n // debounce so a synchronous unsubscribe+resubscribe doesn't tear down the watch and create a new one\n resetOnRefCountZero: () => timer(0),\n })\n );\n\n cacheEntry.observable = Object.assign(observable, {\n dirty: false,\n getCurrentResult: () => {\n if (subscribed && currentResult) {\n return currentResult;\n }\n\n return getNewestResult(\n this.diff<TData>({\n id,\n query: fragmentQuery,\n returnPartialData: true,\n optimistic,\n variables,\n })\n );\n },\n });\n }\n\n return cacheEntry.observable as ApolloCache.ObservableFragment<Unmasked<TData> | null> & {\n dirty: boolean;\n };\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n /**\n * Read data from the cache for the specified fragment.\n */\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n fragment,\n variables,\n fragmentName,\n id,\n from,\n optimistic,\n returnPartialData,\n }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;\n\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n const id =\n options.from !== undefined ? this.toCacheId(options.from) : options.id;\n\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: id,\n optimistic,\n });\n }\n\n /**\n * Writes data to the root of the cache using the specified query to validate that\n * the shape of the data you’re writing to the cache is the same as the shape of\n * the data required by the query. Great for prepping the cache with initial data.\n */\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n query,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n /**\n * Similar to `writeQuery` (writes data to the cache) but uses the specified\n * fragment to validate that the shape of the data you’re writing to the cache\n * is the same as the shape of the data required by the fragment.\n */\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n fragment,\n fragmentName,\n variables,\n overwrite,\n id,\n from,\n broadcast,\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;\n\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined {\n const id =\n options.from !== undefined ? this.toCacheId(options.from) : options.id;\n\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateQueryOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateFragmentOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n private toCacheId(from: ApolloCache.FromOptionValue<any>) {\n return typeof from === \"string\" ? from : this.identify(from);\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public declare getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n\nconst nullResult = Object.freeze({\n data: null,\n dataState: \"complete\",\n complete: true,\n}) as ApolloCache.WatchFragmentResult<null>;\n\nconst nullObservable = Object.assign(\n new Observable((observer) => {\n observer.next(nullResult);\n }),\n { dirty: false, getCurrentResult: () => nullResult }\n);\n\nconst emptyArrayResult = Object.freeze({\n data: [],\n dataState: \"complete\",\n complete: true,\n});\n\nconst emptyArrayObservable: ApolloCache.ObservableFragment<any[]> =\n Object.assign(\n new Observable<ApolloCache.WatchFragmentResult<never[]>>((observer) => {\n observer.next(emptyArrayResult);\n }),\n { getCurrentResult: () => emptyArrayResult }\n );\n"],"names":[],"mappings":";;;;;;;AAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAMA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAuBA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CA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AF,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;gBACU,CAAV,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBACU,CAAV;gBACU,CAAV,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBACU,CAAV,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;gBACU,CAAV,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;gBACU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,EAAA,CAAA,CAAA,EAAiC,CAAjC,CAAA,CAAA,EAAsC,EAAE,CAAxC,CAAA,CAAA,EAA6C,EAAE,CAA/C,CAAA,CAAA,EAAA,CAAA,EAAwD,CAAxD,CAAkE,CAAC;YACnE,CAAO,CAAC;QACJ;QAEA,CAAJ,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6D;QACzD,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CACf,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAC4D,EAD5D;YAGM,CAAN,CAAA,CAAA,CAAA,EAAY,CAAZ,CAAA,CAAA,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAA,CAAmC,CAC3B,CAAC,CADT,CAAA,CAAA,CACa,EAAE,CADf,CAAA,CAAA,CAAA,CAAA,CACqB,EAAE,CADvB,CAAA,CAC0B,EAAE,CAD5B,EAAA;gBAEU,CAAV,CAAA,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAmB,CAAC,CAApB,CAAA,CAAA,CAAwB,CAAC,CAAzB,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,CAAhC,CAAA,CAAA,CAAoC,CAAC;gBAC3B,CAAV,CAAA,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAA4B,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C;gBACjC,CAAV,CAAA,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA2B,CAA3B,CAAA,CAAA,CAA+B,CAAC,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAyC,EAAE,CAA3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAsD,EAAE,CAAxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiE;gBAEvD,CAAV,EAAA,CAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,EAAE;oBAClB,CAAZ,CAAA,CAAA,CAAgB,CAAC,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAA6B,CAA7B,CAA+B;oBAClB,CAAb,CAAA,CAAA,CAAiB,CAAC,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAlC,CAAA,CAAqC,EAArC,EAAyC,CAAzC,CAAA,CAAA,CAAA,CAAA,CAA+C,CAAC,CAAhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuD;gBAC7C;gBAEA,CAAV,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAqB;YACb,CAAC,EACD;gBACE,CAAV,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAkB;gBACR,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B;gBACrB,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,EAAE,CAApB,CAAA,CAAA,CAAwB;YACxB,CAAmD,CAC5C;YAED,CAAN,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,CAAA,EAAA,EAAoB,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAlC,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAC,CAAzC,CAAA,CAAA,CAA6C,CAAC;YAExC,CAAN,EAAA,CAAU,CAAC,CAAX,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAhB,CAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,EAAE,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC,EAAE;gBACjC,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAwB,CAAxB,CAAA,CAAA,CAAA,CAAA,CAA8B;YACxB;YAEA,CAAN,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B;QACtB;QAEA,CAAJ,EAAA,CAAQ,CAAR,CAAA,CAAW,CAAC,CAAZ,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAuB,CAAC,EAAE;YACpB,CAAN,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC;QAC7B;QAEA,CAAJ,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAA0B;QACtB,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAwB,CAAxB,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAA+B,CAAC,CAAC,CAAjC,CAAmC,EAAE,CAArC,EACM,CADN,CAAA,CAAA,CACU,CAAC,CADX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC8B,CAAC,CAD/B,CACiC,EAAE,CADnC,CAAA,CAAA,CAAA,CACwC,EAAE,CAD1C,CAAA,CAAA,CAAA,CAAA,CAAA,CACiD,CAAC,CACG;QAEjD,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuB,CAAvB,CAAA,EAAuB,CAAvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAA3C,CAA4C,CAA5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuD,CAAC,CAAC,CAAzD,CAAA,CAAA,CAA6D,CACvD,CADN,CAAA,EACM,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACS,CADT,CACU,CADV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACkB,CAAC,EACb,CAFN,CAAA,EAEM,CAFN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAES,CAFT,CAEU;YACF,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,CAAnB,EAAsB,CAAtB,EAAyB,CAAC,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuC,CAAvC,CAAA,CAAA,CAA2C,CAAC;YACpC,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAArB,EAAwB,CAAxB,EAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAyC,CAAzC,CAAA,CAAA,CAAA,CAA8C,CAAC;QAC/C,CAAO,CAAC,EACF,CADN,CAAA,EACM,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACiB,CADjB,CACkB,EAAE,CADpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC8B,EAAE,CAAC,EAAE,CADnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC2C,EAAE,CAD7C,CAAA,CAAA,EAAA,CACmD,CAAC,CAC/C;QAED,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,EAAE;YAC/B,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,EAAE,CAAxB,EAA2B,CAA3B,EAAA;gBACQ,CAAR,EAAA,CAAY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAA0B,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,EAAE;oBAC/B,CAAV,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC;gBAC7B;gBAEA,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAwB,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAC,CAApC,CAAA,CAAuC,CAAC,CAAC,CAAzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,EAAE,CAArD,EACU,CADV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACoB,CAAC,CADrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACqC,CADrC,CACuC,CAC9B;gBAED,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC;YAC1B,CAAC;QAKP,CAAK,CAAQ;IACX;IAEA,CAAF,CAAA;;;;KAIA,CAAA;IACY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA+B,CAAC,CAAhC,CAA8C,EAAE,CAAhD,EAAmD,CAAnD,CAAqD,CAArD,CAAuD;IAC7C,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAIzB,CAJJ,CAIqB,EACjB,CALJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKuD,EACnD,CANJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAaK,EAbL;QAiBI,CAAJ,EAAA,CAAQ,CAAR,EAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAmB,EAAE;YACf,CAAN,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC;QAC9B;QAEA,CAAJ,CAAA,CAAA,CAAA,EAAU,EACJ,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EACmB,CADnB,CAAA,CAAA,CACuB,EACjB,CAFN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEe,EACT,CAHN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAGsB,CAAC,CAHvB,CAAA,CAAA,CAG2B,EAAE,CAH7B,EAGgC,CAHhC,CAAA,CAAA,CAGoC,EAHpC,EAAA,EAIQ,CAJR,CAAA,CAAA,CAAA,CAAA,CAAA,CAIe;QAEX,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAqB;YACf,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;YACb,CAAN,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAxB,CAAyB,EAAE,CAA3B,CAA6B,EAAE,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyC,EAAE,CAA3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAsD,CAAC;QACvD,CAAK;QACD,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuB,CAAvB,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAC,CAA5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuD,CAAC,CAAxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgE,CAAC;QAE7D,CAAJ,EAAA,CAAQ,CAAC,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,EAAE;YAC1B,CAAN,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuB,CAAvB,CAAA,CAAA,CAAA,CAA4B;YACtB,CAAN,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+D;YAEzD,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAA/B,CAAA,CAAA,CAA4D,EAA5D;gBACQ,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAnC,CAAA,CAAA,CAAuC,CAAC,CAAxC,CAAA,CAAA,CAAA,CAAA,CAA8C,CAAC;gBAEvC,CAAR,EAAA,CACU,CAAC,CADX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;oBAEU,CAAC,CAAX,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAvB,CACY,CADZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACyB,EACb,EAAE,CAFd,CAAA,CAAA,CAEkB,EAAE,CAFpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEiC,CAAC,CAFlC,CAAA,CAAA,EAAA,CAEwC,EAC5B,EAAE,CAHd,CAAA,CAAA,EAAA,CAGoB,EACR,CAJZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAImB,CAAC,CAJpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAI6B,CAClB,EACD;oBACA,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA0B;wBACd,CAAZ,CAAA,CAAA,CAAgB;wBACJ,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,EAAE,CAAvB,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAqC,EAAE,CAAvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkD,EAAE,CAApD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6D;wBACjD,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,EAAE,CAAtB,CAAA,CAAA,CAA0B,CAAC,CAA3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC;oBACnC,CAAqD;oBAE3C,CAAV,EAAA,CAAc,CAAd,CAAA,CAAA,CAAkB,CAAC,CAAnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,EAAE;wBAChB,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAoC,CAApC,CAAA,CAAA,CAAwC,CAAC,CAAzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgD,CAAC,CAAjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwD;oBAC9C;gBACF;gBAEA,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B;YACtB;YAEA,CAAN,CAAA,CAAA,CAAA,EAAY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAEU,CAFV,CAAA,EAEc,CAFd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEwB,CAAyC,CAAC,CAFlE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE0E,EAAE,CAF5E,EAAA;gBAGQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAyB;gBACjB,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAwB,CAAxB,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAkC,CAAoB;oBAC5C,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;oBACT,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,EAAE,CAA7B,CAAA,CAAA,CAAiC;oBACvB,CAAV,CAAY;oBACF,CAAV,CAAA,CAAA,CAAA,CAAe,EAAE,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B;oBACpB,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;oBACV,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAArB,CAAA,CAAA,CAAyB;oBACf,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,EAAE,CAAC,CAArB,CAAA,CAAA,CAAyB,EAAE,CAA3B,EAAA;wBACY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAvB,CAAA,CAAA,CAAA,EAAA,EAA+B,CAA/B,CAAA,CAAA,CAAmC;wBACvB,CAAZ,CAAA,CAAA,CAAgB,CAAC,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAlC,EAAqC,CAArC,EAAA;4BACc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAvB,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAC,CAA5C,CAAA,CAAA,CAAgD,CAAC,CAAC;4BACpC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAzB,CAAA,CAAA,CAAA,EAAA,EAAiC,CAAjC,CAAA,CAAA,CAAA,CAAsC;wBAC1B,CAAC,CAAC;oBACJ,CAAC;gBACX,CAAS,CAAC;gBACF,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,EAAkB,CAAlB,EAAA;oBACU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuB,CAAvB,CAAA,CAAA,CAAA,CAA4B;oBAClB,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAjB,CAAmB;oBACT,CAAV,CAAA,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAC,CAA3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC,CAAT,CAAA,CAAA,CAAa,CACL,CADR,CAAA,EACQ,CADR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC4B,CAD5B,CAAA,CAC8B,EACtB,CAFR,CAAA,EAEQ,CAFR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEa,CAFb,CAEc;gBACJ,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,CAAA,EAA+B,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C,CAAC,CAAC,CAAC;gBACrC,CAAV,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA;gBACU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,EAAE,CAA/B,EAAkC,CAAlC,EAAqC,CAArC,CAAA,EAAqC,CAArC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAA1C,CAA2C,CAAC,CAAC;YAC7C,CAAS,CAAC,CACH;YAED,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA8B,CAA9B,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAC,CAArC,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAC,CAA5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsD,EAAE;gBAChD,CAAR,CAAA,CAAA,CAAA,CAAa,EAAE,CAAf,CAAA,CAAA,CAAA,CAAoB;gBACZ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,EAAE,CAA1B,EAA6B,CAA7B,EAAA;oBACU,CAAV,EAAA,CAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAA4B,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyC,EAAE;wBAC/B,CAAZ,CAAA,CAAA,CAAA,CAAA,EAAmB,CAAnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC;oBACtB;oBAEA,CAAV,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CACpB,CADZ,CAAA,CAAA,CACgB,CAAC,CADjB,CAAA,CAAA,CACqB,CAAQ;wBACf,CAAd,CAAgB;wBACF,CAAd,CAAA,CAAA,CAAA,CAAmB,EAAE,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC;wBACpB,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,EAAE,CAAjC,CAAA,CAAA,CAAqC;wBACvB,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB;wBACV,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;oBACvB,CAAa,CAAC,CACH;gBACH,CAAC;YACT,CAAO,CAAC;QACJ;QAEA,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEK;IACH;IAEA,CAAF,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA2B,CAA3B,CAAA,EAA2B,CAA3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAA/B,CAAgC,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwD,EAAE;QACtD,CAAJ,CAAA,CAAO,EACD,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACgB,CAAC,CADjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC+C,EAD/C,CAAA;YAEA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAuD;QACnD,CAAJ,CAAA,CAAA,CAAA,CAAS,EAAE,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;IACpB,CAAG,CAAC;IA+BK,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAIjB,CAJJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAIyD,EACrD,CALJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAKiB,CAAC,CAAC,CALnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAK0B,CAAC,CAL3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKqC,EALrC;QAOI,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,EAAA,EACM,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CACa,CAAC,CADd,CAAA,CAAA,EAAA,CAAA,CAAA,EACuB,CADvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACiC,EAAE,CADnC,CAAA,CAAA,CACuC,CAAC,CADxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACiD,CAAC,CADlD,CAAA,CAAA,CAAA,CAAA,CAAA,CACyD,CAAC,CAD1D,CAAA,CAAA,CAC8D,EAAE,EAAE,CADlE,CAAA,CAAA,CAAA,CAAA,CAAA,CACyE,CAAC,CAD1E,CAC4E;QAExE,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe,CAAC,CAAhB,CAAA,CAAA,CAAoB,CAAC;YACf,CAAN,CAAA,CAAS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;YACV,CAAN,CAAA,CAAA,CAAA,CAAW,EAAE,CAAb,CAAA,CAAA,CAAiB,CAAC,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC,CAAjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAC,CAAzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiD,EAAE,CAAnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0D,CAAC,CAA3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuE,CAAC;YAClE,CAAN,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAd,CAAgB;YACV,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;QAChB,CAAK,CAAC;IACJ;IAmBO,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAGf,EACA,CAJJ,CAIM,EACF,CALJ,CAAA,CAAA,CAKQ,EACJ,CANJ,CAAA,CAMO,CANP,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAO+C,EAP/C;QAQI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe,CAAC,CAAhB,CAAA,CAAA,CAAA,CAAqB,CACf,CADN,CAAA,CAAA,CAAA,CAAA,CACY,CAAC,CADb,CAAA,CAAA,CAAA,CAAA,CACmB,CAAC,CADpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAC2B,EAAE;YACrB,CAAR,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,EAAA,CAAA,EAAsB,CAAtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC;YAC1B,CAAR,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAA,CAAA,CAAoB;QACpB,CAAO,CAAC,CACH;IACH;IAsBO,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAGlB,EACA,CAJJ,CAAA,CAAA,CAIQ,EACJ,CALJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKY,EACR,CANJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAMgB,EACZ,CAPJ,CAAA,CAOO,CAPP,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAQkD,EARlD;QASI,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,EAAA,EACM,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CACa,CAAC,CADd,CAAA,CAAA,EAAA,CAAA,CAAA,EACuB,CADvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACiC,EAAE,CADnC,CAAA,CAAA,CACuC,CAAC,CADxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACiD,CAAC,CADlD,CAAA,CAAA,CAAA,CAAA,CAAA,CACyD,CAAC,CAD1D,CAAA,CAAA,CAC8D,EAAE,EAAE,CADlE,CAAA,CAAA,CAAA,CAAA,CAAA,CACyE,CAAC,CAD1E,CAC4E;QAExE,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe,CAAC,CAAhB,CAAA,CAAA,CAAA,CAAqB,CACf,CADN,CAAA,CAAA,CAAA,CAAA,CACY,CAAC,CADb,CAAA,CAAA,CAAA,CAAA,CACmB,CAAC,CADpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAC2B,EAAE;YACrB,CAAR,CAAA,CAAA,CAAA,CAAa,EAAE,CAAf,CAAA,CAAA,CAAmB,CAAC,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,EAAE,CAA7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAC;YAClD,CAAR,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAkB;YACV,CAAR,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAA,CAAA,CAAoB;QACpB,CAAO,CAAC,CACH;IACH;IAEO,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAIhB,CAJJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAIwD,EACpD,CALJ,CAAA,CAAA,CAAA,CAAA,CAK2E,EAL3E;QAOI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe,CAAC,CAAhB,CAAA,CAAA,CAAA,CAAqB,CAAC;YAChB,CAAN,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,CAAA,CAAA,CAAkB,EAAlB;gBACQ,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,CAAA,EAAA,EAAsB,CAAtB,CAAA,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAoB,CAAzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgE,CAAC;gBACzD,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAiC,CAAC;gBAC1B,CAAR,EAAA,CAAY,CAAZ,CAAA,CAAA,EAAA,CAAA,CAAA,EAAqB,CAArB,CAAA,CAAA,EAA0B,EAA1B,CAAA,EAA+B,CAA/B,CAAA,CAAA,EAAA,CAAA,CAAA,EAAwC,CAAxC,CAAA,CAAA,CAA4C;oBAAE,CAA9C,CAAA,CAAA,CAAA,CAAA,EAAqD,CAArD,CAAA,CAAA,CAAA,CAA0D;gBAClD,CAAR,CAAA,CAAA,CAAA,CAAa,CAAC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAoB,EAAE,CAA9C,CAAA,CAAiD,CAAjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwD,EAAE,CAA1D,CAAA,CAAA,EAAA,CAAgE,CAAC;gBACzD,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAmB;YACb,CAAC;QACP,CAAK,CAAC;IACJ;IAEO,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAInB,CAJJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAI2D,EACvD,CALJ,CAAA,CAAA,CAAA,CAAA,CAK2E,EAL3E;QAOI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe,CAAC,CAAhB,CAAA,CAAA,CAAA,CAAqB,CAAC;YAChB,CAAN,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,CAAA,CAAA,CAAkB,EAAlB;gBACQ,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,CAAA,EAAA,EAAsB,CAAtB,CAAA,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAoB,CAA5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmE,CAAC;gBAC5D,CAAR,CAAA,CAAA,CAAA,EAAc,CAAd,CAAA,CAAA,EAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAA5B,CAAA,CAAA,CAAA,CAAiC,CAAC;gBAC1B,CAAR,EAAA,CAAY,CAAZ,CAAA,CAAA,EAAA,CAAA,CAAA,EAAqB,CAArB,CAAA,CAAA,EAA0B,EAA1B,CAAA,EAA+B,CAA/B,CAAA,CAAA,EAAA,CAAA,CAAA,EAAwC,CAAxC,CAAA,CAAA,CAA4C;oBAAE,CAA9C,CAAA,CAAA,CAAA,CAAA,EAAqD,CAArD,CAAA,CAAA,CAAA,CAA0D;gBAClD,CAAR,CAAA,CAAA,CAAA,CAAa,CAAC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAoB,EAAE,CAAjD,CAAA,CAAoD,CAApD,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2D,EAAE,CAA7D,CAAA,CAAA,EAAA,CAAmE,CAAC;gBAC5D,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAmB;YACb,CAAC;QACP,CAAK,CAAC;IACJ;IAEQ,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAApB,CAAA,CAAA,CAA0D,EAA1D;QACI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAlB,CAAA,CAAA,EAAA,CAAA,CAAA,EAA2B,CAA3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAoC,EAAE,CAAtC,CAAA,CAAA,EAA2C,EAAE,CAA7C,CAAA,CAAA,CAAiD,CAAC,CAAlD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0D,CAAC,CAA3D,CAAA,CAAA,CAA+D,CAAC;IAC9D;AAUF;AAnsBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAqsBA,CAAA,EAAA,CAAI,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE;IACX,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA6C,CAA7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0E;AAC1E;AAEA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAmB,CAAnB,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC;IAC/B,CAAF,CAAA,CAAA,CAAM,EAAE,CAAR,CAAA,CAAA,CAAY;IACV,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;IACrB,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAZ,CAAA,CAAA,CAAgB;AAChB,CAAC,CAA0C;AAE3C,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAuB,CAAvB,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAC,CAA9B,CAAA,CAAA,CAAA,CAAA,CAAoC,CAClC,CADF,CAAA,EACM,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACgB,CAAC,CAAC,CADlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC0B,EAAE,CAD5B,EAAA;IAEI,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,CAAA,CAAiB,CAAC,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC;AAC3B,CAAC,CAAC,EACF,EAAE,CADJ,CAAA,CAAA,CAAA,CACS,EAAE,CADX,CAAA,CAAA,CAAA,CACgB,EAAE,CADlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACkC,EAAE,CADpC,EACuC,CADvC,EAC0C,CAD1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CACsD,CACrD;AAED,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAyB,CAAzB,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC;IACrC,CAAF,CAAA,CAAA,CAAM,EAAE,CAAR,CAAU;IACR,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;IACrB,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAZ,CAAA,CAAA,CAAgB;AAChB,CAAC,CAAC;AAEF,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EACE,CADF,CAAA,CAAA,CAAA,CAAA,CACQ,CAAC,CADT,CAAA,CAAA,CAAA,CAAA,CACe,CACX,CAFJ,CAAA,EAEQ,CAFR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEkB,CAA2C,CAAC,CAF9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEsE,EAAE,CAFxE,EAAA;IAGM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAmB,CAAC,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAC;AACjC,CAAC,CAAC,EACF,EAAE,CADN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACsB,EAAE,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CACgD,CAC7C;"}
1
+ {"version":3,"file":"cache.cjs","sources":["../../../../src/cache/core/cache.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport { wrap } from \"optimism\";\nimport {\n distinctUntilChanged,\n map,\n Observable,\n ReplaySubject,\n share,\n shareReplay,\n tap,\n timer,\n} from \"rxjs\";\n\nimport type {\n DataValue,\n GetDataState,\n OperationVariables,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport type { FragmentType, Unmasked } from \"@apollo/client/masking\";\nimport type { Reference, StoreObject } from \"@apollo/client/utilities\";\nimport { cacheSizes, canonicalStringify } from \"@apollo/client/utilities\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type {\n IsAny,\n NoInfer,\n Prettify,\n} from \"@apollo/client/utilities/internal\";\nimport {\n combineLatestBatched,\n equalByQuery,\n getApolloCacheMemoryInternals,\n getFragmentDefinition,\n getFragmentQueryDocument,\n mapObservableFragmentMemoized,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\n\nimport type { Cache } from \"./types/Cache.js\";\nimport type { MissingTree } from \"./types/common.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\nexport declare namespace ApolloCache {\n /**\n * Acceptable values provided to the `from` option.\n */\n export type FromOptionValue<TData> =\n | StoreObject\n | Reference\n | FragmentType<NoInfer<TData>>\n | string;\n\n /**\n * Watched fragment options.\n */\n export interface WatchFragmentOptions<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /**\n * A GraphQL fragment document parsed into an AST with the `gql`\n * template literal.\n *\n * @docGroup 1. Required options\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;\n /**\n * An object containing a `__typename` and primary key fields\n * (such as `id`) identifying the entity object from which the fragment will\n * be retrieved, or a `{ __ref: \"...\" }` reference, or a `string` ID\n * (uncommon).\n *\n * @docGroup 1. Required options\n */\n from:\n | ApolloCache.FromOptionValue<TData>\n | Array<ApolloCache.FromOptionValue<TData> | null>\n | null;\n /**\n * Any variables that the GraphQL fragment may depend on.\n *\n * @docGroup 2. Cache options\n */\n variables?: TVariables;\n /**\n * The name of the fragment defined in the fragment document.\n *\n * Required if the fragment document includes more than one fragment,\n * optional otherwise.\n *\n * @docGroup 2. Cache options\n */\n fragmentName?: string;\n /**\n * If `true`, `watchFragment` returns optimistic results.\n *\n * The default value is `true`.\n *\n * @docGroup 2. Cache options\n */\n optimistic?: boolean;\n }\n\n /**\n * Watched fragment results.\n */\n export type WatchFragmentResult<TData = unknown> =\n true extends IsAny<TData> ?\n | ({\n complete: true;\n missing?: never;\n } & GetDataState<any, \"complete\">)\n | ({\n complete: false;\n missing?: MissingTree;\n } & GetDataState<any, \"partial\">)\n : TData extends null | null[] ?\n Prettify<\n {\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">\n >\n : | Prettify<\n {\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">\n >\n | {\n complete: false;\n missing?: MissingTree;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#data:member} */\n data: TData extends Array<infer TItem> ?\n Array<DataValue.Partial<TItem> | null>\n : DataValue.Partial<TData>;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#dataState:member} */\n dataState: \"partial\";\n };\n\n export interface ObservableFragment<TData = unknown>\n extends Observable<ApolloCache.WatchFragmentResult<TData>> {\n /**\n * Return the current result for the fragment.\n */\n getCurrentResult: () => ApolloCache.WatchFragmentResult<TData>;\n }\n}\n\nexport abstract class ApolloCache {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.ReadOptions<TData, TVariables>): Unmasked<TData> | null;\n public abstract write<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(write: Cache.WriteOptions<TData, TVariables>): Reference | undefined;\n\n /**\n * Returns data read from the cache for a given query along with information\n * about the cache result such as whether the result is complete and details\n * about missing fields.\n *\n * Will return `complete` as `true` if it can fulfill the full cache result or\n * `false` if not. When no data can be fulfilled from the cache, `null` is\n * returned. When `returnPartialData` is `true`, non-null partial results are\n * returned if it contains at least one field that can be fulfilled from the\n * cache.\n */\n public abstract diff<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.DiffOptions<TData, TVariables>): Cache.DiffResult<TData>;\n public abstract watch<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(watch: Cache.WatchOptions<TData, TVariables>): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise<void>;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(serializedState: unknown): this;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): unknown;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Used by data masking to determine if an inline fragment with a type\n // condition matches a given typename. Also used by local resolvers to match a\n // fragment against a typename.\n //\n // If not implemented by a cache subclass, data masking will effectively be\n // disabled since we will not be able to accurately determine if a given type\n // condition for a union or interface matches a particular type.\n public abstract fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string\n ): boolean;\n\n // Function used to lookup a fragment when a fragment definition is not part\n // of the GraphQL document. This is useful for caches, such as InMemoryCache,\n // that register fragments ahead of time so they can be referenced by name.\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return null;\n }\n\n // Local state API\n\n /**\n * Determines whether a `@client` field can be resolved by the cache. Used\n * when `LocalState` does not have a local resolver that can resolve the\n * field.\n *\n * @remarks Cache implementations should return `true` if a mechanism in the\n * cache is expected to provide a value for the field. `LocalState` will set\n * the value of the field to `undefined` in order for the cache to handle it.\n *\n * Cache implementations should return `false` to indicate that it cannot\n * handle resolving the field (either because it doesn't have a mechanism to\n * do so, or because the user hasn't provided enough information to resolve\n * the field). Returning `false` will emit a warning and set the value of the\n * field to `null`.\n *\n * A cache that doesn't implement `resolvesClientField` will be treated the\n * same as returning `false`.\n */\n public resolvesClientField?(typename: string, fieldName: string): boolean;\n\n // Transactional API\n\n /**\n * Executes multiple cache operations as a single batch, ensuring that\n * watchers are only notified once after all operations complete. This is\n * useful for improving performance when making multiple cache updates, as it\n * prevents unnecessary re-renders or query refetches between individual\n * operations.\n *\n * The `batch` method supports both optimistic and non-optimistic updates, and\n * provides fine-grained control over which cache layer receives the updates\n * and when watchers are notified.\n *\n * For usage instructions, see [Interacting with cached data: `cache.batch`](https://www.apollographql.com/docs/react/caching/cache-interaction#using-cachebatch).\n *\n * @example\n *\n * ```js\n * cache.batch({\n * update(cache) {\n * cache.writeQuery({\n * query: GET_TODOS,\n * data: { todos: updatedTodos },\n * });\n * cache.evict({ id: \"Todo:123\" });\n * },\n * });\n * ```\n *\n * @example\n *\n * ```js\n * // Optimistic update with a custom layer ID\n * cache.batch({\n * optimistic: \"add-todo-optimistic\",\n * update(cache) {\n * cache.modify({\n * fields: {\n * todos(existing = []) {\n * return [...existing, newTodoRef];\n * },\n * },\n * });\n * },\n * });\n * ```\n *\n * @returns The return value of the `update` function.\n */\n public batch<U>(options: Cache.BatchOptions<this, U>): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify<Entity extends Record<string, any> = Record<string, any>>(\n options: Cache.ModifyOptions<Entity>\n ): boolean {\n return false;\n }\n\n /**\n * Read data from the cache for the specified query.\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n query,\n variables,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;\n /**\n * {@inheritDoc @apollo/client!ApolloCache#readQuery:member(1)}\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n private fragmentWatches = new Trie<{\n observable?: ApolloCache.ObservableFragment<any> & { dirty: boolean };\n }>(true);\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<ApolloCache.FromOptionValue<TData>>;\n }\n ): ApolloCache.ObservableFragment<Array<Unmasked<TData>>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<null>;\n }\n ): ApolloCache.ObservableFragment<Array<null>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: Array<ApolloCache.FromOptionValue<TData> | null>;\n }\n ): ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: null;\n }\n ): ApolloCache.ObservableFragment<null>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables> & {\n from: ApolloCache.FromOptionValue<TData>;\n }\n ): ApolloCache.ObservableFragment<Unmasked<TData>>;\n\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables>\n ): ApolloCache.ObservableFragment<Unmasked<TData> | null>;\n\n /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables>\n ):\n | ApolloCache.ObservableFragment<Unmasked<TData> | null>\n | ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>> {\n const { fragment, fragmentName, from } = options;\n const query = this.getFragmentDoc(\n fragment,\n fragmentName\n ) as TypedDocumentNode<TData, TVariables>;\n\n const fromArray = Array.isArray(from) ? from : [from];\n\n const ids = fromArray.map((value) => {\n // While our TypeScript types do not allow for `undefined` as a valid\n // `from`, its possible `useFragment` gives us an `undefined` since it\n // calls` cache.identify` and provides that value to `from`. We are\n // adding this fix here however to ensure those using plain JavaScript\n // and using `cache.identify` themselves will avoid seeing the obscure\n // warning.\n const id = value == null ? value : this.toCacheId(value);\n\n if (__DEV__) {\n const actualFragmentName =\n fragmentName || getFragmentDefinition(fragment).name.value;\n\n if (id === undefined) {\n invariant.warn(\n \"Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object.\",\n actualFragmentName\n );\n }\n }\n\n return id as string | null;\n });\n\n if (!Array.isArray(from)) {\n const observable = this.watchSingleFragment(ids[0], query, options);\n // Unfortunately we forgot to allow for `null` on watchFragment in 4.0\n // when `from` is a single record. As such, we need to fallback to {}\n // when diff.result is null to maintain backwards compatibility. We\n // should plan to change this in v5. We do however support `null` if\n // `from` is explicitly `null`.\n //\n // NOTE: Using `from` with an array will maintain `null` properly\n // without the need for a similar fallback since watchFragment with\n // arrays is new functionality in v4.1.\n return from === null ? observable : (\n mapObservableFragmentMemoized(\n observable,\n Symbol.for(\"apollo.transform.individualResult\"),\n (result: ApolloCache.WatchFragmentResult<any>) => ({\n ...result,\n data: result.data ?? ({} as any),\n })\n )\n );\n }\n\n let currentResult: ApolloCache.WatchFragmentResult<TData>;\n function toResult(\n results: Array<ApolloCache.WatchFragmentResult<TData>>\n ): ApolloCache.WatchFragmentResult<any> {\n const result = results.reduce(\n (memo, result, idx) => {\n memo.data.push(result.data);\n memo.complete &&= result.complete;\n memo.dataState = memo.complete ? \"complete\" : \"partial\";\n\n if (result.missing) {\n memo.missing ||= {};\n (memo.missing as any)[idx] = result.missing;\n }\n\n return memo;\n },\n {\n data: [],\n dataState: \"complete\",\n complete: true,\n } as ApolloCache.WatchFragmentResult<TData>\n );\n\n if (!equal(currentResult, result)) {\n currentResult = result;\n }\n\n return currentResult;\n }\n\n if (ids.length === 0) {\n return emptyArrayObservable;\n }\n\n let subscribed = false;\n const observables = ids.map((id) =>\n this.watchSingleFragment(id, query, options)\n ) as Array<ApolloCache.ObservableFragment<TData>>;\n\n const observable = combineLatestBatched(observables).pipe(\n map(toResult),\n tap({\n subscribe: () => (subscribed = true),\n unsubscribe: () => (subscribed = false),\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n return Object.assign(observable, {\n getCurrentResult: () => {\n if (subscribed && currentResult) {\n return currentResult as any;\n }\n\n const results = observables.map((observable) =>\n observable.getCurrentResult()\n );\n\n return toResult(results);\n },\n } satisfies Pick<\n | ApolloCache.ObservableFragment<Unmasked<TData> | null>\n | ApolloCache.ObservableFragment<Array<Unmasked<TData> | null>>,\n \"getCurrentResult\"\n >) as any;\n }\n\n /**\n * Can be overridden by subclasses to delay calling the provided callback\n * until after all broadcasts have been completed - e.g. in a cache scenario\n * where many watchers are notified in parallel.\n */\n protected onAfterBroadcast = (cb: () => void) => cb();\n private watchSingleFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n id: string | null,\n fragmentQuery: TypedDocumentNode<TData, TVariables>,\n options: Omit<\n ApolloCache.WatchFragmentOptions<TData, TVariables>,\n \"from\" | \"fragment\" | \"fragmentName\"\n >\n ): ApolloCache.ObservableFragment<Unmasked<TData> | null> & {\n dirty: boolean;\n } {\n if (id === null) {\n return nullObservable as any;\n }\n\n const { optimistic = true, variables } = options;\n\n const cacheKey = [\n fragmentQuery,\n canonicalStringify({ id, optimistic, variables }),\n ];\n const cacheEntry = this.fragmentWatches.lookupArray(cacheKey);\n\n if (!cacheEntry.observable) {\n let subscribed = false;\n let currentResult: ApolloCache.WatchFragmentResult<TData>;\n\n function getNewestResult(diff: Cache.DiffResult<TData>) {\n const data = diff.result;\n\n if (\n !currentResult ||\n !equalByQuery(\n fragmentQuery,\n { data: currentResult.data },\n { data },\n options.variables\n )\n ) {\n currentResult = {\n data,\n dataState: diff.complete ? \"complete\" : \"partial\",\n complete: diff.complete,\n } as ApolloCache.WatchFragmentResult<TData>;\n\n if (diff.missing) {\n currentResult.missing = diff.missing.missing;\n }\n }\n\n return currentResult;\n }\n\n const observable: Observable<ApolloCache.WatchFragmentResult<TData>> & {\n dirty?: boolean;\n } = new Observable<ApolloCache.WatchFragmentResult<TData>>((observer) => {\n subscribed = true;\n const cleanup = this.watch<TData, TVariables>({\n variables,\n returnPartialData: true,\n id,\n query: fragmentQuery,\n optimistic,\n immediate: true,\n callback: (diff) => {\n observable.dirty = true;\n this.onAfterBroadcast(() => {\n observer.next(getNewestResult(diff));\n observable.dirty = false;\n });\n },\n });\n return () => {\n subscribed = false;\n cleanup();\n this.fragmentWatches.removeArray(cacheKey);\n };\n }).pipe(\n distinctUntilChanged(),\n share({\n connector: () => new ReplaySubject(1),\n // debounce so a synchronous unsubscribe+resubscribe doesn't tear down the watch and create a new one\n resetOnRefCountZero: () => timer(0),\n })\n );\n\n cacheEntry.observable = Object.assign(observable, {\n dirty: false,\n getCurrentResult: () => {\n if (subscribed && currentResult) {\n return currentResult;\n }\n\n return getNewestResult(\n this.diff<TData>({\n id,\n query: fragmentQuery,\n returnPartialData: true,\n optimistic,\n variables,\n })\n );\n },\n });\n }\n\n return cacheEntry.observable as ApolloCache.ObservableFragment<Unmasked<TData> | null> & {\n dirty: boolean;\n };\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n /**\n * Read data from the cache for the specified fragment.\n */\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n fragment,\n variables,\n fragmentName,\n id,\n from,\n optimistic,\n returnPartialData,\n }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;\n\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n const id =\n options.from !== undefined ? this.toCacheId(options.from) : options.id;\n\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: id,\n optimistic,\n });\n }\n\n /**\n * Writes data to the root of the cache using the specified query to validate that\n * the shape of the data you’re writing to the cache is the same as the shape of\n * the data required by the query. Great for prepping the cache with initial data.\n */\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n query,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n /**\n * Similar to `writeQuery` (writes data to the cache) but uses the specified\n * fragment to validate that the shape of the data you’re writing to the cache\n * is the same as the shape of the data required by the fragment.\n */\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n fragment,\n fragmentName,\n variables,\n overwrite,\n id,\n from,\n broadcast,\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;\n\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined {\n const id =\n options.from !== undefined ? this.toCacheId(options.from) : options.id;\n\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateQueryOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateFragmentOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n private toCacheId(from: ApolloCache.FromOptionValue<any>) {\n return typeof from === \"string\" ? from : this.identify(from);\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public declare getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n\nconst nullResult = Object.freeze({\n data: null,\n dataState: \"complete\",\n complete: true,\n}) as ApolloCache.WatchFragmentResult<null>;\n\nconst nullObservable = Object.assign(\n new Observable((observer) => {\n observer.next(nullResult);\n }),\n { dirty: false, getCurrentResult: () => nullResult }\n);\n\nconst emptyArrayResult = Object.freeze({\n data: [],\n dataState: \"complete\",\n complete: true,\n});\n\nconst emptyArrayObservable: ApolloCache.ObservableFragment<any[]> =\n Object.assign(\n new Observable<ApolloCache.WatchFragmentResult<never[]>>((observer) => {\n observer.next(emptyArrayResult);\n }),\n { getCurrentResult: () => emptyArrayResult }\n );\n"],"names":[],"mappings":";;;;;;;AAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAMA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAmBA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CA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A,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAA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AAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACM,CAAN;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACM,CAAN,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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"}
@@ -159,6 +159,53 @@ export declare abstract class ApolloCache {
159
159
  * same as returning `false`.
160
160
  */
161
161
  resolvesClientField?(typename: string, fieldName: string): boolean;
162
+ /**
163
+ * Executes multiple cache operations as a single batch, ensuring that
164
+ * watchers are only notified once after all operations complete. This is
165
+ * useful for improving performance when making multiple cache updates, as it
166
+ * prevents unnecessary re-renders or query refetches between individual
167
+ * operations.
168
+ *
169
+ * The `batch` method supports both optimistic and non-optimistic updates, and
170
+ * provides fine-grained control over which cache layer receives the updates
171
+ * and when watchers are notified.
172
+ *
173
+ * For usage instructions, see [Interacting with cached data: `cache.batch`](https://www.apollographql.com/docs/react/caching/cache-interaction#using-cachebatch).
174
+ *
175
+ * @example
176
+ *
177
+ * ```js
178
+ * cache.batch({
179
+ * update(cache) {
180
+ * cache.writeQuery({
181
+ * query: GET_TODOS,
182
+ * data: { todos: updatedTodos },
183
+ * });
184
+ * cache.evict({ id: "Todo:123" });
185
+ * },
186
+ * });
187
+ * ```
188
+ *
189
+ * @example
190
+ *
191
+ * ```js
192
+ * // Optimistic update with a custom layer ID
193
+ * cache.batch({
194
+ * optimistic: "add-todo-optimistic",
195
+ * update(cache) {
196
+ * cache.modify({
197
+ * fields: {
198
+ * todos(existing = []) {
199
+ * return [...existing, newTodoRef];
200
+ * },
201
+ * },
202
+ * });
203
+ * },
204
+ * });
205
+ * ```
206
+ *
207
+ * @returns The return value of the `update` function.
208
+ */
162
209
  batch<U>(options: Cache.BatchOptions<this, U>): U;
163
210
  abstract performTransaction(transaction: Transaction, optimisticId?: string | null): void;
164
211
  recordOptimisticTransaction(transaction: Transaction, optimisticId: string): void;