@lilaquadrat/studio 2.4.5 → 2.4.6

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 (59) hide show
  1. package/lib/models.d.ts +2 -1
  2. package/lib/models.d.ts.map +1 -1
  3. package/lib/models.js +3 -1
  4. package/lib/models.js.map +1 -1
  5. package/lib/src/Immutable.class.d.ts +5 -3
  6. package/lib/src/Immutable.class.d.ts.map +1 -1
  7. package/lib/src/Immutable.class.js +3 -2
  8. package/lib/src/Immutable.class.js.map +1 -1
  9. package/lib/src/classes/modelv2.class.d.ts.map +1 -1
  10. package/lib/src/classes/modelv2.class.js +5 -1
  11. package/lib/src/classes/modelv2.class.js.map +1 -1
  12. package/lib/src/classes/mongo.class.d.ts +1 -1
  13. package/lib/src/classes/mongo.class.d.ts.map +1 -1
  14. package/lib/src/classes/mongo.class.js.map +1 -1
  15. package/lib/src/http.challenge.class.d.ts +1 -1
  16. package/lib/src/http.challenge.class.d.ts.map +1 -1
  17. package/lib/src/http.challenge.class.js +1 -0
  18. package/lib/src/http.challenge.class.js.map +1 -1
  19. package/lib/src/interfaces/DomainConf.interface.d.ts +5 -3
  20. package/lib/src/interfaces/DomainConf.interface.d.ts.map +1 -1
  21. package/lib/src/models/certificate.model.d.ts +1 -0
  22. package/lib/src/models/certificate.model.d.ts.map +1 -1
  23. package/lib/src/models/certificate.model.js +2 -0
  24. package/lib/src/models/certificate.model.js.map +1 -1
  25. package/lib/src/models/domain.model.d.ts +2 -1
  26. package/lib/src/models/domain.model.d.ts.map +1 -1
  27. package/lib/src/models/domain.model.js.map +1 -1
  28. package/lib/src/models/hosting.model.d.ts +10 -0
  29. package/lib/src/models/hosting.model.d.ts.map +1 -0
  30. package/lib/src/models/hosting.model.js +20 -0
  31. package/lib/src/models/hosting.model.js.map +1 -0
  32. package/lib/src/models/publish-method.model.d.ts +2 -0
  33. package/lib/src/models/publish-method.model.d.ts.map +1 -1
  34. package/lib/src/models/publish-method.model.js +28 -0
  35. package/lib/src/models/publish-method.model.js.map +1 -1
  36. package/lib/src/services/certificates.service.d.ts +5 -2
  37. package/lib/src/services/certificates.service.d.ts.map +1 -1
  38. package/lib/src/services/conf.service.d.ts +1 -3
  39. package/lib/src/services/conf.service.d.ts.map +1 -1
  40. package/lib/src/services/conf.service.js +7 -6
  41. package/lib/src/services/conf.service.js.map +1 -1
  42. package/lib/src/services/domains.service.d.ts +15 -1
  43. package/lib/src/services/domains.service.d.ts.map +1 -1
  44. package/lib/src/services/domains.service.js +122 -7
  45. package/lib/src/services/domains.service.js.map +1 -1
  46. package/lib/src/services/editor.service.d.ts +2 -2
  47. package/lib/src/services/editor.service.d.ts.map +1 -1
  48. package/lib/src/services/editor.service.js +7 -7
  49. package/lib/src/services/editor.service.js.map +1 -1
  50. package/lib/src/services/editorBase.service.d.ts +15 -5
  51. package/lib/src/services/editorBase.service.d.ts.map +1 -1
  52. package/lib/tests/conf.class.spec.d.ts +1 -0
  53. package/lib/tests/conf.class.spec.js +348 -0
  54. package/lib/tests/conf.class.spec.js.map +1 -0
  55. package/lib/tests/editorService.spec.d.ts +1 -0
  56. package/lib/tests/editorService.spec.d.ts.map +1 -0
  57. package/lib/tests/editorService.spec.js +35 -0
  58. package/lib/tests/editorService.spec.js.map +1 -0
  59. package/package.json +13 -3
