@sanity/sdk 2.7.0 → 2.9.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 (92) hide show
  1. package/dist/_chunks-dts/utils.d.ts +2396 -0
  2. package/dist/_chunks-es/_internal.js +129 -0
  3. package/dist/_chunks-es/_internal.js.map +1 -0
  4. package/dist/_chunks-es/createGroqSearchFilter.js +1460 -0
  5. package/dist/_chunks-es/createGroqSearchFilter.js.map +1 -0
  6. package/dist/_chunks-es/telemetryManager.js +87 -0
  7. package/dist/_chunks-es/telemetryManager.js.map +1 -0
  8. package/dist/_chunks-es/version.js +7 -0
  9. package/dist/_chunks-es/version.js.map +1 -0
  10. package/dist/_exports/_internal.d.ts +64 -0
  11. package/dist/_exports/_internal.js +20 -0
  12. package/dist/_exports/_internal.js.map +1 -0
  13. package/dist/index.d.ts +2 -2343
  14. package/dist/index.js +383 -1777
  15. package/dist/index.js.map +1 -1
  16. package/package.json +11 -4
  17. package/src/_exports/_internal.ts +14 -0
  18. package/src/_exports/index.ts +10 -1
  19. package/src/auth/authStore.test.ts +150 -1
  20. package/src/auth/authStore.ts +11 -11
  21. package/src/auth/dashboardAuth.ts +2 -2
  22. package/src/auth/handleAuthCallback.ts +9 -3
  23. package/src/auth/logout.test.ts +1 -1
  24. package/src/auth/logout.ts +1 -1
  25. package/src/auth/refreshStampedToken.test.ts +118 -1
  26. package/src/auth/refreshStampedToken.ts +3 -2
  27. package/src/auth/standaloneAuth.ts +9 -3
  28. package/src/auth/studioAuth.ts +34 -7
  29. package/src/auth/studioModeAuth.ts +2 -1
  30. package/src/auth/subscribeToStateAndFetchCurrentUser.test.ts +10 -2
  31. package/src/auth/subscribeToStateAndFetchCurrentUser.ts +5 -1
  32. package/src/auth/subscribeToStorageEventsAndSetToken.ts +2 -2
  33. package/src/auth/utils.ts +33 -0
  34. package/src/client/clientStore.test.ts +14 -0
  35. package/src/client/clientStore.ts +2 -1
  36. package/src/comlink/node/getNodeState.ts +2 -1
  37. package/src/config/sanityConfig.ts +6 -0
  38. package/src/document/actions.ts +18 -11
  39. package/src/document/applyDocumentActions.test.ts +7 -6
  40. package/src/document/applyDocumentActions.ts +10 -4
  41. package/src/document/documentStore.test.ts +536 -188
  42. package/src/document/documentStore.ts +142 -76
  43. package/src/document/events.ts +7 -2
  44. package/src/document/permissions.test.ts +18 -16
  45. package/src/document/permissions.ts +35 -11
  46. package/src/document/processActions.test.ts +359 -32
  47. package/src/document/processActions.ts +104 -76
  48. package/src/document/reducers.test.ts +117 -29
  49. package/src/document/reducers.ts +43 -36
  50. package/src/document/sharedListener.ts +16 -6
  51. package/src/document/util.ts +14 -0
  52. package/src/favorites/favorites.test.ts +9 -2
  53. package/src/presence/bifurTransport.ts +6 -1
  54. package/src/preview/getPreviewState.test.ts +115 -98
  55. package/src/preview/getPreviewState.ts +38 -60
  56. package/src/preview/previewProjectionUtils.test.ts +179 -0
  57. package/src/preview/previewProjectionUtils.ts +93 -0
  58. package/src/preview/resolvePreview.test.ts +42 -25
  59. package/src/preview/resolvePreview.ts +29 -10
  60. package/src/preview/{previewStore.ts → types.ts} +8 -17
  61. package/src/projection/getProjectionState.test.ts +16 -16
  62. package/src/projection/getProjectionState.ts +2 -1
  63. package/src/projection/projectionQuery.ts +2 -3
  64. package/src/projection/types.ts +1 -1
  65. package/src/query/queryStore.ts +2 -1
  66. package/src/releases/getPerspectiveState.ts +7 -6
  67. package/src/releases/releasesStore.test.ts +20 -5
  68. package/src/releases/releasesStore.ts +20 -8
  69. package/src/store/createStateSourceAction.test.ts +62 -0
  70. package/src/store/createStateSourceAction.ts +34 -39
  71. package/src/telemetry/__telemetry__/sdk.telemetry.ts +42 -0
  72. package/src/telemetry/devMode.test.ts +52 -0
  73. package/src/telemetry/devMode.ts +40 -0
  74. package/src/telemetry/initTelemetry.test.ts +225 -0
  75. package/src/telemetry/initTelemetry.ts +205 -0
  76. package/src/telemetry/telemetryManager.test.ts +263 -0
  77. package/src/telemetry/telemetryManager.ts +187 -0
  78. package/src/users/usersStore.test.ts +1 -0
  79. package/src/users/usersStore.ts +5 -1
  80. package/src/utils/createFetcherStore.test.ts +6 -4
  81. package/src/utils/createFetcherStore.ts +2 -1
  82. package/src/utils/getStagingApiHost.test.ts +21 -0
  83. package/src/utils/getStagingApiHost.ts +14 -0
  84. package/src/utils/ids.test.ts +1 -29
  85. package/src/utils/ids.ts +0 -10
  86. package/src/utils/setCleanupTimeout.ts +24 -0
  87. package/src/preview/previewQuery.test.ts +0 -236
  88. package/src/preview/previewQuery.ts +0 -153
  89. package/src/preview/previewStore.test.ts +0 -36
  90. package/src/preview/subscribeToStateAndFetchBatches.test.ts +0 -221
  91. package/src/preview/subscribeToStateAndFetchBatches.ts +0 -112
  92. package/src/preview/util.ts +0 -13
