@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
@@ -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
- processSecurityIdentities(caseInsensitiveDoc, documentBuilder, documentPath);
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
- delete caseInsensitiveDoc.documentRecord['documentid'];
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
- delete caseInsensitiveDoc.documentRecord['author'];
76
+ caseInsensitiveDoc.remove('author');
78
77
  });
79
78
  new knownKey_1.KnownKeys('clickableuri', caseInsensitiveDoc).whenExists((clickuri) => {
80
79
  documentBuilder.withClickableUri(clickuri);
81
- delete caseInsensitiveDoc.documentRecord['clickableuri'];
80
+ caseInsensitiveDoc.remove('clickableuri');
82
81
  });
83
82
  new knownKey_1.KnownKeys('data', caseInsensitiveDoc).whenExists((data) => {
84
83
  documentBuilder.withData(data);
85
- delete caseInsensitiveDoc.documentRecord['data'];
84
+ caseInsensitiveDoc.remove('data');
86
85
  });
87
86
  new knownKey_1.KnownKeys('date', caseInsensitiveDoc).whenExists((date) => {
88
87
  documentBuilder.withDate(date);
89
- delete caseInsensitiveDoc.documentRecord['date'];
88
+ caseInsensitiveDoc.remove('date');
90
89
  });
91
90
  new knownKey_1.KnownKeys('modifieddate', caseInsensitiveDoc).whenExists((modifiedDate) => {
92
91
  documentBuilder.withModifiedDate(modifiedDate);
93
- delete caseInsensitiveDoc.documentRecord['modifieddate'];
92
+ caseInsensitiveDoc.remove('modifieddate');
94
93
  });
95
94
  new knownKey_1.KnownKeys('fileextension', caseInsensitiveDoc).whenExists((fileExtension) => {
96
95
  documentBuilder.withFileExtension(fileExtension);
97
- delete caseInsensitiveDoc.documentRecord['fileextension'];
96
+ caseInsensitiveDoc.remove('fileextension');
98
97
  });
