@coveo/push-api-client 2.8.13 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +7 -6
  2. package/dist/APICore.js +18 -13
  3. package/dist/APICore.js.map +1 -1
  4. package/dist/definitions/APICore.d.ts +12 -5
  5. package/dist/definitions/document.d.ts +2 -45
  6. package/dist/definitions/documentBuilder.d.ts +32 -59
  7. package/dist/definitions/errors/validatorErrors.d.ts +2 -1
  8. package/dist/definitions/help/fileConsumer.d.ts +3 -3
  9. package/dist/definitions/help/fileContainer.d.ts +2 -3
  10. package/dist/definitions/help/fileContainer.spec.d.ts +1 -1
  11. package/dist/definitions/index.d.ts +1 -1
  12. package/dist/definitions/interfaces.d.ts +3 -3
  13. package/dist/definitions/permissionSetBuilder.d.ts +34 -0
  14. package/dist/definitions/permissionSetBuilder.spec.d.ts +1 -0
  15. package/dist/definitions/securityIdentityBuilder.d.ts +33 -24
  16. package/dist/definitions/securityIdentityBuilder.spec.d.ts +1 -0
  17. package/dist/definitions/source/catalog.d.ts +2 -1
  18. package/dist/definitions/source/documentUploader.d.ts +3 -3
  19. package/dist/definitions/source/push.d.ts +8 -37
  20. package/dist/definitions/source/securityIdenty.d.ts +1 -0
  21. package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +1 -1
  22. package/dist/definitions/uploadStrategy/strategy.d.ts +2 -2
  23. package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +1 -1
  24. package/dist/definitions/validation/caseInsensitiveDocument.d.ts +10 -1
  25. package/dist/definitions/validation/knownKey.d.ts +2 -1
  26. package/dist/definitions/validation/parsePermissions.d.ts +5 -0
  27. package/dist/definitions/validation/parsePermissions.spec.d.ts +1 -0
  28. package/dist/documentBuilder.js +28 -46
  29. package/dist/documentBuilder.js.map +1 -1
  30. package/dist/documentBuilder.spec.js +55 -74
  31. package/dist/documentBuilder.spec.js.map +1 -1
  32. package/dist/errors/validatorErrors.js +4 -1
  33. package/dist/errors/validatorErrors.js.map +1 -1
  34. package/dist/help/fileConsumer.js +1 -1
  35. package/dist/help/fileConsumer.js.map +1 -1
  36. package/dist/help/fileConsumer.spec.js +2 -3
  37. package/dist/help/fileConsumer.spec.js.map +1 -1
  38. package/dist/help/fileContainer.js +41 -24
  39. package/dist/help/fileContainer.js.map +1 -1
  40. package/dist/help/fileContainer.spec.js +38 -33
  41. package/dist/help/fileContainer.spec.js.map +1 -1
  42. package/dist/index.js +3 -3
  43. package/dist/index.js.map +1 -1
  44. package/dist/localtest.js +10 -8
  45. package/dist/localtest.js.map +1 -1
  46. package/dist/permissionSetBuilder.js +59 -0
  47. package/dist/permissionSetBuilder.js.map +1 -0
  48. package/dist/permissionSetBuilder.spec.js +69 -0
  49. package/dist/permissionSetBuilder.spec.js.map +1 -0
  50. package/dist/securityIdentityBuilder.js +34 -27
  51. package/dist/securityIdentityBuilder.js.map +1 -1
  52. package/dist/securityIdentityBuilder.spec.js +51 -0
  53. package/dist/securityIdentityBuilder.spec.js.map +1 -0
  54. package/dist/source/catalog.js +1 -2
  55. package/dist/source/catalog.js.map +1 -1
  56. package/dist/source/documentUploader.js +1 -1
  57. package/dist/source/documentUploader.js.map +1 -1
  58. package/dist/source/documentUploader.spec.js +5 -5
  59. package/dist/source/documentUploader.spec.js.map +1 -1
  60. package/dist/source/push.js +6 -47
  61. package/dist/source/push.js.map +1 -1
  62. package/dist/source/push.spec.js +3 -3
  63. package/dist/source/push.spec.js.map +1 -1
  64. package/dist/source/securityIdenty.js +1 -2
  65. package/dist/source/securityIdenty.js.map +1 -1
  66. package/dist/uploadStrategy/fileContainerStrategy.js +2 -2
  67. package/dist/uploadStrategy/fileContainerStrategy.js.map +1 -1
  68. package/dist/uploadStrategy/fileContainerStrategy.spec.js +2 -2
  69. package/dist/uploadStrategy/fileContainerStrategy.spec.js.map +1 -1
  70. package/dist/uploadStrategy/streamChunkStrategy.js +4 -4
  71. package/dist/uploadStrategy/streamChunkStrategy.js.map +1 -1
  72. package/dist/uploadStrategy/streamChunkStrategy.spec.js +8 -12
  73. package/dist/uploadStrategy/streamChunkStrategy.spec.js.map +1 -1
  74. package/dist/validation/caseInsensitiveDocument.js +21 -2
  75. package/dist/validation/caseInsensitiveDocument.js.map +1 -1
  76. package/dist/validation/knownKey.js +13 -4
  77. package/dist/validation/knownKey.js.map +1 -1
  78. package/dist/validation/parseFile.js +14 -60
  79. package/dist/validation/parseFile.js.map +1 -1
  80. package/dist/validation/parseFile.spec.js +42 -3
  81. package/dist/validation/parseFile.spec.js.map +1 -1
  82. package/dist/validation/parsePermissions.js +119 -0
  83. package/dist/validation/parsePermissions.js.map +1 -0
  84. package/dist/validation/parsePermissions.spec.js +87 -0
  85. package/dist/validation/parsePermissions.spec.js.map +1 -0
  86. package/dist/validation/requiredKeyValidator.js +1 -1
  87. package/dist/validation/requiredKeyValidator.js.map +1 -1
  88. package/package.json +18 -17
  89. package/dist/definitions/source/source.d.ts +0 -5
  90. package/dist/docs/.nojekyll +0 -1
  91. package/dist/docs/assets/highlight.css +0 -71
  92. package/dist/docs/assets/main.js +0 -58
  93. package/dist/docs/assets/search.js +0 -1
  94. package/dist/docs/assets/style.css +0 -1280
  95. package/dist/docs/classes/AnySecurityIdentityBuilder.html +0 -125
  96. package/dist/docs/classes/CatalogSource.html +0 -327
  97. package/dist/docs/classes/DocumentBuilder.html +0 -509
  98. package/dist/docs/classes/FieldAnalyser.html +0 -203
  99. package/dist/docs/classes/GroupSecurityIdentityBuilder.html +0 -128
  100. package/dist/docs/classes/PushSource.html +0 -465
  101. package/dist/docs/classes/UserSecurityIdentityBuilder.html +0 -128
  102. package/dist/docs/classes/VirtualGroupSecurityIdentityBuilder.html +0 -128
  103. package/dist/docs/classes/errors.FieldTypeInconsistencyError.html +0 -170
  104. package/dist/docs/classes/errors.InvalidDocument.html +0 -172
  105. package/dist/docs/classes/errors.InvalidPermanentId.html +0 -170
  106. package/dist/docs/classes/errors.NotAFileError.html +0 -170
  107. package/dist/docs/classes/errors.NotAJsonFileError.html +0 -170
  108. package/dist/docs/classes/errors.PrivilegeError.html +0 -170
  109. package/dist/docs/classes/errors.UnsupportedAttribute.html +0 -172
  110. package/dist/docs/classes/errors.UnsupportedFieldError.html +0 -199
  111. package/dist/docs/enums/PlatformEnvironment.html +0 -86
  112. package/dist/docs/enums/Region.html +0 -79
  113. package/dist/docs/enums/SourceVisibility.html +0 -79
  114. package/dist/docs/functions/parseAndGetDocumentBuilderFromJSONDocument.html +0 -86
  115. package/dist/docs/index.html +0 -121
  116. package/dist/docs/interfaces/BatchUpdateDocuments.html +0 -76
  117. package/dist/docs/interfaces/Document.html +0 -236
  118. package/dist/docs/interfaces/SecurityIdentity.html +0 -105
  119. package/dist/docs/interfaces/SecurityIdentityBuilder.html +0 -82
  120. package/dist/docs/interfaces/UploadBatchCallbackData.html +0 -100
  121. package/dist/docs/modules/errors.html +0 -68
  122. package/dist/docs/modules.html +0 -122
  123. package/dist/docs/types/BatchUpdateDocumentsFromFiles.html +0 -75
  124. package/dist/docs/types/CompressionType.html +0 -77
  125. package/dist/docs/types/FailedUploadCallback.html +0 -90
  126. package/dist/docs/types/Metadata.html +0 -75
  127. package/dist/docs/types/MetadataValue.html +0 -75
  128. package/dist/docs/types/PlatformUrlOptions.html +0 -82
  129. package/dist/docs/types/SecurityIdentityType.html +0 -75
  130. package/dist/docs/types/SuccessfulUploadCallback.html +0 -88
  131. package/dist/docs/types/Transformer.html +0 -88
  132. package/dist/docs/variables/BuiltInTransformers.html +0 -75
  133. package/dist/docs/variables/Source.html +0 -78
  134. package/dist/source/source.js +0 -9
  135. package/dist/source/source.js.map +0 -1