@@ -0,0 +1,64 @@
1
+ import { H as getUsersKey, J as getQueryKey, P as createGroqSearchFilter, U as parseUsersKey, X as parseQueryKey, a as isProjectUserNotFoundClientError, i as getClientErrorApiType, n as getClientErrorApiBody, ot as transformProjectionToPreview, r as getClientErrorApiDescription, st as PREVIEW_PROJECTION, t as ApiErrorBody, xr as isStudioConfig, yr as SanityInstance } from "../_chunks-dts/utils.js";
2
+ import { SanityClient } from "@sanity/client";
3
+ /**
4
+ * Manages dev-mode telemetry for a single SDK instance.
5
+ *
6
+ * Wraps `@sanity/telemetry`'s batched store with SDK-specific concerns:
7
+ * consent caching, session lifecycle events, and hook usage tracking.
8
+ *
9
+ * @internal
10
+ */
11
+ interface TelemetryManager {
12
+ /**
13
+ * Eagerly resolve and cache the user's consent status.
14
+ * Returns true only when the user has explicitly opted in (`granted`).
15
+ * Call this before logging any events to avoid buffering events that
16
+ * will be dropped on the first flush.
17
+ */
18
+ checkConsent(): Promise<boolean>;
19
+ /** Log a "SDK Dev Session Started" event */
20
+ logSessionStarted(data: {
21
+ projectId: string;
22
+ perspective: string;
23
+ authMethod: string;
24
+ }): void;
25
+ /** Log a "SDK Hook First Used" event (deduplicated per hook name) */
26
+ logHookFirstUsed(hookName: string): void;
27
+ /** Log a "SDK Dev Error" event */
28
+ logDevError(errorType: string, hookName: string): void;
29
+ /** Log a "SDK Dev Session Ended" event and tear down the store */
30
+ endSession(): void;
31
+ /** Tear down the store without logging a session-end event */
32
+ dispose(): void;
33
+ /** The set of hook names used during this session */
34
+ readonly hooksUsed: ReadonlySet<string>;
35
+ }
36
+ /**
37
+ * Initializes dev-mode telemetry for a SDK instance if the environment
38
+ * qualifies. Both `telemetryManager` and `clientStore` are dynamically
39
+ * imported to avoid circular dependencies and to keep telemetry code
40
+ * out of production bundles via code splitting.
41
+ *
42
+ * The `projectId` must be passed explicitly because the resource
43
+ * configuration is typically set by the React layer after the
44
+ * instance has already been created.
45
+ *
46
+ * @internal
47
+ */
48
+ declare function initTelemetry(instance: SanityInstance, projectId: string): void;
49
+ /**
50
+ * Retrieves the telemetry manager for an instance, if one exists.
51
+ * Returns undefined when telemetry is disabled or not yet initialized.
52
+ *
53
+ * @internal
54
+ */
55
+ declare function getTelemetryManager(instance: SanityInstance): TelemetryManager | undefined;
56
+ /**
57
+ * Record a hook name for an instance. If the telemetry manager is
58
+ * already initialized the event is logged immediately. Otherwise
59
+ * the name is buffered and flushed when init completes.
60
+ *
61
+ * @internal
62
+ */
63
+ declare function trackHookMounted(instance: SanityInstance, hookName: string): void;
64
+ export { type ApiErrorBody, PREVIEW_PROJECTION, createGroqSearchFilter, getClientErrorApiBody, getClientErrorApiDescription, getClientErrorApiType, getQueryKey, getTelemetryManager, getUsersKey, initTelemetry, isProjectUserNotFoundClientError, isStudioConfig, parseQueryKey, parseUsersKey, trackHookMounted, transformProjectionToPreview };
@@ -0,0 +1,20 @@
1
+ import { PREVIEW_PROJECTION, createGroqSearchFilter, getClientErrorApiBody, getClientErrorApiDescription, getClientErrorApiType, getQueryKey, getUsersKey, isProjectUserNotFoundClientError, isStudioConfig, parseQueryKey, parseUsersKey, transformProjectionToPreview } from "../_chunks-es/createGroqSearchFilter.js";
2
+ import { getTelemetryManager, initTelemetry, trackHookMounted } from "../_chunks-es/_internal.js";
3
+ export {
4
+ PREVIEW_PROJECTION,
5
+ createGroqSearchFilter,
6
+ getClientErrorApiBody,
7
+ getClientErrorApiDescription,
8
+ getClientErrorApiType,
9
+ getQueryKey,
10
+ getTelemetryManager,
11
+ getUsersKey,
12
+ initTelemetry,
13
+ isProjectUserNotFoundClientError,
14
+ isStudioConfig,
15
+ parseQueryKey,
16
+ parseUsersKey,
17
+ trackHookMounted,
18
+ transformProjectionToPreview
19
+ };
20
+ //# sourceMappingURL=_internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_internal.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}