@coveo/push-api-client 3.0.117 → 3.0.122

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 (130) hide show
  1. package/dist/APICore.js +47 -47
  2. package/dist/APICore.js.map +1 -1
  3. package/dist/definitions/APICore.d.ts +18 -18
  4. package/dist/definitions/document.d.ts +124 -124
  5. package/dist/definitions/documentBuilder.d.ts +168 -168
  6. package/dist/definitions/documentBuilder.spec.d.ts +1 -1
  7. package/dist/definitions/environment.d.ts +16 -16
  8. package/dist/definitions/errors/baseError.d.ts +4 -4
  9. package/dist/definitions/errors/fieldErrors.d.ts +18 -18
  10. package/dist/definitions/errors/index.d.ts +3 -3
  11. package/dist/definitions/errors/privilegeError.d.ts +6 -6
  12. package/dist/definitions/errors/validatorErrors.d.ts +20 -20
  13. package/dist/definitions/fieldAnalyser/fieldAnalyser.d.ts +36 -36
  14. package/dist/definitions/fieldAnalyser/fieldAnalyser.spec.d.ts +1 -1
  15. package/dist/definitions/fieldAnalyser/fieldStore.d.ts +5 -5
  16. package/dist/definitions/fieldAnalyser/fieldUtils.d.ts +6 -6
  17. package/dist/definitions/fieldAnalyser/fieldsUtils.spec.d.ts +1 -1
  18. package/dist/definitions/fieldAnalyser/inconsistencies.d.ts +5 -5
  19. package/dist/definitions/fieldAnalyser/inconsistencies.spec.d.ts +1 -1
  20. package/dist/definitions/fieldAnalyser/typeUtils.d.ts +3 -3
  21. package/dist/definitions/fieldAnalyser/typeUtils.spec.d.ts +1 -1
  22. package/dist/definitions/help/file.d.ts +3 -3
  23. package/dist/definitions/help/file.spec.d.ts +1 -1
  24. package/dist/definitions/help/fileConsumer.d.ts +31 -31
  25. package/dist/definitions/help/fileConsumer.spec.d.ts +1 -1
  26. package/dist/definitions/help/fileContainer.d.ts +8 -8
  27. package/dist/definitions/help/fileContainer.spec.d.ts +1 -1
  28. package/dist/definitions/help/function.d.ts +1 -1
  29. package/dist/definitions/help/generator.d.ts +11 -11
  30. package/dist/definitions/help/generator.spec.d.ts +1 -1
  31. package/dist/definitions/help/urlUtils.d.ts +27 -27
  32. package/dist/definitions/help/urlUtils.spec.d.ts +1 -1
  33. package/dist/definitions/index.d.ts +14 -14
  34. package/dist/definitions/interfaces.d.ts +70 -70
  35. package/dist/definitions/localtest.d.ts +1 -1
  36. package/dist/definitions/permissionSetBuilder.d.ts +34 -34
  37. package/dist/definitions/permissionSetBuilder.spec.d.ts +1 -1
  38. package/dist/definitions/securityIdentityBuilder.d.ts +105 -105
  39. package/dist/definitions/securityIdentityBuilder.spec.d.ts +1 -1
  40. package/dist/definitions/source/batchUploadDocumentsFromFile.d.ts +11 -11
  41. package/dist/definitions/source/batchUploadDocumentsFromFile.spec.d.ts +1 -1
  42. package/dist/definitions/source/catalog.d.ts +70 -70
  43. package/dist/definitions/source/catalog.spec.d.ts +1 -1
  44. package/dist/definitions/source/documentUploader.d.ts +11 -11
  45. package/dist/definitions/source/documentUploader.spec.d.ts +1 -1
  46. package/dist/definitions/source/push.d.ts +87 -87
  47. package/dist/definitions/source/push.spec.d.ts +1 -1
  48. package/dist/definitions/source/securityIdenty.d.ts +43 -43
  49. package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +23 -23
  50. package/dist/definitions/uploadStrategy/fileContainerStrategy.spec.d.ts +1 -1
  51. package/dist/definitions/uploadStrategy/index.d.ts +3 -3
  52. package/dist/definitions/uploadStrategy/strategy.d.ts +23 -23
  53. package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +28 -28
  54. package/dist/definitions/uploadStrategy/streamChunkStrategy.spec.d.ts +1 -1
  55. package/dist/definitions/validation/caseInsensitiveDocument.d.ts +13 -13
  56. package/dist/definitions/validation/knownKey.d.ts +10 -10
  57. package/dist/definitions/validation/parseFile.d.ts +4 -4
  58. package/dist/definitions/validation/parseFile.spec.d.ts +1 -1
  59. package/dist/definitions/validation/parsePermissions.d.ts +5 -5
  60. package/dist/definitions/validation/parsePermissions.spec.d.ts +1 -1
  61. package/dist/definitions/validation/preconditions/apiKeyPrivilege.d.ts +3 -3
  62. package/dist/definitions/validation/preconditions/apiKeyPrivilege.spec.d.ts +1 -1
  63. package/dist/definitions/validation/preconditions/platformPrivilege.d.ts +7 -7
  64. package/dist/definitions/validation/requiredKeyValidator.d.ts +17 -17
  65. package/dist/definitions/validation/transformers/transformer.d.ts +31 -31
  66. package/dist/definitions/validation/transformers/transformer.spec.d.ts +1 -1
  67. package/dist/document.js +2 -2
  68. package/dist/documentBuilder.js +292 -292
  69. package/dist/documentBuilder.spec.js +191 -191
  70. package/dist/environment.js +41 -41
  71. package/dist/errors/baseError.js +10 -10
  72. package/dist/errors/fieldErrors.js +42 -42
  73. package/dist/errors/index.js +19 -19
  74. package/dist/errors/privilegeError.js +12 -12
  75. package/dist/errors/validatorErrors.js +40 -40
  76. package/dist/fieldAnalyser/fieldAnalyser.js +95 -95
  77. package/dist/fieldAnalyser/fieldAnalyser.spec.js +230 -230
  78. package/dist/fieldAnalyser/fieldStore.js +21 -21
  79. package/dist/fieldAnalyser/fieldUtils.js +41 -41
  80. package/dist/fieldAnalyser/fieldsUtils.spec.js +116 -116
  81. package/dist/fieldAnalyser/inconsistencies.js +14 -14
  82. package/dist/fieldAnalyser/inconsistencies.spec.js +40 -40
  83. package/dist/fieldAnalyser/typeUtils.js +61 -61
  84. package/dist/fieldAnalyser/typeUtils.spec.js +142 -142
  85. package/dist/help/file.js +37 -37
  86. package/dist/help/file.spec.js +67 -67
  87. package/dist/help/fileConsumer.js +150 -150
  88. package/dist/help/fileConsumer.spec.js +153 -153
  89. package/dist/help/fileContainer.js +48 -48
  90. package/dist/help/fileContainer.spec.js +65 -65
  91. package/dist/help/function.js +5 -5
  92. package/dist/help/generator.js +32 -32
  93. package/dist/help/generator.spec.js +82 -82
  94. package/dist/help/urlUtils.js +42 -42
  95. package/dist/help/urlUtils.spec.js +41 -41
  96. package/dist/index.js +38 -38
  97. package/dist/interfaces.js +2 -2
  98. package/dist/localtest.js +55 -55
  99. package/dist/permissionSetBuilder.js +58 -58
  100. package/dist/permissionSetBuilder.spec.js +68 -68
  101. package/dist/securityIdentityBuilder.js +128 -128
  102. package/dist/securityIdentityBuilder.spec.js +50 -50
  103. package/dist/source/batchUploadDocumentsFromFile.js +46 -46
  104. package/dist/source/batchUploadDocumentsFromFile.spec.js +145 -145
  105. package/dist/source/catalog.js +111 -111
  106. package/dist/source/catalog.spec.js +64 -64
  107. package/dist/source/documentUploader.js +45 -45
  108. package/dist/source/documentUploader.spec.js +118 -118
  109. package/dist/source/push.js +140 -140
  110. package/dist/source/push.spec.js +152 -152
  111. package/dist/source/securityIdenty.js +57 -57
  112. package/dist/uploadStrategy/fileContainerStrategy.js +32 -32
  113. package/dist/uploadStrategy/fileContainerStrategy.spec.js +86 -86
  114. package/dist/uploadStrategy/index.js +19 -19
  115. package/dist/uploadStrategy/strategy.js +2 -2
  116. package/dist/uploadStrategy/streamChunkStrategy.js +52 -52
  117. package/dist/uploadStrategy/streamChunkStrategy.spec.js +77 -77
  118. package/dist/validation/caseInsensitiveDocument.js +31 -31
  119. package/dist/validation/knownKey.js +37 -37
  120. package/dist/validation/parseFile.js +120 -120
  121. package/dist/validation/parseFile.spec.js +96 -96
  122. package/dist/validation/parsePermissions.js +118 -118
  123. package/dist/validation/parsePermissions.spec.js +86 -86
  124. package/dist/validation/preconditions/apiKeyPrivilege.js +20 -20
  125. package/dist/validation/preconditions/apiKeyPrivilege.spec.js +66 -66
  126. package/dist/validation/preconditions/platformPrivilege.js +32 -32
  127. package/dist/validation/requiredKeyValidator.js +61 -61
  128. package/dist/validation/transformers/transformer.js +51 -51
  129. package/dist/validation/transformers/transformer.spec.js +21 -21
  130. package/package.json +11 -11
