@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,201 @@
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.PublishService = void 0;
7
+ const storage_queue_1 = require("@azure/storage-queue");
8
+ const publishData_aggregation_1 = __importDefault(require("../aggegations/publishData.aggregation"));
9
+ const cleanObject_1 = __importDefault(require("../helpers/cleanObject"));
10
+ const models_1 = require("../../models");
11
+ const main_1 = require("../../main");
12
+ const resultData_aggregation_1 = __importDefault(require("../aggegations/resultData.aggregation"));
13
+ class PublishService extends main_1.Immutable {
14
+ constructor(connectionString, queue) {
15
+ super();
16
+ this.model = models_1.PublishModel;
17
+ if (connectionString && queue) {
18
+ this.service = storage_queue_1.QueueServiceClient.fromConnectionString(connectionString);
19
+ this.queue = queue;
20
+ this.client = this.service.getQueueClient(queue);
21
+ }
22
+ }
23
+ async publish(company, project, referenceId, method, pre, planned, app, model, type, user, source) {
24
+ const double = await this.getActiveExists(company, project, referenceId, method, pre, planned, app, model, type);
25
+ if (double)
26
+ throw new Error('PUBLISH_ALREADY_IN_QUEUE');
27
+ await this.client.createIfNotExists();
28
+ const dataObject = {
29
+ company,
30
+ project,
31
+ referenceId,
32
+ method,
33
+ type,
34
+ state: planned ? 'planned' : 'inQueue',
35
+ };
36
+ if (type === 'universal') {
37
+ if (app)
38
+ dataObject.appPublish = app;
39
+ if (model)
40
+ dataObject.modelPublish = model;
41
+ }
42
+ if (pre)
43
+ dataObject.pre = pre;
44
+ if (planned)
45
+ dataObject.planned = planned;
46
+ await this.create(dataObject, user, source);
47
+ delete dataObject.history;
48
+ if (!planned) {
49
+ await this.client.sendMessage(Buffer.from(JSON.stringify(dataObject)).toString('base64'));
50
+ }
51
+ }
52
+ async publishPlanned(planned, user, app) {
53
+ await this.client.sendMessage(Buffer.from(JSON.stringify(planned)).toString('base64'));
54
+ await this.setState(planned._id, 'inQueue', user, app);
55
+ }
56
+ setState(_id, state, user, app) {
57
+ return this.immutable(_id, { state }, user, 'change', app, undefined, undefined, 'stateChange');
58
+ }
59
+ setResult(_id, result, state, user, app) {
60
+ const update = { state };
61
+ if (result)
62
+ update.result = result;
63
+ return this.immutable(_id, update, user, 'change', app, undefined, undefined, 'stateChangeResult');
64
+ }
65
+ async cancel(_id, company, project, user, app) {
66
+ const found = await this.model.db.countDocuments({
67
+ _id, company, project, state: { $in: ['new', 'planned', 'inQueue'] },
68
+ });
69
+ if (!found)
70
+ throw new Error('PUBLISH_NOT_FOUND');
71
+ return this.immutable({
72
+ _id,
73
+ }, { state: 'canceled' }, user, 'change', app, undefined, undefined, 'stateChange');
74
+ }
75
+ getActiveExists(company, project, referenceId, method, pre, planned, appPublish, modelPublish, type) {
76
+ const select = {
77
+ company,
78
+ project,
79
+ appPublish,
80
+ modelPublish,
81
+ referenceId,
82
+ type,
83
+ method,
84
+ planned,
85
+ pre,
86
+ state: { $in: ['new', 'inQueue', 'planned'] },
87
+ };
88
+ (0, cleanObject_1.default)(select);
89
+ return models_1.PublishModel.db.countDocuments(select).then((count) => count > 0);
90
+ }
91
+ getLast(company, project, appPublish, modelPublish) {
92
+ return models_1.PublishModel.db.findOne({
93
+ company,
94
+ project,
95
+ appPublish,
96
+ modelPublish,
97
+ state: 'success',
98
+ }, { sort: { 'history.created': -1 } });
99
+ }
100
+ getPlanned(company, project, appPublish, modelPublish) {
101
+ const select = {
102
+ company,
103
+ project,
104
+ appPublish,
105
+ modelPublish,
106
+ state: 'planned',
107
+ planned: { $lte: new Date() },
108
+ };
109
+ (0, cleanObject_1.default)(select);
110
+ return models_1.PublishModel.db.find(select, { sort: { planned: -1 } })
111
+ .toArray();
112
+ }
113
+ async handlePlanned(user, app) {
114
+ const planned = await this.getPlanned();
115
+ const all = planned.map((single) => this.publishPlanned(single, user, app));
116
+ return all;
117
+ }
118
+ single(_id, company, project) {
119
+ return this.model.db.aggregate([
120
+ {
121
+ $match: { _id, company, project },
122
+ },
123
+ ...resultData_aggregation_1.default,
124
+ {
125
+ $project: {
126
+ editorData: 0,
127
+ universalData: 0,
128
+ },
129
+ },
130
+ ])
131
+ .toArray()
132
+ .then((data) => {
133
+ var _a, _b, _c;
134
+ if (!data.length)
135
+ return null;
136
+ const single = data[0];
137
+ if (!((_b = (_a = single.result) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.state)) {
138
+ delete single.result;
139
+ return single;
140
+ }
141
+ const statistics = {
142
+ affected: 0,
143
+ error: 0,
144
+ success: 0,
145
+ successPercent: 0,
146
+ };
147
+ single.statistics = statistics;
148
+ (_c = single.result) === null || _c === void 0 ? void 0 : _c.map((result) => {
149
+ if (!(result === null || result === void 0 ? void 0 : result.state))
150
+ return;
151
+ statistics.affected += 1;
152
+ if (result.error)
153
+ statistics.error += 1;
154
+ if (!result.error)
155
+ statistics.success += 1;
156
+ });
157
+ single.statistics.successPercent = +((single.statistics.success / single.statistics.affected) * 100).toFixed(0);
158
+ return single;
159
+ });
160
+ }
161
+ async list(company, project, appPublish, modelPublish, state, method, type, pre, limit, skip, sort) {
162
+ const select = {
163
+ company,
164
+ project,
165
+ appPublish,
166
+ modelPublish,
167
+ state,
168
+ method,
169
+ type,
170
+ pre,
171
+ };
172
+ (0, cleanObject_1.default)(select);
173
+ const all = await this.model.db.countDocuments(select);
174
+ const aggregation = await this.model.db.aggregate([
175
+ {
176
+ $match: select,
177
+ },
178
+ {
179
+ $sort: sort || { 'history.created': 1 },
180
+ },
181
+ {
182
+ $limit: limit || 0,
183
+ },
184
+ {
185
+ $skip: skip || 0,
186
+ },
187
+ ...publishData_aggregation_1.default,
188
+ {
189
+ $project: {
190
+ result: 0,
191
+ editorData: 0,
192
+ universalData: 0,
193
+ },
194
+ },
195
+ ]).toArray();
196
+ return { data: aggregation, all, count: aggregation.length };
197
+ }
198
+ }
199
+ exports.PublishService = PublishService;
200
+ exports.default = new PublishService(process.env.PUBLISH_QUEUE_CONNECTION_STRING, process.env.PUBLISH_QUEUE);
201
+ //# sourceMappingURL=publish.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.service.js","sourceRoot":"","sources":["../../../src/services/publish.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import Immutable from '../Immutable.class';
2
+ import { Secret } from '../models/secrets.model';
3
+ export declare class SecretService extends Immutable<Secret> {
4
+ model: import("../classes/modelv2.class").default<Secret>;
5
+ single(company: string, project: string, app: string, model: string, id: string): Promise<import("mongodb").WithId<Secret> | null>;
6
+ singleUpsert(company: string, project: string, affectedApp: string | undefined, model: string | undefined, id: string, user: string, source: string): Promise<import("mongodb").WithId<Secret> | {
7
+ company: string;
8
+ project: string;
9
+ affectedApp: string | undefined;
10
+ model: string | undefined;
11
+ id: string;
12
+ key: string;
13
+ }>;
14
+ refresh(company: string, project: string, affectedApp: string | undefined, model: string | undefined, id: string, user: string, source: string): Promise<{
15
+ company: string;
16
+ project: string;
17
+ affectedApp: string | undefined;
18
+ model: string | undefined;
19
+ id: string;
20
+ key: string;
21
+ }>;
22
+ }
23
+ declare const _default: SecretService;
24
+ export default _default;
@@ -0,0 +1,50 @@
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.SecretService = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const Immutable_class_1 = __importDefault(require("../Immutable.class"));
9
+ const cleanObject_1 = __importDefault(require("../helpers/cleanObject"));
10
+ const models_1 = require("../../models");
11
+ class SecretService extends Immutable_class_1.default {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.model = models_1.SecretsModel;
15
+ }
16
+ single(company, project, app, model, id) {
17
+ return models_1.SecretsModel.db.findOne({
18
+ company, project, app, model, id,
19
+ });
20
+ }
21
+ async singleUpsert(company, project, affectedApp, model, id, user, source) {
22
+ const secret = await models_1.SecretsModel.db.findOne({
23
+ company, project, affectedApp, model, id,
24
+ });
25
+ if (secret)
26
+ return secret;
27
+ const newSecret = {
28
+ company, project, affectedApp, model, id, key: crypto_1.default.randomBytes(32).toString('hex'),
29
+ };
30
+ (0, cleanObject_1.default)(newSecret);
31
+ await this.create(newSecret, user, source);
32
+ return newSecret;
33
+ }
34
+ async refresh(company, project, affectedApp, model, id, user, source) {
35
+ const secret = await models_1.SecretsModel.db.findOne({
36
+ company, project, affectedApp, model, id,
37
+ });
38
+ if (!secret)
39
+ throw new Error('SECRET_NOT_FOUND');
40
+ const newSecret = {
41
+ company, project, affectedApp, model, id, key: crypto_1.default.randomBytes(32).toString('hex'),
42
+ };
43
+ (0, cleanObject_1.default)(newSecret);
44
+ await this.immutable({ _id: secret._id }, { key: newSecret.key }, user, 'change', source, undefined, undefined, 'refresh');
45
+ return newSecret;
46
+ }
47
+ }
48
+ exports.SecretService = SecretService;
49
+ exports.default = new SecretService();
50
+ //# sourceMappingURL=secret.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.service.js","sourceRoot":"","sources":["../../../src/services/secret.service.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,yEAA2C;AAC3C,yEAAiD;AACjD,yCAA4C;AAG5C,MAAa,aAAc,SAAQ,yBAAiB;IAApD;;QAEE,UAAK,GAAG,qBAAY,CAAC;IAqEvB,CAAC;IAnEC,MAAM,CAAC,OAAe,EAAE,OAAe,EAAE,GAAW,EAAE,KAAa,EAAE,EAAU;QAE7E,OAAO,qBAAY,CAAC,EAAE,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;SACjC,CAAC,CAAC;IAEL,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,OAAe,EACf,WAA+B,EAC/B,KAAyB,EACzB,EAAU,EACV,IAAY,EACZ,MAAc;QAGd,MAAM,MAAM,GAAG,MAAM,qBAAY,CAAC,EAAE,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;SACzC,CAAC,CAAC;QAEH,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SACtF,CAAC;QAEF,IAAA,qBAAW,EAAC,SAAS,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE3C,OAAO,SAAS,CAAC;IAEnB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAe,EACf,OAAe,EACf,WAA+B,EAC/B,KAAyB,EACzB,EAAU,EACV,IAAY,EACZ,MAAc;QAGd,MAAM,MAAM,GAAG,MAAM,qBAAY,CAAC,EAAE,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;SACzC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SACtF,CAAC;QAEF,IAAA,qBAAW,EAAC,SAAS,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,SAAS,CAClB,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EACnB,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAChF,CAAC;QAEF,OAAO,SAAS,CAAC;IAEnB,CAAC;CAEF;AAvED,sCAuEC;AAED,kBAAe,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Filter, WithId, ObjectId } from 'mongodb';
2
+ import { DatabaseQueryOptions } from '../../interfaces';
3
+ import { Immutable, Modelv2 } from '../../main';
4
+ export declare interface UniversalInterface {
5
+ [key: string]: unknown;
6
+ id?: string | number;
7
+ _id?: ObjectId;
8
+ referenceId?: ObjectId;
9
+ company: string;
10
+ }
11
+ export default class UniversalService extends Immutable<UniversalInterface> {
12
+ limit: number;
13
+ search: string[];
14
+ constructor(model: Modelv2<UniversalInterface>);
15
+ single(id: string | number, company: string, project: string, app: string, model: string): Promise<WithId<UniversalInterface> | null>;
16
+ existsById(id: string | number, company: string, project: string, app: string, model: string): Promise<boolean>;
17
+ list(query: Filter<WithId<UniversalInterface>>, select: Record<string, number>, site: number, limit: number, model: Modelv2<UniversalInterface>, sort?: string, order?: number): Promise<{
18
+ data: WithId<UniversalInterface>[];
19
+ all: number;
20
+ count: number;
21
+ }>;
22
+ buildQuery(query: Filter<WithId<UniversalInterface>>, company?: string, project?: string | boolean, options?: DatabaseQueryOptions): Filter<WithId<UniversalInterface>>;
23
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const main_1 = require("../../main");
4
+ class UniversalService extends main_1.Immutable {
5
+ constructor(model) {
6
+ super();
7
+ this.limit = 30;
8
+ this.search = ['name', 'id'];
9
+ this.model = model;
10
+ }
11
+ single(id, company, project, app, model) {
12
+ return this.model.db.findOne({
13
+ id,
14
+ company,
15
+ project,
16
+ app,
17
+ model,
18
+ });
19
+ }
20
+ existsById(id, company, project, app, model) {
21
+ return this.model.db
22
+ .countDocuments({
23
+ id,
24
+ company,
25
+ project,
26
+ app,
27
+ model,
28
+ })
29
+ .then((found) => found > 0);
30
+ }
31
+ list(query, select, site, limit, model, sort, order) {
32
+ let realSite = 0;
33
+ let realSelect;
34
+ let realSort = {};
35
+ let all;
36
+ /**
37
+ * see comment from this function
38
+ */
39
+ if (site)
40
+ realSite = site - 1;
41
+ const skipLimit = main_1.ControllerBase.getLimit(realSite, limit, this.limit);
42
+ realSelect = { history: 0 };
43
+ if (select) {
44
+ realSelect = Object.assign(Object.assign({}, select), realSelect);
45
+ }
46
+ if (sort && order) {
47
+ realSort[`${sort === 'updated' ? 'history.updated' : sort}`] = +order;
48
+ }
49
+ else {
50
+ realSort = { _id: 1 };
51
+ }
52
+ return model.db
53
+ .countDocuments(query)
54
+ .then((count) => {
55
+ all = count;
56
+ return model.db
57
+ .find(query, { projection: realSelect })
58
+ .limit(skipLimit.limit)
59
+ .skip(skipLimit.skip)
60
+ .sort(realSort)
61
+ .toArray();
62
+ })
63
+ .then((data) => ({ data, all, count: data.length }));
64
+ }
65
+ buildQuery(query, company, project, options) {
66
+ const realQuery = Object.assign({}, query);
67
+ const orArray = [];
68
+ let tags;
69
+ let keepTags = false;
70
+ let keepSearch = false;
71
+ let keepSort = false;
72
+ if (company)
73
+ realQuery.company = company;
74
+ if (project)
75
+ realQuery.project = project;
76
+ if (project === false)
77
+ realQuery.project = { $exists: false };
78
+ if (options) {
79
+ if (options.keepTags)
80
+ keepTags = true;
81
+ if (options.keepSearch)
82
+ keepSearch = true;
83
+ if (options.keepSort)
84
+ keepSort = true;
85
+ }
86
+ if (!keepSort) {
87
+ delete realQuery.sort;
88
+ delete realQuery.order;
89
+ }
90
+ if (query.available) {
91
+ realQuery.available = query.available === 'true';
92
+ }
93
+ /**
94
+ * make sure tags are an array
95
+ */
96
+ if (query.tags && !keepTags) {
97
+ if (!Array.isArray(query.tags)) {
98
+ tags = [query.tags];
99
+ }
100
+ else {
101
+ tags = query.tags;
102
+ }
103
+ realQuery.tags = { $in: tags };
104
+ }
105
+ if (query.search && !keepSearch) {
106
+ if (this.search.length > 1) {
107
+ this.search.forEach((single) => {
108
+ orArray.push({
109
+ [single]: {
110
+ $regex: query.search.toLowerCase().trim(),
111
+ $options: 'i',
112
+ },
113
+ });
114
+ });
115
+ realQuery.$or = orArray;
116
+ }
117
+ else {
118
+ realQuery[this.search[0]] = {
119
+ $regex: query.search.toLowerCase().trim(),
120
+ $options: 'i',
121
+ };
122
+ }
123
+ delete realQuery.search;
124
+ }
125
+ return realQuery;
126
+ }
127
+ }
128
+ exports.default = UniversalService;
129
+ //# sourceMappingURL=universal.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal.service.js","sourceRoot":"","sources":["../../../src/services/universal.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { ShareClientInterface } from '../interfaces';
2
+ export default class SSlChallenge {
3
+ company: string;
4
+ project: string;
5
+ shareClient: ShareClientInterface;
6
+ constructor(company: string, project: string, shareClient: ShareClientInterface);
7
+ init(data: any): void;
8
+ get(data: any): void;
9
+ /**
10
+ * create the key file in the right folders
11
+ *
12
+ * @param {*} data
13
+ * @memberof SslChallenge
14
+ */
15
+ set(data: any): Promise<void>;
16
+ remove(data: any): Promise<void>;
17
+ /**
18
+ * create a folder string
19
+ *
20
+ * @param {string[]} [add]
21
+ * @returns
22
+ * @memberof SslChallenge
23
+ */
24
+ getDirectory(add?: string[]): string;
25
+ /**
26
+ * creates .well-known/acme-challange if they not exists
27
+ *
28
+ * @param {ShareClient} shareClient
29
+ * @returns
30
+ * @memberof SslChallenge
31
+ */
32
+ createDirectories(): Promise<void>;
33
+ }
@@ -0,0 +1,63 @@
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 logger_1 = __importDefault(require("./logger"));
7
+ class SSlChallenge {
8
+ constructor(company, project, shareClient) {
9
+ this.company = company;
10
+ this.project = project;
11
+ this.shareClient = shareClient;
12
+ }
13
+ init(data) {
14
+ logger_1.default.debug('CHALLENGE INIT', data);
15
+ }
16
+ get(data) {
17
+ logger_1.default.debug('CHALLENGE GET', data);
18
+ }
19
+ /**
20
+ * create the key file in the right folders
21
+ *
22
+ * @param {*} data
23
+ * @memberof SslChallenge
24
+ */
25
+ async set(data) {
26
+ const { token } = data.challenge;
27
+ const key = data.challenge.keyAuthorization;
28
+ await this.createDirectories();
29
+ await this.shareClient.create(`user/${this.getDirectory(['hosting', '.well-known', 'acme-challenge'])}`, token, key);
30
+ logger_1.default.debug('CHALLENGE SET', data);
31
+ }
32
+ async remove(data) {
33
+ await this.shareClient.remove(`user/${this.getDirectory(['hosting', '.well-known', 'acme-challenge'])}`, data.challenge.token);
34
+ logger_1.default.debug('CHALLENGE REMOVED', data);
35
+ }
36
+ /**
37
+ * create a folder string
38
+ *
39
+ * @param {string[]} [add]
40
+ * @returns
41
+ * @memberof SslChallenge
42
+ */
43
+ getDirectory(add) {
44
+ let pathArray = [this.company, this.project];
45
+ if (add)
46
+ pathArray = [...pathArray, ...add];
47
+ return `${pathArray.join('/')}`;
48
+ }
49
+ /**
50
+ * creates .well-known/acme-challange if they not exists
51
+ *
52
+ * @param {ShareClient} shareClient
53
+ * @returns
54
+ * @memberof SslChallenge
55
+ */
56
+ async createDirectories() {
57
+ await this.shareClient.createFolder('user', this.getDirectory());
58
+ await this.shareClient.createFolder('user', this.getDirectory(['hosting', '.well-known']));
59
+ await this.shareClient.createFolder('user', this.getDirectory(['hosting', '.well-known', 'acme-challenge']));
60
+ }
61
+ }
62
+ exports.default = SSlChallenge;
63
+ //# sourceMappingURL=ssl-challenge.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssl-challenge.class.js","sourceRoot":"","sources":["../../src/ssl-challenge.class.ts"],"names":[],"mappings":";;;;;AACA,sDAA8B;AAE9B,MAAqB,YAAY;IAQ/B,YAAY,OAAe,EAAE,OAAe,EAAE,WAAiC;QAE7E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAEjC,CAAC;IAED,IAAI,CAAC,IAAI;QAEP,gBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEvC,CAAC;IAED,GAAG,CAAC,IAAI;QAEN,gBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEtC,CAAC;IAED;;;;;SAKK;IACL,KAAK,CAAC,GAAG,CAAC,IAAI;QAEZ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAE5C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAErH,gBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAI;QAEf,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE/H,gBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAE1C,CAAC;IAED;;;;;;SAMK;IACL,YAAY,CAAC,GAAc;QAEzB,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,GAAG;YAAE,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,GAAG,CAAC,CAAC;QAE5C,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAElC,CAAC;IAED;;;;;;SAMK;IACL,KAAK,CAAC,iBAAiB;QAErB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE/G,CAAC;CAEF;AAvFD,+BAuFC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@lilaquadrat/studio",
3
+ "version": "2.2.0",
4
+ "description": "classes and tools for STUDIO",
5
+ "license": "MIT",
6
+ "homepage": "https://lilaquadrat.de",
7
+ "author": {
8
+ "email": "m.schuebel@lila2.de",
9
+ "name": "Mathias Schübel",
10
+ "url": "https://lilaquadrat.de"
11
+ },
12
+ "scripts": {
13
+ "start": "tsc --watch",
14
+ "prepublish": "tsc"
15
+ },
16
+ "files": [
17
+ "lib/**/*"
18
+ ],
19
+ "main": "lib/main.js",
20
+ "types": "lib/main.d.ts",
21
+ "devDependencies": {
22
+ "@types/express": "^4.17.13",
23
+ "@types/json-schema": "^7.0.5",
24
+ "@types/mime-types": "^2.1.1",
25
+ "@types/unzipper": "^0.10.4",
26
+ "@typescript-eslint/eslint-plugin": "^3.9.1",
27
+ "eslint": "^7.7.0",
28
+ "eslint-config-airbnb-base": "^14.2.0",
29
+ "eslint-config-airbnb-typescript": "^9.0.0",
30
+ "eslint-import-resolver-typescript": "^2.2.1",
31
+ "eslint-plugin-import": "^2.22.0",
32
+ "eslint-plugin-promise": "^4.2.1"
33
+ },
34
+ "peerDependencies": {
35
+ "express": "^4.17.1"
36
+ },
37
+ "dependencies": {
38
+ "@azure/storage-blob": "^12.2.0-preview.1",
39
+ "@azure/storage-file-share": "^12.2.0-preview.1",
40
+ "@azure/storage-queue": "^12.7.0",
41
+ "@root/acme": "^3.1.0",
42
+ "@root/csr": "^0.8.1",
43
+ "@root/keypairs": "^0.10.0",
44
+ "@root/pem": "^1.0.4",
45
+ "ajv": "^8.8.2",
46
+ "ajv-formats": "^2.1.0",
47
+ "ajv-keywords": "^5.0.0",
48
+ "express": "^4.17.1",
49
+ "file-type": "^14.7.1",
50
+ "handlebars": "^4.7.6",
51
+ "mime-types": "^2.1.32",
52
+ "mongo-connection-string": "^0.1.5",
53
+ "mongodb": "^4.2.0",
54
+ "optional-require": "^1.1.0",
55
+ "prettyjson": "^1.2.1",
56
+ "typescript": "^4.3.2",
57
+ "unzipper": "^0.10.11",
58
+ "winston": "^3.3.3"
59
+ }
60
+ }