@apollo/client 4.3.0-alpha.7 → 4.3.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 (163) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/__cjs/cache/core/cache.cjs +25 -1
  3. package/__cjs/cache/core/cache.cjs.map +1 -1
  4. package/__cjs/cache/core/cache.d.cts +19 -1
  5. package/__cjs/cache/inmemory/entityStore.cjs +3 -3
  6. package/__cjs/cache/inmemory/inMemoryCache.cjs +10 -0
  7. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  8. package/__cjs/cache/inmemory/inMemoryCache.d.cts +5 -1
  9. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  10. package/__cjs/cache/inmemory/policies.cjs +5 -5
  11. package/__cjs/cache/inmemory/readFromStore.cjs +3 -3
  12. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  13. package/__cjs/core/ApolloClient.cjs +14 -14
  14. package/__cjs/core/ObservableQuery.cjs +8 -8
  15. package/__cjs/core/QueryInfo.cjs +1 -1
  16. package/__cjs/core/QueryManager.cjs +23 -13
  17. package/__cjs/core/QueryManager.cjs.map +1 -1
  18. package/__cjs/core/RefetchEventManager.cjs +3 -3
  19. package/__cjs/incremental/GraphQLCodegenIncremental.cjs +3 -0
  20. package/__cjs/incremental/GraphQLCodegenIncremental.cjs.map +1 -0
  21. package/__cjs/incremental/GraphQLCodegenIncremental.d.cts +55 -0
  22. package/__cjs/incremental/handlers/graphql17Alpha9.cjs +1 -1
  23. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  24. package/__cjs/incremental/index.cjs.map +1 -1
  25. package/__cjs/incremental/index.d.cts +1 -0
  26. package/__cjs/incremental/internal/types.cjs +3 -0
  27. package/__cjs/incremental/internal/types.cjs.map +1 -0
  28. package/__cjs/incremental/internal/types.d.cts +17 -0
  29. package/__cjs/invariantErrorCodes.cjs +122 -116
  30. package/__cjs/link/core/ApolloLink.cjs +3 -3
  31. package/__cjs/link/http/checkFetcher.cjs +1 -1
  32. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +2 -2
  33. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  34. package/__cjs/link/persisted-queries/index.cjs +2 -2
  35. package/__cjs/link/ws/index.cjs +1 -1
  36. package/__cjs/local-state/LocalState.cjs +11 -11
  37. package/__cjs/masking/internal/types.d.cts +1 -2
  38. package/__cjs/masking/maskDefinition.cjs +2 -2
  39. package/__cjs/masking/maskFragment.cjs +2 -2
  40. package/__cjs/masking/maskOperation.cjs +1 -1
  41. package/__cjs/masking/utils.cjs +3 -3
  42. package/__cjs/react/context/ApolloContext.cjs +1 -1
  43. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  44. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
  45. package/__cjs/react/hooks/useApolloClient.cjs +1 -1
  46. package/__cjs/react/hooks/useLazyQuery.cjs +2 -2
  47. package/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
  48. package/__cjs/react/hooks/useSubscription.cjs +1 -1
  49. package/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
  50. package/__cjs/react/internal/cache/QueryReference.cjs +1 -1
  51. package/__cjs/react/ssr/prerenderStatic.cjs +2 -2
  52. package/__cjs/testing/core/mocking/mockLink.cjs +4 -4
  53. package/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
  54. package/__cjs/utilities/internal/capitalize.cjs +12 -0
  55. package/__cjs/utilities/internal/capitalize.cjs.map +1 -0
  56. package/__cjs/utilities/internal/capitalize.d.cts +7 -0
  57. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs +69 -0
  58. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs.map +1 -0
  59. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.d.cts +9 -0
  60. package/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
  61. package/__cjs/utilities/internal/getFragmentFromSelection.cjs +1 -1
  62. package/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
  63. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
  64. package/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
  65. package/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
  66. package/__cjs/utilities/internal/index.cjs +6 -2
  67. package/__cjs/utilities/internal/index.cjs.map +1 -1
  68. package/__cjs/utilities/internal/index.d.cts +4 -0
  69. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
  70. package/__cjs/utilities/internal/shouldInclude.cjs +4 -4
  71. package/__cjs/utilities/internal/types/Exact.cjs +3 -0
  72. package/__cjs/utilities/internal/types/Exact.cjs.map +1 -0
  73. package/__cjs/utilities/internal/types/Exact.d.cts +2 -0
  74. package/__cjs/utilities/internal/types/IsNeverish.cjs +3 -0
  75. package/__cjs/utilities/internal/types/IsNeverish.cjs.map +1 -0
  76. package/__cjs/utilities/internal/types/IsNeverish.d.cts +4 -0
  77. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
  78. package/__cjs/version.cjs +1 -1
  79. package/cache/core/cache.d.ts +19 -1
  80. package/cache/core/cache.js +26 -2
  81. package/cache/core/cache.js.map +1 -1
  82. package/cache/inmemory/entityStore.js +3 -3
  83. package/cache/inmemory/inMemoryCache.d.ts +5 -1
  84. package/cache/inmemory/inMemoryCache.js +10 -0
  85. package/cache/inmemory/inMemoryCache.js.map +1 -1
  86. package/cache/inmemory/key-extractor.js +1 -1
  87. package/cache/inmemory/policies.js +5 -5
  88. package/cache/inmemory/readFromStore.js +3 -3
  89. package/cache/inmemory/writeToStore.js +4 -4
  90. package/core/ApolloClient.js +14 -14
  91. package/core/ObservableQuery.js +8 -8
  92. package/core/QueryInfo.js +1 -1
  93. package/core/QueryManager.js +24 -14
  94. package/core/QueryManager.js.map +1 -1
  95. package/core/RefetchEventManager.js +3 -3
  96. package/incremental/GraphQLCodegenIncremental.d.ts +55 -0
  97. package/incremental/GraphQLCodegenIncremental.js +2 -0
  98. package/incremental/GraphQLCodegenIncremental.js.map +1 -0
  99. package/incremental/handlers/graphql17Alpha9.js +1 -1
  100. package/incremental/handlers/notImplemented.js +1 -1
  101. package/incremental/index.d.ts +1 -0
  102. package/incremental/index.js.map +1 -1
  103. package/incremental/internal/types.d.ts +17 -0
  104. package/incremental/internal/types.js +2 -0
  105. package/incremental/internal/types.js.map +1 -0
  106. package/invariantErrorCodes.js +122 -116
  107. package/link/core/ApolloLink.js +3 -3
  108. package/link/http/checkFetcher.js +1 -1
  109. package/link/http/parseAndCheckHttpResponse.js +2 -2
  110. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  111. package/link/persisted-queries/index.js +2 -2
  112. package/link/ws/index.js +1 -1
  113. package/local-state/LocalState.js +11 -11
  114. package/masking/internal/types.d.ts +1 -2
  115. package/masking/internal/types.js.map +1 -1
  116. package/masking/maskDefinition.js +2 -2
  117. package/masking/maskFragment.js +2 -2
  118. package/masking/maskOperation.js +1 -1
  119. package/masking/utils.js +3 -3
  120. package/package.json +1 -1
  121. package/react/context/ApolloContext.js +1 -1
  122. package/react/context/ApolloProvider.js +1 -1
  123. package/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
  124. package/react/hooks/useApolloClient.js +1 -1
  125. package/react/hooks/useLazyQuery.js +2 -2
  126. package/react/hooks/useLoadableQuery.js +2 -2
  127. package/react/hooks/useSubscription.js +1 -1
  128. package/react/hooks/useSyncExternalStore.js +1 -1
  129. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js +2 -2
  130. package/react/hooks-compiled/useApolloClient.js +1 -1
  131. package/react/hooks-compiled/useLazyQuery.js +2 -2
  132. package/react/hooks-compiled/useLoadableQuery.js +2 -2
  133. package/react/hooks-compiled/useSubscription.js +1 -1
  134. package/react/hooks-compiled/useSyncExternalStore.js +1 -1
  135. package/react/internal/cache/QueryReference.js +1 -1
  136. package/react/ssr/prerenderStatic.js +2 -2
  137. package/testing/core/mocking/mockLink.js +4 -4
  138. package/utilities/graphql/DocumentTransform.js +1 -1
  139. package/utilities/internal/capitalize.d.ts +7 -0
  140. package/utilities/internal/capitalize.js +9 -0
  141. package/utilities/internal/capitalize.js.map +1 -0
  142. package/utilities/internal/coerceScalarFieldsToParsed.d.ts +9 -0
  143. package/utilities/internal/coerceScalarFieldsToParsed.js +66 -0
  144. package/utilities/internal/coerceScalarFieldsToParsed.js.map +1 -0
  145. package/utilities/internal/getFragmentDefinition.js +3 -3
  146. package/utilities/internal/getFragmentFromSelection.js +1 -1
  147. package/utilities/internal/getFragmentFromSelection.js.map +1 -1
  148. package/utilities/internal/getFragmentQueryDocument.js +2 -2
  149. package/utilities/internal/getMainDefinition.js +1 -1
  150. package/utilities/internal/getQueryDefinition.js +1 -1
  151. package/utilities/internal/index.d.ts +4 -0
  152. package/utilities/internal/index.js +2 -0
  153. package/utilities/internal/index.js.map +1 -1
  154. package/utilities/internal/removeDirectivesFromDocument.js +1 -1
  155. package/utilities/internal/shouldInclude.js +4 -4
  156. package/utilities/internal/types/Exact.d.ts +2 -0
  157. package/utilities/internal/types/Exact.js +2 -0
  158. package/utilities/internal/types/Exact.js.map +1 -0
  159. package/utilities/internal/types/IsNeverish.d.ts +4 -0
  160. package/utilities/internal/types/IsNeverish.js +2 -0
  161. package/utilities/internal/types/IsNeverish.js.map +1 -0
  162. package/utilities/internal/valueToObjectRepresentation.js +1 -1
  163. package/version.js +1 -1