@@ -1,32 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFileContainerAxiosConfig = exports.uploadContentToFileContainer = void 0;
4
- const axios_1 = require("axios");
5
- const url_1 = require("url");
3
+ exports.uploadContentToFileContainer = void 0;
4
+ const node_url_1 = require("node:url");
6
5
  const uploadContentToFileContainer = async (fileContainer, batch) => {
7
- const uploadURL = new url_1.URL(fileContainer.uploadUri);
8
- return axios_1.default
9
- .put(uploadURL.toString(), {
10
- addOrUpdate: batch.addOrUpdate.map((docBuilder) => docBuilder.marshal()),
11
- delete: batch.delete,
12
- }, (0, exports.getFileContainerAxiosConfig)(fileContainer))
13
- .catch((err) => {
14
- if (isMaxBodyLengthExceededError(err)) {
15
- err.message +=
16
- '\nFile container size limit exceeded.\nSee <https://docs.coveo.com/en/63/index-content/push-api-limits#request-size-limits>.';
6
+ const uploadURL = new node_url_1.URL(fileContainer.uploadUri);
7
+ let response;
8
+ const errors = [];
9
+ try {
10
+ response = await fetch(uploadURL.toString(), {
11
+ method: 'PUT',
12
+ body: JSON.stringify({
13
+ addOrUpdate: batch.addOrUpdate.map((docBuilder) => docBuilder.marshal()),
14
+ delete: batch.delete,
15
+ }),
16
+ headers: fileContainer.requiredHeaders,
17
+ });
18
+ }
19
+ catch (error) {
20
+ errors.push(error);
21
+ }
22
+ finally {
23
+ if ((response === null || response === void 0 ? void 0 : response.ok) === false) {
24
+ if (isMaxBodyLengthExceededError(response)) {
25
+ addMaxBodyLengthError(errors, response);
26
+ }
27
+ else {
28
+ addGenericFetchError(errors, response);
29
+ }
17
30
  }
18
- throw err;
19
- });
31
+ }
32
+ if (errors.length > 0) {
33
+ throw new AggregateError(errors);
34
+ }
35
+ else {
36
+ return response;
37
+ }
20
38
  };
21
39
  exports.uploadContentToFileContainer = uploadContentToFileContainer;
22
- const getFileContainerAxiosConfig = (fileContainer) => {
23
- return {
24
- headers: fileContainer.requiredHeaders,
25
- maxBodyLength: 256e6,
26
- };
27
- };
28
- exports.getFileContainerAxiosConfig = getFileContainerAxiosConfig;
29
- function isMaxBodyLengthExceededError(err) {
30
- return (err === null || err === void 0 ? void 0 : err.code) === 'ERR_FR_MAX_BODY_LENGTH_EXCEEDED';
40
+ function addGenericFetchError(errors, response) {
41
+ errors.push(new Error('Request failed', { cause: response }));
42
+ }
43
+ function addMaxBodyLengthError(errors, response) {
44
+ errors.push(new Error('File container size limit exceeded.\nSee <https://docs.coveo.com/en/63/index-content/push-api-limits#request-size-limits>.', { cause: response }));
45
+ }
46
+ function isMaxBodyLengthExceededError(response) {
47
+ return (response === null || response === void 0 ? void 0 : response.status) === 413;
31
48
  }
32
49
  //# sourceMappingURL=fileContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileContainer.js","sourceRoot":"","sources":["../../src/help/fileContainer.ts"],"names":[],"mappings":";;;AAAA,iCAAgD;AAChD,6BAAwB;AASjB,MAAM,4BAA4B,GAAG,KAAK,EAC/C,aAAoC,EACpC,KAA2B,EAC3B,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,SAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,eAAK;SACT,GAAG,CACF,SAAS,CAAC,QAAQ,EAAE,EACpB;QACE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChD,UAAU,CAAC,OAAO,EAAE,CACrB;QACD,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,EACD,IAAA,mCAA2B,EAAC,aAAa,CAAC,CAC3C;SACA,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,4BAA4B,CAAC,GAAG,CAAC,EAAE;YACrC,GAAG,CAAC,OAAO;gBACT,8HAA8H,CAAC;SAClI;QACD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAvBW,QAAA,4BAA4B,gCAuBvC;AAEK,MAAM,2BAA2B,GAAG,CACzC,aAAoC,EAChB,EAAE;IACtB,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,eAAe;QACtC,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,2BAA2B,+BAOtC;AAEF,SAAS,4BAA4B,CAAC,GAA4B;IAChE,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,iCAAiC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"fileContainer.js","sourceRoot":"","sources":["../../src/help/fileContainer.ts"],"names":[],"mappings":";;;AACA,uCAA6B;AAStB,MAAM,4BAA4B,GAAG,KAAK,EAC/C,aAAoC,EACpC,KAA2B,EAC3B,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,cAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,QAA8B,CAAC;IACnC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI;QACF,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChD,UAAU,CAAC,OAAO,EAAE,CACrB;gBACD,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YACF,OAAO,EAAE,aAAa,CAAC,eAAe;SACvC,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;YAAS;QACR,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,MAAK,KAAK,EAAE;YAC1B,IAAI,4BAA4B,CAAC,QAAQ,CAAC,EAAE;gBAC1C,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACzC;iBAAM;gBACL,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACxC;SACF;KACF;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;KAClC;SAAM;QACL,OAAO,QAAS,CAAC;KAClB;AACH,CAAC,CAAC;AAnCW,QAAA,4BAA4B,gCAmCvC;AAEF,SAAS,oBAAoB,CAC3B,MAAiB,EACjB,QAA8B;IAE9B,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAiB,EACjB,QAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,IAAI,KAAK,CACP,4HAA4H,EAC5H,EAAC,KAAK,EAAE,QAAQ,EAAC,CAClB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,QAA8B;IAClE,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,CAAC;AAClC,CAAC"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const mockedPut = jest.fn();
4
- jest.mock('axios', () => ({
5
- default: { put: mockedPut },
6
- }));
3
+ require("fetch-undici-polyfill");
4
+ jest.mock('fetch-undici-polyfill', () => {
5
+ Object.assign(global, { fetch: jest.fn() });
6
+ });
7
7
  const __1 = require("..");
8
8
  const fileContainer_1 = require("./fileContainer");
9
9
  describe('#uploadContentToFileContainer', () => {
10
+ const fetchMocked = fetch;
10
11
  const fileContainerResponse = {
11
12
  uploadUri: 'https://fake.upload.url',
12
13
  fileId: 'file_id',
@@ -16,51 +17,55 @@ describe('#uploadContentToFileContainer', () => {
16
17
  addOrUpdate: [new __1.DocumentBuilder('http://some.url', 'Some document')],
17
18
  delete: [],
18
19
  };
19
- const doMockAxiosPut = () => {
20
- mockedPut.mockImplementation(() => Promise.resolve());
20
+ const doMockFetch = () => {
21
+ fetchMocked.mockImplementation(() => Promise.resolve());
21
22
  };
22
23
  beforeEach(() => {
23
- doMockAxiosPut();
24
+ doMockFetch();
24
25
  });
25
26
  it('should perform an PUT request with the right params', async () => {
26
27
  await (0, fileContainer_1.uploadContentToFileContainer)(fileContainerResponse, batch);
27
- expect(mockedPut).toHaveBeenCalledWith('https://fake.upload.url/', expect.objectContaining({
28
- addOrUpdate: expect.arrayContaining([
29
- expect.objectContaining({
30
- documentId: 'http://some.url',
31
- }),
32
- ]),
33
- delete: expect.arrayContaining([]),
34
- }), {
35
- headers: {
36
- foo: 'bar',
37
- },
38
- maxBodyLength: 256e6,
39
- });
28
+ expect(fetchMocked).toBeCalled();
29
+ expect(fetchMocked.mock.lastCall).toMatchSnapshot();
40
30
  });
41
- describe('when an MaxBodyLengthExceededError is thrown', () => {
31
+ describe('when the server respond with 413', () => {
42
32
  beforeEach(() => {
43
- mockedPut.mockImplementationOnce(() => Promise.reject(new FakeMaxBodyLengthExceededError()));
33
+ fetchMocked.mockImplementationOnce(() => Promise.resolve({
34
+ ok: false,
35
+ status: 413,
36
+ }));
44
37
  });
45
38
  it('should give some info on how to fix it', async () => {
46
- await expect((0, fileContainer_1.uploadContentToFileContainer)(fileContainerResponse, batch)).rejects.toThrowErrorMatchingSnapshot();
39
+ try {
40
+ await (0, fileContainer_1.uploadContentToFileContainer)(fileContainerResponse, batch);
41
+ }
42
+ catch (error) {
43
+ expect(error).toBeInstanceOf(AggregateError);
44
+ expect(error.errors).toMatchSnapshot(`
45
+ [
46
+ [Error: File container size limit exceeded.
47
+ See <https://docs.coveo.com/en/63/index-content/push-api-limits#request-size-limits>.],
48
+ ]
49
+ `);
50
+ }
51
+ expect.assertions(2);
47
52
  });
48
53
  });
49
54
  describe('when anything else than MaxBodyLengthExceededError is thrown', () => {
50
55
  const thrownError = new Error();
51
56
  beforeEach(() => {
52
- mockedPut.mockImplementationOnce(() => Promise.reject(thrownError));
57
+ fetchMocked.mockImplementationOnce(() => Promise.reject(thrownError));
53
58
  });
54
- it('should just bubble up the error', async () => {
55
- await expect((0, fileContainer_1.uploadContentToFileContainer)(fileContainerResponse, batch)).rejects.toBe(thrownError);
59
+ it('should bubble up the error', async () => {
60
+ try {
61
+ await (0, fileContainer_1.uploadContentToFileContainer)(fileContainerResponse, batch);
62
+ }
63
+ catch (error) {
64
+ expect(error).toBeInstanceOf(AggregateError);
65
+ expect(error.errors).toContain(thrownError);
66
+ }
67
+ expect.assertions(2);
56
68
  });
57
69
  });
58
70
  });
59
- class FakeMaxBodyLengthExceededError extends Error {
60
- constructor() {
61
- super(...arguments);
62
- this.code = 'ERR_FR_MAX_BODY_LENGTH_EXCEEDED';
63
- this.message = 'some initial message';
64
- }
65
- }
66
71
  //# sourceMappingURL=fileContainer.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileContainer.spec.js","sourceRoot":"","sources":["../../src/help/fileContainer.spec.ts"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,EAAC,GAAG,EAAE,SAAS,EAAC;CAC1B,CAAC,CAAC,CAAC;AAEJ,0BAAyD;AACzD,mDAGyB;AAEzB,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,MAAM,qBAAqB,GAA0B;QACnD,SAAS,EAAE,yBAAyB;QACpC,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC;KAC9B,CAAC;IAEF,MAAM,KAAK,GAAyB;QAClC,WAAW,EAAE,CAAC,IAAI,mBAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,IAAA,4CAA4B,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAEjE,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,0BAA0B,EAC1B,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;gBAClC,MAAM,CAAC,gBAAgB,CAAC;oBACtB,UAAU,EAAE,iBAAiB;iBAC9B,CAAC;aACH,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;SACnC,CAAC,EACF;YACE,OAAO,EAAE;gBACP,GAAG,EAAE,KAAK;aACX;YACD,aAAa,EAAE,KAAK;SACrB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,UAAU,CAAC,GAAG,EAAE;YACd,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,CACpC,OAAO,CAAC,MAAM,CAAC,IAAI,8BAA8B,EAAE,CAAC,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,MAAM,CACV,IAAA,4CAA4B,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAC3D,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8DAA8D,EAAE,GAAG,EAAE;QAC5E,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE;YACd,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,CACV,IAAA,4CAA4B,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAC3D,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,8BAA+B,SAAQ,KAAK;IAAlD;;QACE,SAAI,GAAG,iCAAiC,CAAC;QACzC,YAAO,GAAG,sBAAsB,CAAC;IACnC,CAAC;CAAA"}
1
+ {"version":3,"file":"fileContainer.spec.js","sourceRoot":"","sources":["../../src/help/fileContainer.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,12 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.parseAndGetDocumentBuilderFromJSONDocument = exports.SourceVisibility = exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.FieldAnalyser = exports.CatalogSource = exports.PushSource = exports.Source = exports.errors = void 0;
17
+ exports.parseAndGetDocumentBuilderFromJSONDocument = exports.PermissionSetBuilder = exports.SourceVisibility = exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.FieldAnalyser = exports.CatalogSource = exports.PushSource = exports.errors = void 0;
18
18
  __exportStar(require("./document"), exports);
19
19
  __exportStar(require("./validation/transformers/transformer"), exports);
20
20
  exports.errors = require("./errors");
21
- var source_1 = require("./source/source");
22
- Object.defineProperty(exports, "Source", { enumerable: true, get: function () { return source_1.Source; } });
23
21
  var push_1 = require("./source/push");
24
22
  Object.defineProperty(exports, "PushSource", { enumerable: true, get: function () { return push_1.PushSource; } });
25
23
  var catalog_1 = require("./source/catalog");
@@ -34,6 +32,8 @@ Object.defineProperty(exports, "PlatformEnvironment", { enumerable: true, get: f
34
32
  Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return environment_1.Region; } });
35
33
  var platform_client_1 = require("@coveo/platform-client");
36
34
  Object.defineProperty(exports, "SourceVisibility", { enumerable: true, get: function () { return platform_client_1.SourceVisibility; } });
35
+ var permissionSetBuilder_1 = require("./permissionSetBuilder");
36
+ Object.defineProperty(exports, "PermissionSetBuilder", { enumerable: true, get: function () { return permissionSetBuilder_1.PermissionSetBuilder; } });
37
37
  var parseFile_1 = require("./validation/parseFile");
38
38
  Object.defineProperty(exports, "parseAndGetDocumentBuilderFromJSONDocument", { enumerable: true, get: function () { return parseFile_1.parseAndGetDocumentBuilderFromJSONDocument; } });
39
39
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,wEAAsD;AACtD,qCAAmC;AACnC,0CAAuC;AAA/B,gGAAA,MAAM,OAAA;AACd,sCAAyC;AAAjC,kGAAA,UAAU,OAAA;AAClB,4CAA+C;AAAvC,wGAAA,aAAa,OAAA;AAUrB,+DAA4D;AAApD,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,4DAA0C;AAC1C,6CAA8E;AAAtE,kHAAA,mBAAmB,OAAA;AAAE,qGAAA,MAAM,OAAA;AACnC,0DAAwD;AAAhD,mHAAA,gBAAgB,OAAA;AAExB,oDAAkF;AAA1E,uIAAA,0CAA0C,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,wEAAsD;AACtD,qCAAmC;AACnC,sCAAyC;AAAjC,kGAAA,UAAU,OAAA;AAClB,4CAA+C;AAAvC,wGAAA,aAAa,OAAA;AAUrB,+DAA4D;AAApD,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,4DAA0C;AAC1C,6CAA8E;AAAtE,kHAAA,mBAAmB,OAAA;AAAE,qGAAA,MAAM,OAAA;AACnC,0DAAwD;AAAhD,mHAAA,gBAAgB,OAAA;AACxB,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA;AAE5B,oDAAkF;AAA1E,uIAAA,0CAA0C,OAAA"}
package/dist/localtest.js CHANGED
@@ -5,12 +5,19 @@ require("dotenv/config");
5
5
  const documentBuilder_1 = require("./documentBuilder");
6
6
  const securityIdentityBuilder_1 = require("./securityIdentityBuilder");
7
7
  const push_1 = require("./source/push");
8
+ const permissionSetBuilder_1 = require("./permissionSetBuilder");
8
9
  const API_KEY = process.env.API_KEY;
9
10
  const ORG_ID = process.env.ORG_ID;
10
11
  const SOURCE_ID = process.env.SOURCE_ID;
11
12
  async function main() {
12
13
  const source = new push_1.PushSource(API_KEY, ORG_ID);
13
14
  await source.setSourceStatus(SOURCE_ID, 'REFRESH');
15
+ const allowedPermissionSet = new permissionSetBuilder_1.PermissionSetBuilder(false)
16
+ .withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com'))
17
+ .withDeniedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder([
18
+ 'ylakhdar@coveo.com',
19
+ 'lbompart@coveo.com',
20
+ ]));
14
21
  const docBuilder = new documentBuilder_1.DocumentBuilder('https://perdu.com', 'hello world title')
15
22
  .withAuthor('anonymous@coveo.com')
16
23
  .withClickableUri('https://perdu.com/click')
@@ -18,11 +25,7 @@ async function main() {
18
25
  .withMetadataValue('foo', 'bar')
19
26
  .withDate('2000/01/01')
20
27
  .withFileExtension('.html')
21
- .withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com'))
22
- .withDeniedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder([
23
- 'ylakhdar@coveo.com',
24
- 'lbompart@coveo.com',
25
- ]));
28
+ .withPermissionSet(allowedPermissionSet);
26
29
  const result = await source.addOrUpdateDocument(SOURCE_ID, docBuilder);
27
30
  console.log('STATUS CREATE', result.status);
28
31
  const resultDelete = await source.deleteDocument(SOURCE_ID, 'https://does.not.exists.com');
@@ -35,12 +38,11 @@ async function main() {
35
38
  addOrUpdate: [],
36
39
  delete: [],
37
40
  };
41
+ const permissionSet = new permissionSetBuilder_1.PermissionSetBuilder(false).withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com'));
38
42
  for (let i = 0; i < 10; i++) {
39
43
  const docID = `https://perdu.com/${i}`;
40
44
  if (i < 8) {
41
- batch.addOrUpdate.push(new documentBuilder_1.DocumentBuilder(docID, `Doc number ${i}`)
42
- .withAllowAnonymousUsers(false)
43
- .withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com')));
45
+ batch.addOrUpdate.push(new documentBuilder_1.DocumentBuilder(docID, `Doc number ${i}`).withPermissionSet(permissionSet));
44
46
  }
45
47
  else {
46
48
  batch.delete.push({ documentId: docID, deleteChildren: true });
@@ -1 +1 @@
1
- {"version":3,"file":"localtest.js","sourceRoot":"","sources":["../src/localtest.ts"],"names":[],"mappings":";;AAAA,sDAAsD;AACtD,yBAAuB;AACvB,uDAAkD;AAClD,uEAAsE;AAEtE,wCAAyC;AACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAiB,CAAC;AAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,CAAC;AAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAmB,CAAC;AAElD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,iBAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,iCAAe,CACpC,mBAAmB,EACnB,mBAAmB,CACpB;SACE,UAAU,CAAC,qBAAqB,CAAC;SACjC,gBAAgB,CAAC,yBAAyB,CAAC;SAC3C,QAAQ,CAAC,6BAA6B,CAAC;SACvC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;SAC/B,QAAQ,CAAC,YAAY,CAAC;SACtB,iBAAiB,CAAC,OAAO,CAAC;SAC1B,sBAAsB,CACrB,IAAI,qDAA2B,CAAC,oBAAoB,CAAC,CACtD;SACA,qBAAqB,CACpB,IAAI,qDAA2B,CAAC;QAC9B,oBAAoB;QACpB,oBAAoB;KACrB,CAAC,CACH,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAC9C,SAAS,EACT,6BAA6B,CAC9B,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjE,SAAS,EACT,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAyB;QAClC,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,EAAE;KACX,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,KAAK,CAAC,WAAW,CAAC,IAAI,CACpB,IAAI,iCAAe,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;iBAC1C,uBAAuB,CAAC,KAAK,CAAC;iBAC9B,sBAAsB,CACrB,IAAI,qDAA2B,CAAC,oBAAoB,CAAC,CACtD,CACJ,CAAC;SACH;aAAM;YACL,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAC;SAC9D;KACF;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"localtest.js","sourceRoot":"","sources":["../src/localtest.ts"],"names":[],"mappings":";;AAAA,sDAAsD;AACtD,yBAAuB;AACvB,uDAAkD;AAClD,uEAAsE;AAEtE,wCAAyC;AACzC,iEAA4D;AAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAiB,CAAC;AAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,CAAC;AAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAmB,CAAC;AAElD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,iBAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,KAAK,CAAC;SACzD,sBAAsB,CACrB,IAAI,qDAA2B,CAAC,oBAAoB,CAAC,CACtD;SACA,qBAAqB,CACpB,IAAI,qDAA2B,CAAC;QAC9B,oBAAoB;QACpB,oBAAoB;KACrB,CAAC,CACH,CAAC;IACJ,MAAM,UAAU,GAAG,IAAI,iCAAe,CACpC,mBAAmB,EACnB,mBAAmB,CACpB;SACE,UAAU,CAAC,qBAAqB,CAAC;SACjC,gBAAgB,CAAC,yBAAyB,CAAC;SAC3C,QAAQ,CAAC,6BAA6B,CAAC;SACvC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;SAC/B,QAAQ,CAAC,YAAY,CAAC;SACtB,iBAAiB,CAAC,OAAO,CAAC;SAC1B,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAC9C,SAAS,EACT,6BAA6B,CAC9B,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjE,SAAS,EACT,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAyB;QAClC,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,2CAAoB,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAC1E,IAAI,qDAA2B,CAAC,oBAAoB,CAAC,CACtD,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,KAAK,CAAC,WAAW,CAAC,IAAI,CACpB,IAAI,iCAAe,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAC7D,aAAa,CACd,CACF,CAAC;SACH;aAAM;YACL,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAC;SAC9D;KACF;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionSetBuilder = void 0;
4
+ class PermissionSetBuilder {
5
+ /**
6
+ * Builds a Permission Set Model
7
+ *
8
+ * See[Simple Permission Model Definition](https://docs.coveo.com/en/107/index-content/simple-permission-model-definition-examples)
9
+ * @param {boolean} allowAnonymous Whether to allow anonymous users in this permission set
10
+ */
11
+ constructor(allowAnonymous) {
12
+ this.permissionSet = {
13
+ allowAnonymous,
14
+ allowedPermissions: [],
15
+ deniedPermissions: [],
16
+ };
17
+ }
18
+ /**
19
+ * Set allowed identities on the document. See {@link PermissionSet}
20
+ *
21
+ * When the {@link PermissionsSetBuilder} class is instanciated with `allowAnonymous` property set to `true`, calling this method is redundant, and can therefore be omitted.
22
+ * @param securityIdentityBuilder The allowed security identities to add to the permission set
23
+ * @returns
24
+ */
25
+ withAllowedPermissions(securityIdentityBuilder) {
26
+ this.setPermission(securityIdentityBuilder, 'allowedPermissions');
27
+ return this;
28
+ }
29
+ /**
30
+ * Set denied identities on the document. See {@link PermissionSet}
31
+ *
32
+ * @param securityIdentityBuilder The denied security identities to add to the permission set
33
+ * @returns
34
+ */
35
+ withDeniedPermissions(securityIdentityBuilder) {
36
+ this.setPermission(securityIdentityBuilder, 'deniedPermissions');
37
+ return this;
38
+ }
39
+ /**
40
+ * Build and return the security identity or identities.
41
+ * @returns
42
+ */
43
+ build() {
44
+ return this.permissionSet;
45
+ }
46
+ setPermission(securityIdentityBuilder, permissionSection) {
47
+ var _a, _b;
48
+ const identities = securityIdentityBuilder.build();
49
+ if (Array.isArray(identities)) {
50
+ this.permissionSet[permissionSection] =
51
+ (_a = this.permissionSet[permissionSection]) === null || _a === void 0 ? void 0 : _a.concat(identities);
52
+ }
53
+ else {
54
+ (_b = this.permissionSet[permissionSection]) === null || _b === void 0 ? void 0 : _b.push(identities);
55
+ }
56
+ }
57
+ }
58
+ exports.PermissionSetBuilder = PermissionSetBuilder;
59
+ //# sourceMappingURL=permissionSetBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionSetBuilder.js","sourceRoot":"","sources":["../src/permissionSetBuilder.ts"],"names":[],"mappings":";;;AAQA,MAAa,oBAAoB;IAG/B;;;;;OAKG;IACH,YAAmB,cAAuB;QACxC,IAAI,CAAC,aAAa,GAAG;YACnB,cAAc;YACd,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,sBAAsB,CAC3B,uBAAgD;QAEhD,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,qBAAqB,CAC1B,uBAAgD;QAEhD,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,aAAa,CACnB,uBAAgD,EAChD,iBAAoC;;QAEpC,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACnC,MAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,0CAAE,MAAM,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACL,MAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,0CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACzD;IACH,CAAC;CACF;AAhED,oDAgEC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const permissionSetBuilder_1 = require("./permissionSetBuilder");
4
+ const securityIdentityBuilder_1 = require("./securityIdentityBuilder");
5
+ describe('PermissionSetBuilder', () => {
6
+ const bobUserIdentity = new securityIdentityBuilder_1.UserSecurityIdentityBuilder('bob@foo.com');
7
+ const multipleUsersIdentity = new securityIdentityBuilder_1.UserSecurityIdentityBuilder([
8
+ 'max@foo.com',
9
+ 'sue@foo.com',
10
+ ]);
11
+ const groupIdentity = new securityIdentityBuilder_1.GroupSecurityIdentityBuilder('my_group');
12
+ const virtualGroupsIdentity = new securityIdentityBuilder_1.VirtualGroupSecurityIdentityBuilder([
13
+ 'SampleGroup',
14
+ 'SpecialGroup',
15
+ ]);
16
+ let restrictedPermissionSet;
17
+ let openedPermissionSet;
18
+ beforeEach(() => {
19
+ restrictedPermissionSet = new permissionSetBuilder_1.PermissionSetBuilder(false);
20
+ openedPermissionSet = new permissionSetBuilder_1.PermissionSetBuilder(true);
21
+ });
22
+ it('should marshal allowAnonymous to false', () => {
23
+ expect(restrictedPermissionSet.build()).toEqual(expect.objectContaining({ allowAnonymous: false }));
24
+ });
25
+ it('should marshal allowAnonymous to true', () => {
26
+ expect(openedPermissionSet.build()).toEqual(expect.objectContaining({ allowAnonymous: true }));
27
+ });
28
+ it('should marshal allowedPermissions', () => {
29
+ restrictedPermissionSet.withAllowedPermissions(bobUserIdentity);
30
+ expect(restrictedPermissionSet.build()).toMatchObject({
31
+ allowedPermissions: expect.arrayContaining([
32
+ expect.objectContaining({ identity: 'bob@foo.com' }),
33
+ ]),
34
+ });
35
+ });
36
+ it('should marshal allowedPermissions in multiple #withAllowedPermissions', () => {
37
+ restrictedPermissionSet
38
+ .withAllowedPermissions(multipleUsersIdentity)
39
+ .withAllowedPermissions(bobUserIdentity)
40
+ .withAllowedPermissions(virtualGroupsIdentity)
41
+ .withAllowedPermissions(groupIdentity);
42
+ expect(restrictedPermissionSet.build()).toMatchSnapshot();
43
+ });
44
+ it('should marshal deniedPermissions', () => {
45
+ restrictedPermissionSet.withDeniedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('bob@foo.com'));
46
+ expect(restrictedPermissionSet.build()).toMatchObject({
47
+ deniedPermissions: expect.arrayContaining([
48
+ expect.objectContaining({ identity: 'bob@foo.com' }),
49
+ ]),
50
+ });
51
+ });
52
+ it('should marshal deniedPermissions in multiple #withDeniedPermissions', () => {
53
+ restrictedPermissionSet
54
+ .withDeniedPermissions(multipleUsersIdentity)
55
+ .withDeniedPermissions(bobUserIdentity)
56
+ .withDeniedPermissions(virtualGroupsIdentity)
57
+ .withDeniedPermissions(groupIdentity);
58
+ expect(restrictedPermissionSet.build()).toMatchSnapshot();
59
+ });
60
+ it('should marshal both allowed and denied permissions ', () => {
61
+ restrictedPermissionSet
62
+ .withDeniedPermissions(multipleUsersIdentity)
63
+ .withDeniedPermissions(bobUserIdentity)
64
+ .withAllowedPermissions(virtualGroupsIdentity)
65
+ .withAllowedPermissions(groupIdentity);
66
+ expect(restrictedPermissionSet.build()).toMatchSnapshot();
67
+ });
68
+ });
69
+ //# sourceMappingURL=permissionSetBuilder.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionSetBuilder.spec.js","sourceRoot":"","sources":["../src/permissionSetBuilder.spec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VirtualGroupSecurityIdentityBuilder = exports.GroupSecurityIdentityBuilder = exports.UserSecurityIdentityBuilder = exports.AnySecurityIdentityBuilder = void 0;
4
+ const platform_client_1 = require("@coveo/platform-client");
4
5
  /**
5
- * Build any {@link SecurityIdentityType}.
6
+ * Build any {@link PermissionIdentityType}.
6
7
  *
7
8
  * Instead of using this class directly, use one of:
8
9
  * - {@link UserSecurityIdentityBuilder}
@@ -11,17 +12,23 @@ exports.VirtualGroupSecurityIdentityBuilder = exports.GroupSecurityIdentityBuild
11
12
  */
12
13
  class AnySecurityIdentityBuilder {
13
14
  /**
15
+ * @param identityType The type of the identity.
16
+ * Valid values:
17
+ * - `UNKNOWN`
18
+ * - `USER` : Defines a single user.
19
+ * - `GROUP` : Defines an existing group of identities within the indexed system. Individual members of this group can be of any valid identity Type (USER, GROUP, or VIRTUAL_GROUP).
20
+ * - `VIRTUAL_GROUP` : Defines a group that doesn't exist within the indexed system. Mechanically, a `VIRTUAL_GROUP` is identical to a `GROUP`.
14
21
  *
15
- * @param identityType
16
- * @param identity
17
- * @param securityProvider
22
+ * @param identity The name of the security identity.
23
+ * Examples:
24
+ * - `asmith@example.com`
25
+ * - `SampleTeam2`
26
+ *
27
+ * @param securityProvider The security identity provider through which the security identity is updated. Defaults to the first security identity provider associated with the target source.
18
28
  */
19
29
  constructor(identityType, identity, securityProvider) {
20
- this.securityIdentity = {
21
- identityType,
22
- identity,
23
- securityProvider,
24
- };
30
+ this.securityIdentity = Object.assign({ identityType,
31
+ identity }, (securityProvider && { securityProvider }));
25
32
  }
26
33
  /**
27
34
  * Build and return the security identity.
@@ -35,15 +42,15 @@ exports.AnySecurityIdentityBuilder = AnySecurityIdentityBuilder;
35
42
  /**
36
43
  * Build a security identity of type `USER`.
37
44
  *
38
- * Typically used in conjunction with {@link DocumentBuilder.withAllowedPermissions} or {@link DocumentBuilder.withDeniedPermissions}.
45
+ * Typically used in conjunction with {@link PermissionSetBuilder.withAllowedPermissions} or {@link PermissionSetBuilder.withDeniedPermissions}.
39
46
  *
40
- * See {@link SecurityIdentity}.
47
+ * See {@link Permission}.
41
48
  */
42
49
  class UserSecurityIdentityBuilder {
43
50
  /**
44
51
  * Pass either a single user, or an array of user to create multiple identities.
45
- * @param user
46
- * @param securityProvider
52
+ * @param {(string | string[])} user The user identity or identities
53
+ * @param {string} [securityProvider='Email Security Provider'] The security identity provider through which the security identity is updated. Defaults to the first security identity provider associated with the target source.
47
54
  */
48
55
  constructor(user, securityProvider = 'Email Security Provider') {
49
56
  this.user = user;
@@ -55,24 +62,24 @@ class UserSecurityIdentityBuilder {
55
62
  */
56
63
  build() {
57
64
  if (Array.isArray(this.user)) {
58
- return this.user.map((u) => new AnySecurityIdentityBuilder('USER', u, this.securityProvider).build());
65
+ return this.user.map((u) => new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.User, u, this.securityProvider).build());
59
66
  }
60
- return new AnySecurityIdentityBuilder('USER', this.user, this.securityProvider).build();
67
+ return new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.User, this.user, this.securityProvider).build();
61
68
  }
62
69
  }
63
70
  exports.UserSecurityIdentityBuilder = UserSecurityIdentityBuilder;
64
71
  /**
65
72
  * Build a security identity of type `GROUP`.
66
73
  *
67
- * Typically used in conjunction with {@link DocumentBuilder.withAllowedPermissions} or {@link DocumentBuilder.withDeniedPermissions}.
74
+ * Typically used in conjunction with {@link PermissionSetBuilder.withAllowedPermissions} or {@link PermissionSetBuilder.withDeniedPermissions}.
68
75
  *
69
- * See {@link SecurityIdentity}.
76
+ * See {@link Permission}.
70
77
  */
71
78
  class GroupSecurityIdentityBuilder {
72
79
  /**
73
80
  * Pass either a single `group`, or an array of `group` to create multiple identities.
74
- * @param group
75
- * @param securityProvider
81
+ * @param {(string | string[])} group
82
+ * @param {string} [securityProvider] The security identity provider through which the security identity is updated. Defaults to the first security identity provider associated with the target source.
76
83
  */
77
84
  constructor(group, securityProvider) {
78
85
  this.group = group;
@@ -84,24 +91,24 @@ class GroupSecurityIdentityBuilder {
84
91
  */
85
92
  build() {
86
93
  if (Array.isArray(this.group)) {
87
- return this.group.map((g) => new AnySecurityIdentityBuilder('GROUP', g, this.securityProvider).build());
94
+ return this.group.map((g) => new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.Group, g, this.securityProvider).build());
88
95
  }
89
- return new AnySecurityIdentityBuilder('GROUP', this.group, this.securityProvider).build();
96
+ return new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.Group, this.group, this.securityProvider).build();
90
97
  }
91
98
  }
92
99
  exports.GroupSecurityIdentityBuilder = GroupSecurityIdentityBuilder;
93
100
  /**
94
101
  * Build a security identity of type `VIRTUAL_GROUP`.
95
102
  *
96
- * Typically used in conjunction with {@link DocumentBuilder.withAllowedPermissions} or {@link DocumentBuilder.withDeniedPermissions}.
103
+ * Typically used in conjunction with {@link PermissionSetBuilder.withAllowedPermissions} or {@link PermissionSetBuilder.withDeniedPermissions}.
97
104
  *
98
- * See {@link SecurityIdentity}.
105
+ * See {@link Permission}.
99
106
  */
100
107
  class VirtualGroupSecurityIdentityBuilder {
101
108
  /**
102
109
  * Pass either a single `virtualGroup`, or an array of `virtualGroup` to create multiple identities.
103
- * @param group
104
- * @param securityProvider
110
+ * @param {(string | string[])} virtualGroup
111
+ * @param {string} [securityProvider] The security identity provider through which the security identity is updated. Defaults to the first security identity provider associated with the target source.
105
112
  */
106
113
  constructor(virtualGroup, securityProvider) {
107
114
  this.virtualGroup = virtualGroup;
@@ -113,9 +120,9 @@ class VirtualGroupSecurityIdentityBuilder {
113
120
  */
114
121
  build() {
115
122
  if (Array.isArray(this.virtualGroup)) {
116
- return this.virtualGroup.map((vg) => new AnySecurityIdentityBuilder('VIRTUAL_GROUP', vg, this.securityProvider).build());
123
+ return this.virtualGroup.map((vg) => new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.VirtualGroup, vg, this.securityProvider).build());
117
124
  }
118
- return new AnySecurityIdentityBuilder('VIRTUAL_GROUP', this.virtualGroup, this.securityProvider).build();
125
+ return new AnySecurityIdentityBuilder(platform_client_1.PermissionIdentityType.VirtualGroup, this.virtualGroup, this.securityProvider).build();
119
126
  }
120
127
  }
121
128
  exports.VirtualGroupSecurityIdentityBuilder = VirtualGroupSecurityIdentityBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"securityIdentityBuilder.js","sourceRoot":"","sources":["../src/securityIdentityBuilder.ts"],"names":[],"mappings":";;;AASA;;;;;;;GAOG;AACH,MAAa,0BAA0B;IAErC;;;;;OAKG;IACH,YACE,YAAkC,EAClC,QAAgB,EAChB,gBAAyB;QAEzB,IAAI,CAAC,gBAAgB,GAAG;YACtB,YAAY;YACZ,QAAQ;YACR,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF;AA3BD,gEA2BC;AAED;;;;;;GAMG;AACH,MAAa,2BAA2B;IACtC;;;;OAIG;IACH,YACU,IAAuB,EACvB,mBAA2B,yBAAyB;QADpD,SAAI,GAAJ,IAAI,CAAmB;QACvB,qBAAgB,GAAhB,gBAAgB,CAAoC;IAC3D,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,IAAI,0BAA0B,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CACzE,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,MAAM,EACN,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AA3BD,kEA2BC;AAED;;;;;;GAMG;AACH,MAAa,4BAA4B;IACvC;;;;OAIG;IACH,YACU,KAAwB,EACxB,gBAAyB;QADzB,UAAK,GAAL,KAAK,CAAmB;QACxB,qBAAgB,GAAhB,gBAAgB,CAAS;IAChC,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,IAAI,0BAA0B,CAC5B,OAAO,EACP,CAAC,EACD,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CACV,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,OAAO,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AA/BD,oEA+BC;AACD;;;;;;GAMG;AACH,MAAa,mCAAmC;IAG9C;;;;OAIG;IACH,YACU,YAA+B,EAC/B,gBAAyB;QADzB,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAS;IAChC,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAClC,IAAI,0BAA0B,CAC5B,eAAe,EACf,EAAE,EACF,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CACV,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,eAAe,EACf,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AAjCD,kFAiCC"}
1
+ {"version":3,"file":"securityIdentityBuilder.js","sourceRoot":"","sources":["../src/securityIdentityBuilder.ts"],"names":[],"mappings":";;;AAEA,4DAA0E;AAS1E;;;;;;;GAOG;AACH,MAAa,0BAA0B;IAErC;;;;;;;;;;;;;;OAcG;IACH,YACE,YAAoC,EACpC,QAAgB,EAChB,gBAAyB;QAEzB,IAAI,CAAC,gBAAgB,mBACnB,YAAY;YACZ,QAAQ,IACL,CAAC,gBAAgB,IAAI,EAAC,gBAAgB,EAAC,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF;AApCD,gEAoCC;AAED;;;;;;GAMG;AACH,MAAa,2BAA2B;IACtC;;;;OAIG;IACH,YACU,IAAuB,EACvB,mBAA2B,yBAAyB;QADpD,SAAI,GAAJ,IAAI,CAAmB;QACvB,qBAAgB,GAAhB,gBAAgB,CAAoC;IAC3D,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,IAAI,0BAA0B,CAC5B,wCAAsB,CAAC,IAAI,EAC3B,CAAC,EACD,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CACV,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,wCAAsB,CAAC,IAAI,EAC3B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AA/BD,kEA+BC;AAED;;;;;;GAMG;AACH,MAAa,4BAA4B;IACvC;;;;OAIG;IACH,YACU,KAAwB,EACxB,gBAAyB;QADzB,UAAK,GAAL,KAAK,CAAmB;QACxB,qBAAgB,GAAhB,gBAAgB,CAAS;IAChC,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,IAAI,0BAA0B,CAC5B,wCAAsB,CAAC,KAAK,EAC5B,CAAC,EACD,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CACV,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,wCAAsB,CAAC,KAAK,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AA/BD,oEA+BC;AACD;;;;;;GAMG;AACH,MAAa,mCAAmC;IAG9C;;;;OAIG;IACH,YACU,YAA+B,EAC/B,gBAAyB;QADzB,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAS;IAChC,CAAC;IAEJ;;;OAGG;IACI,KAAK;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAClC,IAAI,0BAA0B,CAC5B,wCAAsB,CAAC,YAAY,EACnC,EAAE,EACF,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CACV,CAAC;SACH;QACD,OAAO,IAAI,0BAA0B,CACnC,wCAAsB,CAAC,YAAY,EACnC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,gBAAgB,CACtB,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF;AAjCD,kFAiCC"}