@icure/api 8.0.18 → 8.0.19

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.
@@ -132,8 +132,10 @@ export declare class IccDocumentApi {
132
132
  * @param body content of the attachment (must be compatible with XHR body)
133
133
  * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty
134
134
  * overrides existing values.
135
+ * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type
136
+ * for the attachment. Defaults is false
135
137
  */
136
- setMainDocumentAttachment(documentId: string, documentRev: string, body: Object, utis?: Array<string>): Promise<Document>;
138
+ setMainDocumentAttachment(documentId: string, documentRev: string, body: Object, utis?: Array<string>, dataIsEncrypted?: boolean): Promise<Document>;
137
139
  /**
138
140
  * @deprecated use setMainDocumentAttachment instead
139
141
  */
@@ -161,9 +163,11 @@ export declare class IccDocumentApi {
161
163
  * will fail with CONFLICT status
162
164
  * @param attachment
163
165
  * @param utis an array of UTIs for the attachment. If provided and non-empty overrides existing values.
166
+ * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type
167
+ * for the attachment. Defaults is false
164
168
  * @return the updated document
165
169
  */
166
- setSecondaryAttachment(documentId: string, key: string, rev: string, attachment: Object, utis?: Array<string>): Promise<Document>;
170
+ setSecondaryAttachment(documentId: string, key: string, rev: string, attachment: Object, utis?: Array<string>, dataIsEncrypted?: boolean): Promise<Document>;
167
171
  /**
168
172
  * Get the secondary attachment with the provided key for a document
169
173
  * @summary Retrieve a secondary attachment of a document
@@ -304,8 +304,10 @@ class IccDocumentApi {
304
304
  * @param body content of the attachment (must be compatible with XHR body)
305
305
  * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty
306
306
  * overrides existing values.
307
+ * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type
308
+ * for the attachment. Defaults is false
307
309
  */
308
- setMainDocumentAttachment(documentId, documentRev, body, utis) {
310
+ setMainDocumentAttachment(documentId, documentRev, body, utis, dataIsEncrypted) {
309
311
  return __awaiter(this, void 0, void 0, function* () {
310
312
  if (!documentRev)
311
313
  throw new Error('Document rev is required');
@@ -316,7 +318,8 @@ class IccDocumentApi {
316
318
  new Date().getTime() +
317
319
  '&rev=' +
318
320
  encodeURIComponent(String(documentRev)) +
319
- (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '');
321
+ (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '') +
322
+ (dataIsEncrypted ? '&encrypted=' + encodeURIComponent(String(dataIsEncrypted)) : '');
320
323
  let headers = yield this.headers;
321
324
  headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/octet-stream'));
322
325
  return XHR_1.XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
@@ -383,9 +386,11 @@ class IccDocumentApi {
383
386
  * will fail with CONFLICT status
384
387
  * @param attachment
385
388
  * @param utis an array of UTIs for the attachment. If provided and non-empty overrides existing values.
389
+ * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type
390
+ * for the attachment. Defaults is false
386
391
  * @return the updated document
387
392
  */
388
- setSecondaryAttachment(documentId, key, rev, attachment, utis) {
393
+ setSecondaryAttachment(documentId, key, rev, attachment, utis, dataIsEncrypted) {
389
394
  return __awaiter(this, void 0, void 0, function* () {
390
395
  const _url = this.host +
391
396
  `/document/` +
@@ -395,7 +400,8 @@ class IccDocumentApi {
395
400
  '?ts=' +
396
401
  new Date().getTime() +
397
402
  (rev ? '&rev=' + encodeURIComponent(String(rev)) : '') +
398
- (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '');
403
+ (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '') +
404
+ (dataIsEncrypted ? '&encrypted=' + encodeURIComponent(String(dataIsEncrypted)) : '');
399
405
  let headers = yield this.headers;
400
406
  headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/octet-stream'));
401
407
  return XHR_1.XHR.sendCommand('PUT', _url, headers, attachment, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
@@ -1 +1 @@
1
- {"version":3,"file":"IccDocumentApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccDocumentApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { XHR } from './XHR'\nimport { DocIdentifier } from '../model/DocIdentifier'\nimport { Document } from '../model/Document'\nimport { IcureStub } from '../model/IcureStub'\nimport { ListOfIds } from '../model/ListOfIds'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\nimport { EntityShareOrMetadataUpdateRequest } from '../model/requests/EntityShareOrMetadataUpdateRequest'\nimport { EntityBulkShareResult } from '../model/requests/EntityBulkShareResult'\nimport { BulkShareOrUpdateMetadataParams } from '../model/requests/BulkShareOrUpdateMetadataParams'\n\nexport class IccDocumentApi {\n host: string\n _headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n get headers(): Promise<Array<XHR.Header>> {\n return Promise.resolve(this._headers)\n }\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this._headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this._headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n * Creates a document and returns an instance of created document afterward\n * @summary Create a document\n * @param body\n */\n async createDocument(body?: Document): Promise<Document> {\n const _url = this.host + `/document` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Deletes a document's attachment and returns the modified document instance afterward\n * @summary Delete a document's attachment\n * @param documentId\n */\n async deleteAttachment(documentId: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('DELETE', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a batch of documents and returns the list of deleted document ids.\n *\n * @param documentIds a ListOfIds containing the ids of the documents to delete.\n * @return a Promise that will resolve in an array of DocIdentifier of the successfully deleted documents.\n */\n async deleteDocuments(documentIds: ListOfIds): Promise<Array<DocIdentifier>> {\n const headers = (await this.headers).filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand(\n 'POST',\n this.host + `/document/delete/batch` + '?ts=' + new Date().getTime(),\n headers,\n documentIds,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocIdentifier(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a single document by id.\n *\n * @param documentId the id of the document to delete.\n * @return a DocIdentifier of the document.\n */\n async deleteDocument(documentId: string): Promise<DocIdentifier> {\n return XHR.sendCommand(\n 'DELETE',\n this.host + `/document/${encodeURIComponent(documentId)}` + '?ts=' + new Date().getTime(),\n await this.headers,\n null,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new DocIdentifier(doc.body))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents found By type, By Healthcare Party and secret foreign keys.\n * @param documentTypeCode\n * @param hcPartyId\n * @param secretFKeys\n */\n async findByTypeHCPartyMessageSecretFKeys(documentTypeCode: string, hcPartyId: string, secretFKeys: string): Promise<Array<Document>> {\n let _body = null\n\n const _url =\n this.host +\n `/document/byTypeHcPartySecretForeignKeys` +\n '?ts=' +\n new Date().getTime() +\n (documentTypeCode ? '&documentTypeCode=' + encodeURIComponent(String(documentTypeCode)) : '') +\n (hcPartyId ? '&hcPartyId=' + encodeURIComponent(String(hcPartyId)) : '') +\n (secretFKeys ? '&secretFKeys=' + encodeURIComponent(String(secretFKeys)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents found By Healthcare Party and secret foreign keys.\n * @param hcPartyId\n * @param secretFKeys\n */\n async findDocumentsByHCPartyPatientForeignKeys(hcPartyId: string, secretFKeys: string): Promise<Array<Document>> {\n let _body = null\n\n const _url =\n this.host +\n `/document/byHcPartySecretForeignKeys` +\n '?ts=' +\n new Date().getTime() +\n (hcPartyId ? '&hcPartyId=' + encodeURIComponent(String(hcPartyId)) : '') +\n (secretFKeys ? '&secretFKeys=' + encodeURIComponent(String(secretFKeys)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents with no delegation\n * @param limit\n */\n async findWithoutDelegation(limit?: number): Promise<Array<Document>> {\n let _body = null\n\n const _url = this.host + `/document/woDelegation` + '?ts=' + new Date().getTime() + (limit ? '&limit=' + encodeURIComponent(String(limit)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the document corresponding to the identifier passed in the request\n * @summary Get a document\n * @param documentId\n */\n async getDocument(documentId: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use getMainDocumentAttachment instead\n */\n async getDocumentAttachment(documentId: string, attachmentId: string, enckeys?: string, fileName?: string): Promise<ArrayBuffer> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n return this.getMainDocumentAttachment(documentId)\n }\n\n /**\n * Get the main attachment of a document\n * @param documentId id of the document\n * @return the content of the main attachment for the document (if any)\n */\n async getMainDocumentAttachment(documentId: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get the main attachment of a document forcing usage of `application/octet-stream` in Content-Type\n * @param documentId id of the document\n * @return the content of the main attachment for the document (if any)\n */\n async getRawMainDocumentAttachment(documentId: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, 'application/octet-stream', this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the first document corresponding to the externalUuid passed in the request\n * @summary Get a document\n * @param externalUuid\n */\n async getDocumentByExternalUuid(externalUuid: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/externaluuid/${encodeURIComponent(String(externalUuid))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns a list of document corresponding to the identifiers passed in the body\n * @summary Get a batch of document\n * @param body\n */\n async getDocuments(body?: ListOfIds): Promise<Array<Document>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/byIds` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns a list of document corresponding to the externalUuid passed in the request\n * @summary Get all documents with externalUuid\n * @param externalUuid\n */\n async getDocumentsByExternalUuid(externalUuid: string): Promise<Array<Document>> {\n let _body = null\n\n const _url = this.host + `/document/externaluuid/${encodeURIComponent(String(externalUuid))}/all` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Updates the document and returns an instance of the modified document afterward\n * @summary Update a document\n * @param body\n */\n async modifyDocument(body?: Document): Promise<Document> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the modified documents.\n * @summary Update a batch of documents\n * @param body\n */\n async modifyDocuments(body?: Array<Document>): Promise<Array<Document>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/batch` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Creates or updates a main attachment for a document and returns the modified document instance afterward\n * @param documentId id of the document\n * @param documentRev revision of the document\n * @param body content of the attachment (must be compatible with XHR body)\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n */\n async setMainDocumentAttachment(documentId: string, documentRev: string, body: Object, utis?: Array<string>): Promise<Document> {\n if (!documentRev) throw new Error('Document rev is required')\n let _body = body\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/attachment` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n encodeURIComponent(String(documentRev)) +\n (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '')\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachmentBody(documentId: string, documentRev: string, enckeys?: null, body?: Object, utis?: string[]): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n if (!body) {\n throw new Error('body is now required.')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, body, utis)\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachment(documentId: string, documentRev: string, enckeys?: null, body?: Object, utis?: string[]): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n if (!body) {\n throw new Error('body is now required.')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, body, utis)\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachmentMulti(attachment: ArrayBuffer, documentRev: string, documentId: string, enckeys?: null): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, attachment)\n }\n\n /**\n * Keys must be delimited by coma\n * @summary Update delegations in healthElements.\n * @param body\n */\n async setDocumentsDelegations(body?: Array<IcureStub>): Promise<Array<IcureStub>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/delegations` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new IcureStub(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Creates or updates a secondary attachment for a document and returns the modified document instance afterward\n * @summary Creates or modifies a secondary attachment for a document\n * @param documentId id of the document to update\n * @param key Key of the secondary attachment to update\n * @param rev Revision of the latest known version of the document. If the revision does not match the current version of the document the method\n * will fail with CONFLICT status\n * @param attachment\n * @param utis an array of UTIs for the attachment. If provided and non-empty overrides existing values.\n * @return the updated document\n */\n async setSecondaryAttachment(documentId: string, key: string, rev: string, attachment: Object, utis?: Array<string>): Promise<Document> {\n const _url =\n this.host +\n `/document/` +\n encodeURIComponent(String(documentId)) +\n '/secondaryAttachments/' +\n encodeURIComponent(String(key)) +\n '?ts=' +\n new Date().getTime() +\n (rev ? '&rev=' + encodeURIComponent(String(rev)) : '') +\n (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '')\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, attachment, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get the secondary attachment with the provided key for a document\n * @summary Retrieve a secondary attachment of a document\n * @param documentId id of the document\n * @param key Key of the secondary attachment to retrieve\n * @param fileName\n * @return the content of the attachment\n */\n async getSecondaryAttachment(documentId: string, key: string, fileName?: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/secondaryAttachments/${encodeURIComponent(String(key))}` +\n '?ts=' +\n new Date().getTime() +\n (fileName ? '&fileName=' + encodeURIComponent(String(fileName)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Deletes a document's attachment and returns the modified document instance afterward\n * @summary Delete a document's attachment\n * @param documentId id of the document\n * @param key Key of the secondary attachment to delete\n * @param rev Revision of the latest known version of the document. If the revision does not match the current version of the document the method will fail with CONFLICT status\n * @return the updated document\n */\n async deleteSecondaryAttachment(documentId: string, key: string, rev: string): Promise<Document> {\n let _body = null\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/secondaryAttachments/${encodeURIComponent(String(key))}` +\n '?ts=' +\n new Date().getTime() +\n (rev ? '&rev=' + encodeURIComponent(String(rev)) : '')\n let headers = await this.headers\n return XHR.sendCommand('DELETE', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n // TODO single request multi-attachment update\n\n /**\n * @internal this method is for internal use only and may be changed without notice\n */\n async bulkShareDocument(request: BulkShareOrUpdateMetadataParams): Promise<EntityBulkShareResult<Document>[]> {\n const _url = this.host + '/document/bulkSharedMetadataUpdate' + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, request, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((x) => new EntityBulkShareResult<Document>(x, Document)))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
1
+ {"version":3,"file":"IccDocumentApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccDocumentApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { XHR } from './XHR'\nimport { DocIdentifier } from '../model/DocIdentifier'\nimport { Document } from '../model/Document'\nimport { IcureStub } from '../model/IcureStub'\nimport { ListOfIds } from '../model/ListOfIds'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\nimport { EntityShareOrMetadataUpdateRequest } from '../model/requests/EntityShareOrMetadataUpdateRequest'\nimport { EntityBulkShareResult } from '../model/requests/EntityBulkShareResult'\nimport { BulkShareOrUpdateMetadataParams } from '../model/requests/BulkShareOrUpdateMetadataParams'\n\nexport class IccDocumentApi {\n host: string\n _headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n get headers(): Promise<Array<XHR.Header>> {\n return Promise.resolve(this._headers)\n }\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this._headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this._headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n * Creates a document and returns an instance of created document afterward\n * @summary Create a document\n * @param body\n */\n async createDocument(body?: Document): Promise<Document> {\n const _url = this.host + `/document` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Deletes a document's attachment and returns the modified document instance afterward\n * @summary Delete a document's attachment\n * @param documentId\n */\n async deleteAttachment(documentId: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('DELETE', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a batch of documents and returns the list of deleted document ids.\n *\n * @param documentIds a ListOfIds containing the ids of the documents to delete.\n * @return a Promise that will resolve in an array of DocIdentifier of the successfully deleted documents.\n */\n async deleteDocuments(documentIds: ListOfIds): Promise<Array<DocIdentifier>> {\n const headers = (await this.headers).filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand(\n 'POST',\n this.host + `/document/delete/batch` + '?ts=' + new Date().getTime(),\n headers,\n documentIds,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocIdentifier(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a single document by id.\n *\n * @param documentId the id of the document to delete.\n * @return a DocIdentifier of the document.\n */\n async deleteDocument(documentId: string): Promise<DocIdentifier> {\n return XHR.sendCommand(\n 'DELETE',\n this.host + `/document/${encodeURIComponent(documentId)}` + '?ts=' + new Date().getTime(),\n await this.headers,\n null,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new DocIdentifier(doc.body))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents found By type, By Healthcare Party and secret foreign keys.\n * @param documentTypeCode\n * @param hcPartyId\n * @param secretFKeys\n */\n async findByTypeHCPartyMessageSecretFKeys(documentTypeCode: string, hcPartyId: string, secretFKeys: string): Promise<Array<Document>> {\n let _body = null\n\n const _url =\n this.host +\n `/document/byTypeHcPartySecretForeignKeys` +\n '?ts=' +\n new Date().getTime() +\n (documentTypeCode ? '&documentTypeCode=' + encodeURIComponent(String(documentTypeCode)) : '') +\n (hcPartyId ? '&hcPartyId=' + encodeURIComponent(String(hcPartyId)) : '') +\n (secretFKeys ? '&secretFKeys=' + encodeURIComponent(String(secretFKeys)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents found By Healthcare Party and secret foreign keys.\n * @param hcPartyId\n * @param secretFKeys\n */\n async findDocumentsByHCPartyPatientForeignKeys(hcPartyId: string, secretFKeys: string): Promise<Array<Document>> {\n let _body = null\n\n const _url =\n this.host +\n `/document/byHcPartySecretForeignKeys` +\n '?ts=' +\n new Date().getTime() +\n (hcPartyId ? '&hcPartyId=' + encodeURIComponent(String(hcPartyId)) : '') +\n (secretFKeys ? '&secretFKeys=' + encodeURIComponent(String(secretFKeys)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Keys must be delimited by coma\n * @summary List documents with no delegation\n * @param limit\n */\n async findWithoutDelegation(limit?: number): Promise<Array<Document>> {\n let _body = null\n\n const _url = this.host + `/document/woDelegation` + '?ts=' + new Date().getTime() + (limit ? '&limit=' + encodeURIComponent(String(limit)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the document corresponding to the identifier passed in the request\n * @summary Get a document\n * @param documentId\n */\n async getDocument(documentId: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use getMainDocumentAttachment instead\n */\n async getDocumentAttachment(documentId: string, attachmentId: string, enckeys?: string, fileName?: string): Promise<ArrayBuffer> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n return this.getMainDocumentAttachment(documentId)\n }\n\n /**\n * Get the main attachment of a document\n * @param documentId id of the document\n * @return the content of the main attachment for the document (if any)\n */\n async getMainDocumentAttachment(documentId: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get the main attachment of a document forcing usage of `application/octet-stream` in Content-Type\n * @param documentId id of the document\n * @return the content of the main attachment for the document (if any)\n */\n async getRawMainDocumentAttachment(documentId: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url = this.host + `/document/${encodeURIComponent(String(documentId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, 'application/octet-stream', this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the first document corresponding to the externalUuid passed in the request\n * @summary Get a document\n * @param externalUuid\n */\n async getDocumentByExternalUuid(externalUuid: string): Promise<Document> {\n let _body = null\n\n const _url = this.host + `/document/externaluuid/${encodeURIComponent(String(externalUuid))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns a list of document corresponding to the identifiers passed in the body\n * @summary Get a batch of document\n * @param body\n */\n async getDocuments(body?: ListOfIds): Promise<Array<Document>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/byIds` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns a list of document corresponding to the externalUuid passed in the request\n * @summary Get all documents with externalUuid\n * @param externalUuid\n */\n async getDocumentsByExternalUuid(externalUuid: string): Promise<Array<Document>> {\n let _body = null\n\n const _url = this.host + `/document/externaluuid/${encodeURIComponent(String(externalUuid))}/all` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Updates the document and returns an instance of the modified document afterward\n * @summary Update a document\n * @param body\n */\n async modifyDocument(body?: Document): Promise<Document> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns the modified documents.\n * @summary Update a batch of documents\n * @param body\n */\n async modifyDocuments(body?: Array<Document>): Promise<Array<Document>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/batch` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Document(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Creates or updates a main attachment for a document and returns the modified document instance afterward\n * @param documentId id of the document\n * @param documentRev revision of the document\n * @param body content of the attachment (must be compatible with XHR body)\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type\n * for the attachment. Defaults is false\n */\n async setMainDocumentAttachment(\n documentId: string,\n documentRev: string,\n body: Object,\n utis?: Array<string>,\n dataIsEncrypted?: boolean\n ): Promise<Document> {\n if (!documentRev) throw new Error('Document rev is required')\n let _body = body\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/attachment` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n encodeURIComponent(String(documentRev)) +\n (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '') +\n (dataIsEncrypted ? '&encrypted=' + encodeURIComponent(String(dataIsEncrypted)) : '')\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachmentBody(documentId: string, documentRev: string, enckeys?: null, body?: Object, utis?: string[]): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n if (!body) {\n throw new Error('body is now required.')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, body, utis)\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachment(documentId: string, documentRev: string, enckeys?: null, body?: Object, utis?: string[]): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n if (!body) {\n throw new Error('body is now required.')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, body, utis)\n }\n\n /**\n * @deprecated use setMainDocumentAttachment instead\n */\n setDocumentAttachmentMulti(attachment: ArrayBuffer, documentRev: string, documentId: string, enckeys?: null): Promise<Document> {\n if (enckeys) {\n throw new Error('Server-side encryption of attachment is not allowed anymore')\n }\n return this.setMainDocumentAttachment(documentId, documentRev, attachment)\n }\n\n /**\n * Keys must be delimited by coma\n * @summary Update delegations in healthElements.\n * @param body\n */\n async setDocumentsDelegations(body?: Array<IcureStub>): Promise<Array<IcureStub>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/document/delegations` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new IcureStub(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Creates or updates a secondary attachment for a document and returns the modified document instance afterward\n * @summary Creates or modifies a secondary attachment for a document\n * @param documentId id of the document to update\n * @param key Key of the secondary attachment to update\n * @param rev Revision of the latest known version of the document. If the revision does not match the current version of the document the method\n * will fail with CONFLICT status\n * @param attachment\n * @param utis an array of UTIs for the attachment. If provided and non-empty overrides existing values.\n * @param dataIsEncrypted set this to true if the body you provided is containing encrypted data. This helps to have the appropriate content type\n * for the attachment. Defaults is false\n * @return the updated document\n */\n async setSecondaryAttachment(\n documentId: string,\n key: string,\n rev: string,\n attachment: Object,\n utis?: Array<string>,\n dataIsEncrypted?: boolean\n ): Promise<Document> {\n const _url =\n this.host +\n `/document/` +\n encodeURIComponent(String(documentId)) +\n '/secondaryAttachments/' +\n encodeURIComponent(String(key)) +\n '?ts=' +\n new Date().getTime() +\n (rev ? '&rev=' + encodeURIComponent(String(rev)) : '') +\n (utis ? utis.map((x) => '&utis=' + encodeURIComponent(String(x))).join('') : '') +\n (dataIsEncrypted ? '&encrypted=' + encodeURIComponent(String(dataIsEncrypted)) : '')\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, attachment, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get the secondary attachment with the provided key for a document\n * @summary Retrieve a secondary attachment of a document\n * @param documentId id of the document\n * @param key Key of the secondary attachment to retrieve\n * @param fileName\n * @return the content of the attachment\n */\n async getSecondaryAttachment(documentId: string, key: string, fileName?: string): Promise<ArrayBuffer> {\n let _body = null\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/secondaryAttachments/${encodeURIComponent(String(key))}` +\n '?ts=' +\n new Date().getTime() +\n (fileName ? '&fileName=' + encodeURIComponent(String(fileName)) : '')\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Deletes a document's attachment and returns the modified document instance afterward\n * @summary Delete a document's attachment\n * @param documentId id of the document\n * @param key Key of the secondary attachment to delete\n * @param rev Revision of the latest known version of the document. If the revision does not match the current version of the document the method will fail with CONFLICT status\n * @return the updated document\n */\n async deleteSecondaryAttachment(documentId: string, key: string, rev: string): Promise<Document> {\n let _body = null\n\n const _url =\n this.host +\n `/document/${encodeURIComponent(String(documentId))}/secondaryAttachments/${encodeURIComponent(String(key))}` +\n '?ts=' +\n new Date().getTime() +\n (rev ? '&rev=' + encodeURIComponent(String(rev)) : '')\n let headers = await this.headers\n return XHR.sendCommand('DELETE', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Document(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n // TODO single request multi-attachment update\n\n /**\n * @internal this method is for internal use only and may be changed without notice\n */\n async bulkShareDocument(request: BulkShareOrUpdateMetadataParams): Promise<EntityBulkShareResult<Document>[]> {\n const _url = this.host + '/document/bulkSharedMetadataUpdate' + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, request, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((x) => new EntityBulkShareResult<Document>(x, Document)))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
@@ -64,6 +64,11 @@ export declare class IccDocumentXApi extends IccDocumentApi implements Encrypted
64
64
  getMainAttachmentAs(documentId: string, returnType: "text/plain"): Promise<string>;
65
65
  getMainAttachmentAs(documentId: string, returnType: "application/json"): Promise<any>;
66
66
  getMainAttachmentAs(documentId: string, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any>;
67
+ getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: "application/octet-stream"): Promise<ArrayBuffer | undefined>;
68
+ getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: "text/plain"): Promise<string | undefined>;
69
+ getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: "application/json"): Promise<any | undefined>;
70
+ getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any | undefined>;
71
+ private parserFor;
67
72
  uti(mimeType: string, extension: string): string;
68
73
  mimeType(uti: string): string;
69
74
  /**
@@ -534,6 +534,47 @@ class IccDocumentXApi extends icc_api_1.IccDocumentApi {
534
534
  .catch((err) => this.handleError(err));
535
535
  });
536
536
  }
537
+ getAndTryDecryptMainAttachmentAs(document, returnType) {
538
+ return __awaiter(this, void 0, void 0, function* () {
539
+ const key = (yield this.crypto.xapi.encryptionKeysOf({ entity: document, type: utils_1.EntityWithDelegationTypeName.Document }, undefined))[0];
540
+ if (!key)
541
+ return undefined;
542
+ const tryParse = this.parserFor(returnType);
543
+ const attachmentInfo = yield this.getAndTryDecryptDocumentAttachment(document, (decrypted) => Promise.resolve(tryParse(decrypted) !== undefined));
544
+ if (attachmentInfo.wasDecrypted) {
545
+ return tryParse(attachmentInfo.data);
546
+ }
547
+ else
548
+ return undefined;
549
+ });
550
+ }
551
+ parserFor(returnType) {
552
+ if (returnType === 'application/octet-stream') {
553
+ return (data) => data;
554
+ }
555
+ else if (returnType === 'text/plain') {
556
+ return (data) => {
557
+ try {
558
+ return (0, binary_utils_1.ua2utf8)(data);
559
+ }
560
+ catch (e) {
561
+ return undefined;
562
+ }
563
+ };
564
+ }
565
+ else if (returnType === 'application/json') {
566
+ return (data) => {
567
+ try {
568
+ return JSON.parse((0, binary_utils_1.ua2utf8)(data));
569
+ }
570
+ catch (e) {
571
+ return undefined;
572
+ }
573
+ };
574
+ }
575
+ else
576
+ throw new Error(`Unsupported type ${returnType}`);
577
+ }
537
578
  // noinspection JSUnusedGlobalSymbols
538
579
  uti(mimeType, extension) {
539
580
  return (mimeType && mimeType !== 'application/octet-stream' ? this.utiDefs[mimeType] : this.utiExts[extension]) || this.utiDefs[mimeType];
@@ -556,7 +597,7 @@ class IccDocumentXApi extends icc_api_1.IccDocumentApi {
556
597
  if (!document.rev)
557
598
  throw new Error('Cannot set attachment on document without rev');
558
599
  const { encryptedData, updatedEntity } = yield this.crypto.xapi.encryptDataOf(document, utils_1.EntityWithDelegationTypeName.Document, attachment, (d) => this.modifyDocument(d));
559
- return yield this.setMainDocumentAttachment(document.id, (_a = updatedEntity === null || updatedEntity === void 0 ? void 0 : updatedEntity.rev) !== null && _a !== void 0 ? _a : document.rev, encryptedData, utis);
600
+ return yield this.setMainDocumentAttachment(document.id, (_a = updatedEntity === null || updatedEntity === void 0 ? void 0 : updatedEntity.rev) !== null && _a !== void 0 ? _a : document.rev, encryptedData, utis, true);
560
601
  });
561
602
  }
562
603
  /**
@@ -571,7 +612,7 @@ class IccDocumentXApi extends icc_api_1.IccDocumentApi {
571
612
  return __awaiter(this, void 0, void 0, function* () {
572
613
  if (!document.rev)
573
614
  throw new Error('Cannot set attachment on document without rev');
574
- return yield this.setMainDocumentAttachment(document.id, document.rev, attachment, utis);
615
+ return yield this.setMainDocumentAttachment(document.id, document.rev, attachment, utis, false);
575
616
  });
576
617
  }
577
618
  /**
@@ -589,7 +630,7 @@ class IccDocumentXApi extends icc_api_1.IccDocumentApi {
589
630
  if (!document.rev)
590
631
  throw new Error('Cannot set attachment on document without rev');
591
632
  const { encryptedData, updatedEntity } = yield this.crypto.xapi.encryptDataOf(document, utils_1.EntityWithDelegationTypeName.Document, attachment, (d) => this.modifyDocument());
592
- return yield this.setSecondaryAttachment(document.id, secondaryAttachmentKey, (_a = updatedEntity === null || updatedEntity === void 0 ? void 0 : updatedEntity.rev) !== null && _a !== void 0 ? _a : document.rev, encryptedData, utis);
633
+ return yield this.setSecondaryAttachment(document.id, secondaryAttachmentKey, (_a = updatedEntity === null || updatedEntity === void 0 ? void 0 : updatedEntity.rev) !== null && _a !== void 0 ? _a : document.rev, encryptedData, utis, true);
593
634
  });
594
635
  }
595
636
  /**
@@ -603,7 +644,7 @@ class IccDocumentXApi extends icc_api_1.IccDocumentApi {
603
644
  */
604
645
  setClearSecondaryDocumentAttachment(document, secondaryAttachmentKey, attachment, utis) {
605
646
  return __awaiter(this, void 0, void 0, function* () {
606
- return yield this.setSecondaryAttachment(document.id, secondaryAttachmentKey, document.rev, attachment, utis);
647
+ return yield this.setSecondaryAttachment(document.id, secondaryAttachmentKey, document.rev, attachment, utis, false);
607
648
  });
608
649
  }
609
650
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAuthApi, IccDocumentApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport { XHR } from '../icc-api/api/XHR'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string } from './utils/binary-utils'\nimport { IccDataOwnerXApi } from './icc-data-owner-x-api'\nimport { AuthenticationProvider, NoAuthenticationProvider } from './auth/AuthenticationProvider'\nimport { SecureDelegation } from '../icc-api/model/SecureDelegation'\nimport AccessLevelEnum = SecureDelegation.AccessLevelEnum\nimport { ShareMetadataBehaviour } from './crypto/ShareMetadataBehaviour'\nimport { ShareResult } from './utils/ShareResult'\nimport { EntityShareRequest } from '../icc-api/model/requests/EntityShareRequest'\nimport RequestedPermissionEnum = EntityShareRequest.RequestedPermissionEnum\nimport { EncryptedEntityXApi } from './basexapi/EncryptedEntityXApi'\nimport { AccessLog } from '../icc-api/model/models'\nimport { EntityWithDelegationTypeName } from './utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccDocumentXApi extends IccDocumentApi implements EncryptedEntityXApi<models.Document> {\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n /** maps invalid UTI values to corresponding MIME type for backward-compatibility (pre-v1.0.117) */\n compatUtiRevDefs: { [key: string]: string } = {\n 'com.adobe.encapsulatedPostscript': 'image/eps',\n 'com.adobe.illustrator.aiImage': 'application/illustrator',\n 'com.adobe.indesignImage': 'image/indesign',\n 'com.adobe.photoshopImage': 'image/psd',\n 'com.adobe.postscriptPfaFont': 'application/x-font-type1',\n 'com.adobe.postscriptPfbFont': 'application/x-font-type1',\n 'com.allume.stuffitArchive': 'application/stuffit',\n 'com.apple.binhexArchive': 'application/binhex',\n 'com.apple.diskImageUdif': 'application/x-apple-diskimage',\n 'com.apple.macbinaryArchive': 'application/macbinary',\n 'com.apple.quartzComposerComposition': 'application/x-quartzcomposer',\n 'com.apple.quicktimeImage': 'image/x-quicktime',\n 'com.apple.quicktimeMovie': 'video/quicktime',\n 'com.js.efxFax': 'image/efax',\n 'com.macromedia.shockwaveFlash': 'application/x-shockwave-flash',\n 'com.microsoft.advancedStreamRedirector': 'video/x-ms-asx',\n 'com.microsoft.advancedSystemsFormat': 'video/x-ms-asf',\n 'com.microsoft.waveformAudio': 'audio/wave',\n 'com.microsoft.windowsDynamicLinkLibrary': 'application/x-msdownload',\n 'com.microsoft.windowsExecutable': 'application/exe',\n 'com.microsoft.windowsMediaWax': 'audio/x-ms-wax',\n 'com.microsoft.windowsMediaWm': 'video/x-ms-wm',\n 'com.microsoft.windowsMediaWma': 'audio/x-ms-wma',\n 'com.microsoft.windowsMediaWmd': 'video/x-ms-wmd',\n 'com.microsoft.windowsMediaWmp': 'video/x-ms-wmp',\n 'com.microsoft.windowsMediaWmv': 'video/x-ms-wmv',\n 'com.microsoft.windowsMediaWmx': 'video/x-ms-wmx',\n 'com.microsoft.windowsMediaWmz': 'video/x-ms-wmz',\n 'com.microsoft.windowsMediaWvx': 'video/x-ms-wvx',\n 'com.netscape.javascriptSource': 'text/javascript',\n 'com.pkware.zipArchive': 'application/zip',\n 'com.rarlab.rarArchive': 'application/rar',\n 'com.redhat.redhatPackage': 'application/x-redhat-package',\n 'com.sgi.sgiImage': 'image/sgi',\n 'com.sun.javaAppDescriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.javaArchive': 'application/java-archive',\n 'com.sun.javaClass': 'application/java',\n 'com.sun.javaSource': 'text/x-java-source',\n 'com.sun.javaWebStart': 'application/jnlp',\n 'com.truevision.tgaImage': 'image/tga',\n 'org.bzip.bzip2Archive': 'application/x-bzip2',\n 'org.debian.debianPackage': 'application/x-debian-package',\n 'org.gnu.gnuTarArchive': 'application/x-gtar',\n 'org.gnu.gnuZipArchive': 'application/gzip',\n 'org.oasis.opendocument.textMaster': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.textWeb': 'application/vnd.oasis.opendocument.text-web',\n 'org.xiph.oggTheora': 'video/ogg',\n 'org.xiph.oggVorbis': 'audio/ogg',\n 'public.aifcAudio': 'audio/aiff',\n 'public.aiffAudio': 'audio/aiff',\n 'public.assemblySource': 'text/x-asm',\n 'public.cHeader': 'text/x-c-header',\n 'public.cpioArchive': 'application/x-cpio',\n 'public.cPlusPlusHeader': 'text/x-c++-hdr',\n 'public.cPlusPlusSource': 'application/x-cplusplus',\n 'public.cshScript': 'application/x-csh',\n 'public.cSource': 'text/x-c-code',\n 'public.isoImage': 'application/x-iso-image',\n 'public.mpeg4Audio': 'audio/mp4',\n 'public.objectiveCPlusPlusSource': 'text/x-objcppsrc',\n 'public.objectiveCSource': 'text/x-objcsrc',\n 'public.opentypeFont': 'font/opentype',\n 'public.perlScript': 'text/x-perl',\n 'public.phpScript': 'text/php',\n 'public.plainText': 'text/plain',\n 'public.pythonScript': 'text/x-python-script',\n 'public.shellScript': 'application/x-sh',\n 'public.tarArchive': 'application/tar',\n 'public.truetypeTtfFont': 'application/x-font-ttf',\n 'public.ulawAudio': 'audio/au',\n 'public.xbitmapImage': 'image/xbm',\n 'unofficial.atomFeed': 'application/atom+xml',\n 'unofficial.m3u8Playlist': 'application/x-mpegURL',\n 'unofficial.plsPlaylist': 'audio/scpls',\n 'unofficial.rdfFeed': 'application/rdf+xml',\n 'unofficial.rssFeed': 'application/rss+xml',\n }\n\n utiRevDefs: { [key: string]: string } = {\n ...this.compatUtiRevDefs,\n 'com.adobe.encapsulated-postscript': 'image/eps',\n 'com.adobe.illustrator.ai-image': 'application/illustrator',\n 'com.adobe.indesign-image': 'image/indesign',\n 'com.adobe.pdf': 'application/pdf',\n 'com.adobe.photoshop-image': 'image/psd',\n 'com.adobe.postscript': 'application/postscript',\n 'com.adobe.postscript-pfa-font': 'application/x-font-type1',\n 'com.adobe.postscript-pfb-font': 'application/x-font-type1',\n 'com.allume.stuffit-archive': 'application/stuffit',\n 'com.apple.applescript.script': 'application/x-applescript',\n 'com.apple.applescript.text': 'application/x-applescript',\n 'com.apple.binhex-archive': 'application/binhex',\n 'com.apple.disk-image-udif': 'application/x-apple-diskimage',\n 'com.apple.ical.ics': 'text/calendar',\n 'com.apple.ical.vcs': 'text/x-vcalendar',\n 'com.apple.macbinary-archive': 'application/macbinary',\n 'com.apple.pict': 'image/pict',\n 'com.apple.quartz-composer-composition': 'application/x-quartzcomposer',\n 'com.apple.quicktime-image': 'image/x-quicktime',\n 'com.apple.quicktime-movie': 'video/quicktime',\n 'com.bittorrent.torrent': 'application/x-bittorrent',\n 'com.compuserve.gif': 'image/gif',\n 'com.js.efx-fax': 'image/efax',\n 'com.kodak.flashpix.image': 'image/vndfpx',\n 'com.lizardtech.djvu': 'image/vnd.djvu',\n 'com.macromedia.shockwave-flash': 'application/x-shockwave-flash',\n 'com.microsoft.advanced-stream-redirector': 'video/x-ms-asx',\n 'com.microsoft.advanced-systems-format': 'video/x-ms-asf',\n 'com.microsoft.bmp': 'image/bmp',\n 'com.microsoft.excel.xls': 'application/excel',\n 'com.microsoft.ico': 'image/x-icon',\n 'com.microsoft.powerpoint.ppt': 'application/powerpoint',\n 'com.microsoft.waveform-audio': 'audio/wave',\n 'com.microsoft.windows-dynamic-link-library': 'application/x-msdownload',\n 'com.microsoft.windows-executable': 'application/exe',\n 'com.microsoft.windows-media-wax': 'audio/x-ms-wax',\n 'com.microsoft.windows-media-wm': 'video/x-ms-wm',\n 'com.microsoft.windows-media-wma': 'audio/x-ms-wma',\n 'com.microsoft.windows-media-wmd': 'video/x-ms-wmd',\n 'com.microsoft.windows-media-wmp': 'video/x-ms-wmp',\n 'com.microsoft.windows-media-wmv': 'video/x-ms-wmv',\n 'com.microsoft.windows-media-wmx': 'video/x-ms-wmx',\n 'com.microsoft.windows-media-wmz': 'video/x-ms-wmz',\n 'com.microsoft.windows-media-wvx': 'video/x-ms-wvx',\n 'com.microsoft.word.doc': 'application/msword',\n 'com.netscape.javascript-source': 'text/javascript',\n 'com.pkware.zip-archive': 'application/zip',\n 'com.rarlab.rar-archive': 'application/rar',\n 'com.real.realaudio': 'audio/vnd.rn-realaudio',\n 'com.real.realmedia': 'application/vnd.rn-realmedia',\n 'com.real.smil': 'application/smil',\n 'com.redhat.redhat-package': 'application/x-redhat-package',\n 'com.sgi.sgi-image': 'image/sgi',\n 'com.soundblaster.soundfont': 'application/x-soundfont',\n 'com.sun.java-app-descriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.java-archive': 'application/java-archive',\n 'com.sun.java-class': 'application/java',\n 'com.sun.java-source': 'text/x-java-source',\n 'com.sun.java-web-start': 'application/jnlp',\n 'com.truevision.tga-image': 'image/tga',\n 'org.bzip.bzip2-archive': 'application/x-bzip2',\n 'org.debian.debian-package': 'application/x-debian-package',\n 'org.gnu.gnu-tar-archive': 'application/x-gtar',\n 'org.gnu.gnu-zip-archive': 'application/gzip',\n 'org.neooffice.calc': 'application/vnd.sun.xml.calc',\n 'org.neooffice.draw': 'application/vnd.sun.xml.draw',\n 'org.neooffice.global': 'application/vnd.sun.xml.writer.global',\n 'org.neooffice.impress': 'application/vnd.sun.xml.impress',\n 'org.neooffice.math': 'application/vnd.sun.xml.math',\n 'org.neooffice.writer': 'application/vnd.sun.xml.writer',\n 'org.oasis.opendocument.chart': 'application/vnd.oasis.opendocument.chart',\n 'org.oasis.opendocument.database': 'application/vnd.oasis.opendocument.database',\n 'org.oasis.opendocument.formula': 'application/vnd.oasis.opendocument.formula',\n 'org.oasis.opendocument.graphics': 'application/vnd.oasis.opendocument.graphics',\n 'org.oasis.opendocument.image': 'application/vnd.oasis.opendocument.image',\n 'org.oasis.opendocument.presentation': 'application/vnd.oasis.opendocument.presentation',\n 'org.oasis.opendocument.spreadsheet': 'application/vnd.oasis.opendocument.spreadsheet',\n 'org.oasis.opendocument.text': 'application/vnd.oasis.opendocument.text',\n 'org.oasis.opendocument.text-master': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.text-web': 'application/vnd.oasis.opendocument.text-web',\n 'org.tug.tex': 'text/tex',\n 'org.xiph.flac': 'audio/flac',\n 'org.xiph.ogg-theora': 'video/ogg',\n 'org.xiph.ogg-vorbis': 'audio/ogg',\n 'public.3gpp': 'video/3gpp',\n 'public.3gpp2': 'video/3gpp2',\n 'public.aifc-audio': 'audio/aiff',\n 'public.aiff-audio': 'audio/aiff',\n 'public.assembly-source': 'text/x-asm',\n 'public.avi': 'video/avi',\n 'public.c-header': 'text/x-c-header',\n 'public.cpio-archive': 'application/x-cpio',\n 'public.c-plus-plus-header': 'text/x-c++-hdr',\n 'public.c-plus-plus-source': 'application/x-cplusplus',\n 'public.csh-script': 'application/x-csh',\n 'public.c-source': 'text/x-c-code',\n 'public.css': 'text/css',\n 'public.dv': 'video/x-dv',\n 'public.flv': 'video/x-flv',\n 'public.html': 'text/html',\n 'public.iso-image': 'application/x-iso-image',\n 'public.jpeg': 'image/jpeg',\n 'public.jpeg2000': 'image/jp2',\n 'public.midi': 'audio/midi',\n 'public.mka': 'audio/x-matroska',\n 'public.mkv': 'video/x-matroska',\n 'public.mp3': 'audio/mp3',\n 'public.mpeg': 'video/mpeg',\n 'public.mpeg4': 'video/mp4',\n 'public.mpeg4-audio': 'audio/mp4',\n 'public.mpegts': 'video/MP2T',\n 'public.objective-c-plus-plus-source': 'text/x-objcppsrc',\n 'public.objective-c-source': 'text/x-objcsrc',\n 'public.opentype-font': 'font/opentype',\n 'public.perl-script': 'text/x-perl',\n 'public.php-script': 'text/php',\n 'public.plain-text': 'text/plain',\n 'public.png': 'image/png',\n 'public.python-script': 'text/x-python-script',\n 'public.rtf': 'text/rtf',\n 'public.shell-script': 'application/x-sh',\n 'public.tar-archive': 'application/tar',\n 'public.tiff': 'image/tiff',\n 'public.truetype-ttf-font': 'application/x-font-ttf',\n 'public.ulaw-audio': 'audio/au',\n 'public.vcard': 'text/vcard',\n 'public.webm': 'video/webm',\n 'public.xbitmap-image': 'image/xbm',\n 'public.xml': 'text/xml',\n 'unofficial.atom-feed': 'application/atom+xml',\n 'unofficial.m3u8-playlist': 'application/x-mpegURL',\n 'unofficial.opml': 'text/x-opml',\n 'unofficial.pls-playlist': 'audio/scpls',\n 'unofficial.rdf-feed': 'application/rdf+xml',\n 'unofficial.rss-feed': 'application/rss+xml',\n }\n\n utiExts: { [key: string]: string } = {\n jpg: 'public.jpeg',\n jpeg: 'public.jpeg',\n png: 'public.png',\n rtf: 'public.rtf',\n mpeg: 'public.mpeg',\n mpg: 'public.mpeg',\n html: 'public.html',\n htm: 'public.html',\n pdf: 'com.adobe.pdf',\n xls: 'com.microsoft.excel.xls',\n xlsx: 'com.microsoft.excel.xls',\n doc: 'com.microsoft.word.doc',\n docx: 'com.microsoft.word.doc',\n }\n\n utiDefs: { [key: string]: string } = {\n 'application/atom+xml': 'unofficial.atom-feed',\n 'application/bat': 'com.microsoft.windows-executable',\n 'application/binhex': 'com.apple.binhex-archive',\n 'application/binhex4': 'com.apple.binhex-archive',\n 'application/ecmascript': 'com.netscape.javascript-source',\n 'application/eps': 'com.adobe.encapsulated-postscript',\n 'application/excel': 'com.microsoft.excel.xls',\n 'application/exe': 'com.microsoft.windows-executable',\n 'application/gnutar': 'public.tar-archive',\n 'application/gzip': 'org.gnu.gnu-zip-archive',\n 'application/illustrator': 'com.adobe.illustrator.ai-image',\n 'application/indesign': 'com.adobe.indesign-image',\n 'application/java-archive': 'com.sun.java-archive',\n 'application/java-byte-code': 'com.sun.java-class',\n 'application/java': 'com.sun.java-class',\n 'application/javascript': 'com.netscape.javascript-source',\n 'application/jnlp': 'com.sun.java-web-start',\n 'application/latex': 'org.tug.tex',\n 'application/mac-binary': 'com.apple.macbinary-archive',\n 'application/mac-binhex': 'com.apple.binhex-archive',\n 'application/mac-binhex40': 'com.apple.binhex-archive',\n 'application/macbinary': 'com.apple.macbinary-archive',\n 'application/mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/msword': 'com.microsoft.word.doc',\n 'application/octet-stream': 'com.microsoft.windows-executable',\n 'application/pdf': 'com.adobe.pdf',\n 'application/photoshop': 'com.adobe.photoshop-image',\n 'application/php': 'public.php-script',\n 'application/plain': 'public.plain-text',\n 'application/postscript': 'com.adobe.postscript',\n 'application/powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/rar': 'com.rarlab.rar-archive',\n 'application/rdf+xml': 'unofficial.rdf-feed',\n 'application/rss+xml': 'unofficial.rss-feed',\n 'application/rtf': 'public.rtf',\n 'application/smil': 'com.real.smil',\n 'application/stuffit': 'com.allume.stuffit-archive',\n 'application/tar': 'public.tar-archive',\n 'application/tga': 'com.truevision.tga-image',\n 'application/vnd.fpx': 'com.kodak.flashpix.image',\n 'application/vnd.ms-excel': 'com.microsoft.excel.xls',\n 'application/vnd.ms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vnd.oasis.opendocument.chart': 'org.oasis.opendocument.chart',\n 'application/vnd.oasis.opendocument.database': 'org.oasis.opendocument.database',\n 'application/vnd.oasis.opendocument.formula': 'org.oasis.opendocument.formula',\n 'application/vnd.oasis.opendocument.graphics-template': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.graphics': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.image': 'org.oasis.opendocument.image',\n 'application/vnd.oasis.opendocument.presentation-template': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.presentation': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet-template': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.spreadsheet': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text-master': 'org.oasis.opendocument.text-master',\n 'application/vnd.oasis.opendocument.text-template': 'org.oasis.opendocument.text',\n 'application/vnd.oasis.opendocument.text-web': 'org.oasis.opendocument.text-web',\n 'application/vnd.oasis.opendocument.text': 'org.oasis.opendocument.text',\n 'application/vnd.rn-realmedia': 'com.real.realmedia',\n 'application/vnd.sun.xml.calc.template': 'org.neooffice.calc',\n 'application/vnd.sun.xml.calc': 'org.neooffice.calc',\n 'application/vnd.sun.xml.draw.template': 'org.neooffice.draw',\n 'application/vnd.sun.xml.draw': 'org.neooffice.draw',\n 'application/vnd.sun.xml.impress.template': 'org.neooffice.impress',\n 'application/vnd.sun.xml.impress': 'org.neooffice.impress',\n 'application/vnd.sun.xml.math': 'org.neooffice.math',\n 'application/vnd.sun.xml.writer.global': 'org.neooffice.global',\n 'application/vnd.sun.xml.writer.template': 'org.neooffice.writer',\n 'application/vnd.sun.xml.writer': 'org.neooffice.writer',\n 'application/vndms-excel': 'com.microsoft.excel.xls',\n 'application/vndms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vndrn-realmedia': 'com.real.realmedia',\n 'application/x-apple-diskimage': 'com.apple.disk-image-udif',\n 'application/x-applescript': 'com.apple.applescript.script',\n 'application/x-bat': 'com.microsoft.windows-executable',\n 'application/x-binary': 'com.apple.macbinary-archive',\n 'application/x-binhex40': 'com.apple.binhex-archive',\n 'application/x-bittorrent': 'com.bittorrent.torrent',\n 'application/x-bzip2': 'org.bzip.bzip2-archive',\n 'application/x-cpio': 'public.cpio-archive',\n 'application/x-cplusplus': 'public.c-plus-plus-source',\n 'application/x-csh': 'public.csh-script',\n 'application/x-deb': 'org.debian.debian-package',\n 'application/x-debian-package': 'org.debian.debian-package',\n 'application/x-eps': 'com.adobe.encapsulated-postscript',\n 'application/x-excel': 'com.microsoft.excel.xls',\n 'application/x-exe': 'com.microsoft.windows-executable',\n 'application/x-flac': 'org.xiph.flac',\n 'application/x-font-ttf': 'public.truetype-ttf-font',\n 'application/x-font-type1': 'com.adobe.postscript-pfa-font',\n 'application/x-gtar': 'org.gnu.gnu-tar-archive',\n 'application/x-gzip': 'org.gnu.gnu-zip-archive',\n 'application/x-iso-image': 'public.iso-image',\n 'application/x-java-class': 'com.sun.java-class',\n 'application/x-java': 'com.sun.java-web-start',\n 'application/x-javascript': 'com.netscape.javascript-source',\n 'application/x-latex': 'org.tug.tex',\n 'application/x-mac-binhex40': 'com.apple.binhex-archive',\n 'application/x-macbinary': 'com.apple.macbinary-archive',\n 'application/x-midi': 'public.midi',\n 'application/x-mpegURL': 'unofficial.m3u8-playlist',\n 'application/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'application/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'application/x-msdos-program': 'com.microsoft.windows-executable',\n 'application/x-msdownload': 'com.microsoft.windows-executable',\n 'application/x-msexcel': 'com.microsoft.excel.xls',\n 'application/x-mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/x-pdf': 'com.adobe.pdf',\n 'application/x-perl': 'public.perl-script',\n 'application/x-php': 'public.php-script',\n 'application/x-quartzcomposer': 'com.apple.quartz-composer-composition',\n 'application/x-rar-compressed': 'com.rarlab.rar-archive',\n 'application/x-redhat-package': 'com.redhat.redhat-package',\n 'application/x-rpm': 'com.redhat.redhat-package',\n 'application/x-rtf': 'public.rtf',\n 'application/x-sh': 'public.shell-script',\n 'application/x-shellscript': 'public.shell-script',\n 'application/x-shockwave-flash': 'com.macromedia.shockwave-flash',\n 'application/x-sit': 'com.allume.stuffit-archive',\n 'application/x-smil': 'com.real.smil',\n 'application/x-soundfont': 'com.soundblaster.soundfont',\n 'application/x-stuffit': 'com.allume.stuffit-archive',\n 'application/x-tar': 'public.tar-archive',\n 'application/x-tex': 'org.tug.tex',\n 'application/x-texinfo': 'org.tug.tex',\n 'application/x-troff-msvideo': 'public.avi',\n 'application/x-zip-compressed': 'com.pkware.zip-archive',\n 'application/xhtml+xml': 'public.html',\n 'application/xml': 'public.xml',\n 'application/zip': 'com.pkware.zip-archive',\n 'audio/3gpp': 'public.3gpp',\n 'audio/3gpp2': 'public.3gpp2',\n 'audio/aiff': 'public.aiff-audio',\n 'audio/au': 'public.ulaw-audio',\n 'audio/basic': 'public.ulaw-audio',\n 'audio/flac': 'org.xiph.flac',\n 'audio/mid': 'public.midi',\n 'audio/midi': 'public.midi',\n 'audio/mp3': 'public.mp3',\n 'audio/mp4': 'public.mpeg4-audio',\n 'audio/mp4a-latm': 'public.mpeg4-audio',\n 'audio/mpeg': 'public.mp3',\n 'audio/mpeg3': 'public.mp3',\n 'audio/mpegurl': 'unofficial.m3u-playlist',\n 'audio/mpg': 'public.mp3',\n 'audio/ogg': 'org.xiph.ogg-vorbis',\n 'audio/scpls': 'unofficial.pls-playlist',\n 'audio/snd': 'public.ulaw-audio',\n 'audio/vnd.rn-realaudio': 'com.real.realaudio',\n 'audio/wav': 'com.microsoft.waveform-audio',\n 'audio/wave': 'com.microsoft.waveform-audio',\n 'audio/webm': 'public.webm',\n 'audio/x-adpcm': 'public.ulaw-audio',\n 'audio/x-aiff': 'public.aiff-audio',\n 'audio/x-au': 'public.ulaw-audio',\n 'audio/x-flac': 'org.xiph.flac',\n 'audio/x-matroska': 'public.mka',\n 'audio/x-mid': 'public.midi',\n 'audio/x-midi': 'public.midi',\n 'audio/x-mp3': 'public.mp3',\n 'audio/x-mpeg-3': 'public.mp3',\n 'audio/x-mpeg': 'public.mp3',\n 'audio/x-mpeg3': 'public.mp3',\n 'audio/x-mpegurl': 'unofficial.m3u-playlist',\n 'audio/x-mpg': 'public.mp3',\n 'audio/x-ms-wax': 'com.microsoft.windows-media-wax',\n 'audio/x-ms-wma': 'com.microsoft.windows-media-wma',\n 'audio/x-ogg': 'org.xiph.ogg-vorbis',\n 'audio/x-pn-realaudio-plugin': 'com.real.realaudio',\n 'audio/x-pn-realaudio': 'com.real.realaudio',\n 'audio/x-pn-wav': 'com.microsoft.waveform-audio',\n 'audio/x-realaudio': 'com.real.realmedia',\n 'audio/x-scpls': 'unofficial.pls-playlist',\n 'audio/x-wav': 'com.microsoft.waveform-audio',\n 'font/opentype': 'public.opentype-font',\n 'image/bmp': 'com.microsoft.bmp',\n 'image/efax': 'com.js.efx-fax',\n 'image/eps': 'com.adobe.encapsulated-postscript',\n 'image/fpx': 'com.kodak.flashpix.image',\n 'image/gif': 'com.compuserve.gif',\n 'image/indd': 'com.adobe.indesign-image',\n 'image/indesign': 'com.adobe.indesign-image',\n 'image/jp2': 'public.jpeg2000',\n 'image/jpeg': 'public.jpeg',\n 'image/ms-bmp': 'com.microsoft.bmp',\n 'image/photoshop': 'com.adobe.photoshop-image',\n 'image/pict': 'com.apple.pict',\n 'image/pipeg': 'public.jpeg',\n 'image/pjpeg': 'public.jpeg',\n 'image/png': 'public.png',\n 'image/psd': 'com.adobe.photoshop-image',\n 'image/sgi': 'com.sgi.sgi-image',\n 'image/targa': 'com.truevision.tga-image',\n 'image/tga': 'com.truevision.tga-image',\n 'image/tiff': 'public.tiff',\n 'image/vnd.djvu': 'com.lizardtech.djvu',\n 'image/vndfpx': 'com.kodak.flashpix.image',\n 'image/vndnet-fpx': 'com.kodak.flashpix.image',\n 'image/webp': 'public.webp',\n 'image/x-bitmap': 'com.microsoft.bmp',\n 'image/x-bmp': 'com.microsoft.bmp',\n 'image/x-djvu': 'com.lizardtech.djvu',\n 'image/x-eps': 'com.adobe.encapsulated-postscript',\n 'image/x-icon': 'com.microsoft.ico',\n 'image/x-indesign': 'com.adobe.indesign-image',\n 'image/x-macpict': 'com.apple.pict',\n 'image/x-ms-bmp': 'com.microsoft.bmp',\n 'image/x-photoshop': 'com.adobe.photoshop-image',\n 'image/x-pict': 'com.apple.pict',\n 'image/x-quicktime': 'com.apple.quicktime-image',\n 'image/x-tiff': 'public.tiff',\n 'image/x-windows-bmp': 'com.microsoft.bmp',\n 'image/x-xbitmap': 'com.microsoft.bmp',\n 'image/x-xbm': 'public.xbitmap-image',\n 'image/xbm': 'public.xbitmap-image',\n 'multipart/x-gzip': 'org.gnu.gnu-zip-archive',\n 'multipart/x-zip': 'com.pkware.zip-archive',\n 'music/crescendo': 'public.midi',\n 'text/calendar': 'com.apple.ical.ics',\n 'text/css': 'public.css',\n 'text/directory': 'public.vcard',\n 'text/ecmascript': 'com.netscape.javascript-source',\n 'text/html': 'public.html',\n 'text/javascript': 'com.netscape.javascript-source',\n 'text/php': 'public.php-script',\n 'text/plain': 'public.plain-text',\n 'text/richtext': 'public.rtf',\n 'text/rtf': 'public.rtf',\n 'text/ruby-script': 'public.ruby-script',\n 'text/tex': 'org.tug.tex',\n 'text/vcard': 'public.vcard',\n 'text/vnd.sun.j2me.app-descriptor': 'com.sun.java-app-descriptor',\n 'text/x-asm': 'public.assembly-source',\n 'text/x-c-code': 'public.c-source',\n 'text/x-c-header': 'public.c-header',\n 'text/x-c': 'public.c-source',\n 'text/x-c++-code': 'public.c-plus-plus-source',\n 'text/x-c++-hdr': 'public.c-plus-plus-header',\n 'text/x-c++-src': 'public.c-plus-plus-source',\n 'text/x-c++src': 'public.c-plus-plus-source',\n 'text/x-h': 'public.c-header',\n 'text/x-java-source': 'com.sun.java-source',\n 'text/x-latex': 'org.tug.tex',\n 'text/x-objcppsrc': 'public.objective-c-plus-plus-source',\n 'text/x-objcsrc': 'public.objective-c-source',\n 'text/x-opml': 'unofficial.opml',\n 'text/x-perl-script': 'public.perl-script',\n 'text/x-perl': 'public.perl-script',\n 'text/x-php-script': 'public.php-script',\n 'text/x-python-script': 'public.python-script',\n 'text/x-python': 'public.python-script',\n 'text/x-scriptcsh': 'public.csh-script',\n 'text/x-scriptperl-module': 'public.perl-script',\n 'text/x-scriptperl': 'public.perl-script',\n 'text/x-scriptphyton': 'public.python-script',\n 'text/x-scriptsh': 'public.shell-script',\n 'text/x-server-parsed-html': 'public.html',\n 'text/x-tex': 'org.tug.tex',\n 'text/x-vcalendar': 'com.apple.ical.vcs',\n 'text/x-vcard': 'public.vcard',\n 'text/xhtml': 'public.html',\n 'text/xml': 'public.xml',\n 'video/3gpp': 'public.3gpp',\n 'video/3gpp2': 'public.3gpp2',\n 'video/avi': 'public.avi',\n 'video/MP2T': 'public.mpegts',\n 'video/mp4': 'public.mpeg4',\n 'video/mp4v': 'public.mpeg4',\n 'video/mpeg': 'public.mpeg',\n 'video/mpg': 'public.mpeg',\n 'video/msvideo': 'public.avi',\n 'video/ogg': 'org.xiph.ogg-theora',\n 'video/quicktime': 'com.apple.quicktime-movie',\n 'video/webm': 'public.webm',\n 'video/x-dv': 'public.dv',\n 'video/x-flv': 'public.flv',\n 'video/x-m4v': 'public.mpeg4',\n 'video/x-matroska': 'public.mkv',\n 'video/x-mpeg': 'public.mpeg',\n 'video/x-mpg': 'public.mpeg',\n 'video/x-ms-asf-plugin': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asf': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asx': 'com.microsoft.advanced-stream-redirector',\n 'video/x-ms-wm': 'com.microsoft.windows-media-wm',\n 'video/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'video/x-ms-wmp': 'com.microsoft.windows-media-wmp',\n 'video/x-ms-wmv': 'com.microsoft.windows-media-wmv',\n 'video/x-ms-wmx': 'com.microsoft.windows-media-wmx',\n 'video/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'video/x-ms-wvx': 'com.microsoft.windows-media-wvx',\n 'video/x-msvideo': 'public.avi',\n 'video/x-ogg': 'org.xiph.ogg-theora',\n 'x-msdos-program': 'com.microsoft.windows-executable',\n 'x-music/x-midi': 'public.midi',\n }\n dataOwnerApi: IccDataOwnerXApi\n authenticationProvider: AuthenticationProvider\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n private crypto: IccCryptoXApi,\n private authApi: IccAuthApi,\n dataOwnerApi: IccDataOwnerXApi,\n private readonly autofillAuthor: boolean,\n authenticationProvider: AuthenticationProvider = new NoAuthenticationProvider(),\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, authenticationProvider, fetchImpl)\n this.fetchImpl = fetchImpl\n this.authenticationProvider = authenticationProvider\n this.dataOwnerApi = dataOwnerApi\n }\n\n override get headers(): Promise<Array<XHR.Header>> {\n return super.headers.then((h) => this.crypto.accessControlKeysHeaders.addAccessControlKeysHeaders(h, EntityWithDelegationTypeName.Document))\n }\n\n /**\n * Creates a new instance of document with initialised encryption metadata (not in the database).\n * @param user the current user.\n * @param message the message this document refers to.\n * @param c initialised data for the document. Metadata such as id, creation data, etc. will be automatically initialised, but you can specify\n * other kinds of data or overwrite generated metadata with this. You can't specify encryption metadata.\n * @param options optional parameters:\n * - additionalDelegates: delegates which will have access to the entity in addition to the current data owner and delegates from the\n * auto-delegations. Must be an object which associates each data owner id with the access level to give to that data owner. May overlap with\n * auto-delegations, in such case the access level specified here will be used.\n * - preferredSfk: secret id of the message to use as the secret foreign key to use for the document. The default value will be a\n * secret id of the message known by the topmost parent in the current data owner hierarchy.\n * @return a new instance of document.\n */\n async newInstance(\n user: models.User,\n message?: models.Message,\n c: any = {},\n options: {\n additionalDelegates?: { [dataOwnerId: string]: AccessLevelEnum }\n preferredSfk?: string\n } = {}\n ) {\n if (!message && options.preferredSfk) throw new Error('You need to specify parent message in order to use secret foreign keys.')\n const document = {\n ...(c ?? {}),\n _type: 'org.taktik.icure.entities.Document',\n id: c?.id ?? this.crypto.primitives.randomUuid(),\n created: c?.created ?? new Date().getTime(),\n modified: c?.modified ?? new Date().getTime(),\n responsible: c?.responsible ?? (this.autofillAuthor ? this.dataOwnerApi.getDataOwnerIdOf(user) : undefined),\n author: c?.author ?? (this.autofillAuthor ? user.id : undefined),\n codes: c?.codes ?? [],\n tags: c?.tags ?? [],\n }\n\n const ownerId = this.dataOwnerApi.getDataOwnerIdOf(user)\n if (ownerId !== (await this.dataOwnerApi.getCurrentDataOwnerId())) throw new Error('Can only initialise entities as current data owner.')\n const sfk = message\n ? options.preferredSfk ??\n (await this.crypto.confidential.getAnySecretIdSharedWithParents({ entity: message, type: EntityWithDelegationTypeName.Message }))\n : undefined\n if (message && !sfk) throw new Error(`Couldn't find any sfk of parent message ${message.id}`)\n const extraDelegations = {\n ...Object.fromEntries(\n [...(user.autoDelegations?.all ?? []), ...(user.autoDelegations?.medicalInformation ?? [])].map((d) => [d, AccessLevelEnum.WRITE])\n ),\n ...(options?.additionalDelegates ?? {}),\n }\n return new models.Document(\n await this.crypto.xapi\n .entityWithInitialisedEncryptedMetadata(document, EntityWithDelegationTypeName.Document, message?.id, sfk, true, false, extraDelegations)\n .then((x) => x.updatedEntity)\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n async findByMessage(hcpartyId: string, message: models.Message) {\n const extractedKeys = await this.crypto.xapi.secretIdsOf({ entity: message, type: EntityWithDelegationTypeName.Message }, hcpartyId)\n const topmostParentId = (await this.dataOwnerApi.getCurrentDataOwnerHierarchyIds())[0]\n let documents: Array<models.Document> = await this.findDocumentsByHCPartyPatientForeignKeys(topmostParentId, _.uniq(extractedKeys).join(','))\n return await this.decrypt(hcpartyId, documents)\n }\n\n // Note: this is only for dealing with legacy documents: new document are not encrypted, only their attachments are\n decrypt(hcpartyId: string, documents: Array<models.Document>): Promise<Array<models.Document>> {\n return Promise.all(\n documents.map((document) =>\n this.crypto.xapi.decryptAndImportAllDecryptionKeys({ entity: document, type: EntityWithDelegationTypeName.Document }).then((keys) => {\n if (!keys.length) {\n console.log('Cannot decrypt document', document.id)\n return Promise.resolve(document)\n }\n\n if (keys.length && (document.encryptedSelf || document.encryptedAttachment)) {\n const key = keys[0].key\n return Promise.all([\n document.encryptedSelf\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.primitives.AES.decrypt(key, string2ua(a2b(document.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n document.encryptedAttachment\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.primitives.AES.decrypt(key, document.encryptedAttachment!).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n ]).then((decrypted: [ArrayBuffer | null, ArrayBuffer | null]) => {\n if (decrypted) {\n if (decrypted[0]) {\n document = _.extend(document, JSON.parse(ua2string(decrypted[0])))\n }\n if (decrypted[1]) {\n document.decryptedAttachment = decrypted[1]\n }\n }\n return document\n })\n } else {\n return Promise.resolve(document)\n }\n })\n )\n ).catch(function (e: Error) {\n console.log(e)\n return Promise.resolve(documents)\n })\n }\n\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/octet-stream\", enckeys?: string, fileName?: string): Promise<ArrayBuffer>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"text/plain\", enckeys?: string, fileName?: string): Promise<string>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/json\", enckeys?: string, fileName?: string): Promise<any>\n /**\n * @deprecated use getMainAttachmentAs instead\n */\n async getAttachmentAs(\n documentId: string,\n attachmentId: string,\n returnType: 'application/octet-stream' | 'text/plain' | 'application/json',\n enckeys?: string,\n fileName?: string\n ): Promise<any> {\n if (!!enckeys || !!fileName) {\n console.warn('Using getAttachmentAs method with a value for enckeys or fileName does nothing anymore.')\n }\n return this.getMainAttachmentAs(documentId, returnType)\n }\n\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"application/octet-stream\"): Promise<ArrayBuffer>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"text/plain\"): Promise<string>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"application/json\"): Promise<any>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any>\n async getMainAttachmentAs(documentId: string, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any> {\n const url = this.host + `/document/${documentId}/attachment` + '?ts=' + new Date().getTime()\n return XHR.sendCommand('GET', url, await this.headers, null, this.fetchImpl, returnType, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n // noinspection JSUnusedGlobalSymbols\n uti(mimeType: string, extension: string) {\n return (mimeType && mimeType !== 'application/octet-stream' ? this.utiDefs[mimeType] : this.utiExts[extension]) || this.utiDefs[mimeType]\n }\n\n // noinspection JSUnusedGlobalSymbols\n mimeType(uti: string) {\n return this.utiRevDefs[uti]\n }\n\n /**\n * Adds an attachment to a document, encrypting it on client side using the encryption keys of the provided document.\n * @param document a document.\n * @param attachment a new main attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async encryptAndSetDocumentAttachment(document: models.Document, attachment: ArrayBuffer | Uint8Array, utis?: string[]): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n const { encryptedData, updatedEntity } = await this.crypto.xapi.encryptDataOf(document, EntityWithDelegationTypeName.Document, attachment, (d) =>\n this.modifyDocument(d)\n )\n return await this.setMainDocumentAttachment(document.id!, updatedEntity?.rev ?? document.rev, encryptedData, utis)\n }\n\n /**\n * Adds an unencrypted attachment to a document.\n * @param document a document.\n * @param attachment a new main attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async setClearDocumentAttachment(document: models.Document, attachment: ArrayBuffer | Uint8Array, utis?: string[]): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n return await this.setMainDocumentAttachment(document.id!, document.rev, attachment, utis)\n }\n\n /**\n * Adds a secondary attachment to a document, encrypting it on client side using the encryption keys of the provided document.\n * @param document a document.\n * @param secondaryAttachmentKey key for the secondary attachment.\n * @param attachment a new secondary attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async encryptAndSetSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n attachment: ArrayBuffer | Uint8Array,\n utis?: string[]\n ): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n const { encryptedData, updatedEntity } = await this.crypto.xapi.encryptDataOf(document, EntityWithDelegationTypeName.Document, attachment, (d) =>\n this.modifyDocument()\n )\n return await this.setSecondaryAttachment(document.id!, secondaryAttachmentKey, updatedEntity?.rev ?? document.rev!, encryptedData, utis)\n }\n\n /**\n * Adds an unencrypted secondary attachment to a document.\n * @param document a document.\n * @param secondaryAttachmentKey key for the secondary attachment.\n * @param attachment a new secondary attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async setClearSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n attachment: ArrayBuffer | Uint8Array,\n utis?: string[]\n ): Promise<models.Document> {\n return await this.setSecondaryAttachment(document.id!, secondaryAttachmentKey, document.rev!, attachment, utis)\n }\n\n /**\n * Gets the main attachment of a document and tries to decrypt it using the encryption keys of the document, throwing an error if the operation fails.\n * @param document a document.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n */\n async getAndDecryptDocumentAttachment(\n document: models.Document,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<ArrayBuffer> {\n const retrieved = await this.getAndTryDecryptDocumentAttachment(document, (x) => validator(x))\n if (!retrieved.wasDecrypted) throw new Error(`No valid key found to decrypt data of document ${document.id}.`)\n return retrieved.data\n }\n\n /**\n * Gets the main attachment of a document and tries to decrypt it using the encryption keys of the document.\n * @param document a document.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return an object containing:\n * - data: the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n * - wasDecrypted: if the data was successfully decrypted or not\n */\n async getAndTryDecryptDocumentAttachment(\n document: models.Document,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<{ data: ArrayBuffer; wasDecrypted: boolean }> {\n return await this.crypto.xapi.tryDecryptDataOf(\n { entity: document, type: EntityWithDelegationTypeName.Document },\n await this.getRawMainDocumentAttachment(document.id!),\n (x) => validator(x)\n )\n }\n\n /**\n * Gets the secondary attachment of a document and tries to decrypt it using the encryption keys of the document, throwing an error if the operation fails.\n * @param document a document.\n * @param secondaryAttachmentKey key of the secondary attachment.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return the decrypted attachment.\n */\n async getAndDecryptSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<ArrayBuffer> {\n const { data, wasDecrypted } = await this.getAndTryDecryptSecondaryDocumentAttachment(document, secondaryAttachmentKey, (x) => validator(x))\n if (!wasDecrypted) throw new Error(`No valid key found to decrypt data of document ${document.id}.`)\n return data\n }\n\n /**\n * Gets the secondary attachment of a document and tries to decrypt it using the encryption keys of the document.\n * @param document a document.\n * @param secondaryAttachmentKey key of the secondary attachment.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return an object containing:\n * - data: the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n * - wasDecrypted: if the data was successfully decrypted or not\n */\n async getAndTryDecryptSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<{ data: ArrayBuffer; wasDecrypted: boolean }> {\n return await this.crypto.xapi.tryDecryptDataOf(\n { entity: document, type: EntityWithDelegationTypeName.Document },\n await this.getSecondaryAttachment(document.id!, secondaryAttachmentKey),\n (x) => validator(x)\n )\n }\n\n /**\n * @param document a document\n * @return the id of the message that the document refers to, retrieved from the encrypted metadata. Normally there should only be one element\n * in the returned array, but in case of entity merges there could be multiple values.\n */\n async decryptMessageIdOf(document: models.Document): Promise<string[]> {\n return this.crypto.xapi.owningEntityIdsOf({ entity: document, type: EntityWithDelegationTypeName.Document }, undefined)\n }\n\n /**\n * @return if the logged data owner has write access to the content of the given document\n */\n async hasWriteAccess(document: models.Document): Promise<boolean> {\n return this.crypto.xapi.hasWriteAccess({ entity: document, type: EntityWithDelegationTypeName.Document })\n }\n\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param delegateId the id of the data owner which will be granted access to the document.\n * @param document the document to share.\n * @param options optional parameters to customize the sharing behaviour:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return the updated entity\n */\n async shareWith(\n delegateId: string,\n document: models.Document,\n options: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n } = {}\n ): Promise<models.Document> {\n return this.shareWithMany(document, { [delegateId]: options })\n }\n\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param document the document to share.\n * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return the updated entity.\n */\n async shareWithMany(\n document: models.Document,\n delegates: {\n [delegateId: string]: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n }\n }\n ): Promise<models.Document> {\n return (await this.tryShareWithMany(document, delegates)).updatedEntityOrThrow\n }\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param document the document to share.\n * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return a promise which will contain the result of the operation: the updated entity if the operation was successful or details of the error if\n * the operation failed.\n */\n async tryShareWithMany(\n document: models.Document,\n delegates: {\n [delegateId: string]: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n }\n }\n ): Promise<ShareResult<models.Document>> {\n const self = await this.dataOwnerApi.getCurrentDataOwnerId()\n // All entities should have an encryption key.\n const entityWithEncryptionKey = await this.crypto.xapi.ensureEncryptionKeysInitialised(document, EntityWithDelegationTypeName.Document)\n const updatedEntity = entityWithEncryptionKey ? await this.modifyDocument(entityWithEncryptionKey) : document\n return this.crypto.xapi\n .simpleShareOrUpdateEncryptedEntityMetadata(\n { entity: updatedEntity, type: EntityWithDelegationTypeName.Document },\n true,\n Object.fromEntries(\n Object.entries(delegates).map(([delegateId, options]) => [\n delegateId,\n {\n requestedPermissions: options.requestedPermissions,\n shareEncryptionKeys: options.shareEncryptionKey,\n shareOwningEntityIds: options.shareMessageId,\n shareSecretIds: undefined,\n },\n ])\n ),\n (x) => this.bulkShareDocument(x)\n )\n .then((r) => r.mapSuccessAsync((e) => this.decrypt(self, [e]).then((es) => es[0])))\n }\n\n getDataOwnersWithAccessTo(\n entity: models.Document\n ): Promise<{ permissionsByDataOwnerId: { [p: string]: AccessLevelEnum }; hasUnknownAnonymousDataOwners: boolean }> {\n return this.crypto.delegationsDeAnonymization.getDataOwnersWithAccessTo({ entity, type: EntityWithDelegationTypeName.Document })\n }\n\n getEncryptionKeysOf(entity: models.Document): Promise<string[]> {\n return this.crypto.xapi.encryptionKeysOf({ entity, type: EntityWithDelegationTypeName.Document }, undefined)\n }\n\n createDelegationDeAnonymizationMetadata(entity: models.Document, delegates: string[]): Promise<void> {\n return this.crypto.delegationsDeAnonymization.createOrUpdateDeAnonymizationInfo(\n { entity, type: EntityWithDelegationTypeName.Document },\n delegates\n )\n }\n}\n"]}
1
+ {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAuthApi, IccDocumentApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport { XHR } from '../icc-api/api/XHR'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string, ua2utf8 } from './utils/binary-utils'\nimport { IccDataOwnerXApi } from './icc-data-owner-x-api'\nimport { AuthenticationProvider, NoAuthenticationProvider } from './auth/AuthenticationProvider'\nimport { SecureDelegation } from '../icc-api/model/SecureDelegation'\nimport AccessLevelEnum = SecureDelegation.AccessLevelEnum\nimport { ShareMetadataBehaviour } from './crypto/ShareMetadataBehaviour'\nimport { ShareResult } from './utils/ShareResult'\nimport { EntityShareRequest } from '../icc-api/model/requests/EntityShareRequest'\nimport RequestedPermissionEnum = EntityShareRequest.RequestedPermissionEnum\nimport { EncryptedEntityXApi } from './basexapi/EncryptedEntityXApi'\nimport { AccessLog } from '../icc-api/model/models'\nimport { EntityWithDelegationTypeName } from './utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccDocumentXApi extends IccDocumentApi implements EncryptedEntityXApi<models.Document> {\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n /** maps invalid UTI values to corresponding MIME type for backward-compatibility (pre-v1.0.117) */\n compatUtiRevDefs: { [key: string]: string } = {\n 'com.adobe.encapsulatedPostscript': 'image/eps',\n 'com.adobe.illustrator.aiImage': 'application/illustrator',\n 'com.adobe.indesignImage': 'image/indesign',\n 'com.adobe.photoshopImage': 'image/psd',\n 'com.adobe.postscriptPfaFont': 'application/x-font-type1',\n 'com.adobe.postscriptPfbFont': 'application/x-font-type1',\n 'com.allume.stuffitArchive': 'application/stuffit',\n 'com.apple.binhexArchive': 'application/binhex',\n 'com.apple.diskImageUdif': 'application/x-apple-diskimage',\n 'com.apple.macbinaryArchive': 'application/macbinary',\n 'com.apple.quartzComposerComposition': 'application/x-quartzcomposer',\n 'com.apple.quicktimeImage': 'image/x-quicktime',\n 'com.apple.quicktimeMovie': 'video/quicktime',\n 'com.js.efxFax': 'image/efax',\n 'com.macromedia.shockwaveFlash': 'application/x-shockwave-flash',\n 'com.microsoft.advancedStreamRedirector': 'video/x-ms-asx',\n 'com.microsoft.advancedSystemsFormat': 'video/x-ms-asf',\n 'com.microsoft.waveformAudio': 'audio/wave',\n 'com.microsoft.windowsDynamicLinkLibrary': 'application/x-msdownload',\n 'com.microsoft.windowsExecutable': 'application/exe',\n 'com.microsoft.windowsMediaWax': 'audio/x-ms-wax',\n 'com.microsoft.windowsMediaWm': 'video/x-ms-wm',\n 'com.microsoft.windowsMediaWma': 'audio/x-ms-wma',\n 'com.microsoft.windowsMediaWmd': 'video/x-ms-wmd',\n 'com.microsoft.windowsMediaWmp': 'video/x-ms-wmp',\n 'com.microsoft.windowsMediaWmv': 'video/x-ms-wmv',\n 'com.microsoft.windowsMediaWmx': 'video/x-ms-wmx',\n 'com.microsoft.windowsMediaWmz': 'video/x-ms-wmz',\n 'com.microsoft.windowsMediaWvx': 'video/x-ms-wvx',\n 'com.netscape.javascriptSource': 'text/javascript',\n 'com.pkware.zipArchive': 'application/zip',\n 'com.rarlab.rarArchive': 'application/rar',\n 'com.redhat.redhatPackage': 'application/x-redhat-package',\n 'com.sgi.sgiImage': 'image/sgi',\n 'com.sun.javaAppDescriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.javaArchive': 'application/java-archive',\n 'com.sun.javaClass': 'application/java',\n 'com.sun.javaSource': 'text/x-java-source',\n 'com.sun.javaWebStart': 'application/jnlp',\n 'com.truevision.tgaImage': 'image/tga',\n 'org.bzip.bzip2Archive': 'application/x-bzip2',\n 'org.debian.debianPackage': 'application/x-debian-package',\n 'org.gnu.gnuTarArchive': 'application/x-gtar',\n 'org.gnu.gnuZipArchive': 'application/gzip',\n 'org.oasis.opendocument.textMaster': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.textWeb': 'application/vnd.oasis.opendocument.text-web',\n 'org.xiph.oggTheora': 'video/ogg',\n 'org.xiph.oggVorbis': 'audio/ogg',\n 'public.aifcAudio': 'audio/aiff',\n 'public.aiffAudio': 'audio/aiff',\n 'public.assemblySource': 'text/x-asm',\n 'public.cHeader': 'text/x-c-header',\n 'public.cpioArchive': 'application/x-cpio',\n 'public.cPlusPlusHeader': 'text/x-c++-hdr',\n 'public.cPlusPlusSource': 'application/x-cplusplus',\n 'public.cshScript': 'application/x-csh',\n 'public.cSource': 'text/x-c-code',\n 'public.isoImage': 'application/x-iso-image',\n 'public.mpeg4Audio': 'audio/mp4',\n 'public.objectiveCPlusPlusSource': 'text/x-objcppsrc',\n 'public.objectiveCSource': 'text/x-objcsrc',\n 'public.opentypeFont': 'font/opentype',\n 'public.perlScript': 'text/x-perl',\n 'public.phpScript': 'text/php',\n 'public.plainText': 'text/plain',\n 'public.pythonScript': 'text/x-python-script',\n 'public.shellScript': 'application/x-sh',\n 'public.tarArchive': 'application/tar',\n 'public.truetypeTtfFont': 'application/x-font-ttf',\n 'public.ulawAudio': 'audio/au',\n 'public.xbitmapImage': 'image/xbm',\n 'unofficial.atomFeed': 'application/atom+xml',\n 'unofficial.m3u8Playlist': 'application/x-mpegURL',\n 'unofficial.plsPlaylist': 'audio/scpls',\n 'unofficial.rdfFeed': 'application/rdf+xml',\n 'unofficial.rssFeed': 'application/rss+xml',\n }\n\n utiRevDefs: { [key: string]: string } = {\n ...this.compatUtiRevDefs,\n 'com.adobe.encapsulated-postscript': 'image/eps',\n 'com.adobe.illustrator.ai-image': 'application/illustrator',\n 'com.adobe.indesign-image': 'image/indesign',\n 'com.adobe.pdf': 'application/pdf',\n 'com.adobe.photoshop-image': 'image/psd',\n 'com.adobe.postscript': 'application/postscript',\n 'com.adobe.postscript-pfa-font': 'application/x-font-type1',\n 'com.adobe.postscript-pfb-font': 'application/x-font-type1',\n 'com.allume.stuffit-archive': 'application/stuffit',\n 'com.apple.applescript.script': 'application/x-applescript',\n 'com.apple.applescript.text': 'application/x-applescript',\n 'com.apple.binhex-archive': 'application/binhex',\n 'com.apple.disk-image-udif': 'application/x-apple-diskimage',\n 'com.apple.ical.ics': 'text/calendar',\n 'com.apple.ical.vcs': 'text/x-vcalendar',\n 'com.apple.macbinary-archive': 'application/macbinary',\n 'com.apple.pict': 'image/pict',\n 'com.apple.quartz-composer-composition': 'application/x-quartzcomposer',\n 'com.apple.quicktime-image': 'image/x-quicktime',\n 'com.apple.quicktime-movie': 'video/quicktime',\n 'com.bittorrent.torrent': 'application/x-bittorrent',\n 'com.compuserve.gif': 'image/gif',\n 'com.js.efx-fax': 'image/efax',\n 'com.kodak.flashpix.image': 'image/vndfpx',\n 'com.lizardtech.djvu': 'image/vnd.djvu',\n 'com.macromedia.shockwave-flash': 'application/x-shockwave-flash',\n 'com.microsoft.advanced-stream-redirector': 'video/x-ms-asx',\n 'com.microsoft.advanced-systems-format': 'video/x-ms-asf',\n 'com.microsoft.bmp': 'image/bmp',\n 'com.microsoft.excel.xls': 'application/excel',\n 'com.microsoft.ico': 'image/x-icon',\n 'com.microsoft.powerpoint.ppt': 'application/powerpoint',\n 'com.microsoft.waveform-audio': 'audio/wave',\n 'com.microsoft.windows-dynamic-link-library': 'application/x-msdownload',\n 'com.microsoft.windows-executable': 'application/exe',\n 'com.microsoft.windows-media-wax': 'audio/x-ms-wax',\n 'com.microsoft.windows-media-wm': 'video/x-ms-wm',\n 'com.microsoft.windows-media-wma': 'audio/x-ms-wma',\n 'com.microsoft.windows-media-wmd': 'video/x-ms-wmd',\n 'com.microsoft.windows-media-wmp': 'video/x-ms-wmp',\n 'com.microsoft.windows-media-wmv': 'video/x-ms-wmv',\n 'com.microsoft.windows-media-wmx': 'video/x-ms-wmx',\n 'com.microsoft.windows-media-wmz': 'video/x-ms-wmz',\n 'com.microsoft.windows-media-wvx': 'video/x-ms-wvx',\n 'com.microsoft.word.doc': 'application/msword',\n 'com.netscape.javascript-source': 'text/javascript',\n 'com.pkware.zip-archive': 'application/zip',\n 'com.rarlab.rar-archive': 'application/rar',\n 'com.real.realaudio': 'audio/vnd.rn-realaudio',\n 'com.real.realmedia': 'application/vnd.rn-realmedia',\n 'com.real.smil': 'application/smil',\n 'com.redhat.redhat-package': 'application/x-redhat-package',\n 'com.sgi.sgi-image': 'image/sgi',\n 'com.soundblaster.soundfont': 'application/x-soundfont',\n 'com.sun.java-app-descriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.java-archive': 'application/java-archive',\n 'com.sun.java-class': 'application/java',\n 'com.sun.java-source': 'text/x-java-source',\n 'com.sun.java-web-start': 'application/jnlp',\n 'com.truevision.tga-image': 'image/tga',\n 'org.bzip.bzip2-archive': 'application/x-bzip2',\n 'org.debian.debian-package': 'application/x-debian-package',\n 'org.gnu.gnu-tar-archive': 'application/x-gtar',\n 'org.gnu.gnu-zip-archive': 'application/gzip',\n 'org.neooffice.calc': 'application/vnd.sun.xml.calc',\n 'org.neooffice.draw': 'application/vnd.sun.xml.draw',\n 'org.neooffice.global': 'application/vnd.sun.xml.writer.global',\n 'org.neooffice.impress': 'application/vnd.sun.xml.impress',\n 'org.neooffice.math': 'application/vnd.sun.xml.math',\n 'org.neooffice.writer': 'application/vnd.sun.xml.writer',\n 'org.oasis.opendocument.chart': 'application/vnd.oasis.opendocument.chart',\n 'org.oasis.opendocument.database': 'application/vnd.oasis.opendocument.database',\n 'org.oasis.opendocument.formula': 'application/vnd.oasis.opendocument.formula',\n 'org.oasis.opendocument.graphics': 'application/vnd.oasis.opendocument.graphics',\n 'org.oasis.opendocument.image': 'application/vnd.oasis.opendocument.image',\n 'org.oasis.opendocument.presentation': 'application/vnd.oasis.opendocument.presentation',\n 'org.oasis.opendocument.spreadsheet': 'application/vnd.oasis.opendocument.spreadsheet',\n 'org.oasis.opendocument.text': 'application/vnd.oasis.opendocument.text',\n 'org.oasis.opendocument.text-master': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.text-web': 'application/vnd.oasis.opendocument.text-web',\n 'org.tug.tex': 'text/tex',\n 'org.xiph.flac': 'audio/flac',\n 'org.xiph.ogg-theora': 'video/ogg',\n 'org.xiph.ogg-vorbis': 'audio/ogg',\n 'public.3gpp': 'video/3gpp',\n 'public.3gpp2': 'video/3gpp2',\n 'public.aifc-audio': 'audio/aiff',\n 'public.aiff-audio': 'audio/aiff',\n 'public.assembly-source': 'text/x-asm',\n 'public.avi': 'video/avi',\n 'public.c-header': 'text/x-c-header',\n 'public.cpio-archive': 'application/x-cpio',\n 'public.c-plus-plus-header': 'text/x-c++-hdr',\n 'public.c-plus-plus-source': 'application/x-cplusplus',\n 'public.csh-script': 'application/x-csh',\n 'public.c-source': 'text/x-c-code',\n 'public.css': 'text/css',\n 'public.dv': 'video/x-dv',\n 'public.flv': 'video/x-flv',\n 'public.html': 'text/html',\n 'public.iso-image': 'application/x-iso-image',\n 'public.jpeg': 'image/jpeg',\n 'public.jpeg2000': 'image/jp2',\n 'public.midi': 'audio/midi',\n 'public.mka': 'audio/x-matroska',\n 'public.mkv': 'video/x-matroska',\n 'public.mp3': 'audio/mp3',\n 'public.mpeg': 'video/mpeg',\n 'public.mpeg4': 'video/mp4',\n 'public.mpeg4-audio': 'audio/mp4',\n 'public.mpegts': 'video/MP2T',\n 'public.objective-c-plus-plus-source': 'text/x-objcppsrc',\n 'public.objective-c-source': 'text/x-objcsrc',\n 'public.opentype-font': 'font/opentype',\n 'public.perl-script': 'text/x-perl',\n 'public.php-script': 'text/php',\n 'public.plain-text': 'text/plain',\n 'public.png': 'image/png',\n 'public.python-script': 'text/x-python-script',\n 'public.rtf': 'text/rtf',\n 'public.shell-script': 'application/x-sh',\n 'public.tar-archive': 'application/tar',\n 'public.tiff': 'image/tiff',\n 'public.truetype-ttf-font': 'application/x-font-ttf',\n 'public.ulaw-audio': 'audio/au',\n 'public.vcard': 'text/vcard',\n 'public.webm': 'video/webm',\n 'public.xbitmap-image': 'image/xbm',\n 'public.xml': 'text/xml',\n 'unofficial.atom-feed': 'application/atom+xml',\n 'unofficial.m3u8-playlist': 'application/x-mpegURL',\n 'unofficial.opml': 'text/x-opml',\n 'unofficial.pls-playlist': 'audio/scpls',\n 'unofficial.rdf-feed': 'application/rdf+xml',\n 'unofficial.rss-feed': 'application/rss+xml',\n }\n\n utiExts: { [key: string]: string } = {\n jpg: 'public.jpeg',\n jpeg: 'public.jpeg',\n png: 'public.png',\n rtf: 'public.rtf',\n mpeg: 'public.mpeg',\n mpg: 'public.mpeg',\n html: 'public.html',\n htm: 'public.html',\n pdf: 'com.adobe.pdf',\n xls: 'com.microsoft.excel.xls',\n xlsx: 'com.microsoft.excel.xls',\n doc: 'com.microsoft.word.doc',\n docx: 'com.microsoft.word.doc',\n }\n\n utiDefs: { [key: string]: string } = {\n 'application/atom+xml': 'unofficial.atom-feed',\n 'application/bat': 'com.microsoft.windows-executable',\n 'application/binhex': 'com.apple.binhex-archive',\n 'application/binhex4': 'com.apple.binhex-archive',\n 'application/ecmascript': 'com.netscape.javascript-source',\n 'application/eps': 'com.adobe.encapsulated-postscript',\n 'application/excel': 'com.microsoft.excel.xls',\n 'application/exe': 'com.microsoft.windows-executable',\n 'application/gnutar': 'public.tar-archive',\n 'application/gzip': 'org.gnu.gnu-zip-archive',\n 'application/illustrator': 'com.adobe.illustrator.ai-image',\n 'application/indesign': 'com.adobe.indesign-image',\n 'application/java-archive': 'com.sun.java-archive',\n 'application/java-byte-code': 'com.sun.java-class',\n 'application/java': 'com.sun.java-class',\n 'application/javascript': 'com.netscape.javascript-source',\n 'application/jnlp': 'com.sun.java-web-start',\n 'application/latex': 'org.tug.tex',\n 'application/mac-binary': 'com.apple.macbinary-archive',\n 'application/mac-binhex': 'com.apple.binhex-archive',\n 'application/mac-binhex40': 'com.apple.binhex-archive',\n 'application/macbinary': 'com.apple.macbinary-archive',\n 'application/mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/msword': 'com.microsoft.word.doc',\n 'application/octet-stream': 'com.microsoft.windows-executable',\n 'application/pdf': 'com.adobe.pdf',\n 'application/photoshop': 'com.adobe.photoshop-image',\n 'application/php': 'public.php-script',\n 'application/plain': 'public.plain-text',\n 'application/postscript': 'com.adobe.postscript',\n 'application/powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/rar': 'com.rarlab.rar-archive',\n 'application/rdf+xml': 'unofficial.rdf-feed',\n 'application/rss+xml': 'unofficial.rss-feed',\n 'application/rtf': 'public.rtf',\n 'application/smil': 'com.real.smil',\n 'application/stuffit': 'com.allume.stuffit-archive',\n 'application/tar': 'public.tar-archive',\n 'application/tga': 'com.truevision.tga-image',\n 'application/vnd.fpx': 'com.kodak.flashpix.image',\n 'application/vnd.ms-excel': 'com.microsoft.excel.xls',\n 'application/vnd.ms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vnd.oasis.opendocument.chart': 'org.oasis.opendocument.chart',\n 'application/vnd.oasis.opendocument.database': 'org.oasis.opendocument.database',\n 'application/vnd.oasis.opendocument.formula': 'org.oasis.opendocument.formula',\n 'application/vnd.oasis.opendocument.graphics-template': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.graphics': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.image': 'org.oasis.opendocument.image',\n 'application/vnd.oasis.opendocument.presentation-template': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.presentation': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet-template': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.spreadsheet': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text-master': 'org.oasis.opendocument.text-master',\n 'application/vnd.oasis.opendocument.text-template': 'org.oasis.opendocument.text',\n 'application/vnd.oasis.opendocument.text-web': 'org.oasis.opendocument.text-web',\n 'application/vnd.oasis.opendocument.text': 'org.oasis.opendocument.text',\n 'application/vnd.rn-realmedia': 'com.real.realmedia',\n 'application/vnd.sun.xml.calc.template': 'org.neooffice.calc',\n 'application/vnd.sun.xml.calc': 'org.neooffice.calc',\n 'application/vnd.sun.xml.draw.template': 'org.neooffice.draw',\n 'application/vnd.sun.xml.draw': 'org.neooffice.draw',\n 'application/vnd.sun.xml.impress.template': 'org.neooffice.impress',\n 'application/vnd.sun.xml.impress': 'org.neooffice.impress',\n 'application/vnd.sun.xml.math': 'org.neooffice.math',\n 'application/vnd.sun.xml.writer.global': 'org.neooffice.global',\n 'application/vnd.sun.xml.writer.template': 'org.neooffice.writer',\n 'application/vnd.sun.xml.writer': 'org.neooffice.writer',\n 'application/vndms-excel': 'com.microsoft.excel.xls',\n 'application/vndms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vndrn-realmedia': 'com.real.realmedia',\n 'application/x-apple-diskimage': 'com.apple.disk-image-udif',\n 'application/x-applescript': 'com.apple.applescript.script',\n 'application/x-bat': 'com.microsoft.windows-executable',\n 'application/x-binary': 'com.apple.macbinary-archive',\n 'application/x-binhex40': 'com.apple.binhex-archive',\n 'application/x-bittorrent': 'com.bittorrent.torrent',\n 'application/x-bzip2': 'org.bzip.bzip2-archive',\n 'application/x-cpio': 'public.cpio-archive',\n 'application/x-cplusplus': 'public.c-plus-plus-source',\n 'application/x-csh': 'public.csh-script',\n 'application/x-deb': 'org.debian.debian-package',\n 'application/x-debian-package': 'org.debian.debian-package',\n 'application/x-eps': 'com.adobe.encapsulated-postscript',\n 'application/x-excel': 'com.microsoft.excel.xls',\n 'application/x-exe': 'com.microsoft.windows-executable',\n 'application/x-flac': 'org.xiph.flac',\n 'application/x-font-ttf': 'public.truetype-ttf-font',\n 'application/x-font-type1': 'com.adobe.postscript-pfa-font',\n 'application/x-gtar': 'org.gnu.gnu-tar-archive',\n 'application/x-gzip': 'org.gnu.gnu-zip-archive',\n 'application/x-iso-image': 'public.iso-image',\n 'application/x-java-class': 'com.sun.java-class',\n 'application/x-java': 'com.sun.java-web-start',\n 'application/x-javascript': 'com.netscape.javascript-source',\n 'application/x-latex': 'org.tug.tex',\n 'application/x-mac-binhex40': 'com.apple.binhex-archive',\n 'application/x-macbinary': 'com.apple.macbinary-archive',\n 'application/x-midi': 'public.midi',\n 'application/x-mpegURL': 'unofficial.m3u8-playlist',\n 'application/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'application/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'application/x-msdos-program': 'com.microsoft.windows-executable',\n 'application/x-msdownload': 'com.microsoft.windows-executable',\n 'application/x-msexcel': 'com.microsoft.excel.xls',\n 'application/x-mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/x-pdf': 'com.adobe.pdf',\n 'application/x-perl': 'public.perl-script',\n 'application/x-php': 'public.php-script',\n 'application/x-quartzcomposer': 'com.apple.quartz-composer-composition',\n 'application/x-rar-compressed': 'com.rarlab.rar-archive',\n 'application/x-redhat-package': 'com.redhat.redhat-package',\n 'application/x-rpm': 'com.redhat.redhat-package',\n 'application/x-rtf': 'public.rtf',\n 'application/x-sh': 'public.shell-script',\n 'application/x-shellscript': 'public.shell-script',\n 'application/x-shockwave-flash': 'com.macromedia.shockwave-flash',\n 'application/x-sit': 'com.allume.stuffit-archive',\n 'application/x-smil': 'com.real.smil',\n 'application/x-soundfont': 'com.soundblaster.soundfont',\n 'application/x-stuffit': 'com.allume.stuffit-archive',\n 'application/x-tar': 'public.tar-archive',\n 'application/x-tex': 'org.tug.tex',\n 'application/x-texinfo': 'org.tug.tex',\n 'application/x-troff-msvideo': 'public.avi',\n 'application/x-zip-compressed': 'com.pkware.zip-archive',\n 'application/xhtml+xml': 'public.html',\n 'application/xml': 'public.xml',\n 'application/zip': 'com.pkware.zip-archive',\n 'audio/3gpp': 'public.3gpp',\n 'audio/3gpp2': 'public.3gpp2',\n 'audio/aiff': 'public.aiff-audio',\n 'audio/au': 'public.ulaw-audio',\n 'audio/basic': 'public.ulaw-audio',\n 'audio/flac': 'org.xiph.flac',\n 'audio/mid': 'public.midi',\n 'audio/midi': 'public.midi',\n 'audio/mp3': 'public.mp3',\n 'audio/mp4': 'public.mpeg4-audio',\n 'audio/mp4a-latm': 'public.mpeg4-audio',\n 'audio/mpeg': 'public.mp3',\n 'audio/mpeg3': 'public.mp3',\n 'audio/mpegurl': 'unofficial.m3u-playlist',\n 'audio/mpg': 'public.mp3',\n 'audio/ogg': 'org.xiph.ogg-vorbis',\n 'audio/scpls': 'unofficial.pls-playlist',\n 'audio/snd': 'public.ulaw-audio',\n 'audio/vnd.rn-realaudio': 'com.real.realaudio',\n 'audio/wav': 'com.microsoft.waveform-audio',\n 'audio/wave': 'com.microsoft.waveform-audio',\n 'audio/webm': 'public.webm',\n 'audio/x-adpcm': 'public.ulaw-audio',\n 'audio/x-aiff': 'public.aiff-audio',\n 'audio/x-au': 'public.ulaw-audio',\n 'audio/x-flac': 'org.xiph.flac',\n 'audio/x-matroska': 'public.mka',\n 'audio/x-mid': 'public.midi',\n 'audio/x-midi': 'public.midi',\n 'audio/x-mp3': 'public.mp3',\n 'audio/x-mpeg-3': 'public.mp3',\n 'audio/x-mpeg': 'public.mp3',\n 'audio/x-mpeg3': 'public.mp3',\n 'audio/x-mpegurl': 'unofficial.m3u-playlist',\n 'audio/x-mpg': 'public.mp3',\n 'audio/x-ms-wax': 'com.microsoft.windows-media-wax',\n 'audio/x-ms-wma': 'com.microsoft.windows-media-wma',\n 'audio/x-ogg': 'org.xiph.ogg-vorbis',\n 'audio/x-pn-realaudio-plugin': 'com.real.realaudio',\n 'audio/x-pn-realaudio': 'com.real.realaudio',\n 'audio/x-pn-wav': 'com.microsoft.waveform-audio',\n 'audio/x-realaudio': 'com.real.realmedia',\n 'audio/x-scpls': 'unofficial.pls-playlist',\n 'audio/x-wav': 'com.microsoft.waveform-audio',\n 'font/opentype': 'public.opentype-font',\n 'image/bmp': 'com.microsoft.bmp',\n 'image/efax': 'com.js.efx-fax',\n 'image/eps': 'com.adobe.encapsulated-postscript',\n 'image/fpx': 'com.kodak.flashpix.image',\n 'image/gif': 'com.compuserve.gif',\n 'image/indd': 'com.adobe.indesign-image',\n 'image/indesign': 'com.adobe.indesign-image',\n 'image/jp2': 'public.jpeg2000',\n 'image/jpeg': 'public.jpeg',\n 'image/ms-bmp': 'com.microsoft.bmp',\n 'image/photoshop': 'com.adobe.photoshop-image',\n 'image/pict': 'com.apple.pict',\n 'image/pipeg': 'public.jpeg',\n 'image/pjpeg': 'public.jpeg',\n 'image/png': 'public.png',\n 'image/psd': 'com.adobe.photoshop-image',\n 'image/sgi': 'com.sgi.sgi-image',\n 'image/targa': 'com.truevision.tga-image',\n 'image/tga': 'com.truevision.tga-image',\n 'image/tiff': 'public.tiff',\n 'image/vnd.djvu': 'com.lizardtech.djvu',\n 'image/vndfpx': 'com.kodak.flashpix.image',\n 'image/vndnet-fpx': 'com.kodak.flashpix.image',\n 'image/webp': 'public.webp',\n 'image/x-bitmap': 'com.microsoft.bmp',\n 'image/x-bmp': 'com.microsoft.bmp',\n 'image/x-djvu': 'com.lizardtech.djvu',\n 'image/x-eps': 'com.adobe.encapsulated-postscript',\n 'image/x-icon': 'com.microsoft.ico',\n 'image/x-indesign': 'com.adobe.indesign-image',\n 'image/x-macpict': 'com.apple.pict',\n 'image/x-ms-bmp': 'com.microsoft.bmp',\n 'image/x-photoshop': 'com.adobe.photoshop-image',\n 'image/x-pict': 'com.apple.pict',\n 'image/x-quicktime': 'com.apple.quicktime-image',\n 'image/x-tiff': 'public.tiff',\n 'image/x-windows-bmp': 'com.microsoft.bmp',\n 'image/x-xbitmap': 'com.microsoft.bmp',\n 'image/x-xbm': 'public.xbitmap-image',\n 'image/xbm': 'public.xbitmap-image',\n 'multipart/x-gzip': 'org.gnu.gnu-zip-archive',\n 'multipart/x-zip': 'com.pkware.zip-archive',\n 'music/crescendo': 'public.midi',\n 'text/calendar': 'com.apple.ical.ics',\n 'text/css': 'public.css',\n 'text/directory': 'public.vcard',\n 'text/ecmascript': 'com.netscape.javascript-source',\n 'text/html': 'public.html',\n 'text/javascript': 'com.netscape.javascript-source',\n 'text/php': 'public.php-script',\n 'text/plain': 'public.plain-text',\n 'text/richtext': 'public.rtf',\n 'text/rtf': 'public.rtf',\n 'text/ruby-script': 'public.ruby-script',\n 'text/tex': 'org.tug.tex',\n 'text/vcard': 'public.vcard',\n 'text/vnd.sun.j2me.app-descriptor': 'com.sun.java-app-descriptor',\n 'text/x-asm': 'public.assembly-source',\n 'text/x-c-code': 'public.c-source',\n 'text/x-c-header': 'public.c-header',\n 'text/x-c': 'public.c-source',\n 'text/x-c++-code': 'public.c-plus-plus-source',\n 'text/x-c++-hdr': 'public.c-plus-plus-header',\n 'text/x-c++-src': 'public.c-plus-plus-source',\n 'text/x-c++src': 'public.c-plus-plus-source',\n 'text/x-h': 'public.c-header',\n 'text/x-java-source': 'com.sun.java-source',\n 'text/x-latex': 'org.tug.tex',\n 'text/x-objcppsrc': 'public.objective-c-plus-plus-source',\n 'text/x-objcsrc': 'public.objective-c-source',\n 'text/x-opml': 'unofficial.opml',\n 'text/x-perl-script': 'public.perl-script',\n 'text/x-perl': 'public.perl-script',\n 'text/x-php-script': 'public.php-script',\n 'text/x-python-script': 'public.python-script',\n 'text/x-python': 'public.python-script',\n 'text/x-scriptcsh': 'public.csh-script',\n 'text/x-scriptperl-module': 'public.perl-script',\n 'text/x-scriptperl': 'public.perl-script',\n 'text/x-scriptphyton': 'public.python-script',\n 'text/x-scriptsh': 'public.shell-script',\n 'text/x-server-parsed-html': 'public.html',\n 'text/x-tex': 'org.tug.tex',\n 'text/x-vcalendar': 'com.apple.ical.vcs',\n 'text/x-vcard': 'public.vcard',\n 'text/xhtml': 'public.html',\n 'text/xml': 'public.xml',\n 'video/3gpp': 'public.3gpp',\n 'video/3gpp2': 'public.3gpp2',\n 'video/avi': 'public.avi',\n 'video/MP2T': 'public.mpegts',\n 'video/mp4': 'public.mpeg4',\n 'video/mp4v': 'public.mpeg4',\n 'video/mpeg': 'public.mpeg',\n 'video/mpg': 'public.mpeg',\n 'video/msvideo': 'public.avi',\n 'video/ogg': 'org.xiph.ogg-theora',\n 'video/quicktime': 'com.apple.quicktime-movie',\n 'video/webm': 'public.webm',\n 'video/x-dv': 'public.dv',\n 'video/x-flv': 'public.flv',\n 'video/x-m4v': 'public.mpeg4',\n 'video/x-matroska': 'public.mkv',\n 'video/x-mpeg': 'public.mpeg',\n 'video/x-mpg': 'public.mpeg',\n 'video/x-ms-asf-plugin': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asf': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asx': 'com.microsoft.advanced-stream-redirector',\n 'video/x-ms-wm': 'com.microsoft.windows-media-wm',\n 'video/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'video/x-ms-wmp': 'com.microsoft.windows-media-wmp',\n 'video/x-ms-wmv': 'com.microsoft.windows-media-wmv',\n 'video/x-ms-wmx': 'com.microsoft.windows-media-wmx',\n 'video/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'video/x-ms-wvx': 'com.microsoft.windows-media-wvx',\n 'video/x-msvideo': 'public.avi',\n 'video/x-ogg': 'org.xiph.ogg-theora',\n 'x-msdos-program': 'com.microsoft.windows-executable',\n 'x-music/x-midi': 'public.midi',\n }\n dataOwnerApi: IccDataOwnerXApi\n authenticationProvider: AuthenticationProvider\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n private crypto: IccCryptoXApi,\n private authApi: IccAuthApi,\n dataOwnerApi: IccDataOwnerXApi,\n private readonly autofillAuthor: boolean,\n authenticationProvider: AuthenticationProvider = new NoAuthenticationProvider(),\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, authenticationProvider, fetchImpl)\n this.fetchImpl = fetchImpl\n this.authenticationProvider = authenticationProvider\n this.dataOwnerApi = dataOwnerApi\n }\n\n override get headers(): Promise<Array<XHR.Header>> {\n return super.headers.then((h) => this.crypto.accessControlKeysHeaders.addAccessControlKeysHeaders(h, EntityWithDelegationTypeName.Document))\n }\n\n /**\n * Creates a new instance of document with initialised encryption metadata (not in the database).\n * @param user the current user.\n * @param message the message this document refers to.\n * @param c initialised data for the document. Metadata such as id, creation data, etc. will be automatically initialised, but you can specify\n * other kinds of data or overwrite generated metadata with this. You can't specify encryption metadata.\n * @param options optional parameters:\n * - additionalDelegates: delegates which will have access to the entity in addition to the current data owner and delegates from the\n * auto-delegations. Must be an object which associates each data owner id with the access level to give to that data owner. May overlap with\n * auto-delegations, in such case the access level specified here will be used.\n * - preferredSfk: secret id of the message to use as the secret foreign key to use for the document. The default value will be a\n * secret id of the message known by the topmost parent in the current data owner hierarchy.\n * @return a new instance of document.\n */\n async newInstance(\n user: models.User,\n message?: models.Message,\n c: any = {},\n options: {\n additionalDelegates?: { [dataOwnerId: string]: AccessLevelEnum }\n preferredSfk?: string\n } = {}\n ) {\n if (!message && options.preferredSfk) throw new Error('You need to specify parent message in order to use secret foreign keys.')\n const document = {\n ...(c ?? {}),\n _type: 'org.taktik.icure.entities.Document',\n id: c?.id ?? this.crypto.primitives.randomUuid(),\n created: c?.created ?? new Date().getTime(),\n modified: c?.modified ?? new Date().getTime(),\n responsible: c?.responsible ?? (this.autofillAuthor ? this.dataOwnerApi.getDataOwnerIdOf(user) : undefined),\n author: c?.author ?? (this.autofillAuthor ? user.id : undefined),\n codes: c?.codes ?? [],\n tags: c?.tags ?? [],\n }\n\n const ownerId = this.dataOwnerApi.getDataOwnerIdOf(user)\n if (ownerId !== (await this.dataOwnerApi.getCurrentDataOwnerId())) throw new Error('Can only initialise entities as current data owner.')\n const sfk = message\n ? options.preferredSfk ??\n (await this.crypto.confidential.getAnySecretIdSharedWithParents({ entity: message, type: EntityWithDelegationTypeName.Message }))\n : undefined\n if (message && !sfk) throw new Error(`Couldn't find any sfk of parent message ${message.id}`)\n const extraDelegations = {\n ...Object.fromEntries(\n [...(user.autoDelegations?.all ?? []), ...(user.autoDelegations?.medicalInformation ?? [])].map((d) => [d, AccessLevelEnum.WRITE])\n ),\n ...(options?.additionalDelegates ?? {}),\n }\n return new models.Document(\n await this.crypto.xapi\n .entityWithInitialisedEncryptedMetadata(document, EntityWithDelegationTypeName.Document, message?.id, sfk, true, false, extraDelegations)\n .then((x) => x.updatedEntity)\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n async findByMessage(hcpartyId: string, message: models.Message) {\n const extractedKeys = await this.crypto.xapi.secretIdsOf({ entity: message, type: EntityWithDelegationTypeName.Message }, hcpartyId)\n const topmostParentId = (await this.dataOwnerApi.getCurrentDataOwnerHierarchyIds())[0]\n let documents: Array<models.Document> = await this.findDocumentsByHCPartyPatientForeignKeys(topmostParentId, _.uniq(extractedKeys).join(','))\n return await this.decrypt(hcpartyId, documents)\n }\n\n // Note: this is only for dealing with legacy documents: new document are not encrypted, only their attachments are\n decrypt(hcpartyId: string, documents: Array<models.Document>): Promise<Array<models.Document>> {\n return Promise.all(\n documents.map((document) =>\n this.crypto.xapi.decryptAndImportAllDecryptionKeys({ entity: document, type: EntityWithDelegationTypeName.Document }).then((keys) => {\n if (!keys.length) {\n console.log('Cannot decrypt document', document.id)\n return Promise.resolve(document)\n }\n\n if (keys.length && (document.encryptedSelf || document.encryptedAttachment)) {\n const key = keys[0].key\n return Promise.all([\n document.encryptedSelf\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.primitives.AES.decrypt(key, string2ua(a2b(document.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n document.encryptedAttachment\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.primitives.AES.decrypt(key, document.encryptedAttachment!).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n ]).then((decrypted: [ArrayBuffer | null, ArrayBuffer | null]) => {\n if (decrypted) {\n if (decrypted[0]) {\n document = _.extend(document, JSON.parse(ua2string(decrypted[0])))\n }\n if (decrypted[1]) {\n document.decryptedAttachment = decrypted[1]\n }\n }\n return document\n })\n } else {\n return Promise.resolve(document)\n }\n })\n )\n ).catch(function (e: Error) {\n console.log(e)\n return Promise.resolve(documents)\n })\n }\n\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/octet-stream\", enckeys?: string, fileName?: string): Promise<ArrayBuffer>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"text/plain\", enckeys?: string, fileName?: string): Promise<string>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/json\", enckeys?: string, fileName?: string): Promise<any>\n /**\n * @deprecated use getMainAttachmentAs instead\n */\n async getAttachmentAs(\n documentId: string,\n attachmentId: string,\n returnType: 'application/octet-stream' | 'text/plain' | 'application/json',\n enckeys?: string,\n fileName?: string\n ): Promise<any> {\n if (!!enckeys || !!fileName) {\n console.warn('Using getAttachmentAs method with a value for enckeys or fileName does nothing anymore.')\n }\n return this.getMainAttachmentAs(documentId, returnType)\n }\n\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"application/octet-stream\"): Promise<ArrayBuffer>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"text/plain\"): Promise<string>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: \"application/json\"): Promise<any>\n //prettier-ignore\n getMainAttachmentAs(documentId: string, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any>\n async getMainAttachmentAs(documentId: string, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any> {\n const url = this.host + `/document/${documentId}/attachment` + '?ts=' + new Date().getTime()\n return XHR.sendCommand('GET', url, await this.headers, null, this.fetchImpl, returnType, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n //prettier-ignore\n getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: \"application/octet-stream\"): Promise<ArrayBuffer | undefined>\n //prettier-ignore\n getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: \"text/plain\"): Promise<string | undefined>\n //prettier-ignore\n getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: \"application/json\"): Promise<any | undefined>\n //prettier-ignore\n getAndTryDecryptMainAttachmentAs(document: models.Document, returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): Promise<any | undefined>\n async getAndTryDecryptMainAttachmentAs(\n document: models.Document,\n returnType: 'application/octet-stream' | 'text/plain' | 'application/json'\n ): Promise<any | undefined> {\n const key = (await this.crypto.xapi.encryptionKeysOf({ entity: document, type: EntityWithDelegationTypeName.Document }, undefined))[0]\n if (!key) return undefined\n const tryParse = this.parserFor(returnType)\n const attachmentInfo = await this.getAndTryDecryptDocumentAttachment(document, (decrypted) => Promise.resolve(tryParse(decrypted) !== undefined))\n if (attachmentInfo.wasDecrypted) {\n return tryParse(attachmentInfo.data)\n } else return undefined\n }\n private parserFor(returnType: 'application/octet-stream' | 'text/plain' | 'application/json'): (data: ArrayBuffer) => any | undefined {\n if (returnType === 'application/octet-stream') {\n return (data) => data\n } else if (returnType === 'text/plain') {\n return (data) => {\n try {\n return ua2utf8(data)\n } catch (e) {\n return undefined\n }\n }\n } else if (returnType === 'application/json') {\n return (data) => {\n try {\n return JSON.parse(ua2utf8(data))\n } catch (e) {\n return undefined\n }\n }\n } else throw new Error(`Unsupported type ${returnType}`)\n }\n\n // noinspection JSUnusedGlobalSymbols\n uti(mimeType: string, extension: string) {\n return (mimeType && mimeType !== 'application/octet-stream' ? this.utiDefs[mimeType] : this.utiExts[extension]) || this.utiDefs[mimeType]\n }\n\n // noinspection JSUnusedGlobalSymbols\n mimeType(uti: string) {\n return this.utiRevDefs[uti]\n }\n\n /**\n * Adds an attachment to a document, encrypting it on client side using the encryption keys of the provided document.\n * @param document a document.\n * @param attachment a new main attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async encryptAndSetDocumentAttachment(document: models.Document, attachment: ArrayBuffer | Uint8Array, utis?: string[]): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n const { encryptedData, updatedEntity } = await this.crypto.xapi.encryptDataOf(document, EntityWithDelegationTypeName.Document, attachment, (d) =>\n this.modifyDocument(d)\n )\n return await this.setMainDocumentAttachment(document.id!, updatedEntity?.rev ?? document.rev, encryptedData, utis, true)\n }\n\n /**\n * Adds an unencrypted attachment to a document.\n * @param document a document.\n * @param attachment a new main attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async setClearDocumentAttachment(document: models.Document, attachment: ArrayBuffer | Uint8Array, utis?: string[]): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n return await this.setMainDocumentAttachment(document.id!, document.rev, attachment, utis, false)\n }\n\n /**\n * Adds a secondary attachment to a document, encrypting it on client side using the encryption keys of the provided document.\n * @param document a document.\n * @param secondaryAttachmentKey key for the secondary attachment.\n * @param attachment a new secondary attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async encryptAndSetSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n attachment: ArrayBuffer | Uint8Array,\n utis?: string[]\n ): Promise<models.Document> {\n if (!document.rev) throw new Error('Cannot set attachment on document without rev')\n const { encryptedData, updatedEntity } = await this.crypto.xapi.encryptDataOf(document, EntityWithDelegationTypeName.Document, attachment, (d) =>\n this.modifyDocument()\n )\n return await this.setSecondaryAttachment(document.id!, secondaryAttachmentKey, updatedEntity?.rev ?? document.rev!, encryptedData, utis, true)\n }\n\n /**\n * Adds an unencrypted secondary attachment to a document.\n * @param document a document.\n * @param secondaryAttachmentKey key for the secondary attachment.\n * @param attachment a new secondary attachment for the document.\n * @param utis an array of UTIs for the attachment. The first element will be considered as the main UTI for the document. If provided and non-empty\n * overrides existing values.\n * @return the updated document.\n */\n async setClearSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n attachment: ArrayBuffer | Uint8Array,\n utis?: string[]\n ): Promise<models.Document> {\n return await this.setSecondaryAttachment(document.id!, secondaryAttachmentKey, document.rev!, attachment, utis, false)\n }\n\n /**\n * Gets the main attachment of a document and tries to decrypt it using the encryption keys of the document, throwing an error if the operation fails.\n * @param document a document.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n */\n async getAndDecryptDocumentAttachment(\n document: models.Document,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<ArrayBuffer> {\n const retrieved = await this.getAndTryDecryptDocumentAttachment(document, (x) => validator(x))\n if (!retrieved.wasDecrypted) throw new Error(`No valid key found to decrypt data of document ${document.id}.`)\n return retrieved.data\n }\n\n /**\n * Gets the main attachment of a document and tries to decrypt it using the encryption keys of the document.\n * @param document a document.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return an object containing:\n * - data: the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n * - wasDecrypted: if the data was successfully decrypted or not\n */\n async getAndTryDecryptDocumentAttachment(\n document: models.Document,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<{ data: ArrayBuffer; wasDecrypted: boolean }> {\n return await this.crypto.xapi.tryDecryptDataOf(\n { entity: document, type: EntityWithDelegationTypeName.Document },\n await this.getRawMainDocumentAttachment(document.id!),\n (x) => validator(x)\n )\n }\n\n /**\n * Gets the secondary attachment of a document and tries to decrypt it using the encryption keys of the document, throwing an error if the operation fails.\n * @param document a document.\n * @param secondaryAttachmentKey key of the secondary attachment.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return the decrypted attachment.\n */\n async getAndDecryptSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<ArrayBuffer> {\n const { data, wasDecrypted } = await this.getAndTryDecryptSecondaryDocumentAttachment(document, secondaryAttachmentKey, (x) => validator(x))\n if (!wasDecrypted) throw new Error(`No valid key found to decrypt data of document ${document.id}.`)\n return data\n }\n\n /**\n * Gets the secondary attachment of a document and tries to decrypt it using the encryption keys of the document.\n * @param document a document.\n * @param secondaryAttachmentKey key of the secondary attachment.\n * @param validator optionally a validator function which checks if the decryption was successful. In cases where the document has many encryption\n * keys and it is unclear which one should be used this function can help to detect bad decryptions.\n * @return an object containing:\n * - data: the decrypted attachment, if it could be decrypted, else the encrypted attachment.\n * - wasDecrypted: if the data was successfully decrypted or not\n */\n async getAndTryDecryptSecondaryDocumentAttachment(\n document: models.Document,\n secondaryAttachmentKey: string,\n validator: (decrypted: ArrayBuffer) => Promise<boolean> = () => Promise.resolve(true)\n ): Promise<{ data: ArrayBuffer; wasDecrypted: boolean }> {\n return await this.crypto.xapi.tryDecryptDataOf(\n { entity: document, type: EntityWithDelegationTypeName.Document },\n await this.getSecondaryAttachment(document.id!, secondaryAttachmentKey),\n (x) => validator(x)\n )\n }\n\n /**\n * @param document a document\n * @return the id of the message that the document refers to, retrieved from the encrypted metadata. Normally there should only be one element\n * in the returned array, but in case of entity merges there could be multiple values.\n */\n async decryptMessageIdOf(document: models.Document): Promise<string[]> {\n return this.crypto.xapi.owningEntityIdsOf({ entity: document, type: EntityWithDelegationTypeName.Document }, undefined)\n }\n\n /**\n * @return if the logged data owner has write access to the content of the given document\n */\n async hasWriteAccess(document: models.Document): Promise<boolean> {\n return this.crypto.xapi.hasWriteAccess({ entity: document, type: EntityWithDelegationTypeName.Document })\n }\n\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param delegateId the id of the data owner which will be granted access to the document.\n * @param document the document to share.\n * @param options optional parameters to customize the sharing behaviour:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return the updated entity\n */\n async shareWith(\n delegateId: string,\n document: models.Document,\n options: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n } = {}\n ): Promise<models.Document> {\n return this.shareWithMany(document, { [delegateId]: options })\n }\n\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param document the document to share.\n * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return the updated entity.\n */\n async shareWithMany(\n document: models.Document,\n delegates: {\n [delegateId: string]: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n }\n }\n ): Promise<models.Document> {\n return (await this.tryShareWithMany(document, delegates)).updatedEntityOrThrow\n }\n /**\n * Share an existing document with other data owners, allowing them to access the non-encrypted data of the document and optionally also\n * the encrypted content, with read-only or read-write permissions.\n * @param document the document to share.\n * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:\n * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted\n * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - shareMessageId: specifies if the id of the message that this document refers to should be shared with the delegate (defaults to\n * {@link ShareMetadataBehaviour.IF_AVAILABLE}).\n * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.\n * @return a promise which will contain the result of the operation: the updated entity if the operation was successful or details of the error if\n * the operation failed.\n */\n async tryShareWithMany(\n document: models.Document,\n delegates: {\n [delegateId: string]: {\n requestedPermissions?: RequestedPermissionEnum\n shareEncryptionKey?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n shareMessageId?: ShareMetadataBehaviour // Defaults to ShareMetadataBehaviour.IF_AVAILABLE\n }\n }\n ): Promise<ShareResult<models.Document>> {\n const self = await this.dataOwnerApi.getCurrentDataOwnerId()\n // All entities should have an encryption key.\n const entityWithEncryptionKey = await this.crypto.xapi.ensureEncryptionKeysInitialised(document, EntityWithDelegationTypeName.Document)\n const updatedEntity = entityWithEncryptionKey ? await this.modifyDocument(entityWithEncryptionKey) : document\n return this.crypto.xapi\n .simpleShareOrUpdateEncryptedEntityMetadata(\n { entity: updatedEntity, type: EntityWithDelegationTypeName.Document },\n true,\n Object.fromEntries(\n Object.entries(delegates).map(([delegateId, options]) => [\n delegateId,\n {\n requestedPermissions: options.requestedPermissions,\n shareEncryptionKeys: options.shareEncryptionKey,\n shareOwningEntityIds: options.shareMessageId,\n shareSecretIds: undefined,\n },\n ])\n ),\n (x) => this.bulkShareDocument(x)\n )\n .then((r) => r.mapSuccessAsync((e) => this.decrypt(self, [e]).then((es) => es[0])))\n }\n\n getDataOwnersWithAccessTo(\n entity: models.Document\n ): Promise<{ permissionsByDataOwnerId: { [p: string]: AccessLevelEnum }; hasUnknownAnonymousDataOwners: boolean }> {\n return this.crypto.delegationsDeAnonymization.getDataOwnersWithAccessTo({ entity, type: EntityWithDelegationTypeName.Document })\n }\n\n getEncryptionKeysOf(entity: models.Document): Promise<string[]> {\n return this.crypto.xapi.encryptionKeysOf({ entity, type: EntityWithDelegationTypeName.Document }, undefined)\n }\n\n createDelegationDeAnonymizationMetadata(entity: models.Document, delegates: string[]): Promise<void> {\n return this.crypto.delegationsDeAnonymization.createOrUpdateDeAnonymizationInfo(\n { entity, type: EntityWithDelegationTypeName.Document },\n delegates\n )\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icure/api",
3
- "version": "8.0.18",
3
+ "version": "8.0.19",
4
4
  "description": "Typescript version of iCure standalone API client",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -0,0 +1 @@
1
+ import 'isomorphic-fetch';
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("mocha");
13
+ require("isomorphic-fetch");
14
+ const icc_x_api_1 = require("../../icc-x-api");
15
+ const chai_1 = require("chai");
16
+ const test_utils_1 = require("../utils/test_utils");
17
+ const types_1 = require("@icure/test-setup/types");
18
+ var initApi = test_utils_1.TestUtils.initApi;
19
+ (0, test_utils_1.setLocalStorage)(fetch);
20
+ let env;
21
+ (0, mocha_1.before)(function () {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ this.timeout(600000);
24
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
25
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
26
+ });
27
+ });
28
+ describe('icc-x-document-api Tests', () => {
29
+ it('Get and decrypt as json should work', () => __awaiter(void 0, void 0, void 0, function* () {
30
+ // Given
31
+ const { documentApi, userApi } = yield initApi(env, test_utils_1.hcp1Username);
32
+ const currUser = yield userApi.getCurrentUser();
33
+ const document = yield documentApi.createDocument(yield documentApi.newInstance(currUser, undefined, {}));
34
+ const obj = { test: 'test' };
35
+ yield documentApi.encryptAndSetDocumentAttachment(document, (0, icc_x_api_1.utf8_2ua)(JSON.stringify(obj)));
36
+ const decrypted = yield documentApi.getAndTryDecryptMainAttachmentAs(document, 'application/json');
37
+ (0, chai_1.expect)(decrypted).to.deep.equal(obj);
38
+ }));
39
+ it('Get and decrypt as string should work', () => __awaiter(void 0, void 0, void 0, function* () {
40
+ // Given
41
+ const { documentApi, userApi } = yield initApi(env, test_utils_1.hcp1Username);
42
+ const currUser = yield userApi.getCurrentUser();
43
+ const document = yield documentApi.createDocument(yield documentApi.newInstance(currUser, undefined, {}));
44
+ const obj = 'Test';
45
+ yield documentApi.encryptAndSetDocumentAttachment(document, (0, icc_x_api_1.utf8_2ua)(obj));
46
+ const decrypted = yield documentApi.getAndTryDecryptMainAttachmentAs(document, 'text/plain');
47
+ (0, chai_1.expect)(decrypted).to.deep.equal(obj);
48
+ const decryptedAsJson = yield documentApi.getAndTryDecryptMainAttachmentAs(document, 'application/json');
49
+ (0, chai_1.expect)(decryptedAsJson).to.be.undefined;
50
+ }));
51
+ });
52
+ //# sourceMappingURL=icc-document-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAA8B;AAE9B,4BAAyB;AAEzB,+CAAyH;AAEzH,+BAAqC;AAErC,oDAAuH;AAWvH,mDAAmE;AAEnE,IAAO,OAAO,GAAG,sBAAS,CAAC,OAAO,CAAA;AAElC,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AACtB,IAAI,GAAa,CAAA;AAEjB,IAAA,cAAM,EAAC;;QACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;QACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;IACpD,CAAC;CAAA,CAAC,CAAA;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,QAAQ;QACR,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,GAAI,EAAE,yBAAY,CAAC,CAAA;QAElE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;QACzG,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAC5B,MAAM,WAAW,CAAC,+BAA+B,CAAC,QAAQ,EAAE,IAAA,oBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1F,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gCAAgC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;QAClG,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAS,EAAE;QACrD,QAAQ;QACR,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,GAAI,EAAE,yBAAY,CAAC,CAAA;QAElE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;QACzG,MAAM,GAAG,GAAG,MAAM,CAAA;QAClB,MAAM,WAAW,CAAC,+BAA+B,CAAC,QAAQ,EAAE,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC,CAAA;QAC1E,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gCAAgC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC5F,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,gCAAgC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;QACxG,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAA;IACzC,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccContactXApi, IccHelementXApi, IccPatientXApi, utf8_2ua } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { Code } from '../../icc-api/model/Code'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { Service } from '../../icc-api/model/Service'\nimport { Content } from '../../icc-api/model/Content'\nimport { User } from '../../icc-api/model/User'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { SubContact } from '../../icc-api/model/SubContact'\nimport { ServiceLink } from '../../icc-api/model/ServiceLink'\nimport { FilterChainService } from '../../icc-api/model/FilterChainService'\nimport { ServiceByHcPartyHealthElementIdsFilter } from '../../icc-x-api/filters/ServiceByHcPartyHealthElementIdsFilter'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { Measure } from '../../icc-api/model/Measure'\nimport initApi = TestUtils.initApi\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nbefore(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n})\n\ndescribe('icc-x-document-api Tests', () => {\n it('Get and decrypt as json should work', async () => {\n // Given\n const { documentApi, userApi } = await initApi(env!, hcp1Username)\n\n const currUser = await userApi.getCurrentUser()\n const document = await documentApi.createDocument(await documentApi.newInstance(currUser, undefined, {}))\n const obj = { test: 'test' }\n await documentApi.encryptAndSetDocumentAttachment(document, utf8_2ua(JSON.stringify(obj)))\n const decrypted = await documentApi.getAndTryDecryptMainAttachmentAs(document, 'application/json')\n expect(decrypted).to.deep.equal(obj)\n })\n\n it('Get and decrypt as string should work', async () => {\n // Given\n const { documentApi, userApi } = await initApi(env!, hcp1Username)\n\n const currUser = await userApi.getCurrentUser()\n const document = await documentApi.createDocument(await documentApi.newInstance(currUser, undefined, {}))\n const obj = 'Test'\n await documentApi.encryptAndSetDocumentAttachment(document, utf8_2ua(obj))\n const decrypted = await documentApi.getAndTryDecryptMainAttachmentAs(document, 'text/plain')\n expect(decrypted).to.deep.equal(obj)\n const decryptedAsJson = await documentApi.getAndTryDecryptMainAttachmentAs(document, 'application/json')\n expect(decryptedAsJson).to.be.undefined\n })\n})\n"]}