contentful-management 11.55.0-canary.9 → 11.55.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 (31) hide show
  1. package/README.md +0 -14
  2. package/dist/contentful-management.browser.js +290 -240
  3. package/dist/contentful-management.browser.js.map +1 -1
  4. package/dist/contentful-management.browser.min.js +1 -1
  5. package/dist/contentful-management.node.js +204 -212
  6. package/dist/contentful-management.node.js.map +1 -1
  7. package/dist/contentful-management.node.min.js +1 -1
  8. package/dist/es-modules/adapters/REST/endpoints/app-action-call.js +59 -0
  9. package/dist/es-modules/adapters/REST/endpoints/entry.js +6 -31
  10. package/dist/es-modules/adapters/REST/endpoints/index.js +0 -2
  11. package/dist/es-modules/adapters/REST/endpoints/release.js +0 -24
  12. package/dist/es-modules/common-types.js +2 -0
  13. package/dist/es-modules/contentful-management.js +1 -1
  14. package/dist/es-modules/create-environment-api.js +39 -4
  15. package/dist/es-modules/entities/app-action-call.js +35 -0
  16. package/dist/es-modules/plain/plain-client.js +4 -9
  17. package/dist/typings/adapters/REST/endpoints/app-action-call.d.ts +3 -0
  18. package/dist/typings/adapters/REST/endpoints/index.d.ts +0 -2
  19. package/dist/typings/common-types.d.ts +39 -137
  20. package/dist/typings/create-entry-api.d.ts +1 -1
  21. package/dist/typings/create-environment-api.d.ts +31 -9
  22. package/dist/typings/entities/app-action-call.d.ts +37 -1
  23. package/dist/typings/entities/entry.d.ts +3 -3
  24. package/dist/typings/entities/release.d.ts +1 -18
  25. package/dist/typings/export-types.d.ts +1 -1
  26. package/dist/typings/plain/common-types.d.ts +17 -92
  27. package/dist/typings/plain/entities/app-action-call.d.ts +84 -2
  28. package/dist/typings/plain/wrappers/wrap.d.ts +0 -2
  29. package/package.json +2 -6
  30. package/dist/es-modules/adapters/REST/endpoints/release-entry.js +0 -63
  31. package/dist/typings/adapters/REST/endpoints/release-entry.d.ts +0 -7
@@ -1,6 +1,6 @@
1
1
  import type { RawAxiosRequestConfig, RawAxiosRequestHeaders } from 'axios';
2
2
  import type { OpPatch } from 'json-patch';
3
- import type { BasicCursorPaginationOptions, CollectionProp, CreateReleaseEntryParams, CreateWithIdReleaseEntryParams, CursorPaginatedCollectionProp, EnvironmentTemplateParams, GetBulkActionParams, GetContentTypeParams, GetEntryParams, GetEnvironmentTemplateParams, GetManyEntryParams, GetManyReleaseEntryParams, GetOrganizationMembershipParams, GetOrganizationParams, GetReleaseEntryParams, GetReleaseParams, GetSnapshotForContentTypeParams, GetSnapshotForEntryParams, GetSpaceEnvironmentParams, GetSpaceParams, KeyValueMap, PatchEntryParams, PatchReleaseEntryParams, QueryParams, ReleaseEnvironmentParams, UpdateEntryParams, UpdateReleaseEntryParams } from '../common-types';
3
+ import type { BasicCursorPaginationOptions, CollectionProp, CursorPaginatedCollectionProp, EnvironmentTemplateParams, GetBulkActionParams, GetContentTypeParams, GetEnvironmentTemplateParams, GetOrganizationMembershipParams, GetOrganizationParams, GetReleaseParams, GetSnapshotForContentTypeParams, GetSnapshotForEntryParams, GetSpaceEnvironmentParams, GetSpaceParams, KeyValueMap, QueryParams } from '../common-types';
4
4
  import type { AccessTokenProps, CreatePersonalAccessTokenProps as CreatePATProps } from '../entities/access-token';
5
5
  import type { ApiKeyProps, CreateApiKeyProps } from '../entities/api-key';
6
6
  import type { AssetFileProp, AssetProcessingForLocale, AssetProps, CreateAssetProps } from '../entities/asset';
@@ -14,7 +14,7 @@ import type { CreateOrganizationInvitationProps, OrganizationInvitationProps } f
14
14
  import type { OrganizationMembershipProps } from '../entities/organization-membership';
