@lilaquadrat/studio 2.2.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 (238) hide show
  1. package/lib/helpers.d.ts +3 -0
  2. package/lib/helpers.js +11 -0
  3. package/lib/helpers.js.map +1 -0
  4. package/lib/interfaces.d.ts +33 -0
  5. package/lib/interfaces.js +13 -0
  6. package/lib/interfaces.js.map +1 -0
  7. package/lib/main.d.ts +15 -0
  8. package/lib/main.js +56 -0
  9. package/lib/main.js.map +1 -0
  10. package/lib/models.d.ts +13 -0
  11. package/lib/models.js +31 -0
  12. package/lib/models.js.map +1 -0
  13. package/lib/services.d.ts +9 -0
  14. package/lib/services.js +23 -0
  15. package/lib/services.js.map +1 -0
  16. package/lib/src/AzureBlobStorage.share.d.ts +17 -0
  17. package/lib/src/AzureBlobStorage.share.js +157 -0
  18. package/lib/src/AzureBlobStorage.share.js.map +1 -0
  19. package/lib/src/AzureFileStorage.share.d.ts +16 -0
  20. package/lib/src/AzureFileStorage.share.js +131 -0
  21. package/lib/src/AzureFileStorage.share.js.map +1 -0
  22. package/lib/src/Filesystem.share.d.ts +16 -0
  23. package/lib/src/Filesystem.share.js +87 -0
  24. package/lib/src/Filesystem.share.js.map +1 -0
  25. package/lib/src/Immutable.class.d.ts +45 -0
  26. package/lib/src/Immutable.class.js +164 -0
  27. package/lib/src/Immutable.class.js.map +1 -0
  28. package/lib/src/Mock.share.d.ts +15 -0
  29. package/lib/src/Mock.share.js +36 -0
  30. package/lib/src/Mock.share.js.map +1 -0
  31. package/lib/src/ShareClientFactory.class.d.ts +14 -0
  32. package/lib/src/ShareClientFactory.class.js +37 -0
  33. package/lib/src/ShareClientFactory.class.js.map +1 -0
  34. package/lib/src/aggegations/childData.aggregation.d.ts +194 -0
  35. package/lib/src/aggegations/childData.aggregation.js +102 -0
  36. package/lib/src/aggegations/childData.aggregation.js.map +1 -0
  37. package/lib/src/aggegations/partial.aggregation.d.ts +88 -0
  38. package/lib/src/aggegations/partial.aggregation.js +68 -0
  39. package/lib/src/aggegations/partial.aggregation.js.map +1 -0
  40. package/lib/src/aggegations/publishData.aggregation.d.ts +89 -0
  41. package/lib/src/aggegations/publishData.aggregation.js +79 -0
  42. package/lib/src/aggegations/publishData.aggregation.js.map +1 -0
  43. package/lib/src/aggegations/resultData.aggregation.d.ts +151 -0
  44. package/lib/src/aggegations/resultData.aggregation.js +124 -0
  45. package/lib/src/aggegations/resultData.aggregation.js.map +1 -0
  46. package/lib/src/classes/ControllerBase.class.d.ts +108 -0
  47. package/lib/src/classes/ControllerBase.class.js +280 -0
  48. package/lib/src/classes/ControllerBase.class.js.map +1 -0
  49. package/lib/src/classes/errors/History.error.d.ts +5 -0
  50. package/lib/src/classes/errors/History.error.js +11 -0
  51. package/lib/src/classes/errors/History.error.js.map +1 -0
  52. package/lib/src/classes/errors/Immutable.error.d.ts +5 -0
  53. package/lib/src/classes/errors/Immutable.error.js +11 -0
  54. package/lib/src/classes/errors/Immutable.error.js.map +1 -0
  55. package/lib/src/classes/models.class.d.ts +14 -0
  56. package/lib/src/classes/models.class.js +44 -0
  57. package/lib/src/classes/models.class.js.map +1 -0
  58. package/lib/src/classes/modelv2.class.d.ts +62 -0
  59. package/lib/src/classes/modelv2.class.js +136 -0
  60. package/lib/src/classes/modelv2.class.js.map +1 -0
  61. package/lib/src/classes/mongo.class.d.ts +22 -0
  62. package/lib/src/classes/mongo.class.js +80 -0
  63. package/lib/src/classes/mongo.class.js.map +1 -0
  64. package/lib/src/conf.class.d.ts +36 -0
  65. package/lib/src/conf.class.js +122 -0
  66. package/lib/src/conf.class.js.map +1 -0
  67. package/lib/src/docker-compose.class.d.ts +14 -0
  68. package/lib/src/docker-compose.class.js +87 -0
  69. package/lib/src/docker-compose.class.js.map +1 -0
  70. package/lib/src/domain.class.d.ts +25 -0
  71. package/lib/src/domain.class.js +98 -0
  72. package/lib/src/domain.class.js.map +1 -0
  73. package/lib/src/filterMergeModules.d.ts +3 -0
  74. package/lib/src/filterMergeModules.js +30 -0
  75. package/lib/src/filterMergeModules.js.map +1 -0
  76. package/lib/src/frontend/main.d.ts +2 -0
  77. package/lib/src/frontend/main.js +9 -0
  78. package/lib/src/frontend/main.js.map +1 -0
  79. package/lib/src/functions/respondCode.d.ts +3 -0
  80. package/lib/src/functions/respondCode.js +5 -0
  81. package/lib/src/functions/respondCode.js.map +1 -0
  82. package/lib/src/helpers/cleanObject.d.ts +5 -0
  83. package/lib/src/helpers/cleanObject.js +9 -0
  84. package/lib/src/helpers/cleanObject.js.map +1 -0
  85. package/lib/src/helpers/companyRights.d.ts +2 -0
  86. package/lib/src/helpers/companyRights.js +20 -0
  87. package/lib/src/helpers/companyRights.js.map +1 -0
  88. package/lib/src/helpers/hardCopy.d.ts +2 -0
  89. package/lib/src/helpers/hardCopy.js +5 -0
  90. package/lib/src/helpers/hardCopy.js.map +1 -0
  91. package/lib/src/helpers/helpers.export.d.ts +0 -0
  92. package/lib/src/helpers/helpers.export.js +1 -0
  93. package/lib/src/helpers/helpers.export.js.map +1 -0
  94. package/lib/src/interfaces/Action.interface.d.ts +1 -0
  95. package/lib/src/interfaces/Action.interface.js +3 -0
  96. package/lib/src/interfaces/Action.interface.js.map +1 -0
  97. package/lib/src/interfaces/AppPermissions.d.ts +7 -0
  98. package/lib/src/interfaces/AppPermissions.js +3 -0
  99. package/lib/src/interfaces/AppPermissions.js.map +1 -0
  100. package/lib/src/interfaces/BasicData.interface.d.ts +16 -0
  101. package/lib/src/interfaces/BasicData.interface.js +3 -0
  102. package/lib/src/interfaces/BasicData.interface.js.map +1 -0
  103. package/lib/src/interfaces/CallResponse.interface.d.ts +5 -0
  104. package/lib/src/interfaces/CallResponse.interface.js +3 -0
  105. package/lib/src/interfaces/CallResponse.interface.js.map +1 -0
  106. package/lib/src/interfaces/Contract.interface.d.ts +7 -0
  107. package/lib/src/interfaces/Contract.interface.js +3 -0
  108. package/lib/src/interfaces/Contract.interface.js.map +1 -0
  109. package/lib/src/interfaces/CreateResult.interface.d.ts +5 -0
  110. package/lib/src/interfaces/CreateResult.interface.js +3 -0
  111. package/lib/src/interfaces/CreateResult.interface.js.map +1 -0
  112. package/lib/src/interfaces/DataObject.interface.d.ts +11 -0
  113. package/lib/src/interfaces/DataObject.interface.js +3 -0
  114. package/lib/src/interfaces/DataObject.interface.js.map +1 -0
  115. package/lib/src/interfaces/DatabaseQuery.interface.d.ts +3 -0
  116. package/lib/src/interfaces/DatabaseQuery.interface.js +3 -0
  117. package/lib/src/interfaces/DatabaseQuery.interface.js.map +1 -0
  118. package/lib/src/interfaces/DatabaseQueryOptions.interface.d.ts +31 -0
  119. package/lib/src/interfaces/DatabaseQueryOptions.interface.js +3 -0
  120. package/lib/src/interfaces/DatabaseQueryOptions.interface.js.map +1 -0
  121. package/lib/src/interfaces/DatabaseQuerySites.interface.d.ts +11 -0
  122. package/lib/src/interfaces/DatabaseQuerySites.interface.js +3 -0
  123. package/lib/src/interfaces/DatabaseQuerySites.interface.js.map +1 -0
  124. package/lib/src/interfaces/DomainConf.interface.d.ts +10 -0
  125. package/lib/src/interfaces/DomainConf.interface.js +3 -0
  126. package/lib/src/interfaces/DomainConf.interface.js.map +1 -0
  127. package/lib/src/interfaces/EditorLegacy.interface.d.ts +5 -0
  128. package/lib/src/interfaces/EditorLegacy.interface.js +3 -0
  129. package/lib/src/interfaces/EditorLegacy.interface.js.map +1 -0
  130. package/lib/src/interfaces/HistoryReason.interface copy.d.ts +1 -0
  131. package/lib/src/interfaces/HistoryReason.interface copy.js +3 -0
  132. package/lib/src/interfaces/HistoryReason.interface copy.js.map +1 -0
  133. package/lib/src/interfaces/HistoryReason.interface.d.ts +1 -0
  134. package/lib/src/interfaces/HistoryReason.interface.js +3 -0
  135. package/lib/src/interfaces/HistoryReason.interface.js.map +1 -0
  136. package/lib/src/interfaces/HttpStatusCode.enum.d.ts +319 -0
  137. package/lib/src/interfaces/HttpStatusCode.enum.js +324 -0
  138. package/lib/src/interfaces/HttpStatusCode.enum.js.map +1 -0
  139. package/lib/src/interfaces/ListOfModels.interface.d.ts +5 -0
  140. package/lib/src/interfaces/ListOfModels.interface.js +3 -0
  141. package/lib/src/interfaces/ListOfModels.interface.js.map +1 -0
  142. package/lib/src/interfaces/Modelv2.interface.d.ts +3 -0
  143. package/lib/src/interfaces/Modelv2.interface.js +3 -0
  144. package/lib/src/interfaces/Modelv2.interface.js.map +1 -0
  145. package/lib/src/interfaces/ModuleGeneric.interface.d.ts +10 -0
  146. package/lib/src/interfaces/ModuleGeneric.interface.js +3 -0
  147. package/lib/src/interfaces/ModuleGeneric.interface.js.map +1 -0
  148. package/lib/src/interfaces/Partner.interface.d.ts +14 -0
  149. package/lib/src/interfaces/Partner.interface.js +3 -0
  150. package/lib/src/interfaces/Partner.interface.js.map +1 -0
  151. package/lib/src/interfaces/PublishResult.interface.d.ts +9 -0
  152. package/lib/src/interfaces/PublishResult.interface.js +3 -0
  153. package/lib/src/interfaces/PublishResult.interface.js.map +1 -0
  154. package/lib/src/interfaces/PublishResultStatistics.interface.d.ts +6 -0
  155. package/lib/src/interfaces/PublishResultStatistics.interface.js +3 -0
  156. package/lib/src/interfaces/PublishResultStatistics.interface.js.map +1 -0
  157. package/lib/src/interfaces/Scope.interface.d.ts +7 -0
  158. package/lib/src/interfaces/Scope.interface.js +3 -0
  159. package/lib/src/interfaces/Scope.interface.js.map +1 -0
  160. package/lib/src/interfaces/ShareClient.interface.d.ts +30 -0
  161. package/lib/src/interfaces/ShareClient.interface.js +3 -0
  162. package/lib/src/interfaces/ShareClient.interface.js.map +1 -0
  163. package/lib/src/interfaces/ShareClientOptions.interface.d.ts +5 -0
  164. package/lib/src/interfaces/ShareClientOptions.interface.js +3 -0
  165. package/lib/src/interfaces/ShareClientOptions.interface.js.map +1 -0
  166. package/lib/src/logger.d.ts +2 -0
  167. package/lib/src/logger.js +46 -0
  168. package/lib/src/logger.js.map +1 -0
  169. package/lib/src/models/certificate.model.d.ts +18 -0
  170. package/lib/src/models/certificate.model.js +42 -0
  171. package/lib/src/models/certificate.model.js.map +1 -0
  172. package/lib/src/models/company.model.d.ts +22 -0
  173. package/lib/src/models/company.model.js +63 -0
  174. package/lib/src/models/company.model.js.map +1 -0
  175. package/lib/src/models/editor.model.d.ts +27 -0
  176. package/lib/src/models/editor.model.js +122 -0
  177. package/lib/src/models/editor.model.js.map +1 -0
  178. package/lib/src/models/editorBase.model.d.ts +11 -0
  179. package/lib/src/models/editorBase.model.js +42 -0
  180. package/lib/src/models/editorBase.model.js.map +1 -0
  181. package/lib/src/models/history.model.d.ts +19 -0
  182. package/lib/src/models/history.model.js +46 -0
  183. package/lib/src/models/history.model.js.map +1 -0
  184. package/lib/src/models/id.model.d.ts +11 -0
  185. package/lib/src/models/id.model.js +21 -0
  186. package/lib/src/models/id.model.js.map +1 -0
  187. package/lib/src/models/me.model.d.ts +12 -0
  188. package/lib/src/models/me.model.js +35 -0
  189. package/lib/src/models/me.model.js.map +1 -0
  190. package/lib/src/models/media.model.d.ts +49 -0
  191. package/lib/src/models/media.model.js +123 -0
  192. package/lib/src/models/media.model.js.map +1 -0
  193. package/lib/src/models/permissions.model.d.ts +15 -0
  194. package/lib/src/models/permissions.model.js +163 -0
  195. package/lib/src/models/permissions.model.js.map +1 -0
  196. package/lib/src/models/project.model.d.ts +12 -0
  197. package/lib/src/models/project.model.js +46 -0
  198. package/lib/src/models/project.model.js.map +1 -0
  199. package/lib/src/models/publish.model.d.ts +23 -0
  200. package/lib/src/models/publish.model.js +180 -0
  201. package/lib/src/models/publish.model.js.map +1 -0
  202. package/lib/src/models/secrets.model.d.ts +14 -0
  203. package/lib/src/models/secrets.model.js +42 -0
  204. package/lib/src/models/secrets.model.js.map +1 -0
  205. package/lib/src/models/settings.model.d.ts +8 -0
  206. package/lib/src/models/settings.model.js +31 -0
  207. package/lib/src/models/settings.model.js.map +1 -0
  208. package/lib/src/nginx.class.d.ts +11 -0
  209. package/lib/src/nginx.class.js +49 -0
  210. package/lib/src/nginx.class.js.map +1 -0
  211. package/lib/src/services/editor.service.d.ts +23 -0
  212. package/lib/src/services/editor.service.js +175 -0
  213. package/lib/src/services/editor.service.js.map +1 -0
  214. package/lib/src/services/editorBase.service.d.ts +29 -0
  215. package/lib/src/services/editorBase.service.js +96 -0
  216. package/lib/src/services/editorBase.service.js.map +1 -0
  217. package/lib/src/services/handleFile.service.d.ts +10 -0
  218. package/lib/src/services/handleFile.service.js +48 -0
  219. package/lib/src/services/handleFile.service.js.map +1 -0
  220. package/lib/src/services/history.service.d.ts +26 -0
  221. package/lib/src/services/history.service.js +237 -0
  222. package/lib/src/services/history.service.js.map +1 -0
  223. package/lib/src/services/id.service.d.ts +6 -0
  224. package/lib/src/services/id.service.js +20 -0
  225. package/lib/src/services/id.service.js.map +1 -0
  226. package/lib/src/services/publish.service.d.ts +30 -0
  227. package/lib/src/services/publish.service.js +201 -0
  228. package/lib/src/services/publish.service.js.map +1 -0
  229. package/lib/src/services/secret.service.d.ts +24 -0
  230. package/lib/src/services/secret.service.js +50 -0
  231. package/lib/src/services/secret.service.js.map +1 -0
  232. package/lib/src/services/universal.service.d.ts +23 -0
  233. package/lib/src/services/universal.service.js +129 -0
  234. package/lib/src/services/universal.service.js.map +1 -0
  235. package/lib/src/ssl-challenge.class.d.ts +33 -0
  236. package/lib/src/ssl-challenge.class.js +63 -0
  237. package/lib/src/ssl-challenge.class.js.map +1 -0
  238. package/package.json +60 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ class FilesystemClient {
8
+ constructor(options) {
9
+ if (options.baseFolder)
10
+ this.base = options.baseFolder;
11
+ }
12
+ removeFolder() {
13
+ return new Promise((resolve, reject) => resolve(true));
14
+ }
15
+ createFolder(basePath, folder) {
16
+ return new Promise((resolve, reject) => {
17
+ fs_1.default.mkdir(`${this.base}/${basePath}/${folder}`, { recursive: true }, (err) => {
18
+ err
19
+ ? reject(err)
20
+ : resolve(true);
21
+ });
22
+ });
23
+ }
24
+ add(destination, filename, filePath) {
25
+ return new Promise((resolve, reject) => {
26
+ fs_1.default.copyFile(filePath, `${this.base}/${destination}/${filename}`, (err) => {
27
+ err
28
+ ? reject(err)
29
+ : resolve(true);
30
+ });
31
+ });
32
+ }
33
+ create(destination, filename, data) {
34
+ return new Promise((resolve, reject) => {
35
+ fs_1.default.writeFile(`${this.base}/${destination}/${filename}`, data, (err) => {
36
+ err
37
+ ? reject(err)
38
+ : resolve(true);
39
+ });
40
+ });
41
+ }
42
+ remove(folder, file) {
43
+ return new Promise((resolve, reject) => {
44
+ fs_1.default.unlink(`${this.base}/${folder}/${file}`, (err) => {
45
+ err
46
+ ? reject(err)
47
+ : resolve(true);
48
+ });
49
+ });
50
+ }
51
+ update(destination, filename, data) {
52
+ return this.create(destination, filename, data);
53
+ }
54
+ get(folder, filename) {
55
+ return new Promise((resolve, reject) => {
56
+ fs_1.default.readFile(`${this.base}/${folder}/${filename}`, (err, data) => {
57
+ if (err)
58
+ return reject(err);
59
+ return resolve(data);
60
+ });
61
+ });
62
+ }
63
+ list(folder, filter) {
64
+ return new Promise((resolve, reject) => {
65
+ fs_1.default.readdir(`${this.base}/${folder}`, (err, data) => {
66
+ if (err)
67
+ return reject(err);
68
+ const filteredData = data.filter((single) => single.match(filter));
69
+ return resolve(filteredData);
70
+ });
71
+ });
72
+ }
73
+ async copy(files, sourceFolder, destinationFolder) {
74
+ const PROMISEARRAY = files.map((file) => new Promise((resolve, reject) => {
75
+ fs_1.default.copyFile(`${sourceFolder}/${file}`, `${destinationFolder}/${file}`, (err) => {
76
+ if (err)
77
+ return reject(err);
78
+ return resolve(true);
79
+ });
80
+ }));
81
+ return Promise.all(PROMISEARRAY)
82
+ .then(() => true)
83
+ .catch(() => false);
84
+ }
85
+ }
86
+ exports.default = FilesystemClient;
87
+ //# sourceMappingURL=Filesystem.share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filesystem.share.js","sourceRoot":"","sources":["../../src/Filesystem.share.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Filter, OrderedBulkOperation, UnorderedBulkOperation } from 'mongodb';
2
+ import Model from './classes/modelv2.class';
3
+ import { BasicDataInterface, HistoryReason } from '../interfaces';
4
+ import CreateResult from './interfaces/CreateResult.interface';
5
+ export default abstract class Immutable<T extends BasicDataInterface> {
6
+ model: Model<T>;
7
+ /**
8
+ * * adds a new entry in the history and updates the current one
9
+ * **IMPORTANT** dont query fields that would be changed on update, that will mess up the history
10
+ */
11
+ immutable(_idOrFilterQuery: T['_id'] | Filter<T> | string, data: T | Partial<T>, user: string, reason: HistoryReason, app: string, additionalHistoryData?: Record<string, string | number>, bulk?: UnorderedBulkOperation | OrderedBulkOperation, partial?: string): Promise<import("mongodb").UpdateResult>;
12
+ /**
13
+ * creates or updates data
14
+ * @param _idOrFilterQuery
15
+ * @param data
16
+ * @param user
17
+ * @param reason
18
+ * @param app
19
+ * @param additionalHistoryData
20
+ * @param bulk
21
+ * @returns
22
+ */
23
+ immutableUpsert(_idOrFilterQuery: T['_id'] | Filter<T>, data: T, user: string, reason: HistoryReason, app: string, additionalHistoryData?: Record<string, string | number>, bulk?: UnorderedBulkOperation | OrderedBulkOperation): Promise<import("mongodb").UpdateResult | CreateResult<T>>;
24
+ /**
25
+ * add a new history entry
26
+ * @param _id
27
+ * @param user
28
+ * @param reason
29
+ * @param app
30
+ * @param additionalHistoryData
31
+ * @param bulk
32
+ * @returns
33
+ */
34
+ history(_id: T['_id'], user: string, reason: HistoryReason, app: string, additionalHistoryData?: Record<string, string | number>, bulk?: UnorderedBulkOperation | OrderedBulkOperation): Promise<UnorderedBulkOperation | OrderedBulkOperation>;
35
+ /**
36
+ * create new data
37
+ */
38
+ create(data: T, user: string, source: string, additionalHistoryData?: Record<string, string | number>, bulk?: UnorderedBulkOperation | OrderedBulkOperation): Promise<CreateResult<T>>;
39
+ /**
40
+ * add a new history entry with delete and remove the main document
41
+ *
42
+ */
43
+ delete(_id: T['_id'], user: string, app: string, additionalHistoryData?: Record<string, string | number>): Promise<import("mongodb").DeleteResult>;
44
+ getModel(fallback: Model<T>, model?: Model<T>): Model<T>;
45
+ }
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongodb_1 = require("mongodb");
7
+ const models_1 = require("../models");
8
+ const Immutable_error_1 = __importDefault(require("./classes/errors/Immutable.error"));
9
+ const history_service_1 = __importDefault(require("./services/history.service"));
10
+ const id_service_1 = require("./services/id.service");
11
+ class Immutable {
12
+ /**
13
+ * * adds a new entry in the history and updates the current one
14
+ * **IMPORTANT** dont query fields that would be changed on update, that will mess up the history
15
+ */
16
+ async immutable(_idOrFilterQuery, data, user, reason, app, additionalHistoryData, bulk, partial) {
17
+ let filterQuery;
18
+ const validationType = partial || 'change';
19
+ !mongodb_1.ObjectId.isValid(_idOrFilterQuery)
20
+ ? filterQuery = _idOrFilterQuery
21
+ : filterQuery = { _id: _idOrFilterQuery };
22
+ if (!this.model.validate(data, validationType)) {
23
+ throw new Immutable_error_1.default('VALIDATION_FAILED', this.model.compiledTypes[validationType].errors);
24
+ }
25
+ const basicUpdateQuery = {};
26
+ if (Object.keys(data).length) {
27
+ basicUpdateQuery.$set = data;
28
+ }
29
+ if (!partial) {
30
+ const unset = this.model.getUnsetObject(data);
31
+ if (Object.keys(unset).length) {
32
+ basicUpdateQuery.$unset = unset;
33
+ }
34
+ }
35
+ // TODO check if basicUpdateQuery has $set or $unset
36
+ return this.model.db.updateOne(filterQuery, basicUpdateQuery)
37
+ .then((update) => {
38
+ if (update.matchedCount === 0)
39
+ throw new Immutable_error_1.default('document for update not found');
40
+ if (update.modifiedCount === 1) {
41
+ const updateQuery = {
42
+ $inc: { 'history.version': 1 },
43
+ $set: {
44
+ 'history.updated': new Date(),
45
+ },
46
+ };
47
+ if (additionalHistoryData) {
48
+ // @ts-ignore
49
+ updateQuery.$set['history.additional'] = additionalHistoryData;
50
+ }
51
+ // eslint-disable-next-line promise/no-nesting
52
+ return this.model.db.findOneAndUpdate(filterQuery, updateQuery, { returnDocument: 'after' })
53
+ .then(async (document) => {
54
+ await history_service_1.default.create(document.value, user, reason, app, this.model.name, undefined, bulk);
55
+ return update;
56
+ });
57
+ }
58
+ return update;
59
+ });
60
+ }
61
+ /**
62
+ * creates or updates data
63
+ * @param _idOrFilterQuery
64
+ * @param data
65
+ * @param user
66
+ * @param reason
67
+ * @param app
68
+ * @param additionalHistoryData
69
+ * @param bulk
70
+ * @returns
71
+ */
72
+ async immutableUpsert(_idOrFilterQuery, data, user, reason, app, additionalHistoryData, bulk) {
73
+ var _a, _b;
74
+ let filterQuery;
75
+ !mongodb_1.ObjectId.isValid(_idOrFilterQuery)
76
+ ? filterQuery = _idOrFilterQuery
77
+ : filterQuery = { _id: _idOrFilterQuery };
78
+ const databaseData = await this.model.db.countDocuments(filterQuery);
79
+ if (databaseData) {
80
+ /** if update, remove immutable keys */
81
+ if ((_a = this.model.immutable) === null || _a === void 0 ? void 0 : _a.length) {
82
+ (_b = this.model.immutable) === null || _b === void 0 ? void 0 : _b.forEach((single) => {
83
+ delete data[single];
84
+ });
85
+ }
86
+ return this.immutable(_idOrFilterQuery, data, user, reason, app, additionalHistoryData, bulk);
87
+ }
88
+ return this.create(data, user, app, additionalHistoryData, bulk);
89
+ }
90
+ /**
91
+ * add a new history entry
92
+ * @param _id
93
+ * @param user
94
+ * @param reason
95
+ * @param app
96
+ * @param additionalHistoryData
97
+ * @param bulk
98
+ * @returns
99
+ */
100
+ async history(_id, user, reason, app, additionalHistoryData, bulk) {
101
+ const history = await this.model.db.findOne({ _id });
102
+ if (!(history === null || history === void 0 ? void 0 : history._id))
103
+ throw new Immutable_error_1.default('PARENT_DOCUMENT_NOT_FOUND');
104
+ return history_service_1.default.create(history, user, reason, app, this.model.name, additionalHistoryData, bulk);
105
+ }
106
+ /**
107
+ * create new data
108
+ */
109
+ async create(data, user, source, additionalHistoryData, bulk) {
110
+ var _a, _b;
111
+ let type = 'create';
112
+ let inheritedVersion = 0;
113
+ if (!this.model)
114
+ throw new Error('model not set in the main class');
115
+ if (!this.model.validate(data, 'create'))
116
+ throw new Immutable_error_1.default('VALIDATION_FAILED', this.model.compiledTypes.create.errors);
117
+ if ((_a = this.model.historyMatch) === null || _a === void 0 ? void 0 : _a.length) {
118
+ const query = {};
119
+ this.model.historyMatch.forEach((key) => {
120
+ query[key] = data[key];
121
+ });
122
+ const document = await models_1.HistoryModel.db.find(query).limit(1).sort({ _id: -1 }).toArray();
123
+ const lastEntry = document[0];
124
+ if (lastEntry) {
125
+ if (((_b = lastEntry.history) === null || _b === void 0 ? void 0 : _b.reason) !== 'delete')
126
+ throw new Error('DOCUMENT_ALREADY_EXISTS');
127
+ inheritedVersion = lastEntry.history.version + 1;
128
+ type = 'recreate';
129
+ }
130
+ }
131
+ data.history = {
132
+ version: inheritedVersion,
133
+ created: new Date(),
134
+ source,
135
+ };
136
+ if (additionalHistoryData) {
137
+ data.history.additional = Object.assign({}, additionalHistoryData);
138
+ }
139
+ if (this.model.uniqueId && !data.id) {
140
+ data.id = await id_service_1.IdService.getUnique(data.company, data.project, data.app, data.model);
141
+ }
142
+ console.log(data);
143
+ const inserted = await this.model.db.insertOne(data);
144
+ await this.history(inserted.insertedId, user, type, source, additionalHistoryData, bulk);
145
+ return {
146
+ _id: inserted.insertedId,
147
+ id: data.id,
148
+ };
149
+ }
150
+ /**
151
+ * add a new history entry with delete and remove the main document
152
+ *
153
+ */
154
+ delete(_id, user, app, additionalHistoryData) {
155
+ return this.history(_id, user, 'delete', app, additionalHistoryData)
156
+ .then(() => this.model.db.deleteOne({ _id }));
157
+ }
158
+ getModel(fallback, model) {
159
+ const useModel = model || fallback;
160
+ return useModel;
161
+ }
162
+ }
163
+ exports.default = Immutable;
164
+ //# sourceMappingURL=Immutable.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Immutable.class.js","sourceRoot":"","sources":["../../src/Immutable.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { ShareClientInterface, ShareClientOptions } from '../interfaces';
3
+ export default class MockClient implements ShareClientInterface {
4
+ client: MockClient;
5
+ constructor(options: ShareClientOptions);
6
+ createFolder(basePath: string, folder: string): Promise<boolean>;
7
+ removeFolder(): Promise<boolean>;
8
+ add(destination: string, filename: string, filePath: string): Promise<boolean>;
9
+ remove(folder: string, file: string): Promise<boolean>;
10
+ create(destination: string, filename: string, data: string | Buffer): Promise<boolean>;
11
+ update(folder: string, filename: string, data: Buffer): Promise<boolean>;
12
+ get(folder: string, filename: string): Promise<Buffer>;
13
+ list(folder: string, filter: RegExp): Promise<string[]>;
14
+ copy(files: string[], destination: string): Promise<boolean>;
15
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class MockClient {
4
+ constructor(options) {
5
+ this.client = this;
6
+ }
7
+ createFolder(basePath, folder) {
8
+ return new Promise((resolve) => resolve(true));
9
+ }
10
+ removeFolder() {
11
+ return new Promise((resolve) => resolve(true));
12
+ }
13
+ add(destination, filename, filePath) {
14
+ return new Promise((resolve) => resolve(true));
15
+ }
16
+ remove(folder, file) {
17
+ return new Promise((resolve) => resolve(true));
18
+ }
19
+ create(destination, filename, data) {
20
+ return new Promise((resolve) => resolve(true));
21
+ }
22
+ update(folder, filename, data) {
23
+ return new Promise((resolve) => resolve(true));
24
+ }
25
+ get(folder, filename) {
26
+ return new Promise((resolve) => resolve(Buffer.from('')));
27
+ }
28
+ list(folder, filter) {
29
+ return new Promise((resolve) => resolve([]));
30
+ }
31
+ copy(files, destination) {
32
+ return new Promise((resolve) => resolve(true));
33
+ }
34
+ }
35
+ exports.default = MockClient;
36
+ //# sourceMappingURL=Mock.share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mock.share.js","sourceRoot":"","sources":["../../src/Mock.share.ts"],"names":[],"mappings":";;AAEA,MAAqB,UAAU;IAI7B,YAAY,OAA2B;QAErC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAErB,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,MAAc;QAE3C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,YAAY;QAEV,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,QAAgB;QAEzD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,IAAY;QAEjC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,MAAM,CAAC,WAAmB,EAAE,QAAgB,EAAE,IAAqB;QAEjE,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAY;QAEnD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,QAAgB;QAElC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpE,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAc;QAEjC,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzD,CAAC;IAED,IAAI,CAAC,KAAe,EAAE,WAAmB;QAEvC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,CAAC;CAEF;AAhED,6BAgEC"}
@@ -0,0 +1,14 @@
1
+ import FilesystemClient from './Filesystem.share';
2
+ import AzureStorageClient from './AzureFileStorage.share';
3
+ import AzureBlobClient from './AzureBlobStorage.share';
4
+ import MockClient from './Mock.share';
5
+ import { ShareClientInterface, ShareClientOptions } from '../interfaces';
6
+ declare const available: {
7
+ filesystem: typeof FilesystemClient;
8
+ mock: typeof MockClient;
9
+ azureStorage: typeof AzureStorageClient;
10
+ azureBlob: typeof AzureBlobClient;
11
+ };
12
+ declare const ShareClientFactory: (type: keyof typeof available, options: ShareClientOptions) => ShareClientInterface;
13
+ export default ShareClientFactory;
14
+ export { FilesystemClient, AzureStorageClient, AzureBlobClient, };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AzureBlobClient = exports.AzureStorageClient = exports.FilesystemClient = void 0;
7
+ const Filesystem_share_1 = __importDefault(require("./Filesystem.share"));
8
+ exports.FilesystemClient = Filesystem_share_1.default;
9
+ const AzureFileStorage_share_1 = __importDefault(require("./AzureFileStorage.share"));
10
+ exports.AzureStorageClient = AzureFileStorage_share_1.default;
11
+ const AzureBlobStorage_share_1 = __importDefault(require("./AzureBlobStorage.share"));
12
+ exports.AzureBlobClient = AzureBlobStorage_share_1.default;
13
+ const Mock_share_1 = __importDefault(require("./Mock.share"));
14
+ const available = {
15
+ filesystem: Filesystem_share_1.default,
16
+ mock: Mock_share_1.default,
17
+ azureStorage: AzureFileStorage_share_1.default,
18
+ azureBlob: AzureBlobStorage_share_1.default,
19
+ };
20
+ const ShareClientFactory = (type, options) => {
21
+ let client;
22
+ if (type === 'mock' || !type) {
23
+ client = new Mock_share_1.default(options);
24
+ }
25
+ if (type === 'filesystem') {
26
+ client = new Filesystem_share_1.default(options);
27
+ }
28
+ if (type === 'azureStorage') {
29
+ client = new AzureFileStorage_share_1.default(options);
30
+ }
31
+ if (type === 'azureBlob') {
32
+ client = new AzureBlobStorage_share_1.default(options);
33
+ }
34
+ return client;
35
+ };
36
+ exports.default = ShareClientFactory;
37
+ //# sourceMappingURL=ShareClientFactory.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareClientFactory.class.js","sourceRoot":"","sources":["../../src/ShareClientFactory.class.ts"],"names":[],"mappings":";;;;;;AAAA,0EAAkD;AA+ChD,2BA/CK,0BAAgB,CA+CL;AA9ClB,sFAA0D;AA+CxD,6BA/CK,gCAAkB,CA+CL;AA9CpB,sFAAuD;AA+CrD,0BA/CK,gCAAe,CA+CL;AA9CjB,8DAAsC;AAGtC,MAAM,SAAS,GAAG;IAChB,UAAU,EAAE,0BAAgB;IAC5B,IAAI,EAAE,oBAAU;IAChB,YAAY,EAAE,gCAAkB;IAChC,SAAS,EAAE,gCAAe;CAC3B,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAA4B,EAAE,OAA2B,EAAwB,EAAE;IAE7G,IAAI,MAAwC,CAAC;IAE7C,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE;QAE5B,MAAM,GAAG,IAAI,oBAAU,CAAC,OAAO,CAAC,CAAC;KAElC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE;QAEzB,MAAM,GAAG,IAAI,0BAAgB,CAAC,OAAO,CAAC,CAAC;KAExC;IAED,IAAI,IAAI,KAAK,cAAc,EAAE;QAE3B,MAAM,GAAG,IAAI,gCAAkB,CAAC,OAAO,CAAC,CAAC;KAE1C;IAED,IAAI,IAAI,KAAK,WAAW,EAAE;QAExB,MAAM,GAAG,IAAI,gCAAe,CAAC,OAAO,CAAC,CAAC;KAEvC;IAED,OAAO,MAA8B,CAAC;AAExC,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,194 @@
1
+ declare const _default: ({
2
+ $addFields: {
3
+ index: string;
4
+ data?: undefined;
5
+ };
6
+ $unwind?: undefined;
7
+ $lookup?: undefined;
8
+ $group?: undefined;
9
+ $replaceRoot?: undefined;
10
+ $project?: undefined;
11
+ } | {
12
+ $unwind: {
13
+ path: string;
14
+ preserveNullAndEmptyArrays: boolean;
15
+ };
16
+ $addFields?: undefined;
17
+ $lookup?: undefined;
18
+ $group?: undefined;
19
+ $replaceRoot?: undefined;
20
+ $project?: undefined;
21
+ } | {
22
+ $lookup: {
23
+ from: string;
24
+ as: string;
25
+ let: {
26
+ pid: string;
27
+ company: string;
28
+ project: string;
29
+ };
30
+ pipeline: ({
31
+ $unwind: {
32
+ path: string;
33
+ preserveNullAndEmptyArrays: boolean;
34
+ };
35
+ $lookup?: undefined;
36
+ $addFields?: undefined;
37
+ $project?: undefined;
38
+ $group?: undefined;
39
+ $replaceRoot?: undefined;
40
+ } | {
41
+ $lookup: {
42
+ from: string;
43
+ as: string;
44
+ let: {
45
+ pid: string;
46
+ };
47
+ pipeline: ({
48
+ $addFields: {
49
+ realId: {
50
+ $toObjectId: string;
51
+ };
52
+ };
53
+ $match?: undefined;
54
+ } | {
55
+ $match: {
56
+ $and: {
57
+ $expr: {
58
+ $eq: (string | boolean)[];
59
+ };
60
+ }[];
61
+ };
62
+ $addFields?: undefined;
63
+ })[];
64
+ };
65
+ $unwind?: undefined;
66
+ $addFields?: undefined;
67
+ $project?: undefined;
68
+ $group?: undefined;
69
+ $replaceRoot?: undefined;
70
+ } | {
71
+ $addFields: {
72
+ 'modules.modules': string;
73
+ };
74
+ $unwind?: undefined;
75
+ $lookup?: undefined;
76
+ $project?: undefined;
77
+ $group?: undefined;
78
+ $replaceRoot?: undefined;
79
+ } | {
80
+ $project: {
81
+ moduleData: number;
82
+ };
83
+ $unwind?: undefined;
84
+ $lookup?: undefined;
85
+ $addFields?: undefined;
86
+ $group?: undefined;
87
+ $replaceRoot?: undefined;
88
+ } | {
89
+ $group: {
90
+ _id: string;
91
+ modules: {
92
+ $push: string;
93
+ };
94
+ main: {
95
+ $first: string;
96
+ };
97
+ };
98
+ $unwind?: undefined;
99
+ $lookup?: undefined;
100
+ $addFields?: undefined;
101
+ $project?: undefined;
102
+ $replaceRoot?: undefined;
103
+ } | {
104
+ $replaceRoot: {
105
+ newRoot: {
106
+ $mergeObjects: (string | {
107
+ modules: string;
108
+ })[];
109
+ };
110
+ };
111
+ $unwind?: undefined;
112
+ $lookup?: undefined;
113
+ $addFields?: undefined;
114
+ $project?: undefined;
115
+ $group?: undefined;
116
+ } | {
117
+ $match: {
118
+ $and: {
119
+ $expr: {
120
+ $eq: string[];
121
+ };
122
+ }[];
123
+ };
124
+ })[];
125
+ };
126
+ $addFields?: undefined;
127
+ $unwind?: undefined;
128
+ $group?: undefined;
129
+ $replaceRoot?: undefined;
130
+ $project?: undefined;
131
+ } | {
132
+ $group: {
133
+ _id: string;
134
+ main: {
135
+ $first: string;
136
+ };
137
+ data: {
138
+ $push: string;
139
+ };
140
+ };
141
+ $addFields?: undefined;
142
+ $unwind?: undefined;
143
+ $lookup?: undefined;
144
+ $replaceRoot?: undefined;
145
+ $project?: undefined;
146
+ } | {
147
+ $addFields: {
148
+ data: {
149
+ $arrayToObject: {
150
+ $map: {
151
+ input: string;
152
+ as: string;
153
+ in: {
154
+ k: string;
155
+ v: string;
156
+ };
157
+ };
158
+ };
159
+ };
160
+ index?: undefined;
161
+ };
162
+ $unwind?: undefined;
163
+ $lookup?: undefined;
164
+ $group?: undefined;
165
+ $replaceRoot?: undefined;
166
+ $project?: undefined;
167
+ } | {
168
+ $replaceRoot: {
169
+ newRoot: {
170
+ $mergeObjects: (string | {
171
+ childData: {
172
+ data: string;
173
+ index: string;
174
+ };
175
+ })[];
176
+ };
177
+ };
178
+ $addFields?: undefined;
179
+ $unwind?: undefined;
180
+ $lookup?: undefined;
181
+ $group?: undefined;
182
+ $project?: undefined;
183
+ } | {
184
+ $project: {
185
+ data: number;
186
+ index: number;
187
+ };
188
+ $addFields?: undefined;
189
+ $unwind?: undefined;
190
+ $lookup?: undefined;
191
+ $group?: undefined;
192
+ $replaceRoot?: undefined;
193
+ })[];
194
+ export default _default;