@sanity/sdk 3.0.0-rc.2 → 3.0.0

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 (30) hide show
  1. package/dist/_exports/_internal.d.ts +1 -1
  2. package/dist/_exports/_internal.js +2 -2
  3. package/dist/_exports/comlink.d.ts +1 -1
  4. package/dist/{authStore-DKFX8fn7.d.ts → authStore-C0o1NOxW.d.ts} +29 -43
  5. package/dist/authStore-C0o1NOxW.d.ts.map +1 -0
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +131 -135
  8. package/dist/index.js.map +1 -1
  9. package/dist/{queryStore-DPf9sN3V.js → queryStore-C7yMHPUI.js} +2 -2
  10. package/dist/queryStore-C7yMHPUI.js.map +1 -0
  11. package/dist/{telemetryManager-Dq_qCkeI.js → telemetryManager-UIEiMtC0.js} +2 -2
  12. package/dist/{telemetryManager-Dq_qCkeI.js.map → telemetryManager-UIEiMtC0.js.map} +1 -1
  13. package/dist/{version-BChjsi4u.js → version-D8RP_Q59.js} +2 -2
  14. package/dist/{version-BChjsi4u.js.map → version-D8RP_Q59.js.map} +1 -1
  15. package/package.json +3 -3
  16. package/src/_exports/index.ts +7 -4
  17. package/src/datasets/datasets.test.ts +44 -9
  18. package/src/datasets/datasets.ts +24 -23
  19. package/src/document/documentConstants.ts +9 -0
  20. package/src/document/documentStore.test.ts +69 -0
  21. package/src/document/reducers.test.ts +224 -0
  22. package/src/document/reducers.ts +108 -25
  23. package/src/favorites/favorites.test.ts +64 -24
  24. package/src/favorites/favorites.ts +73 -22
  25. package/src/store/fetcherStore.test.ts +23 -1
  26. package/src/store/fetcherStore.ts +3 -3
  27. package/dist/authStore-DKFX8fn7.d.ts.map +0 -1
  28. package/dist/queryStore-DPf9sN3V.js.map +0 -1
  29. package/src/utils/createFetcherStore.test.ts +0 -171
  30. package/src/utils/createFetcherStore.ts +0 -284
@@ -1,12 +1,12 @@
1
1
  import {type Node} from '@sanity/comlink'
2
- import {firstValueFrom, of, Subject} from 'rxjs'
2
+ import {of, Subject} from 'rxjs'
3
3
  import {describe, expect, it, type Mock, vi} from 'vitest'
4
4
 
5
5
  import {getNodeState, type NodeState} from '../comlink/node/getNodeState'
6
6
  import {type FrameMessage, type WindowMessage} from '../comlink/types'
7
7
  import {createSanityInstance, type SanityInstance} from '../store/createSanityInstance'
8
8
  import {type StateSource} from '../store/createStateSourceAction'
9
- import {getFavoritesState, resolveFavoritesState} from './favorites'
9
+ import {favorites, setFavorite} from './favorites'
10
10
 