99
98
  new knownKey_1.KnownKeys('permanentid', caseInsensitiveDoc).whenExists((permanentId) => {
100
99
  documentBuilder.withPermanentId(permanentId);
101
- delete caseInsensitiveDoc.documentRecord['permanentid'];
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.documentRecord).forEach(([k, v]) => {
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":"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"}
1
+ {"version":3,"file":"parseFile.js","sourceRoot":"","sources":["../../src/validation/parseFile.ts"],"names":[],"mappings":";;;AAAA,wCAA2D;AAC3D,0BAAkD;AAClD,2BAAiE;AACjE,uEAAkE;AAClE,yCAAqC;AACrC,+DAImC;AACnC,iEAA4D;AAG5D,yDAAyD;AAElD,MAAM,0CAA0C,GAAG,KAAK,EAC7D,YAAsB,EACtB,OAA8B,EACF,EAAE;IAC9B,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAG,KAAK,EAAE,UAA2B,EAAE,EAAE;QAC5D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE;YACrB,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA,CAAC;SACnD;IACH,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;YAC7B,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;QACD,OAAO,WAAW,CAAC;KACpB;SAAM;QACL,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACvE,eAAe,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;KACrB;AACH,CAAC,CAAC;AA3BW,QAAA,0CAA0C,8CA2BrD;AAEF,MAAM,aAAa,GAAG,CAAC,YAAsB,EAAE,EAAE;IAC/C,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAED,CAAC;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,mCAAiB,CAAC,YAAY,CAAC,CAAC;KAC3C;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,WAA6C,EAC7C,YAAsB,EACtB,OAA8B,EAC9B,EAAE;IACF,MAAM,kBAAkB,GAAG,IAAI,iDAAuB,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,yCAAyC,CAC/D,kBAAkB,EAClB,YAAY,CACb,CAAC;IACF,IAAI;QACF,gBAAgB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QACtD,IAAA,wCAAqB,EAAC,kBAAkB,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACzE,eAAe,CAAC,kBAAkB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;KAC/D;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,iCAAe,CACvB,YAAY,EACZ,kBAAkB,CAAC,gBAAgB,EACnC,KAAK,CACN,CAAC;SACH;QACD,MAAM,KAAK,CAAC;KACb;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,yCAAyC,GAAG,CAChD,kBAA6D,EAC7D,YAAsB,EACtB,EAAE;IACF,MAAM,kBAAkB,GAAG,IAAI,2CAAoB,CACjD,CAAC,YAAY,EAAE,KAAK,CAAC,EACrB,kBAAkB,EAClB,IAAI,mBAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CACvD,CAAC;IAEF,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QAC/B,MAAM,IAAI,iCAAe,CACvB,YAAY,EACZ,kBAAkB,CAAC,gBAAgB,EACnC,kBAAkB,CAAC,WAAW,CAC/B,CAAC;KACH;IAED,MAAM,qBAAqB,GAAG,IAAI,2CAAoB,CACpD,OAAO,EACP,kBAAkB,EAClB,IAAI,mBAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CACvD,CAAC;IACF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;QAClC,MAAM,IAAI,iCAAe,CACvB,YAAY,EACZ,kBAAkB,CAAC,gBAAgB,EACnC,qBAAqB,CAAC,WAAW,CAClC,CAAC;KACH;IAED,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO,IAAI,mBAAe,CACxB,kBAAkB,CAAC,KAAM,EACzB,qBAAqB,CAAC,KAAM,CAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,kBAA6D,EAC7D,eAAgC,EAChC,EAAE;IACF,IAAI,oBAAS,CAAS,QAAQ,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;QACxE,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,IAAI,oBAAS,CAAS,cAAc,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAClE,CAAC,QAAQ,EAAE,EAAE;QACX,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3C,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC,CACF,CAAC;IACF,IAAI,oBAAS,CAAS,MAAM,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;QACpE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,oBAAS,CAAS,MAAM,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;QACpE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,oBAAS,CAAS,cAAc,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAClE,CAAC,YAAY,EAAE,EAAE;QACf,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/C,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC,CACF,CAAC;IACF,IAAI,oBAAS,CAAS,eAAe,EAAE,kBAAkB,CAAC,CAAC,UAAU,CACnE,CAAC,aAAa,EAAE,EAAE;QAChB,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACjD,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;IACF,IAAI,oBAAS,CAAS,aAAa,EAAE,kBAAkB,CAAC,CAAC,UAAU,CACjE,CAAC,WAAW,EAAE,EAAE;QACd,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,kBAA6D,EAC7D,eAAgC,EAChC,OAA8B,EAC9B,EAAE;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACpE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAA8C,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,YAAsB,EAAE,EAAE;IACrD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QACzB,MAAM,IAAI,+BAAa,CAAC,YAAY,CAAC,CAAC;KACvC;AACH,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,CAAW,EAAE,EAAE;IAC7B,IAAI,CAAC,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAA,cAAS,EAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -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 should be one of: UNKNOWN, USER, GROUP, VIRTUAL_GROUP.',
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
- await expect(parse(file)).rejects.toThrow(new validatorErrors_1.InvalidDocument(file, `Document contains an invalid value for ${error}`));
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
- await expect(parse(file)).rejects.toThrow(new validatorErrors_1.InvalidDocument(file, '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'));
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;AAE1D,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,aAAG,GAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CACnC,IAAA,sDAA0C,EAAC,IAAI,CAAC,CAAC;IAEnD,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAChE,MAAM,MAAM,CACV,IAAA,sDAA0C,EAAC,IAAI,CAAC,CACjD,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN;YACE,KAAK,EAAE,8BAA8B;YACrC,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,2BAA2B;SACnC;QACD;YACE,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,gCAAgC;SACxC;QACD;YACE,KAAK,EAAE,iCAAiC;YACxC,QAAQ,EAAE,iBAAiB;YAC3B,KAAK,EAAE,sDAAsD;SAC9D;QACD;YACE,KAAK,EAAE,gDAAgD;YACvD,QAAQ,EAAE,yBAAyB;YACnC,KAAK,EAAE,8CAA8C;SACtD;QACD;YACE,KAAK,EAAE,wDAAwD;YAC/D,QAAQ,EAAE,wCAAwC;YAClD,KAAK,EAAE,yCAAyC;SACjD;QACD;YACE,KAAK,EAAE,mDAAmD;YAC1D,QAAQ,EAAE,+BAA+B;YACzC,KAAK,EACH,oFAAoF;SACvF;KACF,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvC,IAAI,iCAAe,CACjB,IAAI,EACJ,0CAA0C,KAAK,EAAE,CAClD,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvC,IAAI,iCAAe,CACjB,IAAI,EACJ,sKAAsK,CACvK,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;QACrE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
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":";;;AACA,wCAMsB;AAEtB,wEAAsE;AACtE,uEAA8E;AAE9E,sCAA0C;AAC1C,yCAAqC;AACrC,kEAAgF;AAChF,iEAA4D;AAC5D,4DAKgC;AAEhC,MAAM,gBAAgB;IACpB,YACU,kBAA6D,EAC7D,eAAgC,EAChC,YAAsB;QAFtB,uBAAkB,GAAlB,kBAAkB,CAA2C;QAC7D,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAU;QA8BxB,yBAAoB,GAAG,CAAC,aAA4B,EAAE,EAAE;YAC9D,MAAM,oBAAoB,GACxB,IAAI,CAAC,2DAA2D,CAC9D,aAAa,CACd,CAAC;YAEJ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QAC/D,CAAC,CAAC;IApCC,CAAC;IAEG,qBAAqB;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,oBAAS,CACX,aAAa,EACb,IAAI,CAAC,kBAAkB,CACxB,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;YAC3B,WAAY,CAAC,OAAO,CAClB,CACE,UAAmE,EACnE,EAAE;gBACF,MAAM,yBAAyB,GAC7B,IAAI,iDAAuB,CAAmB,UAAU,CAAC,CAAC;gBAE5D,IAAI,oBAAS,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;qBACvD,UAAU,CAAkB,CAAC,eAAe,EAAE,EAAE,CAC/C,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAC7C;qBACA,gBAAgB,CAAgB,CAAC,aAAa,EAAE,EAAE,CACjD,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CACzC,CAAC;YACN,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAWO,sBAAsB,CAAC,UAAuC;QACpE,0CAA0C;QAC1C,MAAM,qBAAqB,GAAG,UAAU,CAAC,cAAe,CAAC,GAAG,CAC1D,CAAC,aAAa,EAAE,EAAE;YAChB,MAAM,0BAA0B,GAAG,IAAI,iDAAuB,CAC5D,UAAU,CACX,CAAC;YACF,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,IAAI,2CAAoB,CACrD,MAAM,EACN,0BAA0B,EAC1B,IAAI,mBAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CACvD,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;aAC7C;YACD,OAAO,IAAI,CAAC,2DAA2D,CACrE,aAAa,CACd,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,qCAAqC;QACrC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACtC,UAAU,CAAC,IAAK,EAChB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAC5B,0BAAqE;QAErE,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,GAAG,IAAI,2CAAoB,CAC5D,gBAAgB,EAChB,0BAA0B,EAC1B,IAAI,oBAAY,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,OAAO,KAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CACxB,eAA6C,EAC7C,0BAAqE;QAErE,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,GAAG,IAAI,2CAAoB,CAC5D,eAAe,EACf,0BAA0B,EAC1B,IAAI,CAAC,mCAAmC,EAAE,CAC3C,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,2DAA2D,CACjE,UAAqC;QAErC,MAAM,0BAA0B,GAAG,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAChD,0BAA0B,CAC3B,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAChD,oBAAoB,EACpB,0BAA0B,CAC3B,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAC/C,mBAAmB,EACnB,0BAA0B,CAC3B,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,cAAc,CAAC,CAAC;QAEtE,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,OAAO,CACzB,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAa,EAAE,EAAE;YACzD,oBAAoB,CAAC,sBAAsB,CACzC,IAAI,oDAA0B,CAC5B,YAAa,EACb,QAAS,EACT,gBAAgB,CACjB,CACF,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,CACxB,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAa,EAAE,EAAE;YACzD,oBAAoB,CAAC,qBAAqB,CACxC,IAAI,oDAA0B,CAC5B,YAAa,EACb,QAAS,EACT,gBAAgB,CACjB,CACF,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAY,iBAAiB;QAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,wCAAsB,CAAC,CAAC;QAClE,OAAO,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAEO,mCAAmC;QACzC,OAAO,IAAI,kBAAU,CAAC;YACpB,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,IAAI,mBAAW,CAAC;gBACpB,MAAM,EAAE;oBACN,QAAQ,EAAE,IAAI,mBAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC;oBAChE,YAAY,EAAE,IAAI,mBAAW,CAAC;wBAC5B,KAAK,EAAE,IAAI,CAAC,iBAAiB;wBAC7B,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,KAAK;qBACpB,CAAC;oBACF,gBAAgB,EAAE,IAAI,mBAAW,CAAC;wBAChC,YAAY,EAAE,IAAI;wBAClB,QAAQ,EAAE,KAAK;qBAChB,CAAC;iBACH;aACF,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB;QAC3B,MAAM,SAAS,GAAG,CAAC,MAAoC,EAAE,EAAE,CACzD,IAAI,2CAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,SAAS,CAAC,IAAI,kBAAU,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,4BAA4B,GAAG,SAAS,CAAC,IAAI,kBAAU,CAAC,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE;YACzC,4DAA4D;YAC5D,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC/C;IACH,CAAC;IAEO,yBAAyB,CAAC,WAAmB;QACnD,MAAM,IAAI,wBAAe,CACvB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EACxC,WAAW,CACZ,CAAC;IACJ,CAAC;CACF;AAEM,MAAM,qBAAqB,GAAG,CACnC,kBAA6D,EAC7D,eAAgC,EAChC,YAAsB,EACtB,EAAE;IACF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,kBAAkB,EAClB,eAAe,EACf,YAAY,CACb,CAAC;IACF,OAAO,MAAM,CAAC,qBAAqB,EAAE,CAAC;AACxC,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
@@ -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.documentRecord[k.toLowerCase()];
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,WAAW,EAAE,CAAC,CAAC;YACvD,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"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveo/push-api-client",
3
- "version": "2.8.13",
3
+ "version": "3.0.0",
4
4
  "description": "Push API client",
5
5
  "main": "./dist/index.js",
6
6
  "files": [
@@ -10,36 +10,38 @@
10
10
  "types": "./dist/definitions/index.d.ts",
11
11
  "dependencies": {
12
12
  "@coveo/bueno": "^0.43.0",
13
- "@coveo/platform-client": "40.1.0",
14
- "abortcontroller-polyfill": "^1.7.1",
15
- "axios": "^1.2.0",
13
+ "@coveo/platform-client": "40.7.0",
16
14
  "dayjs": "^1.10.4",
17
15
  "exponential-backoff": "^3.1.0",
18
- "isomorphic-fetch": "^3.0.0",
16
+ "fetch-undici-polyfill": "^1.1.2",
19
17
  "zod": "^3.20.2"
20
18
  },
21
19
  "devDependencies": {
22
20
  "@coveo/push-api-client": "file:.",
23
- "@types/jest": "29.2.5",
24
- "@types/node": "18.11.18",
25
- "@typescript-eslint/eslint-plugin": "5.48.1",
26
- "@typescript-eslint/parser": "5.48.1",
21
+ "@coveo/semantic-monorepo-tools": "1.5.21",
22
+ "@octokit/auth-action": "^2.0.3",
23
+ "@types/jest": "29.4.0",
24
+ "@types/node": "18.11.19",
25
+ "@typescript-eslint/eslint-plugin": "5.50.0",
26
+ "@typescript-eslint/parser": "5.50.0",
27
+ "conventional-changelog-angular": "5.0.13",
27
28
  "cz-conventional-changelog": "3.3.0",
28
29
  "detect-indent": "7.0.1",
29
30
  "dotenv": "16.0.3",
30
- "eslint": "8.32.0",
31
+ "eslint": "8.33.0",
31
32
  "eslint-config-prettier": "8.6.0",
32
33
  "gts": "3.1.1",
33
34
  "husky": "8.0.3",
34
- "jest": "29.3.1",
35
+ "jest": "29.4.1",
35
36
  "lint-staged": "13.1.0",
36
37
  "nodemon": "2.0.20",
38
+ "octokit": "2.0.14",
37
39
  "prettier": "2.8.3",
38
- "standard-version": "9.5.0",
39
40
  "ts-jest": "29.0.5",
40
41
  "ts-node": "10.9.1",
41
42
  "typedoc": "0.23.24",
42
- "typescript": "4.9.4"
43
+ "typescript": "4.9.5",
44
+ "undici": "^5.16.0"
43
45
  },
44
46
  "husky": {
45
47
  "hooks": {
@@ -62,21 +64,20 @@
62
64
  "**/*.ts": "eslint --fix"
63
65
  },
64
66
  "engines": {
65
- "node": ">=14.16.1"
67
+ "node": ">=16.x"
66
68
  },
67
69
  "scripts": {
68
70
  "build": "tsc",
69
71
  "test": "jest",
70
72
  "test:dev": "jest --watch",
71
73
  "dev": "nodemon --watch \"src/**\" --ext \"ts,json\" --ignore \"src/**/*.spec.ts\" --exec \"ts-node src/localtest.ts\"",
72
- "lint": "prettier --config ./.prettierrc.js --check ./src && eslint ./src",
74
+ "lint": "prettier --config ./.prettierrc.js --check . && eslint .",
73
75
  "lint:check": "eslint .",
74
76
  "lint:fix": "eslint --fix .",
75
77
  "prettier:check": "prettier .",
76
78
  "prettier:fix": "prettier --write .",
77
79
  "commit": "git-cz",
78
- "release": "standard-version && git push && git push --tags",
79
- "prepublishOnly": "npm run release && npm run doc",
80
+ "release": "node release.mjs && npm run doc",
80
81
  "doc": "typedoc --out ./dist/docs ./src/index.ts"
81
82
  },
82
83
  "repository": {
@@ -1,5 +0,0 @@
1
- import { PushSource } from './push';
2
- /**
3
- * @deprecated This class has been replaced by {@link PushSource}
4
- */
5
- export declare const Source: typeof PushSource;
@@ -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.