@coveo/push-api-client 2.8.13 → 3.0.1
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.
- package/README.md +7 -6
- package/dist/APICore.js +18 -13
- package/dist/APICore.js.map +1 -1
- package/dist/definitions/APICore.d.ts +12 -5
- package/dist/definitions/document.d.ts +2 -45
- package/dist/definitions/documentBuilder.d.ts +32 -59
- package/dist/definitions/errors/validatorErrors.d.ts +2 -1
- package/dist/definitions/help/fileConsumer.d.ts +3 -3
- package/dist/definitions/help/fileContainer.d.ts +2 -3
- package/dist/definitions/help/fileContainer.spec.d.ts +1 -1
- package/dist/definitions/index.d.ts +1 -1
- package/dist/definitions/interfaces.d.ts +3 -3
- package/dist/definitions/permissionSetBuilder.d.ts +34 -0
- package/dist/definitions/permissionSetBuilder.spec.d.ts +1 -0
- package/dist/definitions/securityIdentityBuilder.d.ts +33 -24
- package/dist/definitions/securityIdentityBuilder.spec.d.ts +1 -0
- package/dist/definitions/source/catalog.d.ts +2 -1
- package/dist/definitions/source/documentUploader.d.ts +3 -3
- package/dist/definitions/source/push.d.ts +8 -37
- package/dist/definitions/source/securityIdenty.d.ts +1 -0
- package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +1 -1
- package/dist/definitions/uploadStrategy/strategy.d.ts +2 -2
- package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +1 -1
- package/dist/definitions/validation/caseInsensitiveDocument.d.ts +10 -1
- package/dist/definitions/validation/knownKey.d.ts +2 -1
- package/dist/definitions/validation/parsePermissions.d.ts +5 -0
- package/dist/definitions/validation/parsePermissions.spec.d.ts +1 -0
- package/dist/documentBuilder.js +28 -46
- package/dist/documentBuilder.js.map +1 -1
- package/dist/documentBuilder.spec.js +55 -74
- package/dist/documentBuilder.spec.js.map +1 -1
- package/dist/errors/validatorErrors.js +4 -1
- package/dist/errors/validatorErrors.js.map +1 -1
- package/dist/help/fileConsumer.js +1 -1
- package/dist/help/fileConsumer.js.map +1 -1
- package/dist/help/fileConsumer.spec.js +2 -3
- package/dist/help/fileConsumer.spec.js.map +1 -1
- package/dist/help/fileContainer.js +41 -24
- package/dist/help/fileContainer.js.map +1 -1
- package/dist/help/fileContainer.spec.js +38 -33
- package/dist/help/fileContainer.spec.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/localtest.js +10 -8
- package/dist/localtest.js.map +1 -1
- package/dist/permissionSetBuilder.js +59 -0
- package/dist/permissionSetBuilder.js.map +1 -0
- package/dist/permissionSetBuilder.spec.js +69 -0
- package/dist/permissionSetBuilder.spec.js.map +1 -0
- package/dist/securityIdentityBuilder.js +34 -27
- package/dist/securityIdentityBuilder.js.map +1 -1
- package/dist/securityIdentityBuilder.spec.js +51 -0
- package/dist/securityIdentityBuilder.spec.js.map +1 -0
- package/dist/source/catalog.js +1 -2
- package/dist/source/catalog.js.map +1 -1
- package/dist/source/documentUploader.js +1 -1
- package/dist/source/documentUploader.js.map +1 -1
- package/dist/source/documentUploader.spec.js +5 -5
- package/dist/source/documentUploader.spec.js.map +1 -1
- package/dist/source/push.js +6 -47
- package/dist/source/push.js.map +1 -1
- package/dist/source/push.spec.js +3 -3
- package/dist/source/push.spec.js.map +1 -1
- package/dist/source/securityIdenty.js +1 -2
- package/dist/source/securityIdenty.js.map +1 -1
- package/dist/uploadStrategy/fileContainerStrategy.js +2 -2
- package/dist/uploadStrategy/fileContainerStrategy.js.map +1 -1
- package/dist/uploadStrategy/fileContainerStrategy.spec.js +2 -2
- package/dist/uploadStrategy/fileContainerStrategy.spec.js.map +1 -1
- package/dist/uploadStrategy/streamChunkStrategy.js +4 -4
- package/dist/uploadStrategy/streamChunkStrategy.js.map +1 -1
- package/dist/uploadStrategy/streamChunkStrategy.spec.js +8 -12
- package/dist/uploadStrategy/streamChunkStrategy.spec.js.map +1 -1
- package/dist/validation/caseInsensitiveDocument.js +21 -2
- package/dist/validation/caseInsensitiveDocument.js.map +1 -1
- package/dist/validation/knownKey.js +13 -4
- package/dist/validation/knownKey.js.map +1 -1
- package/dist/validation/parseFile.js +14 -60
- package/dist/validation/parseFile.js.map +1 -1
- package/dist/validation/parseFile.spec.js +42 -3
- package/dist/validation/parseFile.spec.js.map +1 -1
- package/dist/validation/parsePermissions.js +119 -0
- package/dist/validation/parsePermissions.js.map +1 -0
- package/dist/validation/parsePermissions.spec.js +87 -0
- package/dist/validation/parsePermissions.spec.js.map +1 -0
- package/dist/validation/requiredKeyValidator.js +1 -1
- package/dist/validation/requiredKeyValidator.js.map +1 -1
- package/package.json +24 -18
- package/dist/definitions/source/source.d.ts +0 -5
- package/dist/docs/.nojekyll +0 -1
- package/dist/docs/assets/highlight.css +0 -71
- package/dist/docs/assets/main.js +0 -58
- package/dist/docs/assets/search.js +0 -1
- package/dist/docs/assets/style.css +0 -1280
- package/dist/docs/classes/AnySecurityIdentityBuilder.html +0 -125
- package/dist/docs/classes/CatalogSource.html +0 -327
- package/dist/docs/classes/DocumentBuilder.html +0 -509
- package/dist/docs/classes/FieldAnalyser.html +0 -203
- package/dist/docs/classes/GroupSecurityIdentityBuilder.html +0 -128
- package/dist/docs/classes/PushSource.html +0 -465
- package/dist/docs/classes/UserSecurityIdentityBuilder.html +0 -128
- package/dist/docs/classes/VirtualGroupSecurityIdentityBuilder.html +0 -128
- package/dist/docs/classes/errors.FieldTypeInconsistencyError.html +0 -170
- package/dist/docs/classes/errors.InvalidDocument.html +0 -172
- package/dist/docs/classes/errors.InvalidPermanentId.html +0 -170
- package/dist/docs/classes/errors.NotAFileError.html +0 -170
- package/dist/docs/classes/errors.NotAJsonFileError.html +0 -170
- package/dist/docs/classes/errors.PrivilegeError.html +0 -170
- package/dist/docs/classes/errors.UnsupportedAttribute.html +0 -172
- package/dist/docs/classes/errors.UnsupportedFieldError.html +0 -199
- package/dist/docs/enums/PlatformEnvironment.html +0 -86
- package/dist/docs/enums/Region.html +0 -79
- package/dist/docs/enums/SourceVisibility.html +0 -79
- package/dist/docs/functions/parseAndGetDocumentBuilderFromJSONDocument.html +0 -86
- package/dist/docs/index.html +0 -121
- package/dist/docs/interfaces/BatchUpdateDocuments.html +0 -76
- package/dist/docs/interfaces/Document.html +0 -236
- package/dist/docs/interfaces/SecurityIdentity.html +0 -105
- package/dist/docs/interfaces/SecurityIdentityBuilder.html +0 -82
- package/dist/docs/interfaces/UploadBatchCallbackData.html +0 -100
- package/dist/docs/modules/errors.html +0 -68
- package/dist/docs/modules.html +0 -122
- package/dist/docs/types/BatchUpdateDocumentsFromFiles.html +0 -75
- package/dist/docs/types/CompressionType.html +0 -77
- package/dist/docs/types/FailedUploadCallback.html +0 -90
- package/dist/docs/types/Metadata.html +0 -75
- package/dist/docs/types/MetadataValue.html +0 -75
- package/dist/docs/types/PlatformUrlOptions.html +0 -82
- package/dist/docs/types/SecurityIdentityType.html +0 -75
- package/dist/docs/types/SuccessfulUploadCallback.html +0 -88
- package/dist/docs/types/Transformer.html +0 -88
- package/dist/docs/variables/BuiltInTransformers.html +0 -75
- package/dist/docs/variables/Source.html +0 -78
- package/dist/source/source.js +0 -9
- package/dist/source/source.js.map +0 -1
@@ -8,6 +8,7 @@ const caseInsensitiveDocument_1 = require("./caseInsensitiveDocument");
|
|
8
8
|
const knownKey_1 = require("./knownKey");
|
9
9
|
const validatorErrors_1 = require("../errors/validatorErrors");
|
10
10
|
const requiredKeyValidator_1 = require("./requiredKeyValidator");
|
11
|
+
const parsePermissions_1 = require("./parsePermissions");
|
11
12
|
const parseAndGetDocumentBuilderFromJSONDocument = async (documentPath, options) => {
|
12
13
|
ensureFileIntegrity(documentPath);
|
13
14
|
const fileContent = safeJSONParse(documentPath);
|
@@ -46,12 +47,12 @@ const processDocument = (fileContent, documentPath, options) => {
|
|
46
47
|
const documentBuilder = validateRequiredKeysAndGetDocumentBuilder(caseInsensitiveDoc, documentPath);
|
47
48
|
try {
|
48
49
|
processKnownKeys(caseInsensitiveDoc, documentBuilder);
|
49
|
-
|
50
|
+
(0, parsePermissions_1.processPermissionList)(caseInsensitiveDoc, documentBuilder, documentPath);
|
50
51
|
processMetadata(caseInsensitiveDoc, documentBuilder, options);
|
51
52
|
}
|
52
53
|
catch (error) {
|
53
54
|
if (typeof error === 'string') {
|
54
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, error);
|
55
|
+
throw new validatorErrors_1.InvalidDocument(documentPath, caseInsensitiveDoc.originalDocument, error);
|
55
56
|
}
|
56
57
|
throw error;
|
57
58
|
}
|
@@ -60,76 +61,48 @@ const processDocument = (fileContent, documentPath, options) => {
|
|
60
61
|
const validateRequiredKeysAndGetDocumentBuilder = (caseInsensitiveDoc, documentPath) => {
|
61
62
|
const requiredDocumentId = new requiredKeyValidator_1.RequiredKeyValidator(['documentid', 'uri'], caseInsensitiveDoc, new bueno_1.StringValue({ required: true, emptyAllowed: false }));
|
62
63
|
if (!requiredDocumentId.isValid) {
|
63
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, requiredDocumentId.explanation);
|
64
|
+
throw new validatorErrors_1.InvalidDocument(documentPath, caseInsensitiveDoc.originalDocument, requiredDocumentId.explanation);
|
64
65
|
}
|
65
66
|
const requiredDocumentTitle = new requiredKeyValidator_1.RequiredKeyValidator('title', caseInsensitiveDoc, new bueno_1.StringValue({ required: true, emptyAllowed: false }));
|
66
67
|
if (!requiredDocumentTitle.isValid) {
|
67
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, requiredDocumentTitle.explanation);
|
68
|
+
throw new validatorErrors_1.InvalidDocument(documentPath, caseInsensitiveDoc.originalDocument, requiredDocumentTitle.explanation);
|
68
69
|
}
|
69
|
-
|
70
|
-
delete caseInsensitiveDoc.documentRecord['uri'];
|
71
|
-
delete caseInsensitiveDoc.documentRecord['title'];
|
70
|
+
caseInsensitiveDoc.remove('documentid', 'uri', 'title');
|
72
71
|
return new __1.DocumentBuilder(requiredDocumentId.value, requiredDocumentTitle.value);
|
73
72
|
};
|
74
73
|
const processKnownKeys = (caseInsensitiveDoc, documentBuilder) => {
|
75
74
|
new knownKey_1.KnownKeys('author', caseInsensitiveDoc).whenExists((author) => {
|
76
75
|
documentBuilder.withAuthor(author);
|
77
|
-
|
76
|
+
caseInsensitiveDoc.remove('author');
|
78
77
|
});
|
79
78
|
new knownKey_1.KnownKeys('clickableuri', caseInsensitiveDoc).whenExists((clickuri) => {
|
80
79
|
documentBuilder.withClickableUri(clickuri);
|
81
|
-
|
80
|
+
caseInsensitiveDoc.remove('clickableuri');
|
82
81
|
});
|
83
82
|
new knownKey_1.KnownKeys('data', caseInsensitiveDoc).whenExists((data) => {
|
84
83
|
documentBuilder.withData(data);
|
85
|
-
|
84
|
+
caseInsensitiveDoc.remove('data');
|
86
85
|
});
|
87
86
|
new knownKey_1.KnownKeys('date', caseInsensitiveDoc).whenExists((date) => {
|
88
87
|
documentBuilder.withDate(date);
|
89
|
-
|
88
|
+
caseInsensitiveDoc.remove('date');
|
90
89
|
});
|
91
90
|
new knownKey_1.KnownKeys('modifieddate', caseInsensitiveDoc).whenExists((modifiedDate) => {
|
92
91
|
documentBuilder.withModifiedDate(modifiedDate);
|
93
|
-
|
92
|
+
caseInsensitiveDoc.remove('modifieddate');
|
94
93
|
});
|
95
94
|
new knownKey_1.KnownKeys('fileextension', caseInsensitiveDoc).whenExists((fileExtension) => {
|
96
95
|
documentBuilder.withFileExtension(fileExtension);
|
97
|
-
|
96
|
+
caseInsensitiveDoc.remove('fileextension');
|
98
97
|
});
|
99
98
|
new knownKey_1.KnownKeys('permanentid', caseInsensitiveDoc).whenExists((permanentId) => {
|
100
99
|
documentBuilder.withPermanentId(permanentId);
|
101
|
-
|
102
|
-
});
|
103
|
-
};
|
104
|
-
const processSecurityIdentities = (caseInsensitiveDoc, documentBuilder, documentPath) => {
|
105
|
-
new knownKey_1.KnownKeys('permissions', caseInsensitiveDoc).whenExists((permissions) => {
|
106
|
-
var _a, _b;
|
107
|
-
const caseInsensitivePermissions = new caseInsensitiveDocument_1.CaseInsensitiveDocument(permissions);
|
108
|
-
const requiredAllowAnonymous = new requiredKeyValidator_1.RequiredKeyValidator('allowanonymous', caseInsensitivePermissions, new bueno_1.BooleanValue({ required: true }));
|
109
|
-
if (!requiredAllowAnonymous.isValid) {
|
110
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, requiredAllowAnonymous.explanation);
|
111
|
-
}
|
112
|
-
const requiredAllowedPermissions = new requiredKeyValidator_1.RequiredKeyValidator('allowedpermissions', caseInsensitivePermissions, getSecurityIdentitySchemaValidation());
|
113
|
-
if (!requiredAllowedPermissions.isValid) {
|
114
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, requiredAllowedPermissions.explanation);
|
115
|
-
}
|
116
|
-
const requiredDeniedPermissions = new requiredKeyValidator_1.RequiredKeyValidator('deniedpermissions', caseInsensitivePermissions, getSecurityIdentitySchemaValidation());
|
117
|
-
if (!requiredDeniedPermissions.isValid) {
|
118
|
-
throw new validatorErrors_1.InvalidDocument(documentPath, requiredDeniedPermissions.explanation);
|
119
|
-
}
|
120
|
-
documentBuilder.withAllowAnonymousUsers(permissions.allowAnonymous);
|
121
|
-
(_a = permissions === null || permissions === void 0 ? void 0 : permissions.allowedPermissions) === null || _a === void 0 ? void 0 : _a.forEach((p) => {
|
122
|
-
documentBuilder.withAllowedPermissions(new __1.AnySecurityIdentityBuilder(p.identityType, p.identity, p.securityProvider));
|
123
|
-
});
|
124
|
-
(_b = permissions === null || permissions === void 0 ? void 0 : permissions.deniedPermissions) === null || _b === void 0 ? void 0 : _b.forEach((p) => {
|
125
|
-
documentBuilder.withDeniedPermissions(new __1.AnySecurityIdentityBuilder(p.identityType, p.identity, p.securityProvider));
|
126
|
-
});
|
127
|
-
delete caseInsensitiveDoc.documentRecord['permissions'];
|
100
|
+
caseInsensitiveDoc.remove('permanentid');
|
128
101
|
});
|
129
102
|
};
|
130
103
|
const processMetadata = (caseInsensitiveDoc, documentBuilder, options) => {
|
131
104
|
const metadata = {};
|
132
|
-
Object.entries(caseInsensitiveDoc.
|
105
|
+
Object.entries(caseInsensitiveDoc.remainingRecord).forEach(([k, v]) => {
|
133
106
|
metadata[k] = v;
|
134
107
|
});
|
135
108
|
documentBuilder.withMetadata(metadata, options === null || options === void 0 ? void 0 : options.fieldNameTransformer);
|
@@ -145,23 +118,4 @@ const isFile = (p) => {
|
|
145
118
|
}
|
146
119
|
return (0, fs_1.lstatSync)(p).isFile();
|
147
120
|
};
|
148
|
-
const getSecurityIdentitySchemaValidation = () => {
|
149
|
-
return new bueno_1.ArrayValue({
|
150
|
-
required: true,
|
151
|
-
each: new bueno_1.RecordValue({
|
152
|
-
values: {
|
153
|
-
identity: new bueno_1.StringValue({ required: true, emptyAllowed: false }),
|
154
|
-
identityType: new bueno_1.StringValue({
|
155
|
-
constrainTo: ['UNKNOWN', 'USER', 'GROUP', 'VIRTUAL_GROUP'],
|
156
|
-
required: true,
|
157
|
-
emptyAllowed: false,
|
158
|
-
}),
|
159
|
-
securityProvider: new bueno_1.StringValue({
|
160
|
-
emptyAllowed: false,
|
161
|
-
required: true,
|
162
|
-
}),
|
163
|
-
},
|
164
|
-
}),
|
165
|
-
});
|
166
|
-
};
|
167
121
|
//# sourceMappingURL=parseFile.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseFile.js","sourceRoot":"","sources":["../../src/validation/parseFile.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"parseFile.js","sourceRoot":"","sources":["../../src/validation/parseFile.ts"],"names":[],"mappings":"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"}
|
@@ -4,6 +4,14 @@ const path_1 = require("path");
|
|
4
4
|
const process_1 = require("process");
|
5
5
|
const parseFile_1 = require("./parseFile");
|
6
6
|
const validatorErrors_1 = require("../errors/validatorErrors");
|
7
|
+
const fs_1 = require("fs");
|
8
|
+
const stripFilePathFromSnapshot = () => {
|
9
|
+
const fileJsonFileErrorRegex = new RegExp(/^.*?(\w+\.json)(?= is not a valid JSON)/m);
|
10
|
+
expect.addSnapshotSerializer({
|
11
|
+
test: (val) => Boolean(val.match(fileJsonFileErrorRegex)),
|
12
|
+
print: (val) => `${val}`.replace(fileJsonFileErrorRegex, '$1'),
|
13
|
+
});
|
14
|
+
};
|
7
15
|
describe('parseFile', () => {
|
8
16
|
const pathToStub = (0, path_1.join)((0, process_1.cwd)(), 'src', '__stub__');
|
9
17
|
const parse = (file) => () => (0, parseFile_1.parseAndGetDocumentBuilderFromJSONDocument)(file);
|
@@ -40,15 +48,46 @@ describe('parseFile', () => {
|
|
40
48
|
{
|
41
49
|
title: 'should fail on identityType with an invalid value',
|
42
50
|
fileName: 'identityTypeInvalidValue.json',
|
43
|
-
error: 'allowedpermissions: value
|
51
|
+
error: 'allowedpermissions: value did not match provided regex /Unknown|User|Group|VirtualGroup/i',
|
52
|
+
},
|
53
|
+
{
|
54
|
+
title: 'should fail on permission not being an array',
|
55
|
+
fileName: 'notAPermissionArray.json',
|
56
|
+
error: 'permissions: value is not an array',
|
57
|
+
},
|
58
|
+
{
|
59
|
+
title: 'should fail on permission not being an array',
|
60
|
+
fileName: 'notAPermissionArray.json',
|
61
|
+
error: 'permissions: value is not an array',
|
62
|
+
},
|
63
|
+
{
|
64
|
+
title: 'should fail on permission not being an array',
|
65
|
+
fileName: 'notAPermissionArray.json',
|
66
|
+
error: 'permissions: value is not an array',
|
67
|
+
},
|
68
|
+
{
|
69
|
+
title: 'should fail on permission not being an array',
|
70
|
+
fileName: 'notAPermissionArray.json',
|
71
|
+
error: 'permissions: value is not an array',
|
44
72
|
},
|
45
73
|
])('$title', async ({ fileName, error }) => {
|
46
74
|
const file = (0, path_1.join)(pathToStub, 'jsondocuments', fileName);
|
47
|
-
|
75
|
+
const fileContent = (0, fs_1.readFileSync)(file).toString();
|
76
|
+
await expect(parse(file)).rejects.toThrow(new validatorErrors_1.InvalidDocument(file, JSON.parse(fileContent), `Document contains an invalid value for ${error}`));
|
77
|
+
});
|
78
|
+
it('should not throw if allowedPermissions or deniedPermissions are omitted', async () => {
|
79
|
+
const file = (0, path_1.join)(pathToStub, 'jsondocuments', 'limitedPermissionSet.json');
|
80
|
+
await expect((0, parseFile_1.parseAndGetDocumentBuilderFromJSONDocument)(file)).resolves.not.toThrow();
|
48
81
|
});
|
49
82
|
it('should fail on reserved keyword', async () => {
|
50
83
|
const file = (0, path_1.join)(pathToStub, 'jsondocuments', 'reservedKeyword.json');
|
51
|
-
|
84
|
+
const fileContent = (0, fs_1.readFileSync)(file).toString();
|
85
|
+
await expect(parse(file)).rejects.toThrow(new validatorErrors_1.InvalidDocument(file, JSON.parse(fileContent), 'Cannot use parentid as a metadata key: It is a reserved key name. See https://docs.coveo.com/en/78/index-content/push-api-reference#json-document-reserved-key-names'));
|
86
|
+
});
|
87
|
+
it('should fail on reserved keyword', async () => {
|
88
|
+
const file = (0, path_1.join)(pathToStub, 'jsondocuments', 'brokenBatch.json');
|
89
|
+
stripFilePathFromSnapshot();
|
90
|
+
await expect(parse(file)).rejects.toThrowErrorMatchingSnapshot();
|
52
91
|
});
|
53
92
|
it('should fail on unsupported metadata key', async () => {
|
54
93
|
const file = (0, path_1.join)(pathToStub, 'jsondocuments', 'invalidFields.json');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseFile.spec.js","sourceRoot":"","sources":["../../src/validation/parseFile.spec.ts"],"names":[],"mappings":";;AAAA,+BAA0B;AAC1B,qCAA4B;AAC5B,2CAAuE;AACvE,+DAA0D;
|
1
|
+
{"version":3,"file":"parseFile.spec.js","sourceRoot":"","sources":["../../src/validation/parseFile.spec.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.processPermissionList = void 0;
|
4
|
+
const bueno_1 = require("@coveo/bueno");
|
5
|
+
const securityIdentityBuilder_1 = require("../securityIdentityBuilder");
|
6
|
+
const caseInsensitiveDocument_1 = require("./caseInsensitiveDocument");
|
7
|
+
const errors_1 = require("../errors");
|
8
|
+
const knownKey_1 = require("./knownKey");
|
9
|
+
const permissionSetBuilder_1 = require("../permissionSetBuilder");
|
10
|
+
const requiredKeyValidator_1 = require("./requiredKeyValidator");
|
11
|
+
const platform_client_1 = require("@coveo/platform-client");
|
12
|
+
class PermissionParser {
|
13
|
+
constructor(caseInsensitiveDoc, documentBuilder, documentPath) {
|
14
|
+
this.caseInsensitiveDoc = caseInsensitiveDoc;
|
15
|
+
this.documentBuilder = documentBuilder;
|
16
|
+
this.documentPath = documentPath;
|
17
|
+
this.processPermissionSet = (permissionSet) => {
|
18
|
+
const permissionSetBuilder = this.validateRequiredPermissionSetKeysAndGetPermissionSetBuilder(permissionSet);
|
19
|
+
this.documentBuilder.withPermissionSet(permissionSetBuilder);
|
20
|
+
};
|
21
|
+
}
|
22
|
+
processPermissionList() {
|
23
|
+
this.ensurePermissionArray();
|
24
|
+
new knownKey_1.KnownKeys('permissions', this.caseInsensitiveDoc).whenExists((permissions) => {
|
25
|
+
permissions.forEach((permission) => {
|
26
|
+
const caseInsensitivePermission = new caseInsensitiveDocument_1.CaseInsensitiveDocument(permission);
|
27
|
+
new knownKey_1.KnownKeys('permissionsets', caseInsensitivePermission)
|
28
|
+
.whenExists((permissionLevel) => this.processPermissionLevel(permissionLevel))
|
29
|
+
.whenDoesNotExist((permissionSet) => this.processPermissionSet(permissionSet));
|
30
|
+
});
|
31
|
+
this.caseInsensitiveDoc.remove('permissions');
|
32
|
+
});
|
33
|
+
}
|
34
|
+
processPermissionLevel(permission) {
|
35
|
+
// TODO: require at least some permissions
|
36
|
+
const permissionSetBuilders = permission.permissionSets.map((permissionSet) => {
|
37
|
+
const caseInsensitivePermissions = new caseInsensitiveDocument_1.CaseInsensitiveDocument(permission);
|
38
|
+
const { isValid, explanation } = new requiredKeyValidator_1.RequiredKeyValidator('name', caseInsensitivePermissions, new bueno_1.StringValue({ required: true, emptyAllowed: false }));
|
39
|
+
if (!isValid) {
|
40
|
+
this.throwInvalidDocumentError(explanation);
|
41
|
+
}
|
42
|
+
return this.validateRequiredPermissionSetKeysAndGetPermissionSetBuilder(permissionSet);
|
43
|
+
});
|
44
|
+
// TODO: prevent empty permission set
|
45
|
+
this.documentBuilder.withPermissionLevel(permission.name, permissionSetBuilders);
|
46
|
+
}
|
47
|
+
validateAllowAnonymous(caseInsensitivePermissions) {
|
48
|
+
const { isValid, explanation, value } = new requiredKeyValidator_1.RequiredKeyValidator('allowanonymous', caseInsensitivePermissions, new bueno_1.BooleanValue({ required: true }));
|
49
|
+
if (!isValid) {
|
50
|
+
this.throwInvalidDocumentError(explanation);
|
51
|
+
}
|
52
|
+
return value;
|
53
|
+
}
|
54
|
+
validatePermission(permissionLogic, caseInsensitivePermissions) {
|
55
|
+
const { isValid, explanation, value } = new requiredKeyValidator_1.RequiredKeyValidator(permissionLogic, caseInsensitivePermissions, this.getSecurityIdentitySchemaValidation());
|
56
|
+
if (!isValid) {
|
57
|
+
this.throwInvalidDocumentError(explanation);
|
58
|
+
}
|
59
|
+
return value;
|
60
|
+
}
|
61
|
+
validateRequiredPermissionSetKeysAndGetPermissionSetBuilder(permission) {
|
62
|
+
const caseInsensitivePermissions = new caseInsensitiveDocument_1.CaseInsensitiveDocument(permission);
|
63
|
+
const allowAnonymous = this.validateAllowAnonymous(caseInsensitivePermissions);
|
64
|
+
const allowedPermissions = this.validatePermission('allowedpermissions', caseInsensitivePermissions);
|
65
|
+
const deniedPermissions = this.validatePermission('deniedpermissions', caseInsensitivePermissions);
|
66
|
+
const permissionSetBuilder = new permissionSetBuilder_1.PermissionSetBuilder(allowAnonymous);
|
67
|
+
allowedPermissions === null || allowedPermissions === void 0 ? void 0 : allowedPermissions.forEach(({ identity, identityType, securityProvider }) => {
|
68
|
+
permissionSetBuilder.withAllowedPermissions(new securityIdentityBuilder_1.AnySecurityIdentityBuilder(identityType, identity, securityProvider));
|
69
|
+
});
|
70
|
+
deniedPermissions === null || deniedPermissions === void 0 ? void 0 : deniedPermissions.forEach(({ identity, identityType, securityProvider }) => {
|
71
|
+
permissionSetBuilder.withDeniedPermissions(new securityIdentityBuilder_1.AnySecurityIdentityBuilder(identityType, identity, securityProvider));
|
72
|
+
});
|
73
|
+
return permissionSetBuilder;
|
74
|
+
}
|
75
|
+
get identityTypeRegex() {
|
76
|
+
const identityTypesValues = Object.values(platform_client_1.PermissionIdentityType);
|
77
|
+
return new RegExp(identityTypesValues.join('|'), 'i');
|
78
|
+
}
|
79
|
+
getSecurityIdentitySchemaValidation() {
|
80
|
+
return new bueno_1.ArrayValue({
|
81
|
+
required: false,
|
82
|
+
each: new bueno_1.RecordValue({
|
83
|
+
values: {
|
84
|
+
identity: new bueno_1.StringValue({ required: true, emptyAllowed: false }),
|
85
|
+
identityType: new bueno_1.StringValue({
|
86
|
+
regex: this.identityTypeRegex,
|
87
|
+
required: true,
|
88
|
+
emptyAllowed: false,
|
89
|
+
}),
|
90
|
+
securityProvider: new bueno_1.StringValue({
|
91
|
+
emptyAllowed: true,
|
92
|
+
required: false,
|
93
|
+
}),
|
94
|
+
},
|
95
|
+
}),
|
96
|
+
});
|
97
|
+
}
|
98
|
+
ensurePermissionArray() {
|
99
|
+
const validator = (schema) => new requiredKeyValidator_1.RequiredKeyValidator('permissions', this.caseInsensitiveDoc, schema);
|
100
|
+
const { isValid, explanation } = validator(new bueno_1.ArrayValue({ required: false }));
|
101
|
+
const requiredAtLeastOnePermission = validator(new bueno_1.ArrayValue({ min: 1 }));
|
102
|
+
if (!isValid) {
|
103
|
+
this.throwInvalidDocumentError(explanation);
|
104
|
+
}
|
105
|
+
if (!requiredAtLeastOnePermission.isValid) {
|
106
|
+
// simply discard empty array permission instead of throwing
|
107
|
+
this.caseInsensitiveDoc.remove('permissions');
|
108
|
+
}
|
109
|
+
}
|
110
|
+
throwInvalidDocumentError(explanation) {
|
111
|
+
throw new errors_1.InvalidDocument(this.documentPath, this.caseInsensitiveDoc.originalDocument, explanation);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
const processPermissionList = (caseInsensitiveDoc, documentBuilder, documentPath) => {
|
115
|
+
const parser = new PermissionParser(caseInsensitiveDoc, documentBuilder, documentPath);
|
116
|
+
return parser.processPermissionList();
|
117
|
+
};
|
118
|
+
exports.processPermissionList = processPermissionList;
|
119
|
+
//# sourceMappingURL=parsePermissions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parsePermissions.js","sourceRoot":"","sources":["../../src/validation/parsePermissions.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const path_1 = require("path");
|
4
|
+
const __1 = require("..");
|
5
|
+
const caseInsensitiveDocument_1 = require("./caseInsensitiveDocument");
|
6
|
+
const parsePermissions_1 = require("./parsePermissions");
|
7
|
+
describe('parsePermissions', () => {
|
8
|
+
let documentBuilder;
|
9
|
+
const dummyPath = (0, path_1.join)('dummy', 'path');
|
10
|
+
const publicPermissionsSet = {
|
11
|
+
allowAnonymous: true,
|
12
|
+
deniedpermissions: [
|
13
|
+
{
|
14
|
+
identity: 'foo@example.com',
|
15
|
+
identityType: 'USER',
|
16
|
+
},
|
17
|
+
],
|
18
|
+
};
|
19
|
+
const restrictedPermissionSet = {
|
20
|
+
allowAnonymous: false,
|
21
|
+
ALLOWEDPERMISSIONS: [
|
22
|
+
{
|
23
|
+
identity: 'asmith@example.com',
|
24
|
+
identityType: 'User',
|
25
|
+
},
|
26
|
+
{
|
27
|
+
identity: 'bjones@example.com',
|
28
|
+
identityType: 'USER',
|
29
|
+
},
|
30
|
+
],
|
31
|
+
};
|
32
|
+
const complexPermissionSet = {
|
33
|
+
aLLowAnonyMOUS: false,
|
34
|
+
deniedpermissions: [
|
35
|
+
{
|
36
|
+
identity: 'foo',
|
37
|
+
identityType: 'VirtualGroup',
|
38
|
+
},
|
39
|
+
],
|
40
|
+
allowedPERMISSIONS: [
|
41
|
+
{
|
42
|
+
identity: 'Sample_group',
|
43
|
+
identityType: 'Group',
|
44
|
+
},
|
45
|
+
{
|
46
|
+
identity: 'bjones@example.com',
|
47
|
+
identityType: 'user',
|
48
|
+
},
|
49
|
+
],
|
50
|
+
};
|
51
|
+
beforeEach(() => {
|
52
|
+
documentBuilder = new __1.DocumentBuilder('https://foo.com', 'Some Document');
|
53
|
+
});
|
54
|
+
it('should not marhsal empty permssion when is empty array', () => {
|
55
|
+
const caseInsensitiveDoc = new caseInsensitiveDocument_1.CaseInsensitiveDocument({
|
56
|
+
permissions: [],
|
57
|
+
});
|
58
|
+
(0, parsePermissions_1.processPermissionList)(caseInsensitiveDoc, documentBuilder, dummyPath);
|
59
|
+
expect(documentBuilder.marshal()).not.toHaveProperty('permissions');
|
60
|
+
});
|
61
|
+
it('should marhsal denied permssion set', () => {
|
62
|
+
const caseInsensitiveDoc = new caseInsensitiveDocument_1.CaseInsensitiveDocument({
|
63
|
+
permissions: [publicPermissionsSet],
|
64
|
+
});
|
65
|
+
(0, parsePermissions_1.processPermissionList)(caseInsensitiveDoc, documentBuilder, dummyPath);
|
66
|
+
expect(documentBuilder.marshal().permissions).toMatchSnapshot();
|
67
|
+
});
|
68
|
+
it('should marhsal allowed permssion set', () => {
|
69
|
+
const caseInsensitiveDoc = new caseInsensitiveDocument_1.CaseInsensitiveDocument({
|
70
|
+
permissions: [restrictedPermissionSet],
|
71
|
+
});
|
72
|
+
(0, parsePermissions_1.processPermissionList)(caseInsensitiveDoc, documentBuilder, dummyPath);
|
73
|
+
expect(documentBuilder.marshal().permissions).toMatchSnapshot();
|
74
|
+
});
|
75
|
+
it('should marhsal combined permssion sets', () => {
|
76
|
+
const caseInsensitiveDoc = new caseInsensitiveDocument_1.CaseInsensitiveDocument({
|
77
|
+
permissions: [
|
78
|
+
publicPermissionsSet,
|
79
|
+
restrictedPermissionSet,
|
80
|
+
complexPermissionSet,
|
81
|
+
],
|
82
|
+
});
|
83
|
+
(0, parsePermissions_1.processPermissionList)(caseInsensitiveDoc, documentBuilder, dummyPath);
|
84
|
+
expect(documentBuilder.marshal().permissions).toMatchSnapshot();
|
85
|
+
});
|
86
|
+
});
|
87
|
+
//# sourceMappingURL=parsePermissions.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parsePermissions.spec.js","sourceRoot":"","sources":["../../src/validation/parsePermissions.spec.ts"],"names":[],"mappings":"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"}
|
@@ -16,7 +16,7 @@ class RequiredKeyValidator {
|
|
16
16
|
}
|
17
17
|
doValidations() {
|
18
18
|
this.validations = this.keys.map((k) => {
|
19
|
-
const value = this.doc.
|
19
|
+
const value = this.doc.getRecordValue(k);
|
20
20
|
if (this.isValueCorrectType(value)) {
|
21
21
|
return { value, message: null };
|
22
22
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"requiredKeyValidator.js","sourceRoot":"","sources":["../../src/validation/requiredKeyValidator.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAI/B,YACE,CAAoB,EACZ,GAA8C,EAC9C,MAAsB;QADtB,QAAG,GAAH,GAAG,CAA2C;QAC9C,WAAM,GAAN,MAAM,CAAgB;QALxB,gBAAW,GAAmD,EAAE,CAAC;QAOvE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"requiredKeyValidator.js","sourceRoot":"","sources":["../../src/validation/requiredKeyValidator.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAI/B,YACE,CAAoB,EACZ,GAA8C,EAC9C,MAAsB;QADtB,QAAG,GAAH,GAAG,CAA2C;QAC9C,WAAM,GAAN,MAAM,CAAgB;QALxB,gBAAW,GAAmD,EAAE,CAAC;QAOvE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;aAC/B;YACD,OAAO;gBACL,KAAK,EAAE,KAAgB;gBACvB,OAAO,EAAE,0CAA0C,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAChF,KAAK,CACN,EAAE;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,KAAK;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAU,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAW,WAAW;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC;IACzC,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEO,oBAAoB,CAAC,KAAuB;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAU,CAAC,CAAC;IAC1C,CAAC;IAEO,kBAAkB,CAAC,KAAuB;QAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,iBAAiB,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArED,oDAqEC"}
|
package/package.json
CHANGED
@@ -1,45 +1,52 @@
|
|
1
1
|
{
|
2
2
|
"name": "@coveo/push-api-client",
|
3
|
-
"version": "
|
3
|
+
"version": "3.0.1",
|
4
4
|
"description": "Push API client",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"files": [
|
7
7
|
"dist"
|
8
8
|
],
|
9
|
+
"exports": {
|
10
|
+
".": {
|
11
|
+
"types": "./dist/definitions/index.d.ts",
|
12
|
+
"default": "./dist/index.js"
|
13
|
+
}
|
14
|
+
},
|
9
15
|
"type": "commonjs",
|
10
16
|
"types": "./dist/definitions/index.d.ts",
|
11
17
|
"dependencies": {
|
12
18
|
"@coveo/bueno": "^0.43.0",
|
13
|
-
"@coveo/platform-client": "40.
|
14
|
-
"abortcontroller-polyfill": "^1.7.1",
|
15
|
-
"axios": "^1.2.0",
|
19
|
+
"@coveo/platform-client": "40.7.0",
|
16
20
|
"dayjs": "^1.10.4",
|
17
21
|
"exponential-backoff": "^3.1.0",
|
18
|
-
"
|
22
|
+
"fetch-undici-polyfill": "^1.1.2",
|
19
23
|
"zod": "^3.20.2"
|
20
24
|
},
|
21
25
|
"devDependencies": {
|
22
|
-
"@coveo/
|
23
|
-
"@
|
24
|
-
"@types/
|
25
|
-
"@
|
26
|
-
"@typescript-eslint/
|
26
|
+
"@coveo/semantic-monorepo-tools": "1.5.21",
|
27
|
+
"@octokit/auth-action": "^2.0.3",
|
28
|
+
"@types/jest": "29.4.0",
|
29
|
+
"@types/node": "18.11.19",
|
30
|
+
"@typescript-eslint/eslint-plugin": "5.50.0",
|
31
|
+
"@typescript-eslint/parser": "5.50.0",
|
32
|
+
"conventional-changelog-angular": "5.0.13",
|
27
33
|
"cz-conventional-changelog": "3.3.0",
|
28
34
|
"detect-indent": "7.0.1",
|
29
35
|
"dotenv": "16.0.3",
|
30
|
-
"eslint": "8.
|
36
|
+
"eslint": "8.33.0",
|
31
37
|
"eslint-config-prettier": "8.6.0",
|
32
38
|
"gts": "3.1.1",
|
33
39
|
"husky": "8.0.3",
|
34
|
-
"jest": "29.
|
40
|
+
"jest": "29.4.1",
|
35
41
|
"lint-staged": "13.1.0",
|
36
42
|
"nodemon": "2.0.20",
|
43
|
+
"octokit": "2.0.14",
|
37
44
|
"prettier": "2.8.3",
|
38
|
-
"standard-version": "9.5.0",
|
39
45
|
"ts-jest": "29.0.5",
|
40
46
|
"ts-node": "10.9.1",
|
41
47
|
"typedoc": "0.23.24",
|
42
|
-
"typescript": "4.9.
|
48
|
+
"typescript": "4.9.5",
|
49
|
+
"undici": "^5.16.0"
|
43
50
|
},
|
44
51
|
"husky": {
|
45
52
|
"hooks": {
|
@@ -62,21 +69,20 @@
|
|
62
69
|
"**/*.ts": "eslint --fix"
|
63
70
|
},
|
64
71
|
"engines": {
|
65
|
-
"node": ">=
|
72
|
+
"node": ">=16.x"
|
66
73
|
},
|
67
74
|
"scripts": {
|
68
75
|
"build": "tsc",
|
69
76
|
"test": "jest",
|
70
77
|
"test:dev": "jest --watch",
|
71
78
|
"dev": "nodemon --watch \"src/**\" --ext \"ts,json\" --ignore \"src/**/*.spec.ts\" --exec \"ts-node src/localtest.ts\"",
|
72
|
-
"lint": "prettier --config ./.prettierrc.js --check
|
79
|
+
"lint": "prettier --config ./.prettierrc.js --check . && eslint .",
|
73
80
|
"lint:check": "eslint .",
|
74
81
|
"lint:fix": "eslint --fix .",
|
75
82
|
"prettier:check": "prettier .",
|
76
83
|
"prettier:fix": "prettier --write .",
|
77
84
|
"commit": "git-cz",
|
78
|
-
"release": "
|
79
|
-
"prepublishOnly": "npm run release && npm run doc",
|
85
|
+
"release": "node release.mjs && npm run doc",
|
80
86
|
"doc": "typedoc --out ./dist/docs ./src/index.ts"
|
81
87
|
},
|
82
88
|
"repository": {
|
package/dist/docs/.nojekyll
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
|