@umbraco/playwright-testhelpers 15.0.30 → 15.0.32

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.
@@ -15,11 +15,7 @@ export declare class DocumentApiHelper {
15
15
  private recurseChildren;
16
16
  getByName(name: string): Promise<any>;
17
17
  ensureNameNotExists(name: string): Promise<void>;
18
- publish(id: string, publishSchedulesData?: {
19
- publishSchedules: {
20
- culture: null;
21
- }[];
22
- }): Promise<number | undefined>;
18
+ publish(id: string, publishSchedulesData?: any): Promise<number | undefined>;
23
19
  moveToRecycleBin(id: string): Promise<number | undefined>;
24
20
  createDefaultDocument(documentName: string, documentTypeId: string): Promise<string | undefined>;
25
21
  createDocumentWithTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string): Promise<string | undefined>;
@@ -81,5 +77,9 @@ export declare class DocumentApiHelper {
81
77
  createDocumentWithTextContentAndOneDomain(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, domainName: string, isoCode?: string): Promise<string>;
82
78
  createDocumentWithTextContentAndTwoDomains(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, firstDomainName: string, firstIsoCode: string | undefined, secondDomainName: string, secondIsoCode?: string): Promise<string>;
83
79
  doesTipTapDataTypeWithNameContainBlockWithValue(documentName: string, dataTypeAlias: string, elementTypeId: string, elementTypeDataTypeAlias: string, blockValue: string): Promise<boolean>;
80
+ publishDocumentWithCulture(id: string, culture: string): Promise<number | undefined>;
81
+ createDocumentWithTextContentAndParent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, parentId: string): Promise<string | undefined>;
82
+ createDocumentWithEnglishCultureAndTextContentAndParent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, parentId: string, varyByCultureForText?: boolean): Promise<string | undefined>;
84
83
  doesBlockGridContainBlocksWithDataElementKeyInAreaWithKey(documentName: string, blockGridAlias: string, blockContentKey: string, areaKey: string, blocksInAreas: string[]): Promise<any>;
84
+ createDocumentWithTwoCulturesAndTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, firstCulture: string, secondCulture: string): Promise<string>;
85
85
  }
@@ -1175,6 +1175,49 @@ class DocumentApiHelper {
1175
1175
  const property = block.values.find(value => value.alias === elementTypeDataTypeAlias);
1176
1176
  return property.value === blockValue;
1177
1177
  }
1178
+ async publishDocumentWithCulture(id, culture) {
1179
+ const publishScheduleData = {
1180
+ "publishSchedules": [
1181
+ {
1182
+ "culture": culture
1183
+ }
1184
+ ]
1185
+ };
1186
+ return await this.publish(id, publishScheduleData);
1187
+ }
1188
+ async createDocumentWithTextContentAndParent(documentName, documentTypeId, textContent, dataTypeName, parentId) {
1189
+ await this.ensureNameNotExists(documentName);
1190
+ const document = new json_models_builders_1.DocumentBuilder()
1191
+ .withDocumentTypeId(documentTypeId)
1192
+ .withParentId(parentId)
1193
+ .addVariant()
1194
+ .withName(documentName)
1195
+ .done()
1196
+ .addValue()
1197
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
1198
+ .withValue(textContent)
1199
+ .done()
1200
+ .build();
1201
+ return await this.create(document);
1202
+ }
1203
+ async createDocumentWithEnglishCultureAndTextContentAndParent(documentName, documentTypeId, textContent, dataTypeName, parentId, varyByCultureForText = false) {
1204
+ await this.ensureNameNotExists(documentName);
1205
+ const cultureValue = varyByCultureForText ? 'en-US' : null;
1206
+ const document = new json_models_builders_1.DocumentBuilder()
1207
+ .withDocumentTypeId(documentTypeId)
1208
+ .withParentId(parentId)
1209
+ .addVariant()
1210
+ .withName(documentName)
1211
+ .withCulture('en-US')
1212
+ .done()
1213
+ .addValue()
1214
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
1215
+ .withValue(textContent)
1216
+ .withCulture(cultureValue)
1217
+ .done()
1218
+ .build();
1219
+ return await this.create(document);
1220
+ }
1178
1221
  async doesBlockGridContainBlocksWithDataElementKeyInAreaWithKey(documentName, blockGridAlias, blockContentKey, areaKey, blocksInAreas) {
1179
1222
  const document = await this.getByName(documentName);
1180
1223
  const documentValues = document.values.find(value => value.alias === blockGridAlias);
@@ -1182,6 +1225,37 @@ class DocumentApiHelper {
1182
1225
  const area = parentBlock.areas.find(value => value.key === areaKey);
1183
1226
  return area.items.map(value => value.contentKey).every(value => blocksInAreas.includes(value));
1184
1227
  }
1228
+ async createDocumentWithTwoCulturesAndTextContent(documentName, documentTypeId, textContent, dataTypeName, firstCulture, secondCulture) {
1229
+ await this.ensureNameNotExists(documentName);
1230
+ const document = new json_models_builders_1.DocumentBuilder()
1231
+ .withDocumentTypeId(documentTypeId)
1232
+ .addVariant()
1233
+ .withName(documentName)
1234
+ .withCulture(firstCulture)
1235
+ .done()
1236
+ .addVariant()
1237
+ .withName(documentName)
1238
+ .withCulture(secondCulture)
1239
+ .done()
1240
+ .addValue()
1241
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
1242
+ .withValue(textContent)
1243
+ .done()
1244
+ .build();
1245
+ const contentId = await this.create(document) || '';
1246
+ const domainData = new json_models_builders_1.DocumentDomainBuilder()
1247
+ .addDomain()
1248
+ .withDomainName('/testfirstdomain')
1249
+ .withIsoCode(firstCulture)
1250
+ .done()
1251
+ .addDomain()
1252
+ .withDomainName('/testfirstdomain')
1253
+ .withIsoCode(secondCulture)
1254
+ .done()
1255
+ .build();
1256
+ await this.updateDomains(contentId, domainData);
1257
+ return contentId;
1258
+ }
1185
1259
  }
