@futdevpro/nts-dynamo 1.4.7 → 1.4.9

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 (95) hide show
  1. package/lib/_constants/dynamobe-global.settings.d.ts.map +1 -1
  2. package/lib/_constants/dynamobe-global.settings.js.map +1 -1
  3. package/lib/_models/dynamobe-data-model-params.d.ts +0 -12
  4. package/lib/_models/dynamobe-data-model-params.d.ts.map +1 -1
  5. package/lib/_models/dynamobe-data-model-params.js +22 -12
  6. package/lib/_models/dynamobe-data-model-params.js.map +1 -1
  7. package/lib/_models/dynamobe-endpoint-params.d.ts.map +1 -1
  8. package/lib/_models/dynamobe-endpoint-params.js.map +1 -1
  9. package/lib/_models/index.d.ts +0 -1
  10. package/lib/_models/index.d.ts.map +1 -1
  11. package/lib/_models/index.js +1 -1
  12. package/lib/_models/index.js.map +1 -1
  13. package/lib/_modules/api-service.index.d.ts +1 -0
  14. package/lib/_modules/api-service.index.d.ts.map +1 -1
  15. package/lib/_modules/api-service.index.js +1 -0
  16. package/lib/_modules/api-service.index.js.map +1 -1
  17. package/lib/_modules/auth.index.d.ts +1 -0
  18. package/lib/_modules/auth.index.d.ts.map +1 -1
  19. package/lib/_modules/auth.index.js +2 -0
  20. package/lib/_modules/auth.index.js.map +1 -1
  21. package/lib/_modules/data-models.index.d.ts +3 -0
  22. package/lib/_modules/data-models.index.d.ts.map +1 -0
  23. package/lib/_modules/data-models.index.js +6 -0
  24. package/lib/_modules/data-models.index.js.map +1 -0
  25. package/lib/_modules/data-service.index.d.ts +1 -0
  26. package/lib/_modules/data-service.index.d.ts.map +1 -1
  27. package/lib/_modules/data-service.index.js +2 -0
  28. package/lib/_modules/data-service.index.js.map +1 -1
  29. package/lib/_modules/test/custom-data.service.d.ts +1 -1
  30. package/lib/_modules/test/custom-data.service.d.ts.map +1 -1
  31. package/lib/_modules/test/custom-data.service.js +2 -2
  32. package/lib/_modules/test/custom-data.service.js.map +1 -1
  33. package/lib/_modules/test/get-test-routing-module.d.ts.map +1 -1
  34. package/lib/_modules/test/get-test-routing-module.js +2 -2
  35. package/lib/_modules/test/get-test-routing-module.js.map +1 -1
  36. package/lib/_modules/test/index.d.ts +1 -0
  37. package/lib/_modules/test/index.d.ts.map +1 -1
  38. package/lib/_modules/test/index.js +2 -1
  39. package/lib/_modules/test/index.js.map +1 -1
  40. package/lib/_modules/test/test-controller.d.ts.map +1 -1
  41. package/lib/_modules/test/test-controller.js +8 -8
  42. package/lib/_modules/test/test-controller.js.map +1 -1
  43. package/lib/_modules/usage/get-usage-routing-module.d.ts.map +1 -1
  44. package/lib/_modules/usage/get-usage-routing-module.js +2 -2
  45. package/lib/_modules/usage/get-usage-routing-module.js.map +1 -1
  46. package/lib/_modules/usage/index.d.ts +1 -0
  47. package/lib/_modules/usage/index.d.ts.map +1 -1
  48. package/lib/_modules/usage/index.js +2 -1
  49. package/lib/_modules/usage/index.js.map +1 -1
  50. package/lib/_modules/usage/usage-controller.d.ts.map +1 -1
  51. package/lib/_modules/usage/usage-controller.js +6 -6
  52. package/lib/_modules/usage/usage-controller.js.map +1 -1
  53. package/lib/_modules/usage/usage.service.d.ts +1 -1
  54. package/lib/_modules/usage/usage.service.d.ts.map +1 -1
  55. package/lib/_modules/usage/usage.service.js +7 -6
  56. package/lib/_modules/usage/usage.service.js.map +1 -1
  57. package/lib/_services/dynamobe-data.service.d.ts +1 -1
  58. package/lib/_services/dynamobe-data.service.d.ts.map +1 -1
  59. package/lib/_services/dynamobe-data.service.js.map +1 -1
  60. package/lib/_services/dynamobe-db.service.d.ts.map +1 -1
  61. package/lib/_services/dynamobe-db.service.js.map +1 -1
  62. package/lib/_services/dynamobe-global.service.d.ts +1 -1
  63. package/lib/_services/dynamobe-global.service.d.ts.map +1 -1
  64. package/lib/_services/dynamobe-shared.service.d.ts +5 -1
  65. package/lib/_services/dynamobe-shared.service.d.ts.map +1 -1
  66. package/lib/_services/dynamobe-shared.service.js +46 -0
  67. package/lib/_services/dynamobe-shared.service.js.map +1 -1
  68. package/lib/_services/index.d.ts +1 -1
  69. package/lib/_services/index.d.ts.map +1 -1
  70. package/lib/_services/index.js +23 -1
  71. package/lib/_services/index.js.map +1 -1
  72. package/lib/tsconfig.tsbuildinfo +499 -163
  73. package/package.json +15 -3
  74. package/src/_constants/dynamobe-global.settings.ts +1 -0
  75. package/src/_models/dynamobe-data-model-params.ts +3 -3
  76. package/src/_models/dynamobe-endpoint-params.ts +1 -0
  77. package/src/_models/index.ts +1 -1
  78. package/src/_modules/api-service.index.ts +1 -0
  79. package/src/_modules/auth.index.ts +3 -0
  80. package/src/_modules/data-service.index.ts +3 -0
  81. package/src/_modules/test/custom-data.service.ts +1 -2
  82. package/src/_modules/test/get-test-routing-module.ts +1 -2
  83. package/src/_modules/test/index.ts +2 -2
  84. package/src/_modules/test/test-controller.ts +1 -2
  85. package/src/_modules/usage/get-usage-routing-module.ts +1 -2
  86. package/src/_modules/usage/index.ts +2 -1
  87. package/src/_modules/usage/usage-controller.ts +1 -2
  88. package/src/_modules/usage/usage.service.ts +7 -6
  89. package/src/_services/dynamobe-data.service.ts +2 -3
  90. package/src/_services/dynamobe-db.service.ts +1 -2
  91. package/src/_services/dynamobe-global.service.ts +1 -1
  92. package/src/_services/dynamobe-shared.service.ts +50 -2
  93. package/src/_services/index.ts +22 -1
  94. package/src/index.ts +1 -0
  95. package/tsconfig.json +1 -0
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.04.07",
3
+ "version": "01.04.09",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Ltd.",
5
5
  "scripts": {
6
- "test": "echo \"Error: no test specified\" && exit 1",
7
6
  "build": "npx tsc",
8
7
  "postbuild": "npm publish"
9
8
  },
