Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
321 commits
Select commit Hold shift + click to select a range
2f71d1d
Remove returnPartialData from execSelectionSet. Break many tests but …
jerelmiller Jul 15, 2026
bb25103
Don't pass handleIncrementalSymbol in executeSelectionSet. Break some…
jerelmiller Jul 15, 2026
2663016
Add new tests to check for backwards compatibility
jerelmiller Jul 15, 2026
a869cae
Change stance on expected reported missing for backwards compat
jerelmiller Jul 15, 2026
49e2635
Don't set missing to undefined for empty defer boundary
jerelmiller Jul 15, 2026
6803142
Don't report missing if dataState is streaming
jerelmiller Jul 15, 2026
44e368c
Handle stripping partial defer boundaries
jerelmiller Jul 15, 2026
0746e8b
Maintain overlapping fields
jerelmiller Jul 15, 2026
585fdfc
Handle deep overlapping sibling fields
jerelmiller Jul 15, 2026
55b1916
Handle arrays in keepFieldsFromFieldMap
jerelmiller Jul 15, 2026
baf18d3
Handle arrays
jerelmiller Jul 15, 2026
8bdcc95
Simplify newData value
jerelmiller Jul 15, 2026
76f86d9
Add a state machine to better handle state transitions
jerelmiller Jul 16, 2026
077ec45
Update comment
jerelmiller Jul 16, 2026
a4b0733
Ensure array impl uses transitionTo
jerelmiller Jul 16, 2026
14c6766
Add a deferPartial dataState
jerelmiller Jul 16, 2026
1c7e166
Set to partial if streaming state and can't handle incremental
jerelmiller Jul 16, 2026
da1eddf
Fix fields stripped out in deferPartial fragments
jerelmiller Jul 16, 2026
3c5e1ec
Add more tests for nested defer
jerelmiller Jul 16, 2026
5baf21d
Ensure fields are copied when fragment is complete
jerelmiller Jul 16, 2026
ad817d4
Add comment
jerelmiller Jul 16, 2026
30dd7ae
Add more tests for more edge cases
jerelmiller Jul 16, 2026
db50f6a
Switch to keep fields from a field map instead
jerelmiller Jul 16, 2026
2befed3
Add more failing tests for more edge cases in lists
jerelmiller Jul 16, 2026
2a83af8
Ensure arrays return deferBoundaryResults
jerelmiller Jul 16, 2026
4b28b49
Make deferBoundaryResults required
jerelmiller Jul 16, 2026
f5f1701
Combine tests that only differ by selection order
jerelmiller Jul 16, 2026
bf98b51
Fix differing states on array items in the same selection set
jerelmiller Jul 16, 2026
ba02985
Create a class for DeferBoundaries instead
jerelmiller Jul 16, 2026
27fe8b4
Rename var
jerelmiller Jul 16, 2026
87aee51
Short-circuit when there are no defer boundaries
jerelmiller Jul 16, 2026
2b2e615
Convert to arrow function to avoid undefined issue
jerelmiller Jul 16, 2026
383288a
Move comment
jerelmiller Jul 16, 2026
e1d2cec
Tweak some comments
jerelmiller Jul 16, 2026
089b085
Remove need for function by flattening selection set with Set
jerelmiller Jul 16, 2026
8b474e5
Remove else
jerelmiller Jul 16, 2026
59b150e
More comment tweaking
jerelmiller Jul 16, 2026
3a3fe19
Remove unneeded || null
jerelmiller Jul 16, 2026
30d3629
Oops, didn't undo all the way
jerelmiller Jul 16, 2026
5fdba86
Add helper to avoid fragment conditional
jerelmiller Jul 16, 2026
ca80547
Remove check for fragment presence
jerelmiller Jul 16, 2026
9c12c14
Add test to check for referential equality
jerelmiller Jul 16, 2026
9e978af
Ensure repeated cache.diff calls retain object identity
jerelmiller Jul 16, 2026
9d0ad6b
Check other shapes in referential equality test
jerelmiller Jul 16, 2026
056142c
Fix bad dataState for missing field. Use transitionTo
jerelmiller Jul 16, 2026
00fb797
Return new result when key length is different
jerelmiller Jul 16, 2026
8aed6ca
Add failing tests for non-matching fragments
jerelmiller Jul 16, 2026
8bee892
Ensure non-matching fragment selections are skipped
jerelmiller Jul 16, 2026
7e0b23d
Add failing tests for null values
jerelmiller Jul 16, 2026
e6b999d
Set dataState to complete if not assigned
jerelmiller Jul 16, 2026
bdc33bd
Add test with aliases
jerelmiller Jul 16, 2026
51b1b6c
Add failing tests to ensure __typename-only object is classified corr…
jerelmiller Jul 16, 2026
5caa4ca
Add backwards compat tests with __typename only object
jerelmiller Jul 16, 2026
da1c9ff
Set dataState to partial if subfields are empty
jerelmiller Jul 17, 2026
dadbfe0
Add tests for dangling references
jerelmiller Jul 17, 2026
8b8582e
Add a couple more typename only tests
jerelmiller Jul 17, 2026
cfe6842
Add another referential integrity test
jerelmiller Jul 17, 2026
3848c44
More __typename only tests
jerelmiller Jul 17, 2026
1b7c5ff
Restore getFragmentFromSelection which uses a lookup function
jerelmiller Jul 17, 2026
7f32449
Add test for fragment registry
jerelmiller Jul 17, 2026
0d311fe
fix issue when using fragment registry with partial defer data
jerelmiller Jul 17, 2026
448c5a8
Remove naive helper to get fragment
jerelmiller Jul 17, 2026
852a047
Add tests for cache poisoning issue
jerelmiller Jul 17, 2026
adab4fe
let -> const
jerelmiller Jul 17, 2026
1db2b8b
Go back to workSet for now
jerelmiller Jul 17, 2026
9722bc4
Call execSelectionSetImpl directly for all fragments
jerelmiller Jul 17, 2026
2015071
Add test to ensure cached result returns as expected.
jerelmiller Jul 17, 2026
1d61950
Add test to ensure 2d array defer works as expected
jerelmiller Jul 17, 2026
47dd7fc
Add failing test that checks include/skip with overlapping fields
jerelmiller Jul 17, 2026
47b9d34
Update referential equality test to check 2d arrays
jerelmiller Jul 17, 2026
0471eb4
Reformat with test.each and include variables check
jerelmiller Jul 17, 2026
4c6b9c7
Evaluate shouldInclude when stripping
jerelmiller Jul 17, 2026
fb941de
Update to find an example of array that should be equal
jerelmiller Jul 17, 2026
b45ad10
Add failing test for repeated objects in list
jerelmiller Jul 17, 2026
67935c1
Adjust import
jerelmiller Jul 17, 2026
c659939
Fix referential equality. Move maybeStrip as private method
jerelmiller Jul 17, 2026
f51d370
Rename the method
jerelmiller Jul 17, 2026
b3a0b78
Fix type error in useFragment tests
jerelmiller Jul 17, 2026
beace6a
Add default cache size to getCurrentCacheSizes
jerelmiller Jul 17, 2026
74b3946
Return execResult from handleMissing and rewrap
jerelmiller Jul 17, 2026
d623dfa
Combine logic from array branching
jerelmiller Jul 17, 2026
c83eee4
Remove unneeded dataSet set for shouldInclude
jerelmiller Jul 17, 2026
cfff501
Remove misleading comment
jerelmiller Jul 17, 2026
4d38732
Add regression tests for empty arrays after missing fields
jerelmiller Jul 17, 2026
7d2e25f
Remove unnecessary comment
jerelmiller Jul 17, 2026
1713c26
Rename params
jerelmiller Jul 17, 2026
8bd4fc1
Rename method and object
jerelmiller Jul 17, 2026
dec6ed3
Rename var
jerelmiller Jul 17, 2026
17ba1aa
Short circuit on partial
jerelmiller Jul 17, 2026
9955092
Add comment
jerelmiller Jul 17, 2026
3a28f47
Flatten where possible
jerelmiller Jul 17, 2026
44f3433
Flatten some more
jerelmiller Jul 17, 2026
1fb32d4
Add add method to DeferBoundaries
jerelmiller Jul 17, 2026
eeced92
Rename and add has method
jerelmiller Jul 17, 2026
1bc025f
Make children private
jerelmiller Jul 17, 2026
49f6b3b
Remove unneeded type cast
jerelmiller Jul 17, 2026
98706bf
rename remove/strip to prune. Move caching to the method itself
jerelmiller Jul 17, 2026
852ce93
Combine to single cache
jerelmiller Jul 17, 2026
7e7f20e
Rely on inner cache instead of caching execResult
jerelmiller Jul 17, 2026
caa47d9
Add comment
jerelmiller Jul 17, 2026
9308736
Update comment
jerelmiller Jul 17, 2026
191d47d
Remove comment
jerelmiller Jul 17, 2026
72f986e
Add tests for root defer with empty data
jerelmiller Jul 17, 2026
72d9b9f
Update existing test with multiple root defer
jerelmiller Jul 17, 2026
8cacdd8
Remove missing in tests with empty root defer
jerelmiller Jul 17, 2026
78e1e5b
Change streaming + empty result to empty
jerelmiller Jul 17, 2026
25611a7
Simplify conditional
jerelmiller Jul 17, 2026
cdfc2cb
Move missing back to where it was
jerelmiller Jul 17, 2026
cc3cf38
Flip order of condition
jerelmiller Jul 17, 2026
e88dff0
Add another edge case
jerelmiller Jul 17, 2026
e228ccb
Remove comment
jerelmiller Jul 17, 2026
180184e
Return this from merge
jerelmiller Jul 17, 2026
f1cf998
Combine into ternary
jerelmiller Jul 17, 2026
b7e9315
Rename to mergeDataState
jerelmiller Jul 17, 2026
7887be3
Rename to prunedEntries
jerelmiller Jul 17, 2026
67e9a57
Reuse the deep merger
jerelmiller Jul 17, 2026
805573a
Condense comment for clarity
jerelmiller Jul 17, 2026
81e96da
Adjust comment
jerelmiller Jul 17, 2026
ceebca7
Update expected assertions for stream boundaries with partial items
jerelmiller Jul 17, 2026
0e182a8
Rename DeferBoundaries to PartialBoundaries and allow all selections
jerelmiller Jul 17, 2026
9a11651
Rename deferPartial to streamPartial
jerelmiller Jul 17, 2026
35bf6c6
Set partial array items to streamPartial
jerelmiller Jul 17, 2026
793b226
Add isStreamField helper
jerelmiller Jul 17, 2026
11a0abf
Replace inline helper with isStreamField in writeToStore
jerelmiller Jul 17, 2026
9dfd405
Remove partial items in stream boundaries
jerelmiller Jul 18, 2026
f014066
Return this on add
jerelmiller Jul 18, 2026
3edfc49
Don't mutate existing partialBoundaries
jerelmiller Jul 18, 2026
d7c2a94
Remove outdated comments
jerelmiller Jul 18, 2026
36fe2e8
Add additional tests for defer and stream as siblings
jerelmiller Jul 18, 2026
dfd4209
Split deferPartial and streamPartial to better calculate final dataState
jerelmiller Jul 18, 2026
ec6ee56
Pass full read context
jerelmiller Jul 18, 2026
e851b8b
Add a clone convenience method
jerelmiller Jul 18, 2026
87bdf30
Fix outdated comment
jerelmiller Jul 18, 2026
ef0da1e
Fix incorrect assertion in test
jerelmiller Jul 18, 2026
093790f
Fix bad chunk data in test
jerelmiller Jul 18, 2026
77a660d
Use incremental diff when supported for lastDiff
jerelmiller Jul 18, 2026
fc3d868
Don't count auto-inserted __typename toward data state
jerelmiller Jul 18, 2026
14e96c0
Add another test for sibling defer
jerelmiller Jul 18, 2026
19cc196
Formatting
jerelmiller Jul 18, 2026
2543969
Simplify change detection in entry keys
jerelmiller Jul 18, 2026
83a4f92
Cache the whole result, not just the pruned result
jerelmiller Jul 18, 2026
2f83800
If keys weren't dropped, maintain referential equality on the object
jerelmiller Jul 18, 2026
d8803d7
Only use the pruned value if result is equal or no partial data
jerelmiller Jul 18, 2026
baafc18
Add failing test for partial defer which should be streaming
jerelmiller Jul 18, 2026
a502ed2
Use a single conditional when pruning
jerelmiller Jul 18, 2026
7de7e1b
Preserve object from defer boundary if nothing was actually dropped
jerelmiller Jul 18, 2026
f78963d
Fix incorrect assertion in defer tests
jerelmiller Jul 18, 2026
b22f4b5
Reread the incremental diff when cache supports incremental results
jerelmiller Jul 18, 2026
0b5d0fe
Remove .failing for non-failing tests
jerelmiller Jul 18, 2026
35ed804
Remove old solution for detecting partial defer boundaries
jerelmiller Jul 18, 2026
7082069
Fix conditional for updating the result
jerelmiller Jul 19, 2026
7e2c36b
Update exports snapshot
jerelmiller Jul 19, 2026
8eb00ee
Always request partial data for lastDiff
jerelmiller Jul 19, 2026
bce1ce0
Keep complete stream items until partial item instead
jerelmiller Jul 20, 2026
732780d
Add test for partial stream array with read function
jerelmiller Jul 20, 2026
5d7e82d
Add test for returnPartialData: true with stream array
jerelmiller Jul 20, 2026
3c36e1e
Add temp comment so i don't forget
jerelmiller Jul 20, 2026
4e65f46
Remove outdated export
jerelmiller Jul 20, 2026
9751b90
Record length with stream field info
jerelmiller Jul 20, 2026
e688e97
Allow streamInfo as option to diffQueryAgainstStore
jerelmiller Jul 20, 2026
2d40343
Fix incorrect state for streaming -> streamPartial
jerelmiller Jul 20, 2026
f15259c
Return empty array for partial stream boundary
jerelmiller Jul 20, 2026
c5dbc91
Update assertions for updated behavior
jerelmiller Jul 20, 2026
b747589
Fix types in InMemoryCache for cache.diff
jerelmiller Jul 20, 2026
1ba5725
Add failing tests for stream info length
jerelmiller Jul 20, 2026
acdd0be
Truncate array when streamInfo is present
jerelmiller Jul 20, 2026
f8dd985
Pass through streamInfo
jerelmiller Jul 21, 2026
31ba561
Move stream position to different object
jerelmiller Jul 21, 2026
7ebed68
Add comment
jerelmiller Jul 21, 2026
af44d21
Remove stray console logs
jerelmiller Jul 21, 2026
6f611cf
Update test description
jerelmiller Jul 21, 2026
4b34edd
Update where data is put in the trie in the incremental test
jerelmiller Jul 21, 2026
eee10b4
Add test to ensure truncation is set
jerelmiller Jul 21, 2026
1bd3caa
Fix outdated test description
jerelmiller Jul 21, 2026
fc8857e
Ensure complete array is truncated properly
jerelmiller Jul 21, 2026
1199e2b
Remove changed
jerelmiller Jul 21, 2026
3c74e85
Formatting
jerelmiller Jul 21, 2026
8ea307f
Make streamInfo part of the cache key
jerelmiller Jul 21, 2026
0cc97ab
Add failing tests for improper cache busting
jerelmiller Jul 21, 2026
838feed
Add a StreamArrayState class
jerelmiller Jul 21, 2026
2cee725
Use StreamArrayState in streamInfo trie
jerelmiller Jul 21, 2026
d9095f9
Extract prune/pruneArray out to private instance methods
jerelmiller Jul 21, 2026
9f1371f
Use object for arguments to prune* methods
jerelmiller Jul 21, 2026
8ff76e1
Switch to optimism wrap for prune* methods
jerelmiller Jul 21, 2026
f069f56
Add a stream array to referential equality test
jerelmiller Jul 21, 2026
3449f24
Only use boundaries in cache keys
jerelmiller Jul 21, 2026
5684557
Add a helper to create stream info trie
jerelmiller Jul 21, 2026
680272f
Update ref equality test to use streamInfoTrie
jerelmiller Jul 21, 2026
a3e5294
Use makeStreamInfoTrie in tests and fix how it changes values
jerelmiller Jul 21, 2026
0086ecb
Add tests to ensure vars persist when calling more than once
jerelmiller Jul 21, 2026
0331d91
Ensure advancing streamPosition or truncate recomputes pruned branches
jerelmiller Jul 21, 2026
8d6e063
Only call isStreamed once for the array
jerelmiller Jul 21, 2026
bc25e42
Maintain dataState when not stream/deferPartial
jerelmiller Jul 21, 2026
0c7eb7f
Use value on context
jerelmiller Jul 21, 2026
1f5f812
Add clarifying comment
jerelmiller Jul 21, 2026
dd90d70
Create object when needed
jerelmiller Jul 21, 2026
ad30c99
Fix incorrect assertion
jerelmiller Jul 21, 2026
402fbad
Fix dirty mid-computation when truncate was changed causing stale refs
jerelmiller Jul 21, 2026
4eff8c5
Rename functions
jerelmiller Jul 21, 2026
26a2845
Remove unused arg to makeCacheKey
jerelmiller Jul 21, 2026
4ba85f5
Add configurable max size for prune method
jerelmiller Jul 22, 2026
076d18c
Mark isStreamField and isDeferredFragment as internal
jerelmiller Jul 22, 2026
20c7378
Add tests for fetch policy with read stream
jerelmiller Jul 22, 2026
b24cb08
Add tests for cache-only fetch policy
jerelmiller Jul 22, 2026
8e3d91f
Allow default truncation for stream arrays
jerelmiller Jul 22, 2026
e7483d0
Update test to use default truncate
jerelmiller Jul 22, 2026
4563851
Add Incremental.StartRequestOptions type. Update handlers and provide…
jerelmiller Jul 22, 2026
9b9fd9b
Ensure network-only truncates to streamed length
jerelmiller Jul 22, 2026
bc7d27b
Update test description
jerelmiller Jul 22, 2026
173f40e
Remove unused import
jerelmiller Jul 22, 2026
4874d00
Make handle incremental on cache inMemoryCache only for now
jerelmiller Jul 22, 2026
07e20a3
Add failing tests for defer with network-only
jerelmiller Jul 22, 2026
7cc2d24
Add incremental info symbol
jerelmiller Jul 22, 2026
65812c3
Fix lint warning
jerelmiller Jul 22, 2026
453f559
Pass networkStatus and fetchPolicy all the way through to QueryInfo
jerelmiller Jul 22, 2026
e3e2496
Pass fetchPolicy and networkStatus to maybeHandleIncrementalResult
jerelmiller Jul 22, 2026
b7008cf
Add test for list item with defer and network-only
jerelmiller Jul 22, 2026
0d913e8
Truncate defer boundaries for network-only
jerelmiller Jul 22, 2026
72cb1ec
Create trie in QueryInfo instead and remove defaultTruncate from stre…
jerelmiller Jul 23, 2026
814176f
Make arg an object
jerelmiller Jul 23, 2026
c22689f
Create object type for incremental info
jerelmiller Jul 23, 2026
0519bcf
Remove defaultTruncateStreamArray option
jerelmiller Jul 23, 2026
5cfcfc9
Don't leak partial data for network-only requests
jerelmiller Jul 23, 2026
4ac2375
Update exports snapshot
jerelmiller Jul 23, 2026
68ad0fa
Update api report
jerelmiller Jul 23, 2026
9b484a9
Rename variable
jerelmiller Jul 23, 2026
d086c4f
Fix incorrect result value in InternalDiffResultWithDataState
jerelmiller Jul 23, 2026
ba7d3da
Update memory internals tests
jerelmiller Jul 23, 2026
40fa04b
Add changeset
jerelmiller Jul 23, 2026
4261698
Add another changeset
jerelmiller Jul 23, 2026
8c3e98f
Tweak changeset
jerelmiller Jul 23, 2026
f98100f
Mark makeStreamInfoTrie internal
jerelmiller Jul 23, 2026
d32427f
Update api report
jerelmiller Jul 23, 2026
f8dd7e7
Update comment
jerelmiller Jul 23, 2026
8543cf7
Remove unused namespace options object
jerelmiller Jul 23, 2026
f9ae6de
Minor refactor
jerelmiller Jul 23, 2026
13779ac
Clarify comment
jerelmiller Jul 23, 2026
c13b84a
Fix outdated comment
jerelmiller Jul 23, 2026
92c7b5f
Use object shorthand
jerelmiller Jul 23, 2026
fcdcfa9
Remove unused deferInfoSymbol
jerelmiller Jul 23, 2026
02e5a2c
Inline dirty call
jerelmiller Jul 23, 2026
7a8684e
Adjust comment
jerelmiller Jul 23, 2026
492337d
Fix no-cache stream/defer case where streaming was incorrectly reported
jerelmiller Jul 23, 2026
21e89eb
Remove unused import
jerelmiller Jul 23, 2026
b8c1edd
Also check if defer is part of the query for no-cache queries
jerelmiller Jul 23, 2026
e03b60c
Update comment on constant
jerelmiller Jul 24, 2026
c497e04
Change comment on symbol
jerelmiller Jul 24, 2026
9344108
Merge remote-tracking branch 'origin/release-4.3' into jerel/partial-…
jerelmiller Jul 24, 2026
8291097
Strip missing for rules before merge
jerelmiller Jul 24, 2026
fec399f
Clean up Prettier, Size-limit, and Api-Extractor
jerelmiller Jul 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 48 additions & 2 deletions .api-reports/api-report-cache.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import type { AsStoreObject } from '@apollo/client/utilities';
import { canonicalStringify } from '@apollo/client/utilities';
import type { DataValue } from '@apollo/client';
import type { DeepPartial } from '@apollo/client/utilities';
import type { DeferInfoTrie } from '@apollo/client/utilities/internal';
import type { DocumentNode } from 'graphql';
import type { DocumentNode as DocumentNode_2 } from '@apollo/client';
import type { ExtensionsWithStreamInfo } from '@apollo/client/utilities/internal';
Expand All @@ -21,6 +22,7 @@ import { getApolloCacheMemoryInternals } from '@apollo/client/utilities/internal
import type { GetDataState } from '@apollo/client';
import { getInMemoryCacheMemoryInternals } from '@apollo/client/utilities/internal';
import type { GraphQLScalarType } from 'graphql';
import { handleIncrementalSymbol } from '@apollo/client/utilities/internal';
import type { Incremental } from '@apollo/client/incremental';
import type { InlineFragmentNode } from 'graphql';
import type { IsAny } from '@apollo/client/utilities/internal';
Expand All @@ -35,6 +37,7 @@ import type { RemoveIndexSignature } from '@apollo/client/utilities/internal';
import type { SelectionSetNode } from 'graphql';
import type { StoreObject } from '@apollo/client/utilities';
import type { StoreValue } from '@apollo/client/utilities';
import type { StreamInfoTrie } from '@apollo/client/utilities/internal';
import { Trie } from '@wry/trie';
import type { TypedDocumentNode } from '@apollo/client';
import type { TypeOverrides } from '@apollo/client';
Expand Down Expand Up @@ -226,6 +229,32 @@ namespace Cache_2 {
cache: infer TCache;
} ? TCache extends ApolloCache ? TCache : "The cache type declared in TypeOverrides does not extend `ApolloCache` and cannot be used with Apollo Client. See https://www.apollographql.com/docs/react/data/typescript#declaring-the-cache-type." : ApolloCache;
// (undocumented)
type InternalDiffResultWithDataState<TData> = {
result: DataValue.Complete<TData>;
complete: true;
missing?: never;
dataState: "complete";
fromOptimisticTransaction?: boolean;
} | {
result: DataValue.Streaming<TData>;
complete: false;
missing?: never;
dataState: "streaming";
fromOptimisticTransaction?: boolean;
} | {
result: DataValue.Partial<TData>;
complete: false;
missing?: MissingFieldError;
dataState: "partial";
fromOptimisticTransaction?: boolean;
} | {
result: null;
complete: false;
missing?: MissingFieldError;
dataState: "empty";
fromOptimisticTransaction?: boolean;
};
// (undocumented)
interface ModifyOptions<Entity extends Record<string, any> = Record<string, any>> {
// (undocumented)
broadcast?: boolean;
Expand Down Expand Up @@ -370,9 +399,18 @@ interface DeleteModifier {
// @public (undocumented)
const _deleteModifier: unique symbol;

// @internal @deprecated (undocumented)
export interface DiffIncrementalInfo {
// (undocumented)
deferInfo?: DeferInfoTrie;
// (undocumented)
streamInfo?: StreamInfoTrie;
}

// @public (undocumented)
export type DiffQueryAgainstStoreOptions = ReadQueryOptions & {
returnPartialData?: boolean;
[handleIncrementalSymbol]?: true | DiffIncrementalInfo;
};

// @public (undocumented)
Expand Down Expand Up @@ -592,6 +630,8 @@ export namespace InMemoryCache {

// @public (undocumented)
export class InMemoryCache extends ApolloCache {
// (undocumented)
readonly [handleIncrementalSymbol] = true;
constructor(...args: {} extends InMemoryCache.ScalarsOption ? [
config?: InMemoryCacheConfig
] : [config: InMemoryCacheConfig]);
Expand All @@ -605,7 +645,11 @@ export class InMemoryCache extends ApolloCache {
// (undocumented)
protected config: InMemoryCacheConfig;
// (undocumented)
diff<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: Cache_2.DiffOptions<TData, TVariables>): Cache_2.DiffResult<TData>;
diff<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: Cache_2.DiffOptions<TData, TVariables> & {
[handleIncrementalSymbol]: true | DiffIncrementalInfo;
}): Cache_2.InternalDiffResultWithDataState<TData>;
// (undocumented)
diff<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: Cache_2.DiffOptions<TData, TVariables>): Cache_2.DiffResult<TData>;
// (undocumented)
evict(options: Cache_2.EvictOptions): boolean;
// (undocumented)
Expand Down Expand Up @@ -1109,9 +1153,11 @@ interface WriteContext extends ReadMergeModifyContext {

// Warnings were encountered during analysis:
//
// src/cache/inmemory/inMemoryCache.ts:461:7 - (ae-incompatible-release-tags) The symbol "[handleIncrementalSymbol]" is marked as @public, but its signature references "DiffIncrementalInfo" which is marked as @internal
// src/cache/inmemory/policies.ts:176:3 - (ae-forgotten-export) The symbol "KeySpecifier" needs to be exported by the entry point index.d.ts
// src/cache/inmemory/policies.ts:179:3 - (ae-forgotten-export) The symbol "ScalarNames" needs to be exported by the entry point index.d.ts
// src/cache/inmemory/types.ts:139:3 - (ae-forgotten-export) The symbol "KeyFieldsFunction" needs to be exported by the entry point index.d.ts
// src/cache/inmemory/types.ts:145:3 - (ae-incompatible-release-tags) The symbol "[handleIncrementalSymbol]" is marked as @public, but its signature references "DiffIncrementalInfo" which is marked as @internal
// src/cache/inmemory/types.ts:149:3 - (ae-forgotten-export) The symbol "KeyFieldsFunction" needs to be exported by the entry point index.d.ts

// (No @packageDocumentation comment for this package)

Expand Down
34 changes: 25 additions & 9 deletions .api-reports/api-report-incremental.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,7 @@ class Defer20220824Handler implements Incremental.Handler<Defer20220824Handler.C
// Warning: (ae-forgotten-export) The symbol "DeferRequest" needs to be exported by the entry point index.d.ts
//
// (undocumented)
startRequest<TData extends Record<string, unknown>>(_: {
query: DocumentNode;
}): DeferRequest<TData>;
startRequest<TData extends Record<string, unknown>>(_: Incremental.StartRequestOptions): DeferRequest<TData>;
}
export { Defer20220824Handler }
export { Defer20220824Handler as GraphQL17Alpha2Handler }
Expand Down Expand Up @@ -180,9 +178,7 @@ export class GraphQL17Alpha9Handler implements Incremental.Handler<GraphQL17Alph
// Warning: (ae-forgotten-export) The symbol "IncrementalRequest" needs to be exported by the entry point index.d.ts
//
// @internal @deprecated (undocumented)
startRequest<TData>(_: {
query: DocumentNode;
}): IncrementalRequest<TData>;
startRequest<TData>(_: Incremental.StartRequestOptions): IncrementalRequest<TData>;
}

// @public (undocumented)
Expand All @@ -196,19 +192,35 @@ export namespace Incremental {
// (undocumented)
prepareRequest: (request: ApolloLink.Request) => ApolloLink.Request;
// (undocumented)
startRequest: <TData extends Record<string, unknown>>(request: {
query: DocumentNode;
}) => IncrementalRequest<Chunk, TData>;
startRequest: <TData extends Record<string, unknown>>(request: Incremental.StartRequestOptions) => IncrementalRequest<Chunk, TData>;
}
// (undocumented)
export interface IncrementalRequest<Chunk extends Record<string, unknown>, TData> {
// (undocumented)
getPendingType?: (id: string) => "defer" | "stream";
// (undocumented)
handle: (cacheData: TData | DeepPartial<TData> | undefined | null, chunk: Chunk) => FormattedExecutionResult<TData>;
// (undocumented)
hasNext: boolean;
// (undocumented)
pending?: Array<Incremental.PendingResult>;
}
// (undocumented)
export type Path = ReadonlyArray<string | number>;
// (undocumented)
export interface PendingResult {
// (undocumented)
id: string;
// (undocumented)
label?: string;
// (undocumented)
path: Incremental.Path;
}
// @internal @deprecated (undocumented)
export interface StartRequestOptions {
// (undocumented)
query: DocumentNode;
}
// @internal @deprecated (undocumented)
export interface StreamFieldInfo {
// (undocumented)
Expand All @@ -220,10 +232,14 @@ export namespace Incremental {

// @public (undocumented)
class IncrementalRequest<TData> implements Incremental.IncrementalRequest<GraphQL17Alpha9Handler.Chunk<TData>, TData> {
// (undocumented)
getPendingType(id: string): "defer" | "stream";
// (undocumented)
handle(cacheData: TData | DeepPartial<TData> | null | undefined, chunk: GraphQL17Alpha9Handler.Chunk<TData>): FormattedExecutionResult<TData>;
// (undocumented)
hasNext: boolean;
// (undocumented)
get pending(): GraphQL17Alpha9Handler.PendingResult[];
}

// @public (undocumented)
Expand Down
4 changes: 4 additions & 0 deletions .api-reports/api-report-utilities.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,15 @@ export interface CacheSizes {
"inMemoryCache.executeSelectionSet": number;
"inMemoryCache.executeSubSelectedArray": number;
"inMemoryCache.maybeBroadcastWatch": number;
"inMemoryCache.prunePartialBoundaries": number;
"inMemoryCache.prunePartialStreamArray": number;
"PersistedQueryLink.persistedQueryHashes": number;
"queryManager.getDocumentInfo": number;
"removeTypenameFromVariables.getVariableDefinitions": number;
canonicalStringify: number;
checkDocument: number;
isDeferredFragment: number;
isStreamField: number;
print: number;
}

Expand Down
53 changes: 31 additions & 22 deletions .api-reports/api-report-utilities_internal.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,21 +86,6 @@ export type ClassicSignature = SignatureStyle extends "classic" ? unknown : neve
// @internal @deprecated
export function cloneDeep<T>(value: T): T;

// @public (undocumented)
interface CollectionContext {
// (undocumented)
exclude: SelectionNode;
// Warning: (ae-incompatible-release-tags) The symbol "fragmentMap" is marked as @public, but its signature references "FragmentMap" which is marked as @internal
//
// (undocumented)
fragmentMap: FragmentMap;
}

// Warning: (ae-forgotten-export) The symbol "CollectionContext" needs to be exported by the entry point index.d.ts
//
// @internal @deprecated
export function collectSiblingFields(selectionSet: SelectionSetNode, context: CollectionContext, visitedFragments?: Map<string, FieldMap>): FieldMap;

// @public
export function combineLatestBatched<T>(observables: Array<Observable<T> & {
dirty?: boolean;
Expand Down Expand Up @@ -182,6 +167,9 @@ type DeepOmitArray<T extends any[], K> = {
// @public (undocumented)
type DeepOmitPrimitive = Primitive | Function;

// @internal @deprecated
export type DeferInfoTrie = Trie<true>;

// @public (undocumented)
type Directives = {
[directiveName: string]: {
Expand Down Expand Up @@ -237,11 +225,6 @@ export interface ExtensionsWithStreamInfo extends Record<string, unknown> {
};
}

// @public (undocumented)
export type FieldMap = {
[fieldName: string]: FieldMap | true;
};

// @public (undocumented)
export function filterMap<T, R>(fn: (value: T, context: undefined) => R | undefined): OperatorFunction<T, R>;

Expand Down Expand Up @@ -288,6 +271,8 @@ export const getApolloClientMemoryInternals: (() => {
executeSelectionSet: number | undefined;
executeSubSelectedArray: number | undefined;
maybeBroadcastWatch: number | undefined;
prunePartialBoundaries: number | undefined;
prunePartialStreamArray: number | undefined;
} | undefined;
fragmentRegistry?: {
findFragmentSpreads: number | undefined;
Expand Down Expand Up @@ -335,6 +320,8 @@ export const getInMemoryCacheMemoryInternals: (() => {
executeSelectionSet: number | undefined;
executeSubSelectedArray: number | undefined;
maybeBroadcastWatch: number | undefined;
prunePartialBoundaries: number | undefined;
prunePartialStreamArray: number | undefined;
};
fragmentRegistry: {
findFragmentSpreads: number | undefined;
Expand Down Expand Up @@ -377,6 +364,9 @@ const globalCaches: {
// @internal @deprecated (undocumented)
export function graphQLResultHasError(result: FormattedExecutionResult<any>): boolean;

// @internal @deprecated
export const handleIncrementalSymbol: unique symbol;

// @internal @deprecated (undocumented)
export function hasDirectives(names: string[], root: ASTNode, all?: boolean): boolean;

Expand All @@ -389,8 +379,8 @@ export type IsAny<T> = 0 extends 1 & T ? true : false;
// @internal @deprecated
export const isArray: (a: any) => a is any[] | readonly any[];

// @public (undocumented)
export function isDeferredFragment(fragmentSelection: InlineFragmentNode | FragmentSpreadNode, variables: OperationVariables): boolean;
// @internal @deprecated (undocumented)
export const isDeferredFragment: (fragmentSelection: FragmentSpreadNode | InlineFragmentNode, variables: OperationVariables | undefined) => boolean;

// @internal @deprecated (undocumented)
export function isDocumentNode(value: unknown): value is DocumentNode;
Expand All @@ -414,6 +404,9 @@ export function isNonNullObject(obj: unknown): obj is Record<string | number, an
// @internal @deprecated (undocumented)
export function isPlainObject(obj: unknown): obj is Record<string | number, any>;

// @internal @deprecated (undocumented)
export const isStreamField: (field: FieldNode, variables: OperationVariables | undefined) => boolean;

// @public (undocumented)
export function isTypenameField(field: FieldNode): boolean;

Expand All @@ -425,6 +418,9 @@ export type LazyType<T> = T & {
// @internal @deprecated (undocumented)
export function makeReference(id: string): Reference;

// @internal @deprecated (undocumented)
export function makeStreamInfoTrie(): StreamInfoTrie;

// @internal @deprecated
export function makeUniqueId(prefix: string): string;

Expand Down Expand Up @@ -538,12 +534,25 @@ export function storeKeyNameFromField(field: FieldNode, variables?: Object): str
// @public (undocumented)
let storeKeyNameStringify: (value: any) => string;

// @public (undocumented)
export class StreamArrayState {
constructor(path: Incremental.Path);
// (undocumented)
depend(): void;
// (undocumented)
get streamPosition(): number;
set streamPosition(value: number);
// (undocumented)
truncate: boolean;
}

// @public
export const streamInfoSymbol: unique symbol;

// @internal @deprecated (undocumented)
export type StreamInfoTrie = Trie<{
current: Incremental.StreamFieldInfo;
state: StreamArrayState;
previous?: {
incoming: unknown;
streamFieldInfo: Incremental.StreamFieldInfo;
Expand Down
Loading
Loading