@datocms/cma-client 5.8.1 → 6.1.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 (63) hide show
  1. package/dist/cjs/generated/Client.js +1 -1
  2. package/dist/cjs/resources/Upload.js +139 -0
  3. package/dist/cjs/resources/Upload.js.map +1 -1
  4. package/dist/cjs/utilities/defaultFieldMetadata.js +130 -0
  5. package/dist/cjs/utilities/defaultFieldMetadata.js.map +1 -0
  6. package/dist/cjs/utilities/environmentSettings.js +65 -0
  7. package/dist/cjs/utilities/environmentSettings.js.map +1 -0
  8. package/dist/esm/generated/Client.js +25 -23
  9. package/dist/esm/generated/Client.js.map +1 -1
  10. package/dist/esm/generated/resources/BuildEvent.js +5 -44
  11. package/dist/esm/generated/resources/BuildEvent.js.map +1 -1
  12. package/dist/esm/generated/resources/Item.js +5 -44
  13. package/dist/esm/generated/resources/Item.js.map +1 -1
  14. package/dist/esm/generated/resources/ItemVersion.js +5 -44
  15. package/dist/esm/generated/resources/ItemVersion.js.map +1 -1
  16. package/dist/esm/generated/resources/SearchIndexEvent.js +5 -44
  17. package/dist/esm/generated/resources/SearchIndexEvent.js.map +1 -1
  18. package/dist/esm/generated/resources/SearchResult.js +5 -44
  19. package/dist/esm/generated/resources/SearchResult.js.map +1 -1
  20. package/dist/esm/generated/resources/Upload.js +5 -44
  21. package/dist/esm/generated/resources/Upload.js.map +1 -1
  22. package/dist/esm/generated/resources/UploadSmartTag.js +5 -44
  23. package/dist/esm/generated/resources/UploadSmartTag.js.map +1 -1
  24. package/dist/esm/generated/resources/UploadTag.js +5 -44
  25. package/dist/esm/generated/resources/UploadTag.js.map +1 -1
  26. package/dist/esm/generated/resources/WebhookCall.js +5 -44
  27. package/dist/esm/generated/resources/WebhookCall.js.map +1 -1
  28. package/dist/esm/index.d.ts +1 -1
  29. package/dist/esm/resources/Role.js +23 -25
  30. package/dist/esm/resources/Role.js.map +1 -1
  31. package/dist/esm/resources/Upload.d.ts +53 -40
  32. package/dist/esm/resources/Upload.js +68 -0
  33. package/dist/esm/resources/Upload.js.map +1 -1
  34. package/dist/esm/utilities/buildBlockRecord.js +4 -1
  35. package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
  36. package/dist/esm/utilities/defaultFieldMetadata.d.ts +84 -0
  37. package/dist/esm/utilities/defaultFieldMetadata.js +113 -0
  38. package/dist/esm/utilities/defaultFieldMetadata.js.map +1 -0
  39. package/dist/esm/utilities/duplicateBlockRecord.js +25 -47
  40. package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -1
  41. package/dist/esm/utilities/environmentSettings.d.ts +35 -0
  42. package/dist/esm/utilities/environmentSettings.js +49 -0
  43. package/dist/esm/utilities/environmentSettings.js.map +1 -0
  44. package/dist/esm/utilities/inspectItem.js +1 -12
  45. package/dist/esm/utilities/inspectItem.js.map +1 -1
  46. package/dist/esm/utilities/nonRecursiveBlocks.js +109 -260
  47. package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -1
  48. package/dist/esm/utilities/normalizedFieldValues.js +30 -53
  49. package/dist/esm/utilities/normalizedFieldValues.js.map +1 -1
  50. package/dist/esm/utilities/recursiveBlocks.js +108 -131
  51. package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
  52. package/dist/esm/utilities/schemaRepository.js +266 -333
  53. package/dist/esm/utilities/schemaRepository.js.map +1 -1
  54. package/dist/types/index.d.ts +1 -1
  55. package/dist/types/resources/Upload.d.ts +53 -40
  56. package/dist/types/utilities/defaultFieldMetadata.d.ts +84 -0
  57. package/dist/types/utilities/environmentSettings.d.ts +35 -0
  58. package/package.json +3 -3
  59. package/src/generated/Client.ts +1 -1
  60. package/src/index.ts +1 -1
  61. package/src/resources/Upload.ts +87 -31
  62. package/src/utilities/defaultFieldMetadata.ts +193 -0
  63. package/src/utilities/environmentSettings.ts +80 -0