@@ -42,6 +41,7 @@
42
41
  "types": "./lib/_services/index.d.ts",
43
42
  "typings": "./lib/_services/index.d.ts"
44
43
  },
44
+
45
45
  "./test-module": {
46
46
  "default": "./lib/_modules/test/index.js",
47
47
  "module": "./lib/_modules/test/index.js",
@@ -54,6 +54,7 @@
54
54
  "types": "./lib/_modules/usage/index.d.ts",
55
55
  "typings": "./lib/_modules/usage/index.d.ts"
56
56
  },
57
+
57
58
  "./app": {
58
59
  "default": "./lib/_modules/app.index.js",
59
60
  "module": "./lib/_modules/app.index.js",
@@ -78,6 +79,12 @@
78
79
  "types": "./lib/_modules/controller.index.d.ts",
79
80
  "typings": "./lib/_modules/controller.index.d.ts"
80
81
  },
82
+ "./data-models": {
83
+ "default": "./lib/_modules/data-models.index.js",
84
+ "module": "./lib/_modules/data-models.index.js",
85
+ "types": "./lib/_modules/data-models.index.d.ts",
86
+ "typings": "./lib/_modules/data-models.index.d.ts"
87
+ },
81
88
  "./data-service": {
82
89
  "default": "./lib/_modules/data-service.index.js",
83
90
  "module": "./lib/_modules/data-service.index.js",
@@ -99,12 +106,14 @@
99
106
  "services": [
100
107
  "lib/_services/index.d.ts"
101
108
  ],
109
+
102
110
  "test-module": [
103
111
  "lib/_modules/test/index.d.ts"
104
112
  ],
105
113
  "usage-module": [
106
114
  "lib/_modules/usage/index.d.ts"
107
115
  ],
116
+
108
117
  "app": [
109
118
  "lib/_modules/app.index.d.ts"
110
119
  ],
@@ -117,6 +126,9 @@
117
126
  "controller": [
118
127
  "lib/_modules/controller.index.d.ts"
119
128
  ],
129
+ "data-models": [
130
+ "lib/_modules/data-models.index.d.ts"
131
+ ],
120
132
  "data-service": [
121
133
  "lib/_modules/data-service.index.d.ts"
122
134
  ]
@@ -141,7 +153,7 @@
141
153
  },