15
15
  import type { CreatePersonalAccessTokenProps, PersonalAccessTokenProps } from '../entities/personal-access-token';
16
16
  import type { PreviewApiKeyProps } from '../entities/preview-api-key';
17
- import type { ReleasePayload, ReleasePayloadV2, ReleaseProps, ReleaseQueryOptions, ReleaseValidatePayload } from '../entities/release';
17
+ import type { ReleasePayload, ReleaseProps, ReleaseQueryOptions, ReleaseValidatePayload } from '../entities/release';
18
18
  import type { ReleaseActionProps, ReleaseActionQueryOptions } from '../entities/release-action';
19
19
  import type { CreateUpdateScheduledActionProps, ScheduledActionProps } from '../entities/scheduled-action';
20
20
  import type { SnapshotProps } from '../entities/snapshot';
@@ -162,26 +162,17 @@ export type PlainClientAPI = {
162
162
  user: UserPlainClientAPI;
163
163
  entry: {
164
164
  getPublished<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & QueryParams>, rawData?: unknown, headers?: RawAxiosRequestHeaders): Promise<CollectionProp<EntryProps<T>>>;
165
- getMany<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetManyEntryParams & QueryParams>, rawData?: unknown, headers?: RawAxiosRequestHeaders): Promise<CollectionProp<EntryProps<T, {
166
- release: {
167
- sys: {
168
- type: 'Link';
169
- linkType: 'Entry' | 'Asset';
170
- id: string;
171
- };
172
- };
173
- }>>>;
174
- get<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetEntryParams & QueryParams>, rawData?: unknown, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T, {
175
- release: {
176
- sys: {
177
- type: 'Link';
178
- linkType: 'Entry' | 'Asset';
179
- id: string;
180
- };
181
- };
182
- }>>;
183
- update<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<UpdateEntryParams & QueryParams>, rawData: EntryProps<T>, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T>>;
184
- patch<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<PatchEntryParams & QueryParams>, rawData: OpPatch[], headers?: RawAxiosRequestHeaders): Promise<EntryProps<T>>;
165
+ getMany<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & QueryParams>, rawData?: unknown, headers?: RawAxiosRequestHeaders): Promise<CollectionProp<EntryProps<T>>>;
166
+ get<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & {
167
+ entryId: string;
168
+ }>, rawData?: unknown, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T>>;
169
+ update<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & {
170
+ entryId: string;
171
+ }>, rawData: EntryProps<T>, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T>>;
172
+ patch<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & {
173
+ entryId: string;
174
+ version?: number;
175
+ }>, rawData: OpPatch[], headers?: RawAxiosRequestHeaders): Promise<EntryProps<T>>;
185
176
  delete(params: OptionalDefaults<GetSpaceEnvironmentParams & {
186
177
  entryId: string;
187
178
  }>): Promise<any>;
@@ -201,21 +192,11 @@ export type PlainClientAPI = {
201
192
  }>): Promise<EntryProps<T>>;