@@ -0,0 +1,348 @@
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
+ const handlebars_1 = require("handlebars");
8
+ const conf_service_1 = __importDefault(require("../src/services/conf.service"));
9
+ describe('conf.class', () => {
10
+ let confClass;
11
+ let baseConf;
12
+ let streamConf;
13
+ beforeAll((done) => {
14
+ Promise.all([
15
+ new Promise((resolve) => {
16
+ fs_1.default.readFile('./test/mock/files/alt.conf', (err, buffer) => {
17
+ if (err)
18
+ throw new handlebars_1.Exception('no base conf');
19
+ baseConf = buffer.toString().trim();
20
+ resolve(baseConf);
21
+ });
22
+ }),
23
+ new Promise((resolve) => {
24
+ fs_1.default.readFile('./test/mock/files/stream.conf', (err, buffer) => {
25
+ if (err)
26
+ throw new handlebars_1.Exception('no base conf');
27
+ streamConf = buffer.toString().trim();
28
+ resolve(streamConf);
29
+ });
30
+ }),
31
+ ])
32
+ .then(() => {
33
+ done();
34
+ });
35
+ });
36
+ beforeEach(() => {
37
+ confClass = new conf_service_1.default('mock');
38
+ });
39
+ describe('base', () => {
40
+ it('render conf basic', () => {
41
+ expect(confClass.render(['domain1.de', 'domain2.de'], 'test.de', 'project1', 'company1', 'base {{company}} {{project}}')).toBe('base company1 project1');
42
+ });
43
+ });
44
+ describe('alt.conf', () => {
45
+ it('render conf alt.conf - no domains', () => {
46
+ const renderedConf = confClass.render([], 'default-domain.de', 'project', 'company', baseConf);
47
+ expect(renderedConf).toBe(`company project
48
+
49
+ server_name default-domain default-domain.de;`);
50
+ });
51
+ it('render conf alt.conf - no domains, no default domain', () => {
52
+ const renderedConf = confClass.render([], '', 'project', 'company', baseConf);
53
+ expect(renderedConf).toBe('company project');
54
+ });
55
+ it('render conf alt.conf - domains, default domain', () => {
56
+ const renderedConf = confClass.render(['domain1.de', 'domain2.de'], 'default-domain.de', 'project', 'company', baseConf);
57
+ expect(renderedConf).toBe(`company project
58
+ server_name domains domain1.de domain2.de ;
59
+ server_name default-domain default-domain.de;`);
60
+ });
61
+ });
62
+ describe('stream.conf', () => {
63
+ it('render conf - domains', () => {
64
+ const renderedConf = confClass.renderStreamConf([
65
+ {
66
+ domain: 'domain1.de', port: 8090, company: 'company1', project: 'project1',
67
+ },
68
+ {
69
+ domain: 'domain2.de', port: 8091, company: 'company2', project: 'project2',
70
+ },
71
+ ], streamConf);
72
+ expect(renderedConf).toBe(`stream {
73
+ upstream domain1.de {
74
+ server 127.0.0.1:8090;
75
+ server 127.0.0.1:7777 backup;
76
+ }
77
+ upstream domain2.de {
78
+ server 127.0.0.1:8091;
79
+ server 127.0.0.1:7777 backup;
80
+ }
81
+ map $ssl_preread_server_name $target_server {
82
+ domain1.de "company1-project1";
83
+ domain2.de "company2-project2";
84
+ }
85
+ server {
86
+ listen 443;
87
+ ssl_preread on;
88
+ proxy_pass $target_server;
89
+ }
90
+ }`);
91
+ });
92
+ it('render conf no domains', () => {
93
+ const renderedConf = confClass.renderStreamConf([], streamConf);
94
+ expect(renderedConf).toBe(`stream {
95
+ map $ssl_preread_server_name $target_server {
96
+ }
97
+ server {
98
+ listen 443;
99
+ ssl_preread on;
100
+ proxy_pass $target_server;
101
+ }
102
+ }`);
103
+ });
104
+ });
105
+ describe('validate domains', () => {
106
+ it('valid domains', () => {
107
+ const domains = confClass.validateDomains(['domain1.de', 'domain2.de']);
108
+ expect(domains.length).toBe(2);
109
+ expect(domains[0]).toBe('domain1.de');
110
+ expect(domains[1]).toBe('domain2.de');
111
+ });
112
+ it('invalid domains', () => {
113
+ const domains = confClass.validateDomains(['domain1.de', 'domain2.de', '']);
114
+ expect(domains.length).toBe(2);
115
+ expect(domains[0]).toBe('domain1.de');
116
+ expect(domains[1]).toBe('domain2.de');
117
+ });
118
+ it('double domains', () => {
119
+ const domains = confClass.validateDomains(['domain1.de', 'domain2.de', '', 'domain1.de']);
120
+ expect(domains.length).toBe(2);
121
+ expect(domains[0]).toBe('domain1.de');
122
+ expect(domains[1]).toBe('domain2.de');
123
+ });
124
+ });
125
+ describe('validate upstream domains', () => {
126
+ it('valid entries', () => {
127
+ const domains = confClass.validateStreamDomains([
128
+ {
129
+ domain: 'domain1.de',
130
+ port: 8091,
131
+ company: 'company1',
132
+ project: 'project1',
133
+ },
134
+ {
135
+ domain: 'domain2.de',
136
+ port: 8092,
137
+ company: 'company2',
138
+ project: 'project2',
139
+ },
140
+ ]);
141
+ expect(domains.length).toBe(2);
142
+ expect(domains[0]).toEqual({
143
+ domain: 'domain1.de', company: 'company1', project: 'project1', port: 8091,
144
+ });
145
+ expect(domains[1]).toEqual({
146
+ domain: 'domain2.de', company: 'company2', project: 'project2', port: 8092,
147
+ });
148
+ });
149
+ it('invalid entries', () => {
150
+ const domains = confClass.validateStreamDomains([
151
+ {
152
+ domain: 'domain1.de',
153
+ port: 8091,
154
+ company: 'company1',
155
+ project: 'project1',
156
+ },
157
+ {
158
+ domain: 'domain2.de',
159
+ port: 8092,
160
+ company: 'company2',
161
+ project: 'project2',
162
+ },
163
+ {
164
+ domain: '',
165
+ port: 8092,
166
+ company: 'company2',
167
+ project: 'project2',
168
+ },
169
+ {
170
+ domain: 'domain3.de',
171
+ port: 0,
172
+ company: 'company2',
173
+ project: 'project2',
174
+ },
175
+ {
176
+ domain: 'domain3.de',
177
+ port: 0,
178
+ company: '',
179
+ project: 'project1',
180
+ },
181
+ {
182
+ domain: 'domain3.de',
183
+ port: 0,
184
+ company: 'company',
185
+ project: '',
186
+ },
187
+ ]);
188
+ expect(domains.length).toBe(2);
189
+ expect(domains[0]).toEqual({
190
+ domain: 'domain1.de', company: 'company1', project: 'project1', port: 8091,
191
+ });
192
+ expect(domains[1]).toEqual({
193
+ domain: 'domain2.de', company: 'company2', project: 'project2', port: 8092,
194
+ });
195
+ });
196
+ it('double entries - same port', () => {
197
+ const domains = confClass.validateStreamDomains([
198
+ {
199
+ domain: 'domain1.de',
200
+ port: 8091,
201
+ company: 'company1',
202
+ project: 'project1',
203
+ },
204
+ {
205
+ domain: 'domain2.de',
206
+ port: 8092,
207
+ company: 'company2',
208
+ project: 'project2',
209
+ },
210
+ {
211
+ domain: 'domain3.de',
212
+ port: 8092,
213
+ company: 'company3',
214
+ project: 'project3',
215
+ },
216
+ ]);
217
+ expect(domains.length).toBe(2);
218
+ expect(domains[0]).toEqual({
219
+ domain: 'domain1.de', company: 'company1', project: 'project1', port: 8091,
220
+ });
221
+ });
222
+ it('double entries - same domain', () => {
223
+ const domains = confClass.validateStreamDomains([
224
+ {
225
+ domain: 'domain1.de',
226
+ port: 8091,
227
+ company: 'company1',
228
+ project: 'project1',
229
+ },
230
+ {
231
+ domain: 'domain2.de',
232
+ port: 8092,
233
+ company: 'company2',
234
+ project: 'project2',
235
+ },
236
+ {
237
+ domain: 'domain1.de',
238
+ port: 8093,
239
+ company: 'company3',
240
+ project: 'project3',
241
+ },
242
+ ]);
243
+ expect(domains.length).toBe(2);
244
+ expect(domains[0]).toEqual({
245
+ domain: 'domain1.de', company: 'company1', project: 'project1', port: 8091,
246
+ });
247
+ expect(domains[1]).toEqual({
248
+ domain: 'domain2.de', company: 'company2', project: 'project2', port: 8092,
249
+ });
250
+ });
251
+ it('double entries - same company & project', () => {
252
+ const domains = confClass.validateStreamDomains([
253
+ {
254
+ domain: 'domain1.de',
255
+ port: 8091,
256
+ company: 'company1',
257
+ project: 'project1',
258
+ },
259
+ {
260
+ domain: 'domain2.de',
261
+ port: 8092,
262
+ company: 'company2',
263
+ project: 'project2',
264
+ },
265
+ {
266
+ domain: 'domain3.de',
267
+ port: 8093,
268
+ company: 'company1',
269
+ project: 'project1',
270
+ },
271
+ ]);
272
+ console.log(domains);
273
+ expect(domains.length).toBe(2);
274
+ expect(domains[0]).toEqual({
275
+ domain: 'domain1.de', company: 'company1', project: 'project1', port: 8091,
276
+ });
277
+ });
278
+ });
279
+ describe('getComposeObject', () => {
280
+ it('simple', () => {
281
+ const composeObject = confClass.getComposeObject([
282
+ {
283
+ domain: 'domain1.de',
284
+ port: 8091,
285
+ company: 'company1',
286
+ project: 'project1',
287
+ },
288
+ ], '/baseFolder');
289
+ expect(composeObject).toEqual({
290
+ version: '3',
291
+ services: {
292
+ 'company1-project1': {
293
+ image: 'nginx:alpine',
294
+ container_name: 'company1-project1',
295
+ ports: ['8091:443'],
296
+ volumes: [
297
+ '/baseFolder/company1/project1/hosting:/usr/share/nginx/html:ro',
298
+ '/baseFolder/company1/project1/conf:/etc/nginx/conf.d/',
299
+ '/baseFolder/company1/project1/certs:/var/www/certs',
300
+ ],
301
+ },
302
+ },
303
+ });
304
+ });
305
+ it('multiple', () => {
306
+ const composeObject = confClass.getComposeObject([
307
+ {
308
+ domain: 'domain1.de',
309
+ port: 8091,
310
+ company: 'company1',
311
+ project: 'project1',
312
+ },
313
+ {
314
+ domain: 'domain2.de',
315
+ port: 8092,
316
+ company: 'company2',
317
+ project: 'project2',
318
+ },
319
+ ], '/baseFolder');
320
+ expect(composeObject).toEqual({
321
+ version: '3',
322
+ services: {
323
+ 'company1-project1': {
324
+ image: 'nginx:alpine',
325
+ container_name: 'company1-project1',
326
+ ports: ['8091:443'],
327
+ volumes: [
328
+ '/baseFolder/company1/project1/hosting:/usr/share/nginx/html:ro',
329
+ '/baseFolder/company1/project1/conf:/etc/nginx/conf.d/',
330
+ '/baseFolder/company1/project1/certs:/var/www/certs',
331
+ ],
332
+ },
333
+ 'company2-project2': {
334
+ image: 'nginx:alpine',
335
+ container_name: 'company2-project2',
336
+ ports: ['8092:443'],
337
+ volumes: [
338
+ '/baseFolder/company2/project2/hosting:/usr/share/nginx/html:ro',
339
+ '/baseFolder/company2/project2/conf:/etc/nginx/conf.d/',
340
+ '/baseFolder/company2/project2/certs:/var/www/certs',
341
+ ],
342
+ },
343
+ },
344
+ });
345
+ });
346
+ });
347
+ });
348
+ //# sourceMappingURL=conf.class.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conf.class.spec.js","sourceRoot":"","sources":["../../tests/conf.class.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorService.spec.d.ts","sourceRoot":"","sources":["../../tests/editorService.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
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 chai_1 = require("chai");
7
+ const mongo_mock_1 = __importDefault(require("mongo-mock"));
8
+ const models_class_1 = require("../src/classes/models.class");
9
+ const editor_model_1 = __importDefault(require("../src/models/editor.model"));
10
+ const mongoClient = mongo_mock_1.default.MongoClient;
11
+ describe('editorService', () => {
12
+ before(async function () {
13
+ this.client = await mongoClient.connect('mongodb://localhost:27017/myproject');
14
+ this.models = new models_class_1.Models();
15
+ this.model = editor_model_1.default;
16
+ this.model.setMongoConnection(this.client);
17
+ this.models.register('editor', this.model);
18
+ // this.service = HistoryService;
19
+ // this.service = this.model;
20
+ });
21
+ beforeEach(async function () {
22
+ this.models.unregister('history');
23
+ this.models.injectDatabaseConnection(this.client);
24
+ await this.model.db.remove();
25
+ await this.model.db.insertOne({ state: 'publish', id: 'first' });
26
+ await this.model.db.insertOne({ state: 'draft', id: 'second' });
27
+ });
28
+ describe('base', function () {
29
+ it('get draft', async function () {
30
+ const results = await this.model.db.findOne({ state: { $in: ['draft'] } });
31
+ chai_1.expect(results.id).equal('second');
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=editorService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorService.spec.js","sourceRoot":"","sources":["../../tests/editorService.spec.ts"],"names":[],"mappings":";;;;;AAAA,+BAA8B;AAC9B,4DAAiC;AAEjC,8DAAqD;AACrD,8EAAqD;AAErD,MAAM,WAAW,GAAG,oBAAO,CAAC,WAAW,CAAC;AAExC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAE3B,MAAM,CAAC,KAAK;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAE/E,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAM,EAAE,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,sBAAW,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,iCAAiC;QACjC,6BAA6B;IAEjC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK;QAEZ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAE7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,CAAC;IAEhE,CAAC,CAAC,CAAC;IAGL,QAAQ,CAAC,MAAM,EAAE;QAEb,EAAE,CAAC,WAAW,EAAE,KAAK;YAEnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAC,EAAC,CAAC,CAAC;YACvE,aAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAErC,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lilaquadrat/studio",
3
- "version": "2.4.5",
3
+ "version": "2.4.6",
4
4
  "description": "classes and tools for STUDIO",
5
5
  "license": "MIT",
6
6
  "homepage": "https://lilaquadrat.de",
@@ -11,7 +11,10 @@
11
11
  },
12
12
  "scripts": {
13
13
  "start": "tsc --watch --declarationMap",
14
- "prepublish": "tsc"
14
+ "prepublish": "tsc",
15
+ "test": "ts-mocha --paths 'tests/**/**.spec.ts'",
16
+ "test:watch": "ts-mocha --paths --watch-extensions ts --watch --watch-files tests,src 'tests/**/**.spec.ts'",
17
+ "test:coverage": "nyc --reporter=text ts-mocha --paths --watch-extensions ts --watch --watch-files src 'tests/**/**.spec.ts'"
15
18
  },
16
19
  "files": [
17
20
  "lib/**/*"
@@ -19,17 +22,24 @@
19
22
  "main": "lib/main.js",
20
23
  "types": "lib/main.d.ts",
21
24
  "devDependencies": {
25
+ "@types/chai": "^4.3.1",
22
26
  "@types/express": "^4.17.13",
23
27
  "@types/json-schema": "^7.0.5",
24
28
  "@types/mime-types": "^2.1.1",
29
+ "@types/mocha": "^9.1.1",
25
30
  "@types/unzipper": "^0.10.4",
26
31
  "@typescript-eslint/eslint-plugin": "^3.9.1",
32
+ "chai": "^4.3.6",
27
33
  "eslint": "^7.7.0",
28
34
  "eslint-config-airbnb-base": "^14.2.0",
29
35
  "eslint-config-airbnb-typescript": "^9.0.0",
30
36
  "eslint-import-resolver-typescript": "^2.2.1",
31
37
  "eslint-plugin-import": "^2.22.0",
32
- "eslint-plugin-promise": "^4.2.1"
38
+ "eslint-plugin-mocha": "^10.0.4",
39
+ "eslint-plugin-promise": "^4.2.1",
40
+ "mocha": "^9.2.2",
41
+ "mongo-mock": "^4.1.0",
42
+ "ts-mocha": "^9.0.2"
33
43
  },
34
44
  "peerDependencies": {
35
45
  "express": "^4.17.1"