142
154
  "homepage": "https:/futdevpro.hu/projects/dynamo",
143
155
  "peerDependencies": {
144
- "@futdevpro/fsm-dynamo": "~1.0.11",
156
+ "@futdevpro/fsm-dynamo": "~1.0.21",
145
157
  "@types/express": "~4.17.7",
146
158
  "@types/geoip-lite": "~1.4.1",
147
159
  "@types/nodemailer": "~6.4.4",
@@ -1,3 +1,4 @@
1
+
1
2
  import { DynamoBERouteSecurity } from '../_enums/dynamobe-route-security.enum';
2
3
  import { DynamoBEGlobalSettings } from '../_models/dynamobe-global-settings';
3
4
 
@@ -1,6 +1,5 @@
1
-
2
- import { DynamoBEDataPropertyParams } from '@futdevpro/fsm-dynamo';
3
-
1
+ /*
2
+ export { DynamoBEDataPropertyParams } from '@futdevpro/fsm-dynamo';
4
3
  import { DataModelType } from '../_enums/data-model-type.enum';
5
4
 
6
5
  export class DynamoBEDataModelParams {
@@ -22,3 +21,4 @@ export class DynamoBEDataModelParams {
22
21
  }
23
22
  }
24
23
  }
24
+ */
@@ -1,6 +1,7 @@
1
1
 
2
2
 
3
3
  import { NextFunction, Request, Response } from 'express';
4
+
4
5
  import { HttpCallType } from '../_enums/http/http-call-type.enum';
5
6
  import { DynamoBERouteSecurity as DynamoBERouteSecurity } from '../_enums/dynamobe-route-security.enum';
6
7
  import { DBE_Shared } from '../_services/dynamobe-shared.service';
@@ -3,7 +3,7 @@
3
3
  // MODELS
4
4
  export * from './dynamobe-api-call-params';
5
5
  export * from './dynamobe-app-params';
6
- export * from './dynamobe-data-model-params';
6
+ /* export * from './dynamobe-data-model-params'; */
7
7
  export * from './dynamobe-endpoint-params';
8
8
  export * from './dynamobe-global-settings';
9
9
 
@@ -5,6 +5,7 @@ export * from '../_services/dynamobe-singleton.service';
5
5
 
6
6
  // MODELS
7
7
  export * from '../_models/dynamobe-api-call-params';
8
+ export * from '@futdevpro/fsm-dynamo/error-module';
8
9
 
9
10
  // ENUMS
10
11
  export * from '../_enums/http/http-call-type.enum';
@@ -2,3 +2,6 @@
2
2
  // SERVICES
3
3
  export * from '../_services/dynamobe-auth.service';
4
4
  export * from '../_services/dynamobe-shared.service';
5
+
6
+ // MODELS
7
+ export * from '@futdevpro/fsm-dynamo/error-module';
@@ -4,3 +4,6 @@ export * from '../_services/dynamobe-data.service';
4
4
  export * from '../_services/dynamobe-db.service';
5
5
  export * from '../_services/dynamobe-global.service';
6
6
  export * from '../_services/dynamobe-shared.service';
7
+
8
+ // MODELS
9
+ export * from '@futdevpro/fsm-dynamo/error-module';
@@ -1,8 +1,7 @@
1
1
 
2
2
 
3
3
 
4
- import { CustomData, customDataModelParams } from '@futdevpro/fsm-dynamo';
5
-
4
+ import { CustomData, customDataModelParams } from '@futdevpro/fsm-dynamo/test-module';
6
5
  import { DynamoBEDataService } from '../../_services/dynamobe-data.service';
7
6
 
8
7
  export class CustomDataService extends DynamoBEDataService<CustomData> {
@@ -1,6 +1,5 @@
1
1
 
2
- import { testModuleSettings } from '@futdevpro/fsm-dynamo';
3
-
2
+ import { testModuleSettings } from '@futdevpro/fsm-dynamo/test-module';
4
3
  import { DynamoBERouteSecurity } from '../../_enums/dynamobe-route-security.enum';
5
4
  import { DynamoBERoutingModule, DynamoBERoutingModuleSettings } from '../../_services/dynamobe-routing-module.service';
6
5
  import { TestController } from './test-controller';
@@ -1,6 +1,6 @@
1
1
 
2
- // MODULES
2
+ // TEST MODULE
3
3
  export * from './test-controller';
4
4
  export * from './custom-data.service';
5
5
  export * from './get-test-routing-module';
6
-
6
+ export * from '@futdevpro/fsm-dynamo/test-module';
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { Request, Response } from 'express';
3
- import { testModuleSettings } from '@futdevpro/fsm-dynamo';
4
-
3
+ import { testModuleSettings } from '@futdevpro/fsm-dynamo/test-module';
5
4
  import { HttpCallType } from '../../_enums/http/http-call-type.enum';
6
5
  import { DynamoBEEndpointParams } from '../../_models/dynamobe-endpoint-params';
7
6
  import { DynamoBEController } from '../../_services/dynamobe-controller.service';
@@ -1,6 +1,5 @@
1
1
 
2
- import { usageModuleSettings } from '@futdevpro/fsm-dynamo';
3
-
2
+ import { usageModuleSettings } from '@futdevpro/fsm-dynamo/usage-module';
4
3
  import { DynamoBERouteSecurity } from '../../_enums/dynamobe-route-security.enum';
5
4
  import { DynamoBERoutingModule, DynamoBERoutingModuleSettings } from '../../_services/dynamobe-routing-module.service';
6
5
  import { UsageController } from './usage-controller';
@@ -1,6 +1,7 @@
1
1
 
2
- // MODULE
2
+ // USAGE MODULE
3
3
  export * from './usage-controller';
4
4
  export * from './usage.service';
5
5
  export * from './get-usage-routing-module';
6
+ export * from '@futdevpro/fsm-dynamo/usage-module';
6
7
 
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { Request, Response } from 'express';
3
- import { usageModuleSettings, DynamoUsageSession } from '@futdevpro/fsm-dynamo';
4
-
3
+ import { usageModuleSettings, DynamoUsageSession } from '@futdevpro/fsm-dynamo/usage-module';
5
4
  import { HttpCallType } from '../../_enums/http/http-call-type.enum';
6
5
  import { DynamoBEEndpointParams } from '../../_models/dynamobe-endpoint-params';
7
6
  import { DynamoBEAuthService } from '../../_services/dynamobe-auth.service';
@@ -1,10 +1,11 @@
1
1
 
2
2
  import { Request } from 'express';
3
- import { DynamoUsageSession, DynamoUsageData, DailyUsageData,
4
- usageSessionModelParams, DynamoBEError } from '@futdevpro/fsm-dynamo';
3
+ import { DynamoBEError } from '@futdevpro/fsm-dynamo';
4
+ import { DynamoUsageSession, usageSessionModelParams, DynamoUsageData,
5
+ DailyUsageData } from '@futdevpro/fsm-dynamo/usage-module';
5
6
 
6
7
  import { DynamoBEDataService } from '../../_services/dynamobe-data.service';
7
- import { DBE_Shared_BE } from '../../_services/dynamobe-shared-be.service';
8
+ import { DBE_Shared } from '../../_services/dynamobe-shared.service';
8
9
 
9
10
  export class UsageService extends DynamoBEDataService<DynamoUsageSession> {
10
11
  usageData: DynamoUsageData[] = [];
@@ -27,8 +28,8 @@ export class UsageService extends DynamoBEDataService<DynamoUsageSession> {
27
28
 
28
29
  getLocationDataFromRequest(req: Request): void {
29
30
  try {
30
- this.data.address = DBE_Shared_BE.getIpFromRequest(req);
31
- this.data.locationData = DBE_Shared_BE.getLocationDataByRequest(req);
31
+ this.data.address = DBE_Shared.getIpFromRequest(req);
32
+ this.data.locationData = DBE_Shared.getLocationDataByRequest(req);
32
33
 
33
34
  /* console.log(`...getLocationDataFromRequest... ip: ${this.data.address}`, this.data.locationData); */
34
35
  } catch (error) {
@@ -39,7 +40,7 @@ export class UsageService extends DynamoBEDataService<DynamoUsageSession> {
39
40
  async getLastWeekUsage(): Promise<void> {
40
41
  try {
41
42
  await this.dataDBService.find({
42
- sessionStart: { $gte: DBE_Shared_BE.oneWeekAgo() }
43
+ sessionStart: { $gte: DBE_Shared.oneWeekAgo() }
43
44
  }).then((res: DynamoUsageSession[]) => {
44
45
  this.dataList = res;
45
46
  });
@@ -1,7 +1,6 @@
1
1
 
2
- import { Metadata, DynamoBEDataPropertyParams, DynamoBEDataParams,
3
- DynamoBEError } from '@futdevpro/fsm-dynamo';
4
-
2
+ import { Metadata, DynamoBEDataParams, DynamoBEDataPropertyParams, DynamoBEError } from '@futdevpro/fsm-dynamo';
3
+
5
4
  import { DynamoBEDBService } from './dynamobe-db.service';
6
5
  import { DBE_Global_S } from './dynamobe-global.service';
7
6
 
@@ -1,8 +1,7 @@
1
1
 
2
2
  import * as mongoose from 'mongoose';
3
3
  import { Schema } from 'mongoose';
4
- import { Metadata, DynamoBEDataParams, DynamoBEError,
5
- DynamoBEDataPropertyParams } from '@futdevpro/fsm-dynamo';
4
+ import { Metadata, DynamoBEDataParams, DynamoBEDataPropertyParams, DynamoBEError } from '@futdevpro/fsm-dynamo';
6
5
 
7
6
  export class DynamoBEDBService<T extends Metadata> {
8
7
  dataModel = mongoose.model(this.dataParams.dbName, this.getSchema());
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- import { DynamoBEDataParams, Metadata } from '@futdevpro/fsm-dynamo';
3
+ import { Metadata, DynamoBEDataParams } from '@futdevpro/fsm-dynamo';
4
4
 
5
5
  import { DynamoBEAuthService } from './dynamobe-auth.service';
6
6
  import { DynamoBEDBServiceCollection } from './dynamobe-db-service-collection.service';
@@ -1,6 +1,10 @@
1
1
 
2
- import { LocationCoordinates, DynamoBEError,
2
+ import * as ReadLine from 'readline';
3
+ import { Request } from 'express';
4
+ import * as GeoIp from 'geoip-lite';
5
+ import { DynamoBEError, GeoIpLocation, LocationCoordinates,
3
6
  year, hour, day, week, month } from '@futdevpro/fsm-dynamo';
7
+
4
8
  import { LogStyle } from '../_enums/log-style.enum';
5
9
 
6
10
  export class DBE_Shared {
@@ -217,6 +221,33 @@ export class DBE_Shared {
217
221
  return new Date(+new Date() - year);
218
222
  }
219
223
 
224
+ static getIpFromRequest(request: Request): string {
225
+ /* console.log('TESTTTT route:\n',
226
+ `\n|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n
227
+ HEADERS\n`, request.headers,
228
+ `\n|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n
229
+ ELSE\n`,
230
+ `\nremote `, request.socket.remoteAddress,
231
+ `\nlocal `, request.socket.localAddress,
232
+ ); */
233
+
234
+ let ip: string;
235
+ if (request.headers['x-forwarded-for']) {
236
+ const route: string[] = (request.headers['x-forwarded-for'] as string).split(', ');
237
+ console.log('TESTTTT route:', route);
238
+ ip = route[route.length - 1];
239
+ } else {
240
+ ip = request.socket.remoteAddress;
241
+ }
242
+
243
+ /* console.log(`ip from request: ${ip}`); */
244
+ return ip;
245
+ }
246
+
247
+ static getLocationDataByRequest(request: Request): GeoIpLocation {
248
+ return GeoIp.lookup(this.getIpFromRequest(request));
249
+ }
250
+
220
251
  static setLogStyle(styles: LogStyle[]): void {
221
252
  let styleSets = '';
222
253
  styles.forEach((style: LogStyle) => {
@@ -263,5 +294,22 @@ export class DBE_Shared {
263
294
  console.warn(`${LogStyle.yellow}${LogStyle.bright}${message}${LogStyle.reset}`);
264
295
  }
265
296
  }
266
- }
267
297
 
298
+ static async prompt(question: string): Promise<string> {
299
+ const readLine = ReadLine.createInterface({
300
+ input: process.stdin,
301
+ output: process.stdout
302
+ });
303
+
304
+ return new Promise((resolve, reject) => {
305
+ try {
306
+ readLine.question(question, (result: string) => {
307
+ resolve(result);
308
+ readLine.close();
309
+ });
310
+ } catch (error) {
311
+ reject(error);
312
+ }
313
+ });
314
+ }
315
+ }
@@ -13,8 +13,29 @@ export * from './dynamobe-email-service-collection.service';
13
13
  export * from './dynamobe-email.service';
14
14
  export * from './dynamobe-global.service';
15
15
  export * from './dynamobe-routing-module.service';
16
- export * from './dynamobe-shared.service';
17
16
  export * from './dynamobe-shared-be.service';
17
+ export * from './dynamobe-shared.service';
18
18
  export * from './dynamobe-singleton.service';
19
19
 
20
+ /*
21
+ import { DynamoBEApiService } from './dynamobe-api.service';
22
+ import { DynamoBEApp } from './dynamobe-app';
23
+ import { DynamoBEAuthService } from './dynamobe-auth.service';
24
+ import { DynamoBEController } from './dynamobe-controller.service';
25
+ import { DynamoBEDataService } from './dynamobe-data.service';
26
+ import { DynamoBEDBServiceCollection } from './dynamobe-db-service-collection.service';
27
+ import { DynamoBEDBService } from './dynamobe-db.service';
28
+ import { DynamoBEEmailServiceCollection } from './dynamobe-email-service-collection.service';
29
+ import { DynamoBEEmailService } from './dynamobe-email.service';
30
+ import { DBE_Global_S } from './dynamobe-global.service';
31
+ import { DynamoBERountingModule } from './dynamobe-routing-module.service';
32
+ import { DynamoBEServer } from './dynamobe-server';
33
+ import { DBE_Shared } from './dynamobe-shared.service';
34
+ import { DynamoBESingletonService } from './dynamobe-singleton.service';
20
35
 
36
+ module.exports = {
37
+ DynamoBEApiService, DynamoBEApp, DynamoBEAuthService, DynamoBEController,
38
+ DynamoBEDataService, DynamoBEDBServiceCollection, DynamoBEDBService,
39
+ DynamoBEEmailServiceCollection, DynamoBEEmailService, DBE_Global_S,
40
+ DynamoBERountingModule, DynamoBEServer, DBE_Shared, DynamoBESingletonService
41
+ } */
package/src/index.ts CHANGED
@@ -15,3 +15,4 @@ export * from './_services';
15
15
  export * from './_modules/test/index';
16
16
  export * from './_modules/usage/index';
17
17
 
18
+
package/tsconfig.json CHANGED
@@ -6,6 +6,7 @@
6
6
  "lib": [
7
7
  "es6",
8
8
  "es2018",
9
+ "es2020",
9
10
  "dom"
10
11
  ],
11
12
  "allowJs": true,