202
193
  create<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & {
203
194
  contentTypeId: string;
204
- releaseId?: string;
205
- } & QueryParams>, rawData: CreateEntryProps<T>): Promise<EntryProps<T>>;
195
+ }>, rawData: CreateEntryProps<T>): Promise<EntryProps<T>>;
206
196
  createWithId<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetSpaceEnvironmentParams & {
207
197
  entryId: string;
208
198
  contentTypeId: string;
209
- releaseId?: string;
210
- }>, rawData: CreateEntryProps<T>): Promise<EntryProps<T, {
211
- release: {
212
- sys: {
213
- type: 'Link';
214
- linkType: 'Entry' | 'Asset';
215
- id: string;
216
- };
217
- };
218
- }>>;
199
+ }>, rawData: CreateEntryProps<T>): Promise<EntryProps<T>>;
219
200
  references(params: OptionalDefaults<GetSpaceEnvironmentParams & {
220
201
  entryId: string;
221
202
  include?: number;
@@ -285,62 +266,6 @@ export type PlainClientAPI = {
285
266
  };
286
267
  usage: UsagePlainClientAPI;
287
268
  release: {
288
- entry: {
289
- get<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetReleaseEntryParams & QueryParams>): Promise<EntryProps<T, {
290
- release: {
291
- sys: {
292
- type: 'Link';
293
- linkType: 'Entry' | 'Asset';
294
- id: string;
295
- };
296
- };
297
- }>>;
298
- getMany<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<GetManyReleaseEntryParams & QueryParams>): Promise<CollectionProp<EntryProps<T, {
299
- release: {
300
- sys: {
301
- type: 'Link';
302
- linkType: 'Entry' | 'Asset';
303
- id: string;
304
- };
305
- };
306
- }>>>;
307
- update<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<UpdateReleaseEntryParams & QueryParams>, rawData: EntryProps<T>, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T, {
308
- release: {
309
- sys: {
310
- type: 'Link';
311
- linkType: 'Entry' | 'Asset';
312
- id: string;
313
- };
314
- };
315
- }>>;
316
- patch<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<PatchReleaseEntryParams & QueryParams>, rawData: OpPatch[], headers?: RawAxiosRequestHeaders): Promise<EntryProps<T, {
317
- release: {
318
- sys: {
319
- type: 'Link';
320
- linkType: 'Entry' | 'Asset';
321
- id: string;
322
- };
323
- };
324
- }>>;
325
- create<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<CreateReleaseEntryParams & QueryParams>, rawData: CreateEntryProps<T>, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T, {
326
- release: {
327
- sys: {
328
- type: 'Link';
329
- linkType: 'Entry' | 'Asset';
330
- id: string;
331
- };
332
- };
333
- }>>;
334
- createWithId<T extends KeyValueMap = KeyValueMap>(params: OptionalDefaults<CreateWithIdReleaseEntryParams & QueryParams>, rawData: CreateEntryProps<T>, headers?: RawAxiosRequestHeaders): Promise<EntryProps<T, {
335
- release: {
336
- sys: {
337
- type: 'Link';
338
- linkType: 'Entry' | 'Asset';
339
- id: string;
340
- };
341
- };
342
- }>>;
343
- };
344
269
  archive(params: OptionalDefaults<GetReleaseParams & {
345
270
  version: number;
346
271
  }>): Promise<ReleaseProps>;
@@ -348,10 +273,10 @@ export type PlainClientAPI = {
348
273
  query(params: OptionalDefaults<GetSpaceEnvironmentParams> & {
349
274
  query?: ReleaseQueryOptions;
350
275
  }): Promise<CursorPaginatedCollectionProp<ReleaseProps>>;
351
- create(params: OptionalDefaults<ReleaseEnvironmentParams>, data: ReleasePayload | ReleasePayloadV2): Promise<ReleaseProps>;
276
+ create(params: OptionalDefaults<GetSpaceEnvironmentParams>, data: ReleasePayload): Promise<ReleaseProps>;
352
277
  update(params: OptionalDefaults<GetReleaseParams & {
353
278
  version: number;
354
- }>, data: ReleasePayload | ReleasePayloadV2): Promise<ReleaseProps>;
279
+ }>, data: ReleasePayload): Promise<ReleaseProps>;
355
280
  delete(params: OptionalDefaults<GetReleaseParams>): Promise<void>;