11
11
  vi.mock('../comlink/node/getNodeState', () => ({
12
12
  getNodeState: vi.fn(),
@@ -62,8 +62,8 @@ describe('favoritesStore', () => {
62
62
  it('creates different keys for different contexts with schema name', async () => {
63
63
  setupMockStateSource()
64
64
  // Make two fetches with different document IDs
65
- await resolveFavoritesState(instance!, mockContext)
66
- await resolveFavoritesState(instance!, {
65
+ await favorites.resolveState(instance!, mockContext)
66
+ await favorites.resolveState(instance!, {
67
67
  ...mockContext,
68
68
  documentId: 'different',
69
69
  })
@@ -79,8 +79,8 @@ describe('favoritesStore', () => {
79
79
  it('creates different keys for contexts without schema name', async () => {
80
80
  setupMockStateSource()
81
81
  // Make two fetches with different document IDs
82
- await resolveFavoritesState(instance!, mockContextNoSchema)
83
- await resolveFavoritesState(instance!, {
82
+ await favorites.resolveState(instance!, mockContextNoSchema)
83
+ await favorites.resolveState(instance!, {
84
84
  ...mockContextNoSchema,
85
85
  documentId: 'different',
86
86
  })
@@ -110,7 +110,7 @@ describe('favoritesStore', () => {
110
110
  it('fetches favorite status and handles success', async () => {
111
111
  const mockResponse = {isFavorited: true}
112
112
  setupMockStateSource({fetchImpl: vi.fn().mockResolvedValue(mockResponse)})
113
- const result = await resolveFavoritesState(instance!, mockContext)
113
+ const result = await favorites.resolveState(instance!, mockContext)
114
114
  expect(result).toEqual(mockResponse)
115
115
  expect(mockFetch).toHaveBeenCalledWith('dashboard/v1/events/favorite/query', {
116
116
  document: {
@@ -128,7 +128,7 @@ describe('favoritesStore', () => {
128
128
  it('handles error and returns default response', async () => {
129
129
  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
130
130
  setupMockStateSource({fetchImpl: vi.fn().mockRejectedValue(new Error('Failed to fetch'))})
131
- const result = await resolveFavoritesState(instance!, mockContext)
131
+ const result = await favorites.resolveState(instance!, mockContext)
132
132
  expect(result).toEqual({isFavorited: false})
133
133
  expect(consoleErrorSpy).toHaveBeenCalledWith(
134
134
  'Favorites service connection error',
@@ -137,25 +137,19 @@ describe('favoritesStore', () => {
137
137
  consoleErrorSpy.mockRestore()
138
138
  })
139
139
 
140
- it('shares observable between multiple subscribers and cleans up', async () => {
140
+ it('serves subsequent reads within staleTime from the cache', async () => {
141
141
  const mockResponse = {isFavorited: true}
142
142
  setupMockStateSource({fetchImpl: vi.fn().mockResolvedValue(mockResponse)})
143
- const state = getFavoritesState(instance!, mockContext)
144
- // First subscriber
145
- const sub1 = state.subscribe()
146
- await firstValueFrom(state.observable)
143
+ const first = await favorites.resolveState(instance!, mockContext)
144
+ expect(first).toEqual(mockResponse)
147
145
  expect(mockFetch).toHaveBeenCalledTimes(1)
148
- // Second subscriber should use cached response
149
- const state2 = getFavoritesState(instance!, mockContext)
150
- const sub2 = state2.subscribe()
151
- await firstValueFrom(state2.observable)
146
+ // Second read is fresh (within staleTime) — no second fetch
147
+ const second = await favorites.resolveState(instance!, mockContext)
148
+ expect(second).toEqual(mockResponse)
152
149
  expect(mockFetch).toHaveBeenCalledTimes(1)
153
- // Cleanup
154
- sub1()
155
- sub2()
156
150
  })
157
151
 
158
- it('reuses active fetch via createFetcherStore/shareReplay when called again while pending', async () => {
152
+ it('dedupes against the in-flight fetch when called again while pending', async () => {
159
153
  vi.useFakeTimers()
160
154
  let resolveFetch: (value: {isFavorited: boolean}) => void
161
155
  const fetchPromise = new Promise<{isFavorited: boolean}>((resolve) => {
@@ -175,13 +169,15 @@ describe('favoritesStore', () => {
175
169
  } as unknown as StateSource<NodeState>
176
170
  vi.mocked(getNodeState).mockReturnValue(mockStateSource)
177
171
  // Call 1: Triggers the actual fetch
178
- const promise1 = resolveFavoritesState(instance!, mockContext)
172
+ const promise1 = favorites.resolveState(instance!, mockContext)
173
+ // Let the deferred fetch start and subscribe to the node state
174
+ await vi.advanceTimersByTimeAsync(1)
179
175
  // Simulate node becoming connected
180
176
  subject.next({node: mockNode, status: 'connected'})
181
177
  await vi.advanceTimersByTimeAsync(1)
182
178
  expect(fetchSpy).toHaveBeenCalledTimes(1)
183
- // Call 2: Should reuse the pending fetch via createFetcherStore/shareReplay
184
- const promise2 = resolveFavoritesState(instance!, mockContext)
179
+ // Call 2: Should reuse the pending fetch
180
+ const promise2 = favorites.resolveState(instance!, mockContext)
185
181
  await vi.advanceTimersByTimeAsync(1)
186
182
  expect(fetchSpy).toHaveBeenCalledTimes(1)
187
183
  // Resolve the underlying fetch
@@ -195,4 +191,48 @@ describe('favoritesStore', () => {
195
191
  vi.useRealTimers()
196
192
  })
197
193
  })
194
+
195
+ describe('setFavorite', () => {
196
+ beforeEach(() => {
197
+ vi.resetAllMocks()
198
+ instance = createSanityInstance({projectId: 'p', dataset: 'd'})
199
+ setupMockStateSource({fetchImpl: vi.fn().mockResolvedValue({success: true})})
200
+ })
201
+
202
+ afterEach(() => {
203
+ instance?.dispose()
204
+ })
205
+
206
+ it('sends the added event with schemaName and resolves to the new state', async () => {
207
+ const result = await setFavorite(instance!, {...mockContext, isFavorited: true})
208
+ expect(result.data).toEqual({isFavorited: true})
209
+ expect(mockFetch).toHaveBeenCalledWith('dashboard/v1/events/favorite/mutate', {
210
+ eventType: 'added',
211
+ document: {
212
+ id: mockContext.documentId,
213
+ type: mockContext.documentType,
214
+ resource: {
215
+ id: mockContext.resourceId,
216
+ type: mockContext.resourceType,
217
+ schemaName: mockContext.schemaName,
218
+ },
219
+ },
220
+ })
221
+ })
222
+
223
+ it('sends the removed event and omits schemaName when absent', async () => {
224
+ const result = await setFavorite(instance!, {...mockContextNoSchema, isFavorited: false})
225
+ expect(result.data).toEqual({isFavorited: false})
226
+ const payload = mockFetch.mock.calls[0][1]
227
+ expect(payload.eventType).toBe('removed')
228
+ expect(payload.document.resource).not.toHaveProperty('schemaName')
229
+ })
230
+
231
+ it('rejects when the server reports failure', async () => {
232
+ setupMockStateSource({fetchImpl: vi.fn().mockResolvedValue({success: false})})
233
+ await expect(setFavorite(instance!, {...mockContext, isFavorited: true})).rejects.toThrow(
234
+ 'Failed to update favorite status',
235
+ )
236
+ })
237
+ })
198
238
  })
@@ -5,12 +5,12 @@ import {
5
5
  SDK_NODE_NAME,
6
6
  type StudioResource,
7
7
  } from '@sanity/message-protocol'
8
- import {catchError, filter, from, map, Observable, of, shareReplay, switchMap} from 'rxjs'
8
+ import {catchError, first, from, map, type Observable, of, switchMap} from 'rxjs'
9
9
 
10
10
  import {getNodeState} from '../comlink/node/getNodeState'
11
11
  import {type DocumentHandle} from '../config/sanityConfig'
12
12
  import {type SanityInstance} from '../store/createSanityInstance'
13
- import {createFetcherStore} from '../utils/createFetcherStore'
13
+ import {defineFetcher, defineMutation} from '../store/fetcherStore'
14
14
 
15
15
  /**
16
16
  * @public
@@ -22,7 +22,7 @@ export interface FavoriteStatusResponse {
22
22
  /**
23
23
  * @public
24
24
  */
25
- interface FavoriteDocumentContext extends DocumentHandle {
25
+ export interface FavoriteDocumentContext extends DocumentHandle {
26
26
  resourceId: string
27
27
  resourceType: StudioResource['type'] | MediaResource['type'] | CanvasResource['type']
28
28
  schemaName?: string
@@ -35,12 +35,19 @@ function createFavoriteKey(context: FavoriteDocumentContext): string {
35
35
  }`
36
36
  }
37
37
 
38
- const favorites = createFetcherStore<[FavoriteDocumentContext], FavoriteStatusResponse>({
39
- name: 'Favorites',
40
- getKey: (_instance: SanityInstance, context: FavoriteDocumentContext) => {
41
- return createFavoriteKey(context)
42
- },
43
- fetcher: (instance: SanityInstance) => {
38
+ /**
39
+ * Fetcher for a document's favorite status, read from the dashboard over
40
+ * comlink, on the shared fetcher cache.
41
+ *
42
+ * @internal
43
+ */
44
+ export const favorites = defineFetcher<[context: FavoriteDocumentContext], FavoriteStatusResponse>({
45
+ name: 'favorites',
46
+ getKey: (_instance: SanityInstance, context: FavoriteDocumentContext) =>
47
+ createFavoriteKey(context),
48
+ // Tag each entry with its key so `setFavorite` can invalidate exactly it.
49
+ tags: (_data, context) => [{type: 'favorite', id: createFavoriteKey(context)}],
50
+ fetch: (instance) => {
44
51
  return (context: FavoriteDocumentContext): Observable<FavoriteStatusResponse> => {
45
52
  const nodeStateSource = getNodeState(instance, {
46
53
  name: SDK_NODE_NAME,
@@ -59,8 +66,8 @@ const favorites = createFetcherStore<[FavoriteDocumentContext], FavoriteStatusRe
59
66
  }
60
67
 
61
68
  return nodeStateSource.observable.pipe(
62
- filter((nodeState) => !!nodeState), // Only proceed when connected
63
- shareReplay(1),
69
+ // Wait until connected, then complete after the single fetch settles.
70
+ first((nodeState) => !!nodeState),
64
71
  switchMap((nodeState) => {
65
72
  const node = nodeState!.node
66
73
  return from(
@@ -84,19 +91,63 @@ const favorites = createFetcherStore<[FavoriteDocumentContext], FavoriteStatusRe
84
91
  })
85
92
 
86
93
  /**
87
- * Gets a StateSource for the favorite status of a document.
88
- * @param instance - The Sanity instance.
89
- * @param context - The document context including ID, type, and resource information.
90
- * @returns A StateSource emitting `{ isFavorited: boolean }`.
94
+ * Input for {@link setFavorite}: the document context plus the desired state.
95
+ *
91
96
  * @public
92
97
  */
93
- export const getFavoritesState = favorites.getState
98
+ export type SetFavoriteInput = FavoriteDocumentContext & {
99
+ /** The favorite state to move to: `true` to favorite, `false` to unfavorite. */
100
+ isFavorited: boolean
101
+ }
94
102
 
95
103
  /**
96
- * Resolves the favorite status for a document.
97
- * @param instance - The Sanity instance.
98
- * @param context - The document context including ID, type, and resource information.
99
- * @returns A Promise resolving to `{ isFavorited: boolean }`.
100
- * @public
104
+ * Sets a document's favorite state over comlink, then invalidates the cached
105
+ * {@link favorites} status for that document so active readers reconverge on
106
+ * server truth. The write-side counterpart to {@link favorites}.
107
+ *
108
+ * @internal
101
109
  */
102
- export const resolveFavoritesState = favorites.resolveState
110
+ export const setFavorite = defineMutation<SetFavoriteInput, FavoriteStatusResponse>({
111
+ name: 'setFavorite',
112
+ mutationFn: (instance) => {
113
+ return ({isFavorited, ...context}: SetFavoriteInput): Observable<FavoriteStatusResponse> => {
114
+ const nodeStateSource = getNodeState(instance, {
115
+ name: SDK_NODE_NAME,
116
+ connectTo: SDK_CHANNEL_NAME,
117
+ })
118
+ const payload = {
119
+ eventType: isFavorited ? 'added' : 'removed',
120
+ document: {
121
+ id: context.documentId,
122
+ type: context.documentType,
123
+ resource: {
124
+ id: context.resourceId,
125
+ type: context.resourceType,
126
+ ...(context.schemaName ? {schemaName: context.schemaName} : {}),
127
+ },
128
+ },
129
+ }
130
+
131
+ return nodeStateSource.observable.pipe(
132
+ // Wait until connected, then complete after the single mutation settles.
133
+ first((nodeState) => !!nodeState),
134
+ switchMap((nodeState) => {
135
+ const node = nodeState!.node
136
+ return from(
137
+ node.fetch(
138
+ // @ts-expect-error -- getOrCreateNode should be refactored to take type arguments
139
+ 'dashboard/v1/events/favorite/mutate',
140
+ payload,
141
+ ) as Promise<{success: boolean}>,
142
+ ).pipe(
143
+ map((response) => {
144
+ if (!response.success) throw new Error('Failed to update favorite status')
145
+ return {isFavorited}
146
+ }),
147
+ )
148
+ }),
149
+ )
150
+ }
151
+ },
152
+ invalidates: (_result, input) => [{type: 'favorite', id: createFavoriteKey(input)}],
153
+ })
@@ -1,4 +1,4 @@
1
- import {NEVER, of, startWith, Subject, throwError} from 'rxjs'
1
+ import {concatWith, NEVER, of, startWith, Subject, throwError} from 'rxjs'
2
2
  import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'
3
3
 
4
4
  import {createSanityInstance, type SanityInstance} from './createSanityInstance'
@@ -65,6 +65,28 @@ describe('fetcherStore', () => {
65
65
  unsub3()
66
66
  })
67
67
 
68
+ it('revalidates a stale entry on re-subscribe when the fetch source does not complete', async () => {
69
+ let n = 0
70
+ const fetchSpy = vi.fn(() => of(++n).pipe(concatWith(NEVER)))
71
+ const fetcher = defineFetcher<[], number>({
72
+ name: 'swr-non-completing',
73
+ staleTime: 0,
74
+ getKey: () => 'k',
75
+ fetch: () => fetchSpy,
76
+ })
77
+
78
+ const first = fetcher.getState(instance)
79
+ const unsub1 = first.subscribe()
80
+ await vi.waitFor(() => expect(first.getCurrent().data).toBe(1))
81
+ unsub1()
82
+
83
+ const second = fetcher.getState(instance)
84
+ const unsub2 = second.subscribe()
85
+ await vi.waitFor(() => expect(fetchSpy).toHaveBeenCalledTimes(2))
86
+ expect(second.getCurrent().data).toBe(2)
87
+ unsub2()
88
+ })
89
+
68
90
  it('invalidate refetches an actively-subscribed entry', async () => {
69
91
  let n = 0
70
92
  const fetcher = defineFetcher<[], number>({
@@ -1,4 +1,4 @@
1
- import {filter, firstValueFrom, map, type Observable, Subscription} from 'rxjs'
1
+ import {filter, firstValueFrom, map, type Observable, Subscription, take} from 'rxjs'
2
2
 
3
3
  import {setCleanupInterval, setCleanupTimeout} from '../utils/setCleanupTimeout'
4
4
  import {bindActionGlobally} from './createActionBinder'
@@ -490,6 +490,7 @@ const startFetch = (
490
490
  sub.add(
491
491
  def
492
492
  .fetch(instance)(...params)
493
+ .pipe(take(1))
493
494
  .subscribe({
494
495
  next: (data) => {
495
496
  const current = state.get().entries[key]
@@ -659,8 +660,7 @@ export function defineFetcher<TParams extends unknown[], TData>(
659
660
  }))
660
661
  startInterval(state, def, instance, params, key)
661
662
 
662
- // Defer the fetch decision off the subscribe call stack (see the
663
- // `delay(0)` precedent in the legacy fetcher store) to avoid a
663
+ // Defer the fetch decision off the subscribe call stack to avoid a
664
664
  // re-entrant cache write during subscription setup.
665
665
  queueMicrotask(() => {
666
666
  const entry = state.get().entries[key]
@@ -1 +0,0 @@
1
- {"version":3,"file":"authStore-DKFX8fn7.d.ts","names":[],"sources":["../src/store/createStoreState.ts","../src/store/defineStore.ts","../src/store/createActionBinder.ts","../src/store/createStateSourceAction.ts","../src/store/fetcherStore.ts","../src/access/checkPermissions.ts","../src/utils/includeShape.ts","../src/applications/applications.ts","../src/auth/authStateType.ts","../src/project/organizationVerification.ts","../src/auth/getOrganizationVerificationState.ts","../src/auth/handleAuthCallback.ts","../src/auth/logout.ts","../src/client/clientStore.ts","../src/comments/types.ts","../src/comments/commentActions.ts","../src/comments/commentsStore.ts","../src/config/handles.ts","../src/utils/logger.ts","../src/config/loggingConfig.ts","../src/datasets/datasets.ts","../src/document/actions.ts","../src/document/patchOperations.ts","../src/document/processMutations.ts","../src/document/permissions.ts","../src/document/sharedListener.ts","../src/document/documentStore.ts","../src/document/reducers.ts","../src/document/events.ts","../src/document/applyDocumentActions.ts","../src/document/processActions/releaseUtil.ts","../src/favorites/favorites.ts","../src/installations/installations.ts","../src/organization/organization.ts","../src/organizations/organizations.ts","../src/users/types.ts","../src/presence/types.ts","../src/presence/presenceStore.ts","../src/projection/types.ts","../src/preview/types.ts","../src/project/project.ts","../src/projection/getProjectionState.ts","../src/projection/resolveProjection.ts","../src/projects/projects.ts","../src/query/queryStore.ts","../src/releases/releasesStore.ts","../src/releases/getPerspectiveState.ts","../src/users/usersStore.ts","../src/utils/createFetcherStore.ts","../src/utils/getCorsErrorProjectId.ts","../src/utils/isImportError.ts","../src/version.ts","../src/_exports/index.ts","../src/auth/authStore.ts"],"mappings":"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"}