@@ -1 +1 @@
1
- {"version":3,"file":"schemaRepository.js","sourceRoot":"","sources":["../../../src/utilities/schemaRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaRepository.js","sourceRoot":"","sources":["../../../src/utilities/schemaRepository.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export * from './fieldTypes/index.js';
4
4
  export { Client } from './generated/Client.js';
5
5
  export type { ClientConfigOptions } from './generated/Client.js';
6
6
  export * as Resources from './generated/resources/index.js';
7
- export type { UploadLocaleKeyedDefaultFieldMetadata, UploadLocaleKeyedDefaultFieldMetadataInRequest, } from './resources/Upload.js';
7
+ export type { UploadLocaleKeyedDefaultFieldMetadata, UploadLocaleKeyedDefaultFieldMetadataInRequest, } from './utilities/defaultFieldMetadata.js';
8
8
  export * from './utilities/buildBlockRecord.js';
9
9
  export * from './utilities/duplicateBlockRecord.js';
10
10
  export * from './utilities/fieldsContainingReferences.js';
@@ -1,46 +1,59 @@
1
+ import type * as ApiTypes from '../generated/ApiTypes.js';
1
2
  import BaseUpload from '../generated/resources/Upload.js';
2
3
  /**
3
- * Legacy locale-keyed shape of an upload's `default_field_metadata`, as
4
- * returned and accepted by environments where the `non_localized_focal_points`
5
- * opt-in is inactive.
4
+ * `default_field_metadata` travels in one of two shapes, and which one an
5
+ * environment speaks depends on the `non_localized_focal_points` opt-in — each
6
+ * rejects the other with `422 INVALID_FORMAT`. This resource hides that: you
7
+ * always read and write the field-keyed shape the types describe, and the
8
+ * legacy one is converted to and from as needed.
6
9
  *
7
- * The generated `Upload.default_field_metadata` type reflects the new
8
- * field-keyed shape (the path forward). This type is provided so consumers
9
- * targeting opted-out environments during the transition can cast the
10
- * response value to a structurally accurate shape.
10
+ * The raw methods are deliberately left alone: they are the escape hatch for
11
+ * anyone who needs to see what actually goes over the wire.
11
12
  */
12
- export type UploadLocaleKeyedDefaultFieldMetadata = {
13
- [localeCode: string]: {
14
- alt: string | null;
15
- title: string | null;
16
- custom_data: {
17
- [k: string]: unknown;
18
- };
19
- focal_point: {
20
- x: number;
21
- y: number;
22
- } | null;
23
- poster_time: number | null;
24
- };
25
- };
26
- /**
27
- * Legacy locale-keyed shape accepted on `create` / `update` request bodies
28
- * by environments where the `non_localized_focal_points` opt-in is inactive.
29
- * All fields are optional, matching the partial-write contract.
30
- */
31
- export type UploadLocaleKeyedDefaultFieldMetadataInRequest = {
32
- [localeCode: string]: {
33
- alt?: string | null;
34
- title?: string | null;
35
- custom_data?: {
36
- [k: string]: unknown;
37
- };
38
- focal_point?: {
39
- x: number;
40
- y: number;
41
- } | null;
42
- poster_time?: number | null;
43
- };
44
- };
45
13
  export default class UploadResource extends BaseUpload {
14
+ /**
15
+ * Create a new upload
16
+ *
17
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/create
18
+ *
19
+ * @throws {ApiError}
20
+ * @throws {TimeoutError}
21
+ */
22
+ create(body: ApiTypes.UploadCreateSchema): Promise<ApiTypes.Upload>;
23
+ /**
24
+ * Update an upload
25
+ *
26
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/update
27
+ *
28
+ * @throws {ApiError}
29
+ * @throws {TimeoutError}
30
+ */
31
+ update(uploadId: string | ApiTypes.UploadData, body: ApiTypes.UploadUpdateSchema, queryParams?: ApiTypes.UploadUpdateHrefSchema): Promise<ApiTypes.Upload>;
32
+ /**
33
+ * Retrieve an upload
34
+ *
35
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/self
36
+ *
37
+ * @throws {ApiError}
38
+ * @throws {TimeoutError}
39
+ */
40
+ find(uploadId: string | ApiTypes.UploadData): Promise<ApiTypes.Upload>;
41
+ /**
42
+ * List all uploads
43
+ *
44
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/instances
45
+ *
46
+ * @throws {ApiError}
47
+ * @throws {TimeoutError}
48
+ */
49
+ list(queryParams?: ApiTypes.UploadInstancesHrefSchema): Promise<ApiTypes.Upload[]>;
50
+ /**
51
+ * Async iterator to auto-paginate over elements returned by list()
52
+ *
53
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/instances
54
+ *
55
+ * @throws {ApiError}
56
+ * @throws {TimeoutError}
57
+ */
58
+ listPagedIterator(...args: Parameters<BaseUpload['listPagedIterator']>): AsyncGenerator<ApiTypes.Upload, void, unknown>;
46
59
  }
@@ -0,0 +1,84 @@
1
+ import type * as ApiTypes from '../generated/ApiTypes.js';
2
+ import type { Client } from '../generated/Client.js';
3
+ /**
4
+ * Legacy locale-keyed shape of an upload's `default_field_metadata`, as
5
+ * returned and accepted by environments where the `non_localized_focal_points`
6
+ * opt-in is inactive.
7
+ *
8
+ * The `uploads` resource converts to and from this shape on your behalf, so you
9
+ * only ever see the field-keyed one. The type is exported for those working at
10
+ * the raw layer, which performs no conversion.
11
+ */
12
+ export type UploadLocaleKeyedDefaultFieldMetadata = {
13
+ [localeCode: string]: {
14
+ alt: string | null;
15
+ title: string | null;
16
+ custom_data: {
17
+ [k: string]: unknown;
18
+ };
19
+ focal_point: {
20
+ x: number;
21
+ y: number;
22
+ } | null;
23
+ poster_time: number | null;
24
+ };
25
+ };
26
+ /**
27
+ * Legacy locale-keyed shape accepted on `create` / `update` request bodies
28
+ * by environments where the `non_localized_focal_points` opt-in is inactive.
29
+ * All fields are optional, matching the partial-write contract.
30
+ */
31
+ export type UploadLocaleKeyedDefaultFieldMetadataInRequest = {
32
+ [localeCode: string]: {
33
+ alt?: string | null;
34
+ title?: string | null;
35
+ custom_data?: {
36
+ [k: string]: unknown;
37
+ };
38
+ focal_point?: {
39
+ x: number;
40
+ y: number;
41
+ } | null;
42
+ poster_time?: number | null;
43
+ };
44
+ };
45
+ export type DefaultFieldMetadata = ApiTypes.Upload['default_field_metadata'];
46
+ export type DefaultFieldMetadataInRequest = NonNullable<ApiTypes.UploadUpdateSchema['default_field_metadata']>;
47
+ /**
48
+ * Tells the two wire shapes apart. A field-keyed payload always carries a
49
+ * top-level `focal_point`, and a locale-keyed one never can: its keys are
50
+ * locale codes, and no locale code is the literal string `focal_point`.
51
+ */
52
+ export declare function isFieldKeyed(metadata: DefaultFieldMetadata | UploadLocaleKeyedDefaultFieldMetadata): metadata is DefaultFieldMetadata;
53
+ /**
54
+ * Collapses a legacy response payload into the field-keyed shape. The API
55
+ * replicates the non-localized values into every locale entry on read, so every
56
+ * entry carries the same value and the first one is enough.
57
+ */
58
+ export declare function fromLocaleKeyed(byLocale: UploadLocaleKeyedDefaultFieldMetadata): DefaultFieldMetadata;
59
+ /**
60
+ * Rewrites a field-keyed patch into the legacy locale-keyed one: the localized
61
+ * keys are pivoted per locale, and the non-localized ones ride along on a
62
+ * single entry. The API takes `focal_point` / `poster_time` off the first entry
63
+ * that carries one and ignores the rest, so writing them once is enough — on
64
+ * any locale the patch already touches, or the environment's first one when it
65
+ * touches none.
66
+ */
67
+ export declare function toLocaleKeyed({ alt, title, custom_data, focal_point, poster_time, }: DefaultFieldMetadataInRequest, environmentLocales: string[]): UploadLocaleKeyedDefaultFieldMetadataInRequest;
68
+ /**
69
+ * Normalizes an upload as served by the API into the field-keyed shape the
70
+ * `Upload` type describes. Returns the entity untouched — no copy — when it is
71
+ * already field-keyed, which is the case for every environment that has taken
72
+ * the opt-in.
73
+ */
74
+ export declare function normalizeUpload(upload: ApiTypes.Upload): ApiTypes.Upload;
75
+ /**
76
+ * Encodes a `create` / `update` body into the shape the environment accepts.
77
+ *
78
+ * The environment is only consulted when there is metadata to encode, so a
79
+ * client that never writes asset metadata never asks — and when it does ask,
80
+ * the lookup is memoized and shared, so a batch of writes pays for one.
81
+ */
82
+ export declare function encodeDefaultFieldMetadata<T extends {
83
+ default_field_metadata?: DefaultFieldMetadataInRequest;
84
+ }>(client: Client, body: T): Promise<T>;
@@ -0,0 +1,35 @@
1
+ import type * as ApiTypes from '../generated/ApiTypes.js';
2
+ import type { Client } from '../generated/Client.js';
3
+ /**
4
+ * Every boolean an environment reports about itself in `site.meta`: the
5
+ * product-update opt-ins (`improved_items_listing`, `milliseconds_in_datetime`,
6
+ * `non_localized_focal_points`, …) plus the plain state flags.
7
+ *
8
+ * Derived from the generated type rather than listed, so a flag added to the
9
+ * schema is usable here as soon as the types are regenerated, with nothing to
10
+ * keep in sync.
11
+ */
12
+ export type EnvironmentFlag = {
13
+ [K in keyof ApiTypes.SiteMeta]-?: boolean extends ApiTypes.SiteMeta[K] ? K : never;
14
+ }[keyof ApiTypes.SiteMeta];
15
+ /**
16
+ * `site.find()`, memoized per client for {@link TTL_MS}.
17
+ *
18
+ * The promise is cached rather than its result, so concurrent callers share one
19
+ * request instead of firing one each — the difference between one lookup and
20
+ * ten thousand when a batch job starts. A failed lookup is not cached.
21
+ *
22
+ * Everything expires on the same clock, including flags that in practice never
23
+ * change back: re-reading `site` every twenty minutes costs nothing next to the
24
+ * work these clients are doing, and it means a client stays correct across an
25
+ * activation that happens while it runs.
26
+ */
27
+ export declare function fetchEnvironmentSettings(client: Client): Promise<ApiTypes.Site>;
28
+ /**
29
+ * Whether a `site.meta` flag is on for the environment this client talks to.
30
+ *
31
+ * An API predating a flag omits it from the meta entirely, which the types
32
+ * don't admit but runtime does — so anything short of an explicit `true` reads
33
+ * as off.
34
+ */
35
+ export declare function isEnvironmentFlagActive(client: Client, flag: EnvironmentFlag): Promise<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datocms/cma-client",
3
- "version": "5.8.1",
3
+ "version": "6.1.0",
4
4
  "description": "JS client for DatoCMS REST Content Management API",
5
5
  "keywords": [
6
6
  "datocms",
@@ -48,12 +48,12 @@
48
48
  "url": "https://github.com/datocms/js-rest-api-clients/issues"
49
49
  },
50
50
  "dependencies": {
51
- "@datocms/rest-client-utils": "^5.8.0",
51
+ "@datocms/rest-client-utils": "^6.1.0",
52
52
  "datocms-structured-text-utils": "^5.1.4",
53
53
  "uuid": "^11.1.1"
54
54
  },
55
55
  "devDependencies": {
56
- "@datocms/dashboard-client": "^5.8.0"
56
+ "@datocms/dashboard-client": "^6.1.0"
57
57
  },
58
58
  "gitHead": "ac4164968026ba62a2841d31d2b60c31eadb2cc8"
59
59
  }
@@ -151,7 +151,7 @@ export class Client {
151
151
  ...this.config,
152
152
  ...options,
153
153
  logFn: this.config.logFn || console.log,
154
- userAgent: '@datocms/cma-client v5.8.1',
154
+ userAgent: '@datocms/cma-client v6.1.0',
155
155
  baseUrl: this.baseUrl,
156
156
  preCallStack: new Error().stack,
157
157
  extraHeaders: {
package/src/index.ts CHANGED
@@ -7,7 +7,7 @@ export * as Resources from './generated/resources/index.js';
7
7
  export type {
8
8
  UploadLocaleKeyedDefaultFieldMetadata,
9
9
  UploadLocaleKeyedDefaultFieldMetadataInRequest,
10
- } from './resources/Upload.js';
10
+ } from './utilities/defaultFieldMetadata.js';
11
11
  export * from './utilities/buildBlockRecord.js';
12
12
  export * from './utilities/duplicateBlockRecord.js';
13
13
  export * from './utilities/fieldsContainingReferences.js';
@@ -1,38 +1,94 @@
1
+ import type * as ApiTypes from '../generated/ApiTypes.js';
1
2
  import BaseUpload from '../generated/resources/Upload.js';
3
+ import {
4
+ encodeDefaultFieldMetadata,
5
+ normalizeUpload,
6
+ } from '../utilities/defaultFieldMetadata.js';
2
7
 
3
8
  /**
4
- * Legacy locale-keyed shape of an upload's `default_field_metadata`, as
5
- * returned and accepted by environments where the `non_localized_focal_points`
6
- * opt-in is inactive.
9
+ * `default_field_metadata` travels in one of two shapes, and which one an
10
+ * environment speaks depends on the `non_localized_focal_points` opt-in — each
11
+ * rejects the other with `422 INVALID_FORMAT`. This resource hides that: you
12
+ * always read and write the field-keyed shape the types describe, and the
13
+ * legacy one is converted to and from as needed.
7
14
  *
8
- * The generated `Upload.default_field_metadata` type reflects the new
9
- * field-keyed shape (the path forward). This type is provided so consumers
10
- * targeting opted-out environments during the transition can cast the
11
- * response value to a structurally accurate shape.
15
+ * The raw methods are deliberately left alone: they are the escape hatch for
16
+ * anyone who needs to see what actually goes over the wire.
12
17
  */
13
- export type UploadLocaleKeyedDefaultFieldMetadata = {
14
- [localeCode: string]: {
15
- alt: string | null;
16
- title: string | null;
17
- custom_data: { [k: string]: unknown };
18
- focal_point: { x: number; y: number } | null;
19
- poster_time: number | null;
20
- };
21
- };
18
+ export default class UploadResource extends BaseUpload {
19
+ /**
20
+ * Create a new upload
21
+ *
22
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/create
23
+ *
24
+ * @throws {ApiError}
25
+ * @throws {TimeoutError}
26
+ */
27
+ async create(body: ApiTypes.UploadCreateSchema) {
28
+ return normalizeUpload(
29
+ await super.create(await encodeDefaultFieldMetadata(this.client, body)),
30
+ );
31
+ }
22
32
 
23
- /**
24
- * Legacy locale-keyed shape accepted on `create` / `update` request bodies
25
- * by environments where the `non_localized_focal_points` opt-in is inactive.
26
- * All fields are optional, matching the partial-write contract.
27
- */
28
- export type UploadLocaleKeyedDefaultFieldMetadataInRequest = {
29
- [localeCode: string]: {
30
- alt?: string | null;
31
- title?: string | null;
32
- custom_data?: { [k: string]: unknown };
33
- focal_point?: { x: number; y: number } | null;
34
- poster_time?: number | null;
35
- };
36
- };
33
+ /**
34
+ * Update an upload
35
+ *
36
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/update
37
+ *
38
+ * @throws {ApiError}
39
+ * @throws {TimeoutError}
40
+ */
41
+ async update(
42
+ uploadId: string | ApiTypes.UploadData,
43
+ body: ApiTypes.UploadUpdateSchema,
44
+ queryParams?: ApiTypes.UploadUpdateHrefSchema,
45
+ ) {
46
+ return normalizeUpload(
47
+ await super.update(
48
+ uploadId,
49
+ await encodeDefaultFieldMetadata(this.client, body),
50
+ queryParams,
51
+ ),
52
+ );
53
+ }
54
+
55
+ /**
56
+ * Retrieve an upload
57
+ *
58
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/self
59
+ *
60
+ * @throws {ApiError}
61
+ * @throws {TimeoutError}
62
+ */
63
+ async find(uploadId: string | ApiTypes.UploadData) {
64
+ return normalizeUpload(await super.find(uploadId));
65
+ }
66
+
67
+ /**
68
+ * List all uploads
69
+ *
70
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/instances
71
+ *
72
+ * @throws {ApiError}
73
+ * @throws {TimeoutError}
74
+ */
75
+ async list(queryParams?: ApiTypes.UploadInstancesHrefSchema) {
76
+ return (await super.list(queryParams)).map(normalizeUpload);
77
+ }
37
78
 
38
- export default class UploadResource extends BaseUpload {}
79
+ /**
80
+ * Async iterator to auto-paginate over elements returned by list()
81
+ *
82
+ * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/instances
83
+ *
84
+ * @throws {ApiError}
85
+ * @throws {TimeoutError}
86
+ */
87
+ async *listPagedIterator(
88
+ ...args: Parameters<BaseUpload['listPagedIterator']>
89
+ ) {
90
+ for await (const upload of super.listPagedIterator(...args)) {
91
+ yield normalizeUpload(upload);
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,193 @@
1
+ import type * as ApiTypes from '../generated/ApiTypes.js';
2
+ import type { Client } from '../generated/Client.js';
3
+ import {
4
+ fetchEnvironmentSettings,
5
+ isEnvironmentFlagActive,
6
+ } from './environmentSettings.js';
7
+
8
+ /**
9
+ * Legacy locale-keyed shape of an upload's `default_field_metadata`, as
10
+ * returned and accepted by environments where the `non_localized_focal_points`
11
+ * opt-in is inactive.
12
+ *
13
+ * The `uploads` resource converts to and from this shape on your behalf, so you
14
+ * only ever see the field-keyed one. The type is exported for those working at
15
+ * the raw layer, which performs no conversion.
16
+ */
17
+ export type UploadLocaleKeyedDefaultFieldMetadata = {
18
+ [localeCode: string]: {
19
+ alt: string | null;
20
+ title: string | null;
21
+ custom_data: { [k: string]: unknown };
22
+ focal_point: { x: number; y: number } | null;
23
+ poster_time: number | null;
24
+ };
25
+ };
26
+
27
+ /**
28
+ * Legacy locale-keyed shape accepted on `create` / `update` request bodies
29
+ * by environments where the `non_localized_focal_points` opt-in is inactive.
30
+ * All fields are optional, matching the partial-write contract.
31
+ */
32
+ export type UploadLocaleKeyedDefaultFieldMetadataInRequest = {
33
+ [localeCode: string]: {
34
+ alt?: string | null;
35
+ title?: string | null;
36
+ custom_data?: { [k: string]: unknown };
37
+ focal_point?: { x: number; y: number } | null;
38
+ poster_time?: number | null;
39
+ };
40
+ };
41
+
42
+ export type DefaultFieldMetadata = ApiTypes.Upload['default_field_metadata'];
43
+
44
+ export type DefaultFieldMetadataInRequest = NonNullable<
45
+ ApiTypes.UploadUpdateSchema['default_field_metadata']
46
+ >;
47
+
48
+ /**
49
+ * Tells the two wire shapes apart. A field-keyed payload always carries a
50
+ * top-level `focal_point`, and a locale-keyed one never can: its keys are
51
+ * locale codes, and no locale code is the literal string `focal_point`.
52
+ */
53
+ export function isFieldKeyed(
54
+ metadata: DefaultFieldMetadata | UploadLocaleKeyedDefaultFieldMetadata,
55
+ ): metadata is DefaultFieldMetadata {
56
+ return 'focal_point' in metadata;
57
+ }
58
+
59
+ /**
60
+ * Collapses a legacy response payload into the field-keyed shape. The API
61
+ * replicates the non-localized values into every locale entry on read, so every
62
+ * entry carries the same value and the first one is enough.
63
+ */
64
+ export function fromLocaleKeyed(
65
+ byLocale: UploadLocaleKeyedDefaultFieldMetadata,
66
+ ): DefaultFieldMetadata {
67
+ const alt: Record<string, string | null> = {};
68
+ const title: Record<string, string | null> = {};
69
+ const customData: Record<string, { [k: string]: unknown }> = {};
70
+
71
+ let focalPoint: { x: number; y: number } | null = null;
72
+ let posterTime: number | null = null;
73
+ let seenAnEntry = false;
74
+
75
+ for (const [locale, entry] of Object.entries(byLocale)) {
76
+ alt[locale] = entry.alt;
77
+ title[locale] = entry.title;
78
+ customData[locale] = entry.custom_data;
79
+
80
+ if (!seenAnEntry) {
81
+ seenAnEntry = true;
82
+ focalPoint = entry.focal_point;
83
+ posterTime = entry.poster_time;
84
+ }
85
+ }
86
+
87
+ return {
88
+ alt,
89
+ title,
90
+ custom_data: customData,
91
+ focal_point: focalPoint,
92
+ poster_time: posterTime,
93
+ };
94
+ }
95
+
96
+ /**
97
+ * Rewrites a field-keyed patch into the legacy locale-keyed one: the localized
98
+ * keys are pivoted per locale, and the non-localized ones ride along on a
99
+ * single entry. The API takes `focal_point` / `poster_time` off the first entry
100
+ * that carries one and ignores the rest, so writing them once is enough — on
101
+ * any locale the patch already touches, or the environment's first one when it
102
+ * touches none.
103
+ */
104
+ export function toLocaleKeyed(
105
+ {
106
+ alt,
107
+ title,
108
+ custom_data,
109
+ focal_point,
110
+ poster_time,
111
+ }: DefaultFieldMetadataInRequest,
112
+ environmentLocales: string[],
113
+ ): UploadLocaleKeyedDefaultFieldMetadataInRequest {
114
+ const result: UploadLocaleKeyedDefaultFieldMetadataInRequest = {};
115
+
116
+ function entryFor(locale: string) {
117
+ const entry = result[locale] ?? {};
118
+ result[locale] = entry;
119
+ return entry;
120
+ }
121
+
122
+ for (const [locale, value] of Object.entries(alt ?? {})) {
123
+ entryFor(locale).alt = value;
124
+ }
125
+
126
+ for (const [locale, value] of Object.entries(title ?? {})) {
127
+ entryFor(locale).title = value;
128
+ }
129
+
130
+ for (const [locale, value] of Object.entries(custom_data ?? {})) {
131
+ entryFor(locale).custom_data = value;
132
+ }
133
+
134
+ if (focal_point !== undefined || poster_time !== undefined) {
135
+ const locale = Object.keys(result)[0] ?? environmentLocales[0];
136
+
137
+ if (locale) {
138
+ if (focal_point !== undefined) entryFor(locale).focal_point = focal_point;
139
+ if (poster_time !== undefined) entryFor(locale).poster_time = poster_time;
140
+ }
141
+ }
142
+
143
+ return result;
144
+ }
145
+
146
+ /**
147
+ * Normalizes an upload as served by the API into the field-keyed shape the
148
+ * `Upload` type describes. Returns the entity untouched — no copy — when it is
149
+ * already field-keyed, which is the case for every environment that has taken
150
+ * the opt-in.
151
+ */
152
+ export function normalizeUpload(upload: ApiTypes.Upload): ApiTypes.Upload {
153
+ const metadata = upload.default_field_metadata;
154
+
155
+ if (!metadata || isFieldKeyed(metadata)) {
156
+ return upload;
157
+ }
158
+
159
+ return { ...upload, default_field_metadata: fromLocaleKeyed(metadata) };
160
+ }
161
+
162
+ /**
163
+ * Encodes a `create` / `update` body into the shape the environment accepts.
164
+ *
165
+ * The environment is only consulted when there is metadata to encode, so a
166
+ * client that never writes asset metadata never asks — and when it does ask,
167
+ * the lookup is memoized and shared, so a batch of writes pays for one.
168
+ */
169
+ export async function encodeDefaultFieldMetadata<
170
+ T extends { default_field_metadata?: DefaultFieldMetadataInRequest },
171
+ >(client: Client, body: T): Promise<T> {
172
+ const metadata = body.default_field_metadata;
173
+
174
+ if (!metadata) {
175
+ return body;
176
+ }
177
+
178
+ if (await isEnvironmentFlagActive(client, 'non_localized_focal_points')) {
179
+ return body;
180
+ }
181
+
182
+ const { locales } = await fetchEnvironmentSettings(client);
183
+
184
+ return {
185
+ ...body,
186
+ // The declared type describes the field-keyed shape, which is what callers
187
+ // write. The legacy payload is this module's business.
188
+ default_field_metadata: toLocaleKeyed(
189
+ metadata,
190
+ locales,
191
+ ) as unknown as DefaultFieldMetadataInRequest,
192
+ };
193
+ }