356
281
  publish(params: OptionalDefaults<GetReleaseParams & {
357
282
  version: number;
@@ -1,5 +1,5 @@
1
- import type { GetAppActionCallDetailsParams, GetAppActionCallParams } from '../../common-types';
2
- import type { AppActionCallProps, AppActionCallResponse, CreateAppActionCallProps } from '../../entities/app-action-call';
1
+ import type { GetAppActionCallDetailsParams, GetAppActionCallParams, GetAppActionCallParamsWithId } from '../../common-types';
2
+ import type { AppActionCallProps, AppActionCallResponse, AppActionCallRawResponseProps, CreateAppActionCallProps } from '../../entities/app-action-call';
3
3
  import type { OptionalDefaults } from '../wrappers/wrap';
4
4
  export type AppActionCallPlainClientAPI = {
5
5
  /**
@@ -62,4 +62,86 @@ export type AppActionCallPlainClientAPI = {
62
62
  * ```
63
63
  */
64
64
  createWithResponse(params: OptionalDefaults<GetAppActionCallParams>, payload: CreateAppActionCallProps): Promise<AppActionCallResponse>;
65
+ /**
66
+ * Fetches a structured App Action Call by id.
67
+ *
68
+ * Returns the RFC-aligned shape for an app action invocation including
69
+ * `status` ("processing" | "succeeded" | "failed"), and either
70
+ * `result` (on success) or `error` (on failure).
71
+ *
72
+ * @param params Entity IDs to identify the App Action Call
73
+ * @returns A structured `AppActionCall` object with `status`, `result` or `error`
74
+ * @throws if the request fails, or the App Action Call is not found
75
+ * @example
76
+ * ```javascript
77
+ * const call = await client.appActionCall.get({
78
+ * spaceId: "<space_id>",
79
+ * environmentId: "<environment_id>",
80
+ * appDefinitionId: "<app_definition_id>",
81
+ * appActionId: "<app_action_id>",
82
+ * callId: "<call_id>",
83
+ * });
84
+ * if (call.status === 'succeeded') {
85
+ * console.log(call.result);
86
+ * } else if (call.status === 'failed') {
87
+ * console.error(call.error);
88
+ * }
89
+ * ```
90
+ */
91
+ get(params: OptionalDefaults<GetAppActionCallParamsWithId>): Promise<AppActionCallProps>;
92
+ /**
93
+ * Calls (triggers) an App Action and resolves with the structured result.
94
+ *
95
+ * This method abstracts away polling. It creates an app action call and then
96
+ * polls the structured call route until `status` becomes either
97
+ * `"succeeded"` (returns with `result`) or `"failed"` (returns with `error`).
98
+ * If the call does not complete within the default retry policy, it rejects.
99
+ *
100
+ * @param params Entity IDs to identify the App Action to call
101
+ * @param payload Parameters to send to the App Action
102
+ * @returns A completed structured `AppActionCall` with `status`, `result` or `error`
103
+ * @throws if the request fails, or the call does not complete in time
104
+ * @example
105
+ * ```javascript
106
+ * const call = await client.appActionCall.createWithResult(
107
+ * {
108
+ * spaceId: "<space_id>",
109
+ * environmentId: "<environment_id>",
110
+ * appDefinitionId: "<app_definition_id>",
111
+ * appActionId: "<app_action_id>",
112
+ * },
113
+ * {
114
+ * parameters: { // your inputs },
115
+ * }
116
+ * );
117
+ * if (call.status === 'succeeded') {
118
+ * console.log(call.result);
119
+ * } else {
120
+ * console.error(call.error);
121
+ * }
122
+ * ```
123
+ */
124
+ createWithResult(params: OptionalDefaults<GetAppActionCallParams>, payload: CreateAppActionCallProps): Promise<AppActionCallProps>;
125
+ /**
126
+ * Fetches the raw response (headers/body) for a completed App Action Call.
127
+ *
128
+ * Use this when you need access to the unparsed executor response. For most
129
+ * use cases, prefer the structured call via `get` or `createWithResult`.
130
+ *
131
+ * @param params Entity IDs to identify the App Action Call
132
+ * @returns The raw response including serialized `body` and optional `headers`
133
+ * @throws if the request fails, or the App Action Call is not found
134
+ * @example
135
+ * ```javascript
136
+ * const raw = await client.appActionCall.getResponse({
137
+ * spaceId: "<space_id>",
138
+ * environmentId: "<environment_id>",
139
+ * appDefinitionId: "<app_definition_id>",
140
+ * appActionId: "<app_action_id>",
141
+ * callId: "<call_id>",
142
+ * });
143
+ * console.log(raw.response.body);
144
+ * ```
145
+ */
146
+ getResponse(params: OptionalDefaults<GetAppActionCallParamsWithId>): Promise<AppActionCallRawResponseProps>;
65
147
  };
@@ -3,8 +3,6 @@ export type DefaultParams = {
3
3
  spaceId?: string;
4
4
  environmentId?: string;
5
5
  organizationId?: string;
6
- releaseSchemaVersion?: 'Release.v1' | 'Release.v2';
7
- releaseId?: string;
8
6
  };
9
7
  /**
10
8
  * @private
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contentful-management",
3
- "version": "11.55.0-canary.9",
3
+ "version": "11.55.0",
4
4
  "description": "Client for Contentful's Content Management API",
5
5
  "homepage": "https://www.contentful.com/developers/documentation/content-management-api/",
6
6
  "main": "./dist/contentful-management.node.js",
@@ -45,7 +45,7 @@
45
45
  "test:types": "npx vitest --project types --run",
46
46
  "test:unit-watch": "npx vitest --project unit",
47
47
  "test:integration": "npx vitest --project integration --run --no-file-parallelism",
48
- "test:integration-watch": "npx vitest --project integration --no-file-parallelism entry-integration",
48
+ "test:integration-watch": "npx vitest --project integration --no-file-parallelism",
49
49
  "test:browser": "npx playwright install && npx vitest --project browser-unit --run && npx vitest --project browser-integration --run",
50
50
  "test:version": "grep -r \"0.0.0-determined-by-semantic-release\" ./dist > /dev/null && echo \"version 0.0.0-determined-by-semantic-release found in output\" && exit 1 || exit 0",
51
51
  "test:size": "size-limit",
@@ -142,10 +142,6 @@
142
142
  "name": "beta",
143
143
  "channel": "beta",
144
144
  "prerelease": true
145
- },
146
- {
147
- "name": "canary",
148
- "prerelease": true
149
145
  }
150
146
  ],
151
147
  "plugins": [
@@ -1,63 +0,0 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
- import copy from 'fast-copy';
7
- import * as raw from './raw';
8
- export const get = (http, params) => {
9
- //TODO: not fully implemented yet, only the get method
10
- return raw.get(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries/${params.entryId}`);
11
- };
12
- export const getMany = (http, params) => {
13
- params.query = _objectSpread(_objectSpread({}, params.query), {}, {
14
- 'sys.schemaVersion': 'Release.V2'
15
- });
16
- return raw.get(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries`);
17
- };
18
- export const update = (http, params, rawData, headers) => {
19
- var _rawData$sys$version;
20
- params.query = _objectSpread(_objectSpread({}, params.query), {}, {
21
- 'sys.schemaVersion': 'Release.V2'
22
- });
23
- const data = copy(rawData);
24
- delete data.sys;
25
- return raw.put(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries/${params.entryId}`, data, {
26
- headers: _objectSpread({
27
- 'X-Contentful-Version': (_rawData$sys$version = rawData.sys.version) !== null && _rawData$sys$version !== void 0 ? _rawData$sys$version : 0
28
- }, headers)
29
- });
30
- };
31
- export const patch = (http, params, data, headers) => {
32
- params.query = _objectSpread(_objectSpread({}, params.query), {}, {
33
- 'sys.schemaVersion': 'Release.V2'
34
- });
35
- return raw.patch(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries/${params.entryId}`, data, {
36
- headers: _objectSpread({
37
- 'X-Contentful-Version': params.version,
38
- 'Content-Type': 'application/json-patch+json'
39
- }, headers)
40
- });
41
- };
42
- export const create = (http, params, rawData, headers) => {
43
- params.query = _objectSpread(_objectSpread({}, params.query), {}, {
44
- 'sys.schemaVersion': 'Release.V2'
45
- });
46
- const data = copy(rawData);
47
- return raw.post(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries`, data, {
48
- headers: _objectSpread({
49
- 'X-Contentful-Content-Type': params.contentTypeId
50
- }, headers)
51
- });
52
- };
53
- export const createWithId = (http, params, rawData, headers) => {
54
- params.query = _objectSpread(_objectSpread({}, params.query), {}, {
55
- 'sys.schemaVersion': 'Release.V2'
56
- });
57
- const data = copy(rawData);
58
- return raw.put(http, `/spaces/${params.spaceId}/environments/${params.environmentId}/releases/${params.releaseId}/entries/${params.entryId}`, data, {
59
- headers: _objectSpread({
60
- 'X-Contentful-Content-Type': params.contentTypeId
61
- }, headers)
62
- });
63
- };
@@ -1,7 +0,0 @@
1
- import type { RestEndpoint } from '../types';
2
- export declare const get: RestEndpoint<'ReleaseEntry', 'get'>;
3
- export declare const getMany: RestEndpoint<'ReleaseEntry', 'getMany'>;
4
- export declare const update: RestEndpoint<'ReleaseEntry', 'update'>;
5
- export declare const patch: RestEndpoint<'ReleaseEntry', 'patch'>;
6
- export declare const create: RestEndpoint<'ReleaseEntry', 'create'>;
7
- export declare const createWithId: RestEndpoint<'ReleaseEntry', 'createWithId'>;