1186
1260
  exports.DocumentApiHelper = DocumentApiHelper;
1187
1261
  //# sourceMappingURL=DocumentApiHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {AliasHelper} from \"./AliasHelper\";\nimport {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentBuilder, DocumentDomainBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DocumentApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return await response.json();\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status() === 200;\n }\n\n async create(document) {\n if (document == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document);\n return response.headers().location.split(\"v1/document/\").pop();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status();\n }\n\n async update(id: string, document) {\n if (document == null) {\n return;\n }\n const variantsData = document.variants.map(variant => ({\n culture: variant.culture,\n segment: variant.segment,\n name: variant.name\n }));\n \n const updateData = {\n values: document.values,\n variants: variantsData,\n template: document.template\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id, updateData);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document/root?skip=0&take=10000');\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getChildrenAmount(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.total;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n for (const variant of child.variants) {\n if (variant.name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n }\n }\n if (child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n for (const variant of document.variants) {\n if (variant.name === name) {\n return this.get(document.id);\n }\n }\n if (document.hasChildren) {\n const result = await this.recurseChildren(name, document.id, false);\n if (result) { \n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n for (const variant of document.variants) {\n if (variant.name === name) {\n if (document.hasChildren) {\n await this.recurseDeleteChildren(document.id);\n }\n await this.delete(document.id);\n } else {\n if (document.hasChildren) {\n await this.recurseChildren(name, document.id, true);\n }\n }\n }\n }\n }\n\n async publish(id: string, publishSchedulesData = {\"publishSchedules\":[{\"culture\":null}]}) {\n if (id == null) {\n return;\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/publish', publishSchedulesData);\n return response.status();\n }\n\n async moveToRecycleBin(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/move-to-recycle-bin');\n return response.status();\n }\n\n async createDefaultDocument(documentName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithParent(documentName: string, documentTypeId: string, parentId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTemplate(documentName: string, documentTypeId: string, templateId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .withTemplateId(templateId)\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithContentPicker(documentName: string, documentTypeId: string, contentPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('contentPicker')\n .withValue(contentPickerId)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithOneMediaPicker(documentName: string, documentTypeId: string, mediaPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('mediaPicker')\n .addMediaPickerValue()\n .withMediaKey(mediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTwoMediaPicker(documentName: string, documentTypeId: string, firstMediaPickerId: string, secondMediaPickerId: string, alias: string = 'multipleMediaPicker') {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(alias)\n .addMediaPickerValue()\n .withMediaKey(firstMediaPickerId)\n .done()\n .addMediaPickerValue()\n .withMediaKey(secondMediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithMemberPicker(documentName: string, documentTypeId: string, memberId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('memberPicker')\n .withValue(memberId)\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithTags(documentName: string, documentTypeId: string, tagsName: string[]) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('tags')\n .withValue(tagsName)\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithExternalLinkURLPicker(documentName: string, documentTypeId: string, link: string, linkTitle: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('multiUrlPicker')\n .addURLPickerValue()\n .withIcon('icon-link')\n .withName(linkTitle)\n .withType('external')\n .withUrl(link)\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n // Domains\n async getDomains(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains');\n return await response.json();\n }\n\n async updateDomains(id: string, domains) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains', domains);\n }\n \n // Image Media Picker\n async createDocumentWithImageMediaPicker(documentName: string, documentTypeId: string, propertyAlias: string, mediaKey: string, focalPoint: {left: number, top: number} = {left: 0, top: 0}) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(propertyAlias)\n .addMediaPickerValue()\n .withMediaKey(mediaKey)\n .withFocalPoint(focalPoint)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n \n async doesImageMediaPickerContainImage(id: string, propertyAlias: string, mediaKey: string) {\n const contentData = await this.getByName(id);\n return contentData.values.some(value =>\n value.alias === propertyAlias && value.value.some(item => item.mediaKey === mediaKey)\n );\n }\n\n async doesImageMediaPickerContainImageWithFocalPoint(id: string, propertyAlias: string, mediaKey: string, focalPoint: {left: number, top: number}) {\n const contentData = await this.getByName(id);\n\n if (focalPoint.left <= 0 || focalPoint.top <= 0) {\n return contentData.values.some(value => value.alias === propertyAlias && value.value.some(item => {\n return item.mediaKey === mediaKey && item.focalPoint === null;\n }));\n }\n\n // When selecting a focalpoint, it is not exact down to the decimal, so we need a small tolerance to account for that.\n const tolerance = 0.02;\n\n return contentData.values.some(value =>\n value.alias === propertyAlias && value.value.some(item => {\n // Check if the mediaKey is the same and the focalPoint is within the tolerance\n return item.mediaKey === mediaKey &&\n Math.abs(item.focalPoint.left - focalPoint.left) <= tolerance * focalPoint.left &&\n Math.abs(item.focalPoint.top - focalPoint.top) <= tolerance * focalPoint.top;\n })\n );\n }\n\n async createDocumentWithUploadFile(documentName: string, documentTypeId: string, dataTypeName: string, uploadFileName: string, mineType: string) {\n await this.ensureNameNotExists(documentName);\n const temporaryFile = await this.api.temporaryFile.createTemporaryFile(uploadFileName, 'File', mineType);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithEnglishCulture(documentName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture('en-US')\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithCulture(documentName: string, documentTypeId: string, isoCode: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture(isoCode)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithMultipleVariants(documentName: string, documentTypeId: string, dataTypeAlias: string, cultureVariants: {isoCode: string, name: string, value: string}[]) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .build();\n\n for (const variant of cultureVariants) {\n document.variants.push({\n name: variant.name,\n culture: variant.isoCode,\n segment: null\n });\n\n document.values.push({\n alias: dataTypeAlias,\n value: variant.value,\n culture: variant.isoCode,\n segment: null\n });\n }\n\n return await this.create(document);\n }\n\n async createDocumentWithEnglishCultureAndTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, varyByCultureForText: boolean = false) {\n await this.ensureNameNotExists(documentName);\n const cultureValue = varyByCultureForText ? 'en-US' : null;\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture('en-US')\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .withCulture(cultureValue)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createPublishedDocumentWithValue(documentName: string, value: any, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .withValue(value)\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n const publishData = {\"publishSchedules\":[{\"culture\":null}]};\n await this.publish(documentId, publishData);\n return documentId;\n }\n \n async isDocumentPublished(id: string) {\n const document = await this.get(id);\n return document.variants[0].state === 'Published';\n }\n\n async createPublishedDocumentWithImageCropper(documentName: string, cropValue: any, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type', focalPoint: {left: number, top: number} = {left: 0.5, top: 0.5}) {\n // Create temporary file\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addImageCropperValue()\n .withCrop(cropValue)\n .withFocalPoint(focalPoint)\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithUploadFile(documentName: string, uploadFileName: string, mineType: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create temporary file\n const temporaryFile = await this.api.temporaryFile.createTemporaryFile(uploadFileName, 'File', mineType);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return {'documentId': documentId, 'temporaryFileId': temporaryFile.temporaryFileId};\n }\n\n async createPublishedDocumentWithExternalLinkURLPicker(documentName: string, linkTitle: string, linkUrl: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withName(linkTitle)\n .withType('external')\n .withUrl(linkUrl)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithDocumentLinkURLPicker(documentName: string, linkedDocumentName: string, linkedDocumentId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const linkedDocumentData = await this.getByName(linkedDocumentName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-document')\n .withName(linkedDocumentName)\n .withType('document')\n .withUnique(linkedDocumentId)\n .withUrl(linkedDocumentData.urls[0].url)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithImageLinkURLPicker(documentName: string, imageName: string, imageId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const mediaData = await this.api.media.getByName(imageName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-picture')\n .withName(imageName)\n .withType('media')\n .withUnique(imageId)\n .withUrl(mediaData.urls[0].url)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithImageLinkAndExternalLink(documentName: string, imageName: string, imageId: string, externalLinkTitle: string, externalLinkUrl: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const mediaData = await this.api.media.getByName(imageName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-picture')\n .withName(imageName)\n .withType('media')\n .withUnique(imageId)\n .withUrl(mediaData.urls[0].url)\n .done()\n .addURLPickerValue()\n .withName(externalLinkTitle)\n .withType('external')\n .withUrl(externalLinkUrl)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithTwoMediaPicker(documentName: string, firstMediaPickerId: string, secondMediaPickerId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addMediaPickerValue()\n .withMediaKey(firstMediaPickerId)\n .done()\n .addMediaPickerValue()\n .withMediaKey(secondMediaPickerId)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createDefaultDocumentWithABlockGridEditor(documentName: string, elementTypeId: string, documentTypeName: string, blockGridDataTypeName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlock(blockGridDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithValue(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithValueAndTwoGroups(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondPropertyName: string, secondGroupName: string = 'GroupTwoName') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName, secondPropertyName, blockGridDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithTwoValues(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithTwoValuesAndTwoGroups(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string, secondPropertyName: string, secondGroupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName, secondPropertyName, blockGridDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithValue(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditor(documentName: string, elementTypeId: string, documentTypeName: string, blockListDataTypeName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithValueAndTwoGroups(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondPropertyName: string, secondGroupName: string = 'GroupTwoName') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName, secondPropertyName, blockListDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n \n async createDefaultDocumentWithABlockListEditorAndBlockWithTwoValues(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithTwoValuesAndTwoGroups(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string, secondPropertyName: string, secondGroupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName, secondPropertyName, blockListDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockGridEditorWithSameAllowedBlock(documentName: string, documentTypeName: string, blockListDataTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, blockListElementTypePropertyValue: string, blockListElementTypePropertyEditorAlias: string, blockListGroupName: string = 'TestBlockList', blockGridElementTypePropertyValue: string, blockGridElementTypePropertyEditorAlias: string, blockGridGroupName: string = 'TestBlockGrid') {\n const crypto = require('crypto');\n const blockListContentKey = crypto.randomUUID();\n const blockGridContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, blockListGroupName, blockGridDataTypeName, blockGridDataTypeId, blockGridGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockListContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(blockListElementTypePropertyEditorAlias)\n .withValue(blockListElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockListContentKey)\n .done()\n .addLayout()\n .withContentKey(blockListContentKey)\n .done()\n .done()\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockGridContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(blockGridElementTypePropertyEditorAlias)\n .withValue(blockGridElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockGridContentKey)\n .done()\n .addLayout()\n .withContentKey(blockGridContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockGridEditorWithDifferentAllowedBlock(documentName: string, documentTypeName: string, blockListDataTypeName: string, blockGridDataTypeName: string, blockListElementTypeId: string, blockListElementTypePropertyAlias: string, blockListElementTypePropertyValue: string, blockListElementTypePropertyEditorAlias: string, blockListGroupName: string = 'TestBlockList', blockGridElementTypeId: string, blockGridElementTypePropertyAlias: string, blockGridElementTypePropertyValue: string, blockGridElementTypePropertyEditorAlias: string, blockGridGroupName: string = 'TestBlockGrid') {\n const crypto = require('crypto');\n const blockListContentKey = crypto.randomUUID();\n const blockGridContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, blockListElementTypeId) || '';\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, blockGridElementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, blockListGroupName, blockGridDataTypeName, blockGridDataTypeId, blockGridGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(blockListElementTypeId)\n .withKey(blockListContentKey)\n .addContentDataValue()\n .withAlias(blockListElementTypePropertyAlias)\n .withEditorAlias(blockListElementTypePropertyEditorAlias)\n .withValue(blockListElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockListContentKey)\n .done()\n .addLayout()\n .withContentKey(blockListContentKey)\n .done()\n .done()\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(blockGridElementTypeId)\n .withKey(blockGridContentKey)\n .addContentDataValue()\n .withAlias(blockGridElementTypePropertyAlias)\n .withEditorAlias(blockGridElementTypePropertyEditorAlias)\n .withValue(blockGridElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockGridContentKey)\n .done()\n .addLayout()\n .withContentKey(blockGridContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithTextContentAndOneDomain(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, domainName: string, isoCode: string = 'en-US') {\n const contentId = await this.createDocumentWithTextContent(documentName, documentTypeId, textContent, dataTypeName) || '';\n const domainData = new DocumentDomainBuilder()\n .addDomain()\n .withDomainName(domainName)\n .withIsoCode(isoCode)\n .done()\n .build();\n\n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n\n async createDocumentWithTextContentAndTwoDomains(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, firstDomainName: string, firstIsoCode: string = 'en-US', secondDomainName: string, secondIsoCode: string = 'en-US') {\n const contentId = await this.createDocumentWithTextContent(documentName, documentTypeId, textContent, dataTypeName) || '';\n const domainData = new DocumentDomainBuilder()\n .addDomain()\n .withDomainName(firstDomainName)\n .withIsoCode(firstIsoCode)\n .done()\n .addDomain()\n .withDomainName(secondDomainName)\n .withIsoCode(secondIsoCode)\n .done()\n .build();\n \n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n \n async doesTipTapDataTypeWithNameContainBlockWithValue(documentName: string, dataTypeAlias: string, elementTypeId: string, elementTypeDataTypeAlias: string, blockValue: string) {\n const document = await this.getByName(documentName);\n const tipTapDataType = document.values.find(value => value.alias === dataTypeAlias);\n const block = tipTapDataType.value.blocks.contentData.find(value => value.contentTypeKey === elementTypeId);\n const property = block.values.find(value => value.alias === elementTypeDataTypeAlias);\n return property.value === blockValue;\n }\n \n async doesBlockGridContainBlocksWithDataElementKeyInAreaWithKey(documentName: string, blockGridAlias:string ,blockContentKey: string, areaKey: string, blocksInAreas: string[]) {\n const document = await this.getByName(documentName);\n const documentValues = document.values.find(value => value.alias === blockGridAlias);\n const parentBlock = documentValues.value.layout['Umbraco.BlockGrid'].find(value => value.contentKey === blockContentKey);\n const area = parentBlock.areas.find(value => value.key === areaKey);\n return area.items.map(value => value.contentKey).every(value => blocksInAreas.includes(value));\n }\n}"]}
