@sanity/client 7.15.0 → 7.17.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 (46) hide show
  1. package/dist/_chunks-cjs/config.cjs.map +1 -1
  2. package/dist/_chunks-cjs/isRecord.cjs.map +1 -1
  3. package/dist/_chunks-cjs/resolveEditInfo.cjs +1 -1
  4. package/dist/_chunks-cjs/resolveEditInfo.cjs.map +1 -1
  5. package/dist/_chunks-cjs/stegaClean.cjs.map +1 -1
  6. package/dist/_chunks-cjs/stegaEncodeSourceMap.cjs +1 -1
  7. package/dist/_chunks-cjs/stegaEncodeSourceMap.cjs.map +1 -1
  8. package/dist/_chunks-es/config.js.map +1 -1
  9. package/dist/_chunks-es/isRecord.js.map +1 -1
  10. package/dist/_chunks-es/resolveEditInfo.js +1 -1
  11. package/dist/_chunks-es/resolveEditInfo.js.map +1 -1
  12. package/dist/_chunks-es/stegaClean.js.map +1 -1
  13. package/dist/_chunks-es/stegaEncodeSourceMap.js +1 -1
  14. package/dist/_chunks-es/stegaEncodeSourceMap.js.map +1 -1
  15. package/dist/csm.cjs.map +1 -1
  16. package/dist/csm.js.map +1 -1
  17. package/dist/index.browser.cjs +62 -4
  18. package/dist/index.browser.cjs.map +1 -1
  19. package/dist/index.browser.d.cts +73 -28
  20. package/dist/index.browser.d.ts +73 -28
  21. package/dist/index.browser.js +63 -5
  22. package/dist/index.browser.js.map +1 -1
  23. package/dist/index.cjs +63 -5
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +73 -28
  26. package/dist/index.d.ts +73 -28
  27. package/dist/index.js +64 -6
  28. package/dist/index.js.map +1 -1
  29. package/dist/media-library.cjs.map +1 -1
  30. package/dist/media-library.js.map +1 -1
  31. package/dist/stega.browser.cjs.map +1 -1
  32. package/dist/stega.browser.d.cts +73 -28
  33. package/dist/stega.browser.d.ts +73 -28
  34. package/dist/stega.browser.js +1 -1
  35. package/dist/stega.browser.js.map +1 -1
  36. package/dist/stega.cjs.map +1 -1
  37. package/dist/stega.d.cts +73 -28
  38. package/dist/stega.d.ts +73 -28
  39. package/dist/stega.js +1 -1
  40. package/dist/stega.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/datasets/DatasetsClient.ts +93 -8
  43. package/src/projects/ProjectsClient.ts +22 -2
  44. package/src/types.ts +27 -0
  45. package/umd/sanityClient.js +71 -13
  46. package/umd/sanityClient.min.js +2 -2
