@umbraco/playwright-testhelpers 15.0.46-beta.99 → 15.0.48

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.
@@ -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: 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 createDocumentWithABlockGridEditorWithABlockThatContainsABlockInAnArea(documentName: string, documentTypeId: string, blockGridDataTypeName: string, firstElementTypeKey: string, areaKey: string, secondElementTypeKey: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string) {\n const crypto = require('crypto');\n const firstBlockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\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(firstElementTypeKey)\n .withKey(firstBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(secondElementTypeKey)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(firstBlockContentKey)\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(firstBlockContentKey)\n .addArea()\n .withKey(areaKey)\n .addItems()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\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 emptyRecycleBin() {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/document');\n }\n\n async getRecycleBinItems() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/document/root?skip=0&take=10000');\n }\n\n async doesItemExistInRecycleBin(documentItemName: string) {\n const recycleBin = await this.getRecycleBinItems();\n const jsonRecycleBin = await recycleBin.json();\n for (const document of jsonRecycleBin.items) {\n if (document.variants[0].name === documentItemName) {\n return true;\n }\n }\n return false;\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('/testseconddomain')\n .withIsoCode(secondCulture)\n .done()\n .build();\n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n\n async createDefaultDocumentWithOneDocumentLink(documentName: string, linkedDocumentName: string, linkedDocumentId: string, documentTypeName: string = 'Test Document Type') {\n const multiURLPickerDataTypeName = 'Multi URL Picker';\n // Get the url of the linked document\n const linkedDocumentData = await this.getByName(linkedDocumentName);\n // Get datatype\n const dataTypeData = await this.api.dataType.getByName(multiURLPickerDataTypeName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, multiURLPickerDataTypeName, dataTypeData.id);\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(multiURLPickerDataTypeName))\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 return await this.create(document);\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 createDocumentWithABlockGridEditorWithABlockThatContainsABlockInAnArea(documentName: string, documentTypeId: string, blockGridDataTypeName: string, firstElementTypeKey: string, areaKey: string, secondElementTypeKey: string, elementTypePropertyAlias: string, elementTypePropertyValue: string, elementTypePropertyEditorAlias: string) {\n const crypto = require('crypto');\n const firstBlockContentKey = crypto.randomUUID();\n const secondBlockContentKey = crypto.randomUUID();\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(firstElementTypeKey)\n .withKey(firstBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addContentData()\n .withContentTypeKey(secondElementTypeKey)\n .withKey(secondBlockContentKey)\n .addContentDataValue()\n .withAlias(elementTypePropertyAlias)\n .withEditorAlias(elementTypePropertyEditorAlias)\n .withValue(elementTypePropertyValue)\n .done()\n .done()\n .addExpose()\n .withContentKey(firstBlockContentKey)\n .withContentKey(secondBlockContentKey)\n .done()\n .addLayout()\n .withContentKey(firstBlockContentKey)\n .addArea()\n .withKey(areaKey)\n .addItems()\n .withContentKey(secondBlockContentKey)\n .done()\n .done()\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 emptyRecycleBin() {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/document');\n }\n\n async getRecycleBinItems() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/document/root?skip=0&take=10000');\n }\n\n async doesItemExistInRecycleBin(documentItemName: string) {\n const recycleBin = await this.getRecycleBinItems();\n const jsonRecycleBin = await recycleBin.json();\n for (const document of jsonRecycleBin.items) {\n if (document.variants[0].name === documentItemName) {\n return true;\n }\n }\n return false;\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('/testseconddomain')\n .withIsoCode(secondCulture)\n .done()\n .build();\n await this.updateDomains(contentId, domainData);\n return contentId;\n }\n\n async createDefaultDocumentWithOneDocumentLink(documentName: string, linkedDocumentName: string, linkedDocumentId: string, documentTypeName: string = 'Test Document Type') {\n const multiURLPickerDataTypeName = 'Multi URL Picker';\n // Get the url of the linked document\n const linkedDocumentData = await this.getByName(linkedDocumentName);\n // Get datatype\n const dataTypeData = await this.api.dataType.getByName(multiURLPickerDataTypeName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, multiURLPickerDataTypeName, dataTypeData.id);\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(multiURLPickerDataTypeName))\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 return await this.create(document);\n }\n\n async createDefaultDocumentWithOneMediaLink(documentName: string, linkedMediaName: string, documentTypeName: string = 'Test Document Type') {\n const multiURLPickerDataTypeName = 'Multi URL Picker';\n // Get the url of the linked document\n const linkedMediaData = await this.api.media.getByName(linkedMediaName);\n // Get datatype\n const dataTypeData = await this.api.dataType.getByName(multiURLPickerDataTypeName);\n // Create document type\n let documentTypeId = await this.api.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, multiURLPickerDataTypeName, dataTypeData.id);\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(multiURLPickerDataTypeName))\n .addURLPickerValue()\n .withIcon(linkedMediaData.mediaType.icon)\n .withName(linkedMediaName)\n .withType('media')\n .withUnique(linkedMediaData.id)\n .withUrl(linkedMediaData.values[0].value.src)\n .done()\n .done()\n .build();\n\n // Create document\n return await this.create(document);\n }\n}"]}
@@ -131,6 +131,7 @@ class MediaApiHelper {
131
131
  }
132
132
  async createDefaultMediaFile(mediaName) {
133
133
  const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();
134
+ await this.ensureNameNotExists(mediaName);
134
135
  const media = new json_models_builders_1.MediaBuilder()
135
136
  .withMediaTypeId(temporaryFile.mediaTypeId)
136
137
  .addVariant()
@@ -147,6 +148,7 @@ class MediaApiHelper {
147
148
  }
148
149
  async createDefaultMediaFileAndParentId(mediaName, parentId) {
149
150
  const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();
151
+ await this.ensureNameNotExists(mediaName);
150
152
  const media = new json_models_builders_1.MediaBuilder()
151
153
  .withMediaTypeId(temporaryFile.mediaTypeId)
152
154
  .withParentId(parentId)
@@ -164,6 +166,7 @@ class MediaApiHelper {
164
166
  }
165
167
  async createDefaultMediaFolder(mediaFolderName) {
166
168
  const mediaType = await this.api.mediaType.getByName('Folder');
169
+ await this.ensureNameNotExists(mediaFolderName);
167
170
  const media = new json_models_builders_1.MediaBuilder()
168
171
  .withMediaTypeId(mediaType.id)
169
172
  .addVariant()
@@ -174,6 +177,7 @@ class MediaApiHelper {
174
177
  }
175
178
  async createDefaultMediaFolderAndParentId(mediaName, parentId) {
176
179
  const mediaType = await this.api.mediaType.getByName('Folder');
180
+ await this.ensureNameNotExists(mediaName);
177
181
  const media = new json_models_builders_1.MediaBuilder()
178
182
  .withMediaTypeId(mediaType.id)
179
183
  .withParentId(parentId)
@@ -185,6 +189,7 @@ class MediaApiHelper {
185
189
  }
186
190
  async createDefaultMediaWithImage(mediaName) {
187
191
  const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();
192
+ await this.ensureNameNotExists(mediaName);
188
193
  const media = new json_models_builders_1.MediaBuilder()
189
194
  .withMediaTypeId(temporaryFile.mediaTypeId)
190
195
  .addVariant()
@@ -201,6 +206,7 @@ class MediaApiHelper {
201
206
  }
202
207
  async createDefaultMediaWithArticle(mediaName) {
203
208
  const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryArticleFile();
209
+ await this.ensureNameNotExists(mediaName);
204
210
  const media = new json_models_builders_1.MediaBuilder()
205
211
  .withMediaTypeId(temporaryFile.mediaTypeId)
206
212
  .addVariant()
@@ -217,6 +223,7 @@ class MediaApiHelper {
217
223
  }
218
224
  async createDefaultMediaWithImageAndParentId(mediaName, parentId) {
219
225
  const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();
226
+ await this.ensureNameNotExists(mediaName);
220
227
  const media = new json_models_builders_1.MediaBuilder()
221
228
  .withMediaTypeId(temporaryFile.mediaTypeId)
222
229
  .withParentId(parentId)