@@ -27,7 +27,7 @@ export class RefetchEventManager {
27
27
  }
28
28
  if (this.client) {
29
29
  if (__DEV__) {
30
- __DEV__ && invariant.warn(103);
30
+ __DEV__ && invariant.warn(104);
31
31
  }
32
32
  this.disconnect();
33
33
  }
@@ -96,13 +96,13 @@ export class RefetchEventManager {
96
96
  const [payload] = args;
97
97
  if (!this.client) {
98
98
  if (__DEV__) {
99
- __DEV__ && invariant.warn(104, source);
99
+ __DEV__ && invariant.warn(105, source);
100
100
  }
101
101
  return;
102
102
  }
103
103
  if (!this.hasSource(source)) {
104
104
  if (__DEV__) {
105
- __DEV__ && invariant.warn(105, source);
105
+ __DEV__ && invariant.warn(106, source);
106
106
  }
107
107
  return;
108
108
  }
@@ -0,0 +1,55 @@
1
+ import type { DeepPartial, HKT } from "@apollo/client/utilities";
2
+ import type { IsAny } from "@apollo/client/utilities/internal";
3
+ import type { ContainsNeverishFields, RemoveNeverishFields } from "./internal/types.js";
4
+ export declare namespace GraphQLCodegenIncremental {
5
+ interface TypeOverrides {
6
+ Complete: HKTImplementation.Complete;
7
+ Streaming: HKTImplementation.Streaming;
8
+ Partial: HKTImplementation.Partial;
9
+ }
10
+ namespace HKTImplementation {
11
+ interface Complete extends HKT {
12
+ arg1: unknown;
13
+ return: GraphQLCodegenIncremental.Complete<this["arg1"]>;
14
+ }
15
+ interface Streaming extends HKT {
16
+ arg1: unknown;
17
+ return: GraphQLCodegenIncremental.Streaming<this["arg1"]>;
18
+ }
19
+ interface Partial extends HKT {
20
+ arg1: unknown;
21
+ return: GraphQLCodegenIncremental.Partial<this["arg1"]>;
22
+ }
23
+ }
24
+ /**
25
+ * Returns the complete representation of `TData` when `dataState` is
26
+ * `"complete"`.
27
+ *
28
+ * @remarks
29
+ * GraphQL Codegen types deferred fields as a union of the present value and
30
+ * `{ field?: never }`. `complete` `dataState` means every field in the
31
+ * selection set is reachable, so this type drops the `never` branches.
32
+ *
33
+ * Operations without `@defer` are returned unchanged.
34
+ */
35
+ type Complete<TData> = TData extends any ? true extends IsAny<TData> ? TData : TData extends object ? true extends ContainsNeverishFields<TData> ? RemoveNeverishFields<TData> : TData : TData : never;
36
+ /**
37
+ * Returns the streaming representation of `TData` when `dataState` is
38
+ * `"streaming"`.
39
+ *
40
+ * @remarks
41
+ * GraphQLCodegen assembles the type in the streaming format so this is an
42
+ * identity type.
43
+ */
44
+ type Streaming<TData> = TData;
45
+ /**
46
+ * Returns the partial representation of `TData` when `dataState` is
47
+ * `"partial"`.
48
+ *
49
+ * @remarks
50
+ * Applies `DeepPartial` to the assembled `Complete` type so
51
+ * `returnPartialData` does not preserve deferred `{ field?: never }` types.
52
+ */
53
+ type Partial<TData> = DeepPartial<Complete<TData>>;
54
+ }
55
+ //# sourceMappingURL=GraphQLCodegenIncremental.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphQLCodegenIncremental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQLCodegenIncremental.js","sourceRoot":"","sources":["../../src/incremental/GraphQLCodegenIncremental.ts"],"names":[],"mappings":"","sourcesContent":["import type { DeepPartial, HKT } from \"@apollo/client/utilities\";\nimport type { IsAny } from \"@apollo/client/utilities/internal\";\n\nimport type {\n ContainsNeverishFields,\n RemoveNeverishFields,\n} from \"./internal/types.js\";\n\nexport declare namespace GraphQLCodegenIncremental {\n export interface TypeOverrides {\n Complete: HKTImplementation.Complete;\n Streaming: HKTImplementation.Streaming;\n Partial: HKTImplementation.Partial;\n }\n\n namespace HKTImplementation {\n export interface Complete extends HKT {\n arg1: unknown; // TData\n return: GraphQLCodegenIncremental.Complete<this[\"arg1\"]>;\n }\n\n export interface Streaming extends HKT {\n arg1: unknown; // TData\n return: GraphQLCodegenIncremental.Streaming<this[\"arg1\"]>;\n }\n\n export interface Partial extends HKT {\n arg1: unknown; // TData\n return: GraphQLCodegenIncremental.Partial<this[\"arg1\"]>;\n }\n }\n\n /**\n * Returns the complete representation of `TData` when `dataState` is\n * `\"complete\"`.\n *\n * @remarks\n * GraphQL Codegen types deferred fields as a union of the present value and\n * `{ field?: never }`. `complete` `dataState` means every field in the\n * selection set is reachable, so this type drops the `never` branches.\n *\n * Operations without `@defer` are returned unchanged.\n */\n export type Complete<TData> =\n TData extends any ?\n true extends IsAny<TData> ? TData\n : TData extends object ?\n true extends ContainsNeverishFields<TData> ?\n RemoveNeverishFields<TData>\n : TData\n : TData\n : never;\n /**\n * Returns the streaming representation of `TData` when `dataState` is\n * `\"streaming\"`.\n *\n * @remarks\n * GraphQLCodegen assembles the type in the streaming format so this is an\n * identity type.\n */\n export type Streaming<TData> = TData;\n\n /**\n * Returns the partial representation of `TData` when `dataState` is\n * `\"partial\"`.\n *\n * @remarks\n * Applies `DeepPartial` to the assembled `Complete` type so\n * `returnPartialData` does not preserve deferred `{ field?: never }` types.\n */\n export type Partial<TData> = DeepPartial<Complete<TData>>;\n}\n"]}
@@ -67,7 +67,7 @@ class IncrementalRequest {
67
67
  if (hasIncrementalChunks(chunk)) {
68
68
  for (const incremental of chunk.incremental) {
69
69
  const pending = this.pendingMap.get(incremental.id);
70
- invariant(pending, 66);
70
+ invariant(pending, 67);
71
71
  const path = pending.path.concat(incremental.subPath ?? []);
72
72
  let data;
73
73
  if ("items" in incremental) {
@@ -5,7 +5,7 @@ export class NotImplementedHandler {
5
5
  return false;
6
6
  }
7
7
  prepareRequest(request) {
8
- invariant(!hasDirectives(["defer", "stream"], request.query), 67);
8
+ invariant(!hasDirectives(["defer", "stream"], request.query), 68);
9
9
  return request;
10
10
  }
11
11
  extractErrors() { }
@@ -2,4 +2,5 @@ export type { Incremental } from "./types.js";
2
2
  export { NotImplementedHandler } from "./handlers/notImplemented.js";
3
3
  export { Defer20220824Handler, Defer20220824Handler as GraphQL17Alpha2Handler, } from "./handlers/defer20220824.js";
4
4
  export { GraphQL17Alpha9Handler } from "./handlers/graphql17Alpha9.js";
5
+ export type { GraphQLCodegenIncremental } from "./GraphQLCodegenIncremental.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/incremental/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,sBAAsB,GAC/C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["export type { Incremental } from \"./types.js\";\nexport { NotImplementedHandler } from \"./handlers/notImplemented.js\";\nexport {\n Defer20220824Handler,\n Defer20220824Handler as GraphQL17Alpha2Handler,\n} from \"./handlers/defer20220824.js\";\nexport { GraphQL17Alpha9Handler } from \"./handlers/graphql17Alpha9.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/incremental/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,sBAAsB,GAC/C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["export type { Incremental } from \"./types.js\";\nexport { NotImplementedHandler } from \"./handlers/notImplemented.js\";\nexport {\n Defer20220824Handler,\n Defer20220824Handler as GraphQL17Alpha2Handler,\n} from \"./handlers/defer20220824.js\";\nexport { GraphQL17Alpha9Handler } from \"./handlers/graphql17Alpha9.js\";\nexport type { GraphQLCodegenIncremental } from \"./GraphQLCodegenIncremental.js\";\n"]}
@@ -0,0 +1,17 @@
1
+ import type { ApolloCache } from "@apollo/client/cache";
2
+ import type { Exact, IsAny, IsNeverish, Prettify, Primitive } from "@apollo/client/utilities/internal";
3
+ type CustomScalarTypes = {
4
+ [K in keyof ApolloCache.Scalars]: ApolloCache.Scalars[K]["serialized"] | ApolloCache.Scalars[K]["parsed"];
5
+ }[keyof ApolloCache.Scalars];
6
+ type ScalarType = CustomScalarTypes extends any ? true extends IsAny<CustomScalarTypes> ? Primitive : unknown extends CustomScalarTypes ? Primitive : Primitive | CustomScalarTypes : never;
7
+ type HasNeverishField<T> = true extends {
8
+ [K in keyof T]: IsNeverish<T[K]>;
9
+ }[keyof T] ? true : false;
10
+ export type ContainsNeverishFields<TData, Seen = never> = true extends (IsAny<TData>) ? false : true extends IsScalarType<TData> ? false : TData extends ReadonlyArray<infer TItem> ? true extends IsScalarType<TItem> ? false : ContainsNeverishFields<TItem, Seen> : keyof TData extends never ? false : TData extends object ? string extends keyof TData ? false : [Seen] extends [never] ? ContainsNeverishFieldsInObject<TData, Exact<TData>> : Exact<TData> extends Seen ? false : ContainsNeverishFieldsInObject<TData, Seen | Exact<TData>> : false;
11
+ type ContainsNeverishFieldsInObject<TData, Seen> = HasNeverishField<TData> extends true ? true : ContainsNeverishFields<TData[keyof TData], Seen>;
12
+ type IsScalarType<TData> = Exact<TData> extends Exact<Extract<ScalarType, TData>> ? true : false;
13
+ export type RemoveNeverishFields<TData> = true extends IsAny<TData> ? TData : true extends IsScalarType<TData> ? TData : TData extends ReadonlyArray<infer TItem> ? TItem[] extends (TData) ? TData extends Array<infer TItem> ? Array<RemoveNeverishFields<TItem>> : ReadonlyArray<RemoveNeverishFields<TItem>> : TData : string extends keyof TData ? TData : keyof TData extends never ? TData : TData extends object ? HasNeverishField<TData> extends true ? never : Prettify<{
14
+ [K in keyof TData]: RemoveNeverishFields<TData[K]>;
15
+ }> : TData;
16
+ export {};
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/incremental/internal/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ApolloCache } from \"@apollo/client/cache\";\nimport type {\n Exact,\n IsAny,\n IsNeverish,\n Prettify,\n Primitive,\n} from \"@apollo/client/utilities/internal\";\n\ntype CustomScalarTypes = {\n [K in keyof ApolloCache.Scalars]:\n | ApolloCache.Scalars[K][\"serialized\"]\n | ApolloCache.Scalars[K][\"parsed\"];\n}[keyof ApolloCache.Scalars];\n\ntype ScalarType =\n CustomScalarTypes extends any ?\n true extends IsAny<CustomScalarTypes> ? Primitive\n : unknown extends CustomScalarTypes ? Primitive\n : Primitive | CustomScalarTypes\n : never;\n\ntype HasNeverishField<T> =\n true extends { [K in keyof T]: IsNeverish<T[K]> }[keyof T] ? true : false;\n\nexport type ContainsNeverishFields<TData, Seen = never> = true extends (\n IsAny<TData>\n) ?\n false\n: true extends IsScalarType<TData> ? false\n: TData extends ReadonlyArray<infer TItem> ?\n true extends IsScalarType<TItem> ?\n false\n : ContainsNeverishFields<TItem, Seen>\n: keyof TData extends never ? false\n: TData extends object ?\n string extends keyof TData ? false\n : [Seen] extends [never] ? ContainsNeverishFieldsInObject<TData, Exact<TData>>\n : Exact<TData> extends Seen ? false\n : ContainsNeverishFieldsInObject<TData, Seen | Exact<TData>>\n: false;\n\ntype ContainsNeverishFieldsInObject<TData, Seen> =\n HasNeverishField<TData> extends true ? true\n : ContainsNeverishFields<TData[keyof TData], Seen>;\n\ntype IsScalarType<TData> =\n Exact<TData> extends Exact<Extract<ScalarType, TData>> ? true : false;\n\nexport type RemoveNeverishFields<TData> =\n true extends IsAny<TData> ? TData\n : true extends IsScalarType<TData> ? TData\n : TData extends ReadonlyArray<infer TItem> ?\n TItem[] extends (\n TData // Test for non-tuples\n ) ?\n TData extends Array<infer TItem> ?\n Array<RemoveNeverishFields<TItem>>\n : ReadonlyArray<RemoveNeverishFields<TItem>>\n : TData\n : // Leave TData alone if it is Record<string, any> and not a specific shape\n string extends keyof TData ? TData\n : // short-circuit on empty object\n keyof TData extends never ? TData\n : TData extends object ?\n HasNeverishField<TData> extends true ?\n never\n : Prettify<{ [K in keyof TData]: RemoveNeverishFields<TData[K]> }>\n : TData;\n"]}