package/dist/index.js CHANGED
@@ -1,39 +1,39 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.parseAndGetDocumentBuilderFromJSONDocument = exports.PermissionSetBuilder = exports.SourceVisibility = exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.FieldAnalyser = exports.CatalogSource = exports.PushSource = exports.errors = void 0;
18
- __exportStar(require("./document"), exports);
19
- __exportStar(require("./validation/transformers/transformer"), exports);
20
- exports.errors = require("./errors");
21
- var push_1 = require("./source/push");
22
- Object.defineProperty(exports, "PushSource", { enumerable: true, get: function () { return push_1.PushSource; } });
23
- var catalog_1 = require("./source/catalog");
24
- Object.defineProperty(exports, "CatalogSource", { enumerable: true, get: function () { return catalog_1.CatalogSource; } });
25
- var fieldAnalyser_1 = require("./fieldAnalyser/fieldAnalyser");
26
- Object.defineProperty(exports, "FieldAnalyser", { enumerable: true, get: function () { return fieldAnalyser_1.FieldAnalyser; } });
27
- var documentBuilder_1 = require("./documentBuilder");
28
- Object.defineProperty(exports, "DocumentBuilder", { enumerable: true, get: function () { return documentBuilder_1.DocumentBuilder; } });
29
- __exportStar(require("./securityIdentityBuilder"), exports);
30
- var environment_1 = require("./environment");
31
- Object.defineProperty(exports, "PlatformEnvironment", { enumerable: true, get: function () { return environment_1.PlatformEnvironment; } });
32
- Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return environment_1.Region; } });
33
- var platform_client_1 = require("@coveo/platform-client");
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
- var parseFile_1 = require("./validation/parseFile");
38
- Object.defineProperty(exports, "parseAndGetDocumentBuilderFromJSONDocument", { enumerable: true, get: function () { return parseFile_1.parseAndGetDocumentBuilderFromJSONDocument; } });
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.parseAndGetDocumentBuilderFromJSONDocument = exports.PermissionSetBuilder = exports.SourceVisibility = exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.FieldAnalyser = exports.CatalogSource = exports.PushSource = exports.errors = void 0;
18
+ __exportStar(require("./document"), exports);
19
+ __exportStar(require("./validation/transformers/transformer"), exports);
20
+ exports.errors = require("./errors");
21
+ var push_1 = require("./source/push");
22
+ Object.defineProperty(exports, "PushSource", { enumerable: true, get: function () { return push_1.PushSource; } });
23
+ var catalog_1 = require("./source/catalog");
24
+ Object.defineProperty(exports, "CatalogSource", { enumerable: true, get: function () { return catalog_1.CatalogSource; } });
25
+ var fieldAnalyser_1 = require("./fieldAnalyser/fieldAnalyser");
26
+ Object.defineProperty(exports, "FieldAnalyser", { enumerable: true, get: function () { return fieldAnalyser_1.FieldAnalyser; } });
27
+ var documentBuilder_1 = require("./documentBuilder");
28
+ Object.defineProperty(exports, "DocumentBuilder", { enumerable: true, get: function () { return documentBuilder_1.DocumentBuilder; } });
29
+ __exportStar(require("./securityIdentityBuilder"), exports);
30
+ var environment_1 = require("./environment");
31
+ Object.defineProperty(exports, "PlatformEnvironment", { enumerable: true, get: function () { return environment_1.PlatformEnvironment; } });
32
+ Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return environment_1.Region; } });
33
+ var platform_client_1 = require("@coveo/platform-client");
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
+ var parseFile_1 = require("./validation/parseFile");
38
+ Object.defineProperty(exports, "parseAndGetDocumentBuilderFromJSONDocument", { enumerable: true, get: function () { return parseFile_1.parseAndGetDocumentBuilderFromJSONDocument; } });
39
39
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=interfaces.js.map
package/dist/localtest.js CHANGED
@@ -1,56 +1,56 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // eslint-disable-next-line node/no-unpublished-import
4
- require("dotenv/config");
5
- const documentBuilder_1 = require("./documentBuilder");
6
- const securityIdentityBuilder_1 = require("./securityIdentityBuilder");
7
- const push_1 = require("./source/push");
8
- const permissionSetBuilder_1 = require("./permissionSetBuilder");
9
- const API_KEY = process.env.API_KEY;
10
- const ORG_ID = process.env.ORG_ID;
11
- const SOURCE_ID = process.env.SOURCE_ID;
12
- async function main() {
13
- const source = new push_1.PushSource(API_KEY, ORG_ID);
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
- ]));
21
- const docBuilder = new documentBuilder_1.DocumentBuilder('https://perdu.com', 'hello world title')
22
- .withAuthor('anonymous@coveo.com')
23
- .withClickableUri('https://perdu.com/click')
24
- .withData('the content of the document')
25
- .withMetadataValue('foo', 'bar')
26
- .withDate('2000/01/01')
27
- .withFileExtension('.html')
28
- .withPermissionSet(allowedPermissionSet);
29
- const result = await source.addOrUpdateDocument(SOURCE_ID, docBuilder);
30
- console.log('STATUS CREATE', result.status);
31
- const resultDelete = await source.deleteDocument(SOURCE_ID, 'https://does.not.exists.com');
32
- console.log('STATUS DELETE', resultDelete.status);
33
- const yesterday = new Date();
34
- yesterday.setDate(new Date().getDate() - 1);
35
- const resultDeleteOlderThan = await source.deleteDocumentsOlderThan(SOURCE_ID, yesterday);
36
- console.log('STATUS DELETE OLDER THAN', resultDeleteOlderThan.status);
37
- const batch = {
38
- addOrUpdate: [],
39
- delete: [],
40
- };
41
- const permissionSet = new permissionSetBuilder_1.PermissionSetBuilder(false).withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com'));
42
- for (let i = 0; i < 10; i++) {
43
- const docID = `https://perdu.com/${i}`;
44
- if (i < 8) {
45
- batch.addOrUpdate.push(new documentBuilder_1.DocumentBuilder(docID, `Doc number ${i}`).withPermissionSet(permissionSet));
46
- }
47
- else {
48
- batch.delete.push({ documentId: docID, deleteChildren: true });
49
- }
50
- }
51
- const batchResult = await source.batchUpdateDocuments(SOURCE_ID, batch);
52
- console.log('STATUS BATCH', batchResult.status);
53
- await source.setSourceStatus(SOURCE_ID, 'IDLE');
54
- }
55
- main();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // eslint-disable-next-line node/no-unpublished-import
4
+ require("dotenv/config");
5
+ const documentBuilder_1 = require("./documentBuilder");
6
+ const securityIdentityBuilder_1 = require("./securityIdentityBuilder");
7
+ const push_1 = require("./source/push");
8
+ const permissionSetBuilder_1 = require("./permissionSetBuilder");
9
+ const API_KEY = process.env.API_KEY;
10
+ const ORG_ID = process.env.ORG_ID;
11
+ const SOURCE_ID = process.env.SOURCE_ID;
12
+ async function main() {
13
+ const source = new push_1.PushSource(API_KEY, ORG_ID);
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
+ ]));
21
+ const docBuilder = new documentBuilder_1.DocumentBuilder('https://perdu.com', 'hello world title')
22
+ .withAuthor('anonymous@coveo.com')
23
+ .withClickableUri('https://perdu.com/click')
24
+ .withData('the content of the document')
25
+ .withMetadataValue('foo', 'bar')
26
+ .withDate('2000/01/01')
27
+ .withFileExtension('.html')
28
+ .withPermissionSet(allowedPermissionSet);
29
+ const result = await source.addOrUpdateDocument(SOURCE_ID, docBuilder);
30
+ console.log('STATUS CREATE', result.status);
31
+ const resultDelete = await source.deleteDocument(SOURCE_ID, 'https://does.not.exists.com');
32
+ console.log('STATUS DELETE', resultDelete.status);
33
+ const yesterday = new Date();
34
+ yesterday.setDate(new Date().getDate() - 1);
35
+ const resultDeleteOlderThan = await source.deleteDocumentsOlderThan(SOURCE_ID, yesterday);
36
+ console.log('STATUS DELETE OLDER THAN', resultDeleteOlderThan.status);
37
+ const batch = {
38
+ addOrUpdate: [],
39
+ delete: [],
40
+ };
41
+ const permissionSet = new permissionSetBuilder_1.PermissionSetBuilder(false).withAllowedPermissions(new securityIdentityBuilder_1.UserSecurityIdentityBuilder('olamothe@coveo.com'));
42
+ for (let i = 0; i < 10; i++) {
43
+ const docID = `https://perdu.com/${i}`;
44
+ if (i < 8) {
45
+ batch.addOrUpdate.push(new documentBuilder_1.DocumentBuilder(docID, `Doc number ${i}`).withPermissionSet(permissionSet));
46
+ }
47
+ else {
48
+ batch.delete.push({ documentId: docID, deleteChildren: true });
49
+ }
50
+ }
51
+ const batchResult = await source.batchUpdateDocuments(SOURCE_ID, batch);
52
+ console.log('STATUS BATCH', batchResult.status);
53
+ await source.setSourceStatus(SOURCE_ID, 'IDLE');
54
+ }
55
+ main();
56
56
  //# sourceMappingURL=localtest.js.map
@@ -1,59 +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;
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
59
  //# sourceMappingURL=permissionSetBuilder.js.map
@@ -1,69 +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
- });
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
69
  //# sourceMappingURL=permissionSetBuilder.spec.js.map