1
+ {"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {AliasHelper} from \"./AliasHelper\";\nimport {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentBuilder, DocumentDomainBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DocumentApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return await response.json();\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status() === 200;\n }\n\n async create(document) {\n if (document == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document);\n return response.headers().location.split(\"v1/document/\").pop();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status();\n }\n\n async update(id: string, document) {\n if (document == null) {\n return;\n }\n const variantsData = document.variants.map(variant => ({\n culture: variant.culture,\n segment: variant.segment,\n name: variant.name\n }));\n \n const updateData = {\n values: document.values,\n variants: variantsData,\n template: document.template\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id, updateData);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document/root?skip=0&take=10000');\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getChildrenAmount(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.total;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n for (const variant of child.variants) {\n if (variant.name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n }\n }\n if (child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n for (const variant of document.variants) {\n if (variant.name === name) {\n return this.get(document.id);\n }\n }\n if (document.hasChildren) {\n const result = await this.recurseChildren(name, document.id, false);\n if (result) { \n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n for (const variant of document.variants) {\n if (variant.name === name) {\n if (document.hasChildren) {\n await this.recurseDeleteChildren(document.id);\n }\n await this.delete(document.id);\n } else {\n if (document.hasChildren) {\n await this.recurseChildren(name, document.id, true);\n }\n }\n }\n }\n }\n\n async publish(id: string, publishSchedulesData: any = {\"publishSchedules\":[{\"culture\":null}]}) {\n if (id == null) {\n return;\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/publish', publishSchedulesData);\n return response.status();\n }\n\n async moveToRecycleBin(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/move-to-recycle-bin');\n return response.status();\n }\n\n async createDefaultDocument(documentName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithParent(documentName: string, documentTypeId: string, parentId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTemplate(documentName: string, documentTypeId: string, templateId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .withTemplateId(templateId)\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithContentPicker(documentName: string, documentTypeId: string, contentPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('contentPicker')\n .withValue(contentPickerId)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithOneMediaPicker(documentName: string, documentTypeId: string, mediaPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('mediaPicker')\n .addMediaPickerValue()\n .withMediaKey(mediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTwoMediaPicker(documentName: string, documentTypeId: string, firstMediaPickerId: string, secondMediaPickerId: string, alias: string = 'multipleMediaPicker') {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(alias)\n .addMediaPickerValue()\n .withMediaKey(firstMediaPickerId)\n .done()\n .addMediaPickerValue()\n .withMediaKey(secondMediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithMemberPicker(documentName: string, documentTypeId: string, memberId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('memberPicker')\n .withValue(memberId)\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithTags(documentName: string, documentTypeId: string, tagsName: string[]) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('tags')\n .withValue(tagsName)\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithExternalLinkURLPicker(documentName: string, documentTypeId: string, link: string, linkTitle: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('multiUrlPicker')\n .addURLPickerValue()\n .withIcon('icon-link')\n .withName(linkTitle)\n .withType('external')\n .withUrl(link)\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n // Domains\n async getDomains(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains');\n return await response.json();\n }\n\n async updateDomains(id: string, domains) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains', domains);\n }\n \n // Image Media Picker\n async createDocumentWithImageMediaPicker(documentName: string, documentTypeId: string, propertyAlias: string, mediaKey: string, focalPoint: {left: number, top: number} = {left: 0, top: 0}) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(propertyAlias)\n .addMediaPickerValue()\n .withMediaKey(mediaKey)\n .withFocalPoint(focalPoint)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n \n async doesImageMediaPickerContainImage(id: string, propertyAlias: string, mediaKey: string) {\n const contentData = await this.getByName(id);\n return contentData.values.some(value =>\n value.alias === propertyAlias && value.value.some(item => item.mediaKey === mediaKey)\n );\n }\n\n async doesImageMediaPickerContainImageWithFocalPoint(id: string, propertyAlias: string, mediaKey: string, focalPoint: {left: number, top: number}) {\n const contentData = await this.getByName(id);\n\n if (focalPoint.left <= 0 || focalPoint.top <= 0) {\n return contentData.values.some(value => value.alias === propertyAlias && value.value.some(item => {\n return item.mediaKey === mediaKey && item.focalPoint === null;\n }));\n }\n\n // When selecting a focalpoint, it is not exact down to the decimal, so we need a small tolerance to account for that.\n const tolerance = 0.02;\n\n return contentData.values.some(value =>\n value.alias === propertyAlias && value.value.some(item => {\n // Check if the mediaKey is the same and the focalPoint is within the tolerance\n return item.mediaKey === mediaKey &&\n Math.abs(item.focalPoint.left - focalPoint.left) <= tolerance * focalPoint.left &&\n Math.abs(item.focalPoint.top - focalPoint.top) <= tolerance * focalPoint.top;\n })\n );\n }\n\n async createDocumentWithUploadFile(documentName: string, documentTypeId: string, dataTypeName: string, uploadFileName: string, mineType: string) {\n await this.ensureNameNotExists(documentName);\n const temporaryFile = await this.api.temporaryFile.createTemporaryFile(uploadFileName, 'File', mineType);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithEnglishCulture(documentName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture('en-US')\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithCulture(documentName: string, documentTypeId: string, isoCode: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture(isoCode)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithMultipleVariants(documentName: string, documentTypeId: string, dataTypeAlias: string, cultureVariants: {isoCode: string, name: string, value: string}[]) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .build();\n\n for (const variant of cultureVariants) {\n document.variants.push({\n name: variant.name,\n culture: variant.isoCode,\n segment: null\n });\n\n document.values.push({\n alias: dataTypeAlias,\n value: variant.value,\n culture: variant.isoCode,\n segment: null\n });\n }\n\n return await this.create(document);\n }\n\n async createDocumentWithEnglishCultureAndTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, varyByCultureForText: boolean = false) {\n await this.ensureNameNotExists(documentName);\n const cultureValue = varyByCultureForText ? 'en-US' : null;\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture('en-US')\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .withCulture(cultureValue)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createPublishedDocumentWithValue(documentName: string, value: any, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .withValue(value)\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n const publishData = {\"publishSchedules\":[{\"culture\":null}]};\n await this.publish(documentId, publishData);\n return documentId;\n }\n \n async isDocumentPublished(id: string) {\n const document = await this.get(id);\n return document.variants[0].state === 'Published';\n }\n\n async createPublishedDocumentWithImageCropper(documentName: string, cropValue: any, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type', focalPoint: {left: number, top: number} = {left: 0.5, top: 0.5}) {\n // Create temporary file\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addImageCropperValue()\n .withCrop(cropValue)\n .withFocalPoint(focalPoint)\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithUploadFile(documentName: string, uploadFileName: string, mineType: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create temporary file\n const temporaryFile = await this.api.temporaryFile.createTemporaryFile(uploadFileName, 'File', mineType);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .withTemporaryFileId(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return {'documentId': documentId, 'temporaryFileId': temporaryFile.temporaryFileId};\n }\n\n async createPublishedDocumentWithExternalLinkURLPicker(documentName: string, linkTitle: string, linkUrl: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withName(linkTitle)\n .withType('external')\n .withUrl(linkUrl)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithDocumentLinkURLPicker(documentName: string, linkedDocumentName: string, linkedDocumentId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const linkedDocumentData = await this.getByName(linkedDocumentName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-document')\n .withName(linkedDocumentName)\n .withType('document')\n .withUnique(linkedDocumentId)\n .withUrl(linkedDocumentData.urls[0].url)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithImageLinkURLPicker(documentName: string, imageName: string, imageId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const mediaData = await this.api.media.getByName(imageName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-picture')\n .withName(imageName)\n .withType('media')\n .withUnique(imageId)\n .withUrl(mediaData.urls[0].url)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithImageLinkAndExternalLink(documentName: string, imageName: string, imageId: string, externalLinkTitle: string, externalLinkUrl: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Get the url of the linked document\n const mediaData = await this.api.media.getByName(imageName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName); \n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addURLPickerValue()\n .withIcon('icon-picture')\n .withName(imageName)\n .withType('media')\n .withUnique(imageId)\n .withUrl(mediaData.urls[0].url)\n .done()\n .addURLPickerValue()\n .withName(externalLinkTitle)\n .withType('external')\n .withUrl(externalLinkUrl)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createPublishedDocumentWithTwoMediaPicker(documentName: string, firstMediaPickerId: string, secondMediaPickerId: string, dataTypeId: string, templateId: string, propertyName: string = 'Test Property Name', documentTypeName: string = 'Test Document Type') {\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndAllowedTemplate(documentTypeName, dataTypeId, propertyName, templateId);\n documentTypeId = documentTypeId === undefined ? '' : documentTypeId;\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(propertyName))\n .addMediaPickerValue()\n .withMediaKey(firstMediaPickerId)\n .done()\n .addMediaPickerValue()\n .withMediaKey(secondMediaPickerId)\n .done()\n .done()\n .build();\n\n // Create document\n let documentId = await this.create(document);\n documentId = documentId === undefined ? '' : documentId;\n // Publish document\n await this.publish(documentId);\n return documentId;\n }\n\n async createDefaultDocumentWithABlockGridEditor(documentName: string, elementTypeId: string, documentTypeName: string, blockGridDataTypeName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlock(blockGridDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithValue(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithValueAndTwoGroups(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondPropertyName: string, secondGroupName: string = 'GroupTwoName') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName, secondPropertyName, blockGridDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithTwoValues(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockGridEditorAndBlockWithTwoValuesAndTwoGroups(documentName: string, documentTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string, secondPropertyName: string, secondGroupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId, true) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockGridDataTypeName, blockGridDataTypeId, groupName, secondPropertyName, blockGridDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithValue(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditor(documentName: string, elementTypeId: string, documentTypeName: string, blockListDataTypeName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithValueAndTwoGroups(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondPropertyName: string, secondGroupName: string = 'GroupTwoName') {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName, secondPropertyName, blockListDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n \n async createDefaultDocumentWithABlockListEditorAndBlockWithTwoValues(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockWithTwoValuesAndTwoGroups(documentName: string, documentTypeName: string, blockListDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string, groupName: string = 'TestGroup', secondElementTypePropertyValue: string, secondPropertyName: string, secondGroupName: string) {\n const crypto = require('crypto');\n const blockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, groupName, secondPropertyName, blockListDataTypeId, secondGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(secondElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockContentKey)\n .done()\n .addExpose()\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(blockContentKey)\n .done()\n .addLayout()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockGridEditorWithSameAllowedBlock(documentName: string, documentTypeName: string, blockListDataTypeName: string, blockGridDataTypeName: string, elementTypeId: string, elementTypePropertyAlias: string, blockListElementTypePropertyValue: string, blockListElementTypePropertyEditorAlias: string, blockListGroupName: string = 'TestBlockList', blockGridElementTypePropertyValue: string, blockGridElementTypePropertyEditorAlias: string, blockGridGroupName: string = 'TestBlockGrid') {\n const crypto = require('crypto');\n const blockListContentKey = crypto.randomUUID();\n const blockGridContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, elementTypeId) || '';\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, elementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, blockListGroupName, blockGridDataTypeName, blockGridDataTypeId, blockGridGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockListContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(blockListElementTypePropertyEditorAlias)\n .withValue(blockListElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockListContentKey)\n .done()\n .addLayout()\n .withContentKey(blockListContentKey)\n .done()\n .done()\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(elementTypeId)\n .withKey(blockGridContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(blockGridElementTypePropertyEditorAlias)\n .withValue(blockGridElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockGridContentKey)\n .done()\n .addLayout()\n .withContentKey(blockGridContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDefaultDocumentWithABlockListEditorAndBlockGridEditorWithDifferentAllowedBlock(documentName: string, documentTypeName: string, blockListDataTypeName: string, blockGridDataTypeName: string, blockListElementTypeId: string, blockListElementTypePropertyAlias: string, blockListElementTypePropertyValue: string, blockListElementTypePropertyEditorAlias: string, blockListGroupName: string = 'TestBlockList', blockGridElementTypeId: string, blockGridElementTypePropertyAlias: string, blockGridElementTypePropertyValue: string, blockGridElementTypePropertyEditorAlias: string, blockGridGroupName: string = 'TestBlockGrid') {\n const crypto = require('crypto');\n const blockListContentKey = crypto.randomUUID();\n const blockGridContentKey = crypto.randomUUID();\n const blockListDataTypeId = await this.api.dataType.createBlockListDataTypeWithABlock(blockListDataTypeName, blockListElementTypeId) || '';\n const blockGridDataTypeId = await this.api.dataType.createBlockGridWithABlockAndAllowAtRoot(blockGridDataTypeName, blockGridElementTypeId) || '';\n const documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditorAndTwoGroups(documentTypeName, blockListDataTypeName, blockListDataTypeId, blockListGroupName, blockGridDataTypeName, blockGridDataTypeId, blockGridGroupName) || '';\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockListDataTypeName))\n .addBlockListValue()\n .addContentData()\n .withContentTypeKey(blockListElementTypeId)\n .withKey(blockListContentKey)\n .addContentDataValue()\n .withAlias(blockListElementTypePropertyAlias)\n .withEditorAlias(blockListElementTypePropertyEditorAlias)\n .withValue(blockListElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockListContentKey)\n .done()\n .addLayout()\n .withContentKey(blockListContentKey)\n .done()\n .done()\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(blockGridDataTypeName))\n .addBlockGridValue()\n .addContentData()\n .withContentTypeKey(blockGridElementTypeId)\n .withKey(blockGridContentKey)\n .addContentDataValue()\n .withAlias(blockGridElementTypePropertyAlias)\n .withEditorAlias(blockGridElementTypePropertyEditorAlias)\n .withValue(blockGridElementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(blockGridContentKey)\n .done()\n .addLayout()\n .withContentKey(blockGridContentKey)\n .done()\n .done()\n .done()\n .build();\n \n return await this.create(document);\n }\n\n async createDocumentWithTextContentAndOneDomain(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, domainName: string, isoCode: string = 'en-US') {\n const contentId = await this.createDocumentWithTextContent(documentName, documentTypeId, textContent, dataTypeName) || '';\n const domainData = new DocumentDomainBuilder()\n .addDomain()\n .withDomainName(domainName)\n .withIsoCode(isoCode)\n .done()\n .build();\n\n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n\n async createDocumentWithTextContentAndTwoDomains(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, firstDomainName: string, firstIsoCode: string = 'en-US', secondDomainName: string, secondIsoCode: string = 'en-US') {\n const contentId = await this.createDocumentWithTextContent(documentName, documentTypeId, textContent, dataTypeName) || '';\n const domainData = new DocumentDomainBuilder()\n .addDomain()\n .withDomainName(firstDomainName)\n .withIsoCode(firstIsoCode)\n .done()\n .addDomain()\n .withDomainName(secondDomainName)\n .withIsoCode(secondIsoCode)\n .done()\n .build();\n \n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n \n async doesTipTapDataTypeWithNameContainBlockWithValue(documentName: string, dataTypeAlias: string, elementTypeId: string, elementTypeDataTypeAlias: string, blockValue: string) {\n const document = await this.getByName(documentName);\n const tipTapDataType = document.values.find(value => value.alias === dataTypeAlias);\n const block = tipTapDataType.value.blocks.contentData.find(value => value.contentTypeKey === elementTypeId);\n const property = block.values.find(value => value.alias === elementTypeDataTypeAlias);\n return property.value === blockValue;\n }\n\n async publishDocumentWithCulture(id: string, culture: string) {\n const publishScheduleData = {\n \"publishSchedules\":[\n {\n \"culture\": culture\n }\n ]\n };\n \n return await this.publish(id, publishScheduleData);\n }\n\n async createDocumentWithTextContentAndParent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, parentId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithEnglishCultureAndTextContentAndParent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, parentId: string, varyByCultureForText: boolean = false) {\n await this.ensureNameNotExists(documentName);\n const cultureValue = varyByCultureForText ? 'en-US' : null;\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(documentName)\n .withCulture('en-US')\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .withCulture(cultureValue)\n .done()\n .build();\n\n return await this.create(document);\n }\n \n async doesBlockGridContainBlocksWithDataElementKeyInAreaWithKey(documentName: string, blockGridAlias:string ,blockContentKey: string, areaKey: string, blocksInAreas: string[]) {\n const document = await this.getByName(documentName);\n const documentValues = document.values.find(value => value.alias === blockGridAlias);\n const parentBlock = documentValues.value.layout['Umbraco.BlockGrid'].find(value => value.contentKey === blockContentKey);\n const area = parentBlock.areas.find(value => value.key === areaKey);\n return area.items.map(value => value.contentKey).every(value => blocksInAreas.includes(value));\n }\n\n async createDocumentWithTwoCulturesAndTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string, firstCulture: string, secondCulture: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .withCulture(firstCulture)\n .done()\n .addVariant()\n .withName(documentName)\n .withCulture(secondCulture)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .done()\n .build();\n const contentId = await this.create(document) || '';\n \n const domainData = new DocumentDomainBuilder()\n .addDomain()\n .withDomainName('/testfirstdomain')\n .withIsoCode(firstCulture)\n .done()\n .addDomain()\n .withDomainName('/testfirstdomain')\n .withIsoCode(secondCulture)\n .done()\n .build();\n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n}"]}
@@ -25,6 +25,7 @@ export declare class NotificationConstantHelper {
25
25
  publicAccessSettingCreated: string;
26
26
  itemsSorted: string;
27
27
  passwordChanged: string;
28
+ schedulePublishingUpdated: string;
28
29
  };
29
30
  static readonly error: {
30
31
  error: string;
@@ -27,7 +27,8 @@ class NotificationConstantHelper {
27
27
  culturesAndHostnamesSaved: 'Cultures and hostnames saved',
28
28
  publicAccessSettingCreated: 'Public access setting created',
29
29
  itemsSorted: 'Items sorted',
30
- passwordChanged: 'Password changed'
30
+ passwordChanged: 'Password changed',
31
+ schedulePublishingUpdated: 'A schedule for publishing has been updated'
31
32
  };
32
33
  static error = {
33
34
  error: 'Error',