package/dist/index.d.cts CHANGED
@@ -1096,6 +1096,20 @@ export declare interface CurrentSanityUser {
1096
1096
  /** @public */
1097
1097
  export declare type DatasetAclMode = 'public' | 'private' | 'custom'
1098
1098
 
1099
+ /** @public */
1100
+ export declare type DatasetCreateOptions = {
1101
+ aclMode?: DatasetAclMode
1102
+ embeddings?: {
1103
+ enabled: boolean
1104
+ projection?: string
1105
+ }
1106
+ }
1107
+
1108
+ /** @public */
1109
+ export declare type DatasetEditOptions = {
1110
+ aclMode?: DatasetAclMode
1111
+ }
1112
+
1099
1113
  /** @public */
1100
1114
  export declare type DatasetResponse = {
1101
1115
  datasetName: string
@@ -1110,26 +1124,16 @@ export declare class DatasetsClient {
1110
1124
  * Create a new dataset with the given name
1111
1125
  *
1112
1126
  * @param name - Name of the dataset to create
1113
- * @param options - Options for the dataset
1127
+ * @param options - Options for the dataset, including optional embeddings configuration
1114
1128
  */
1115
- create(
1116
- name: string,
1117
- options?: {
1118
- aclMode?: DatasetAclMode
1119
- },
1120
- ): Promise<DatasetResponse>
1129
+ create(name: string, options?: DatasetCreateOptions): Promise<DatasetResponse>
1121
1130
  /**
1122
1131
  * Edit a dataset with the given name
1123
1132
  *
1124
1133
  * @param name - Name of the dataset to edit
1125
1134
  * @param options - New options for the dataset
1126
1135
  */
1127
- edit(
1128
- name: string,
1129
- options?: {
1130
- aclMode?: DatasetAclMode
1131
- },
1132
- ): Promise<DatasetResponse>
1136
+ edit(name: string, options?: DatasetEditOptions): Promise<DatasetResponse>
1133
1137
  /**
1134
1138
  * Delete a dataset with the given name
1135
1139
  *
@@ -1142,6 +1146,19 @@ export declare class DatasetsClient {
1142
1146
  * Fetch a list of datasets for the configured project
1143
1147
  */
1144
1148
  list(): Promise<DatasetsResponse>
1149
+ /**
1150
+ * Get embeddings settings for a dataset
1151
+ *
1152
+ * @param name - Name of the dataset
1153
+ */
1154
+ getEmbeddingsSettings(name: string): Promise<EmbeddingsSettings>
1155
+ /**
1156
+ * Edit embeddings settings for a dataset
1157
+ *
1158
+ * @param name - Name of the dataset
1159
+ * @param settings - Embeddings settings to apply
1160
+ */
1161
+ editEmbeddingsSettings(name: string, settings: EmbeddingsSettingsBody): Promise<void>
1145
1162
  }
1146
1163
 
1147
1164
  /** @public */
@@ -1347,6 +1364,19 @@ export declare interface EditReleaseAction {
1347
1364
  patch: PatchOperations
1348
1365
  }
1349
1366
 
1367
+ /** @public */
1368
+ export declare type EmbeddingsSettings = {
1369
+ enabled: boolean
1370
+ projection?: string
1371
+ status: string
1372
+ }
1373
+
1374
+ /** @public */
1375
+ export declare type EmbeddingsSettingsBody = {
1376
+ enabled: boolean
1377
+ projection?: string
1378
+ }
1379
+
1350
1380
  /** @public */
1351
1381
  export declare interface ErrorProps {
1352
1382
  message: string
@@ -2545,26 +2575,16 @@ export declare class ObservableDatasetsClient {
2545
2575
  * Create a new dataset with the given name
2546
2576
  *
2547
2577
  * @param name - Name of the dataset to create
2548
- * @param options - Options for the dataset
2578
+ * @param options - Options for the dataset, including optional embeddings configuration
2549
2579
  */
2550
- create(
2551
- name: string,
2552
- options?: {
2553
- aclMode?: DatasetAclMode
2554
- },
2555
- ): Observable<DatasetResponse>
2580
+ create(name: string, options?: DatasetCreateOptions): Observable<DatasetResponse>
2556
2581
  /**
2557
2582
  * Edit a dataset with the given name
2558
2583
  *
2559
2584
  * @param name - Name of the dataset to edit
2560
2585
  * @param options - New options for the dataset
2561
2586
  */
2562
- edit(
2563
- name: string,
2564
- options?: {
2565
- aclMode?: DatasetAclMode
2566
- },
2567
- ): Observable<DatasetResponse>
2587
+ edit(name: string, options?: DatasetEditOptions): Observable<DatasetResponse>
2568
2588
  /**
2569
2589
  * Delete a dataset with the given name
2570
2590
  *
@@ -2577,6 +2597,19 @@ export declare class ObservableDatasetsClient {
2577
2597
  * Fetch a list of datasets for the configured project
2578
2598
  */
2579
2599
  list(): Observable<DatasetsResponse>
2600
+ /**
2601
+ * Get embeddings settings for a dataset
2602
+ *
2603
+ * @param name - Name of the dataset
2604
+ */
2605
+ getEmbeddingsSettings(name: string): Observable<EmbeddingsSettings>
2606
+ /**
2607
+ * Edit embeddings settings for a dataset
2608
+ *
2609
+ * @param name - Name of the dataset
2610
+ * @param settings - Embeddings settings to apply
2611
+ */
2612
+ editEmbeddingsSettings(name: string, settings: EmbeddingsSettingsBody): Observable<void>
2580
2613
  }
2581
2614
 
2582
2615
  /** @internal */
@@ -2658,11 +2691,17 @@ export declare class ObservableProjectsClient {
2658
2691
  * @param options - Options for the list request
2659
2692
  * - `includeMembers` - Whether to include members in the response (default: true)
2660
2693
  * - `organizationId` - ID of the organization to fetch projects for
2694
+ * - `onlyExplicitMembership` - Only include projects where the user has explicit membership (default: false)
2661
2695
  */
2662
- list(options?: {includeMembers?: true; organizationId?: string}): Observable<SanityProject[]>
2696
+ list(options?: {
2697
+ includeMembers?: true
2698
+ organizationId?: string
2699
+ onlyExplicitMembership?: boolean
2700
+ }): Observable<SanityProject[]>
2663
2701
  list(options?: {
2664
2702
  includeMembers?: false
2665
2703
  organizationId?: string
2704
+ onlyExplicitMembership?: boolean
2666
2705
  }): Observable<Omit<SanityProject, 'members'>[]>
2667
2706
  /**
2668
2707
  * Fetch a project by project ID
@@ -4035,11 +4074,17 @@ export declare class ProjectsClient {
4035
4074
  * @param options - Options for the list request
4036
4075
  * - `includeMembers` - Whether to include members in the response (default: true)
4037
4076
  * - `organizationId` - ID of the organization to fetch projects for
4077
+ * - `onlyExplicitMembership` - Only include projects where the user has explicit membership (default: false)
4038
4078
  */
4039
- list(options?: {includeMembers?: true; organizationId?: string}): Promise<SanityProject[]>
4079
+ list(options?: {
4080
+ includeMembers?: true
4081
+ organizationId?: string
4082
+ onlyExplicitMembership?: boolean
4083
+ }): Promise<SanityProject[]>
4040
4084
  list(options?: {
4041
4085
  includeMembers?: false
4042
4086
  organizationId?: string
4087
+ onlyExplicitMembership?: boolean
4043
4088
  }): Promise<Omit<SanityProject, 'members'>[]>
4044
4089
  /**
4045
4090
  * Fetch a project by project ID
package/dist/index.d.ts CHANGED
@@ -1096,6 +1096,20 @@ export declare interface CurrentSanityUser {
1096
1096
  /** @public */
1097
1097
  export declare type DatasetAclMode = 'public' | 'private' | 'custom'
1098
1098
 
1099
+ /** @public */
1100
+ export declare type DatasetCreateOptions = {
1101
+ aclMode?: DatasetAclMode
1102
+ embeddings?: {
1103
+ enabled: boolean
1104
+ projection?: string
1105
+ }
1106
+ }
1107
+
1108
+ /** @public */
1109
+ export declare type DatasetEditOptions = {
1110
+ aclMode?: DatasetAclMode
1111
+ }
1112
+
1099
1113
  /** @public */
1100
1114
  export declare type DatasetResponse = {
1101
1115
  datasetName: string
@@ -1110,26 +1124,16 @@ export declare class DatasetsClient {
1110
1124
  * Create a new dataset with the given name
1111
1125
  *
1112
1126
  * @param name - Name of the dataset to create
1113
- * @param options - Options for the dataset
1127
+ * @param options - Options for the dataset, including optional embeddings configuration
1114
1128
  */
1115
- create(
1116
- name: string,
1117
- options?: {
1118
- aclMode?: DatasetAclMode
1119
- },
1120
- ): Promise<DatasetResponse>
1129
+ create(name: string, options?: DatasetCreateOptions): Promise<DatasetResponse>
1121
1130
  /**
1122
1131
  * Edit a dataset with the given name
1123
1132
  *
1124
1133
  * @param name - Name of the dataset to edit
1125
1134
  * @param options - New options for the dataset
1126
1135
  */
1127
- edit(
1128
- name: string,
1129
- options?: {
1130
- aclMode?: DatasetAclMode
1131
- },
1132
- ): Promise<DatasetResponse>
1136
+ edit(name: string, options?: DatasetEditOptions): Promise<DatasetResponse>
1133
1137
  /**
1134
1138
  * Delete a dataset with the given name
1135
1139
  *
@@ -1142,6 +1146,19 @@ export declare class DatasetsClient {
1142
1146
  * Fetch a list of datasets for the configured project
1143
1147
  */
1144
1148
  list(): Promise<DatasetsResponse>
1149
+ /**
1150
+ * Get embeddings settings for a dataset
1151
+ *
1152
+ * @param name - Name of the dataset
1153
+ */
1154
+ getEmbeddingsSettings(name: string): Promise<EmbeddingsSettings>
1155
+ /**
1156
+ * Edit embeddings settings for a dataset
1157
+ *
1158
+ * @param name - Name of the dataset
1159
+ * @param settings - Embeddings settings to apply
1160
+ */
1161
+ editEmbeddingsSettings(name: string, settings: EmbeddingsSettingsBody): Promise<void>
1145
1162
  }
1146
1163
 
1147
1164
  /** @public */
@@ -1347,6 +1364,19 @@ export declare interface EditReleaseAction {
1347
1364
  patch: PatchOperations
1348
1365
  }
1349
1366
 
1367
+ /** @public */
1368
+ export declare type EmbeddingsSettings = {
1369
+ enabled: boolean
1370
+ projection?: string
1371
+ status: string
1372
+ }
1373
+
1374
+ /** @public */
1375
+ export declare type EmbeddingsSettingsBody = {
1376
+ enabled: boolean
1377
+ projection?: string
1378
+ }
1379
+
1350
1380
  /** @public */
1351
1381
  export declare interface ErrorProps {
1352
1382
  message: string
@@ -2545,26 +2575,16 @@ export declare class ObservableDatasetsClient {
2545
2575
  * Create a new dataset with the given name
2546
2576
  *
2547
2577
  * @param name - Name of the dataset to create
2548
- * @param options - Options for the dataset
2578
+ * @param options - Options for the dataset, including optional embeddings configuration
2549
2579
  */
2550
- create(
2551
- name: string,
2552
- options?: {
2553
- aclMode?: DatasetAclMode
2554
- },
2555
- ): Observable<DatasetResponse>
2580
+ create(name: string, options?: DatasetCreateOptions): Observable<DatasetResponse>
2556
2581
  /**
2557
2582
  * Edit a dataset with the given name
2558
2583
  *
2559
2584
  * @param name - Name of the dataset to edit
2560
2585
  * @param options - New options for the dataset
2561
2586
  */
2562
- edit(
2563
- name: string,
2564
- options?: {
2565
- aclMode?: DatasetAclMode
2566
- },
2567
- ): Observable<DatasetResponse>
2587
+ edit(name: string, options?: DatasetEditOptions): Observable<DatasetResponse>
2568
2588
  /**
2569
2589
  * Delete a dataset with the given name
2570
2590
  *
@@ -2577,6 +2597,19 @@ export declare class ObservableDatasetsClient {
2577
2597
  * Fetch a list of datasets for the configured project
2578
2598
  */
2579
2599
  list(): Observable<DatasetsResponse>
2600
+ /**
2601
+ * Get embeddings settings for a dataset
2602
+ *
2603
+ * @param name - Name of the dataset
2604
+ */
2605
+ getEmbeddingsSettings(name: string): Observable<EmbeddingsSettings>
2606
+ /**
2607
+ * Edit embeddings settings for a dataset
2608
+ *
2609
+ * @param name - Name of the dataset
2610
+ * @param settings - Embeddings settings to apply
2611
+ */
2612
+ editEmbeddingsSettings(name: string, settings: EmbeddingsSettingsBody): Observable<void>
2580
2613
  }
2581
2614
 
2582
2615
  /** @internal */
@@ -2658,11 +2691,17 @@ export declare class ObservableProjectsClient {
2658
2691
  * @param options - Options for the list request
2659
2692
  * - `includeMembers` - Whether to include members in the response (default: true)
2660
2693
  * - `organizationId` - ID of the organization to fetch projects for
2694
+ * - `onlyExplicitMembership` - Only include projects where the user has explicit membership (default: false)
2661
2695
  */
2662
- list(options?: {includeMembers?: true; organizationId?: string}): Observable<SanityProject[]>
2696
+ list(options?: {
2697
+ includeMembers?: true
2698
+ organizationId?: string
2699
+ onlyExplicitMembership?: boolean
2700
+ }): Observable<SanityProject[]>
2663
2701
  list(options?: {
2664
2702
  includeMembers?: false
2665
2703
  organizationId?: string
2704
+ onlyExplicitMembership?: boolean
2666
2705
  }): Observable<Omit<SanityProject, 'members'>[]>
2667
2706
  /**
2668
2707
  * Fetch a project by project ID
@@ -4035,11 +4074,17 @@ export declare class ProjectsClient {
4035
4074
  * @param options - Options for the list request
4036
4075
  * - `includeMembers` - Whether to include members in the response (default: true)
4037
4076
  * - `organizationId` - ID of the organization to fetch projects for
4077
+ * - `onlyExplicitMembership` - Only include projects where the user has explicit membership (default: false)
4038
4078
  */
4039
- list(options?: {includeMembers?: true; organizationId?: string}): Promise<SanityProject[]>
4079
+ list(options?: {
4080
+ includeMembers?: true
4081
+ organizationId?: string
4082
+ onlyExplicitMembership?: boolean
4083
+ }): Promise<SanityProject[]>
4040
4084
  list(options?: {
4041
4085
  includeMembers?: false
4042
4086
  organizationId?: string
4087
+ onlyExplicitMembership?: boolean
4043
4088
  }): Promise<Omit<SanityProject, 'members'>[]>
4044
4089
  /**
4045
4090
  * Fetch a project by project ID
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getIt } from "get-it";
2
2
  import { adapter, environment } from "get-it";
3
3
  import { retry, jsonRequest, jsonResponse, progress, observable, debug, headers, agent } from "get-it/middleware";
4
- import { Observable, defer, of, isObservable, mergeMap, from, lastValueFrom, shareReplay, catchError, concat, throwError, timer, tap, finalize, share, merge, map as map$1, firstValueFrom } from "rxjs";
4
+ import { Observable, defer, isObservable, of, mergeMap, from, lastValueFrom, shareReplay, catchError, concat, timer, throwError, tap, finalize, share, merge, map as map$1, firstValueFrom } from "rxjs";
5
5
  import { isRecord } from "./_chunks-es/isRecord.js";
6
6
  import { stegaClean } from "./_chunks-es/stegaClean.js";
7
7
  import { combineLatestWith, map, filter, finalize as finalize$1 } from "rxjs/operators";
@@ -1360,7 +1360,7 @@ class ObservableDatasetsClient {
1360
1360
  * Create a new dataset with the given name
1361
1361
  *
1362
1362
  * @param name - Name of the dataset to create
1363
- * @param options - Options for the dataset
1363
+ * @param options - Options for the dataset, including optional embeddings configuration
1364
1364
  */
1365
1365
  create(name2, options) {
1366
1366
  return _modify(this.#client, this.#httpRequest, "PUT", name2, options);
@@ -1394,6 +1394,31 @@ class ObservableDatasetsClient {
1394
1394
  tag: null
1395
1395
  });
1396
1396
  }
1397
+ /**
1398
+ * Get embeddings settings for a dataset
1399
+ *
1400
+ * @param name - Name of the dataset
1401
+ */
1402
+ getEmbeddingsSettings(name2) {
1403
+ return resourceGuard("dataset", this.#client.config()), dataset(name2), _request(this.#client, this.#httpRequest, {
1404
+ uri: _embeddingsSettingsUri(this.#client, name2),
1405
+ tag: null
1406
+ });
1407
+ }
1408
+ /**
1409
+ * Edit embeddings settings for a dataset
1410
+ *
1411
+ * @param name - Name of the dataset
1412
+ * @param settings - Embeddings settings to apply
1413
+ */
1414
+ editEmbeddingsSettings(name2, settings) {
1415
+ return resourceGuard("dataset", this.#client.config()), dataset(name2), _request(this.#client, this.#httpRequest, {
1416
+ method: "PUT",
1417
+ uri: _embeddingsSettingsUri(this.#client, name2),
1418
+ body: settings,
1419
+ tag: null
1420
+ });
1421
+ }
1397
1422
  }
1398
1423
  class DatasetsClient {
1399
1424
  #client;
@@ -1405,7 +1430,7 @@ class DatasetsClient {
1405
1430
  * Create a new dataset with the given name
1406
1431
  *
1407
1432
  * @param name - Name of the dataset to create
1408
- * @param options - Options for the dataset
1433
+ * @param options - Options for the dataset, including optional embeddings configuration
1409
1434
  */
1410
1435
  create(name2, options) {
1411
1436
  return resourceGuard("dataset", this.#client.config()), lastValueFrom(
@@ -1442,6 +1467,39 @@ class DatasetsClient {
1442
1467
  _request(this.#client, this.#httpRequest, { uri, tag: null })
1443
1468
  );
1444
1469
  }
1470
+ /**
1471
+ * Get embeddings settings for a dataset
1472
+ *
1473
+ * @param name - Name of the dataset
1474
+ */
1475
+ getEmbeddingsSettings(name2) {
1476
+ return resourceGuard("dataset", this.#client.config()), dataset(name2), lastValueFrom(
1477
+ _request(this.#client, this.#httpRequest, {
1478
+ uri: _embeddingsSettingsUri(this.#client, name2),
1479
+ tag: null
1480
+ })
1481
+ );
1482
+ }
1483
+ /**
1484
+ * Edit embeddings settings for a dataset
1485
+ *
1486
+ * @param name - Name of the dataset
1487
+ * @param settings - Embeddings settings to apply
1488
+ */
1489
+ editEmbeddingsSettings(name2, settings) {
1490
+ return resourceGuard("dataset", this.#client.config()), dataset(name2), lastValueFrom(
1491
+ _request(this.#client, this.#httpRequest, {
1492
+ method: "PUT",
1493
+ uri: _embeddingsSettingsUri(this.#client, name2),
1494
+ body: settings,
1495
+ tag: null
1496
+ })
1497
+ );
1498
+ }
1499
+ }
1500
+ function _embeddingsSettingsUri(client, name2) {
1501
+ const config = client.config();
1502
+ return config.useProjectHostname === !1 ? `/projects/${config.projectId}/datasets/${name2}/settings/embeddings` : `/datasets/${name2}/settings/embeddings`;
1445
1503
  }
1446
1504
  function _modify(client, httpRequest, method, name2, options) {
1447
1505
  return resourceGuard("dataset", client.config()), dataset(name2), _request(client, httpRequest, {
@@ -1533,7 +1591,7 @@ class ObservableProjectsClient {
1533
1591
  }
1534
1592
  list(options) {
1535
1593
  const query = {}, uri = "/projects";
1536
- return options?.includeMembers === !1 && (query.includeMembers = "false"), options?.organizationId && (query.organizationId = options.organizationId), _request(this.#client, this.#httpRequest, { uri, query });
1594
+ return options?.includeMembers === !1 && (query.includeMembers = "false"), options?.organizationId && (query.organizationId = options.organizationId), options?.onlyExplicitMembership === !0 && (query.onlyExplicitMembership = "true"), _request(this.#client, this.#httpRequest, { uri, query });
1537
1595
  }
1538
1596
  /**
1539
1597
  * Fetch a project by project ID
@@ -1552,7 +1610,7 @@ class ProjectsClient {
1552
1610
  }
1553
1611
  list(options) {
1554
1612
  const query = {}, uri = "/projects";
1555
- return options?.includeMembers === !1 && (query.includeMembers = "false"), options?.organizationId && (query.organizationId = options.organizationId), lastValueFrom(_request(this.#client, this.#httpRequest, { uri, query }));
1613
+ return options?.includeMembers === !1 && (query.includeMembers = "false"), options?.organizationId && (query.organizationId = options.organizationId), options?.onlyExplicitMembership === !0 && (query.onlyExplicitMembership = "true"), lastValueFrom(_request(this.#client, this.#httpRequest, { uri, query }));
1556
1614
  }
1557
1615
  /**
1558
1616
  * Fetch a project by project ID
@@ -2677,7 +2735,7 @@ function defineDeprecatedCreateClient(createClient2) {
2677
2735
  return printNoDefaultExport(), createClient2(config);
2678
2736
  };
2679
2737
  }
2680
- var name = "@sanity/client", version = "7.15.0";
2738
+ var name = "@sanity/client", version = "7.17.0";
2681
2739
  const middleware = [
2682
2740
  debug({ verbose: !0, namespace: "sanity:client" }),
2683
2741
  headers({ "User-Agent": `${name} ${version}` }),