@etsoo/appscript 1.1.59 → 1.1.63

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.
@@ -87,6 +87,10 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
87
87
  * User data
88
88
  */
89
89
  userData?: IUserData;
90
+ /**
91
+ * Passphrase for encryption
92
+ */
93
+ passphrase?: string;
90
94
  /**
91
95
  * Search input element
92
96
  */
@@ -113,11 +117,25 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
113
117
  * @param culture New culture definition
114
118
  */
115
119
  changeCulture(culture: DataTypes.CultureDefinition): void;
120
+ /**
121
+ * Decrypt message
122
+ * @param messageEncrypted Encrypted message
123
+ * @param passphrase Secret passphrase
124
+ * @returns Pure text
125
+ */
126
+ decrypt(messageEncrypted: string, passphrase: string): string;
116
127
  /**
117
128
  * Detect IP data, call only one time
118
129
  * @param callback Callback will be called when the IP is ready
119
130
  */
120
131
  detectIP(callback?: IDetectIPCallback): void;
132
+ /**
133
+ * Encrypt message
134
+ * @param message Message
135
+ * @param passphrase Secret passphrase
136
+ * @returns Result
137
+ */
138
+ encrypt(message: string, passphrase: string): string;
121
139
  /**
122
140
  * Format date to string
123
141
  * @param input Input date
@@ -309,6 +327,10 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
309
327
  * User data
310
328
  */
311
329
  userData?: IUserData;
330
+ /**
331
+ * Passphrase for encryption
332
+ */
333
+ passphrase?: string;
312
334
  /**
313
335
  * Response token header field name
314
336
  */
@@ -364,12 +386,33 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
364
386
  * @param culture New culture definition
365
387
  */
366
388
  changeCulture(culture: DataTypes.CultureDefinition): void;
389
+ /**
390
+ * Decrypt message
391
+ * @param messageEncrypted Encrypted message
392
+ * @param passphrase Secret passphrase
393
+ * @returns Pure text
394
+ */
395
+ decrypt(messageEncrypted: string, passphrase: string): string;
367
396
  /**
368
397
  * Detect IP data, call only one time
369
398
  * @param callback Callback will be called when the IP is ready
370
399
  */
371
400
  detectIP(callback?: IDetectIPCallback): void;
372
401
  private detectIPCallbacks;
402
+ /**
403
+ * Encrypt message
404
+ * @param message Message
405
+ * @param passphrase Secret passphrase
406
+ * @returns Result
407
+ */
408
+ encrypt(message: string, passphrase: string): string;
409
+ /**
410
+ * Enchance secret passphrase
411
+ * @param passphrase Secret passphrase
412
+ * @param miliseconds Miliseconds
413
+ * @returns Enhanced passphrase
414
+ */
415
+ protected encryptionEnhance(passphrase: string, miliseconds: number): string;
373
416
  /**
374
417
  * Format date to string
375
418
  * @param input Input date
@@ -4,6 +4,7 @@ exports.CoreApp = void 0;
4
4
  const notificationbase_1 = require("@etsoo/notificationbase");
5
5
  const restclient_1 = require("@etsoo/restclient");
6
6
  const shared_1 = require("@etsoo/shared");
7
+ const crypto_js_1 = require("crypto-js");
7
8
  const AddressRegion_1 = require("../address/AddressRegion");
8
9
  const AddressUtils_1 = require("../address/AddressUtils");
9
10
  const ActionResultError_1 = require("../result/ActionResultError");
@@ -195,6 +196,18 @@ class CoreApp {
195
196
  region.name = AddressUtils_1.AddressUtils.getRegionLabel(id, this.labelDelegate);
196
197
  });
197
198
  }
199
+ /**
200
+ * Decrypt message
201
+ * @param messageEncrypted Encrypted message
202
+ * @param passphrase Secret passphrase
203
+ * @returns Pure text
204
+ */
205
+ decrypt(messageEncrypted, passphrase) {
206
+ const pos = messageEncrypted.indexOf('M');
207
+ const miliseconds = parseInt(messageEncrypted.substring(0, pos));
208
+ const message = messageEncrypted.substring(pos + 1);
209
+ return crypto_js_1.AES.decrypt(message, this.encryptionEnhance(passphrase, miliseconds)).toString();
210
+ }
198
211
  /**
199
212
  * Detect IP data, call only one time
200
213
  * @param callback Callback will be called when the IP is ready
@@ -228,6 +241,30 @@ class CoreApp {
228
241
  var _a;
229
242
  (_a = this.ipDetectCallbacks) === null || _a === void 0 ? void 0 : _a.forEach((f) => f());
230
243
  }
244
+ /**
245
+ * Encrypt message
246
+ * @param message Message
247
+ * @param passphrase Secret passphrase
248
+ * @returns Result
249
+ */
250
+ encrypt(message, passphrase) {
251
+ const miliseconds = new Date().getUTCMilliseconds();
252
+ return (miliseconds +
253
+ 'M' +
254
+ crypto_js_1.AES.encrypt(message, this.encryptionEnhance(passphrase, miliseconds)).toString());
255
+ }
256
+ /**
257
+ * Enchance secret passphrase
258
+ * @param passphrase Secret passphrase
259
+ * @param miliseconds Miliseconds
260
+ * @returns Enhanced passphrase
261
+ */
262
+ encryptionEnhance(passphrase, miliseconds) {
263
+ var _a;
264
+ passphrase += miliseconds.toString();
265
+ passphrase += passphrase.length.toString();
266
+ return passphrase + ((_a = this.passphrase) !== null && _a !== void 0 ? _a : '');
267
+ }
231
268
  /**
232
269
  * Format date to string
233
270
  * @param input Input date
@@ -87,6 +87,10 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
87
87
  * User data
88
88
  */
89
89
  userData?: IUserData;
90
+ /**
91
+ * Passphrase for encryption
92
+ */
93
+ passphrase?: string;
90
94
  /**
91
95
  * Search input element
92
96
  */
@@ -113,11 +117,25 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
113
117
  * @param culture New culture definition
114
118
  */
115
119
  changeCulture(culture: DataTypes.CultureDefinition): void;
120
+ /**
121
+ * Decrypt message
122
+ * @param messageEncrypted Encrypted message
123
+ * @param passphrase Secret passphrase
124
+ * @returns Pure text
125
+ */
126
+ decrypt(messageEncrypted: string, passphrase: string): string;
116
127
  /**
117
128
  * Detect IP data, call only one time
118
129
  * @param callback Callback will be called when the IP is ready
119
130
  */
120
131
  detectIP(callback?: IDetectIPCallback): void;
132
+ /**
133
+ * Encrypt message
134
+ * @param message Message
135
+ * @param passphrase Secret passphrase
136
+ * @returns Result
137
+ */
138
+ encrypt(message: string, passphrase: string): string;
121
139
  /**
122
140
  * Format date to string
123
141
  * @param input Input date
@@ -309,6 +327,10 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
309
327
  * User data
310
328
  */
311
329
  userData?: IUserData;
330
+ /**
331
+ * Passphrase for encryption
332
+ */
333
+ passphrase?: string;
312
334
  /**
313
335
  * Response token header field name
314
336
  */
@@ -364,12 +386,33 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
364
386
  * @param culture New culture definition
365
387
  */
366
388
  changeCulture(culture: DataTypes.CultureDefinition): void;
389
+ /**
390
+ * Decrypt message
391
+ * @param messageEncrypted Encrypted message
392
+ * @param passphrase Secret passphrase
393
+ * @returns Pure text
394
+ */
395
+ decrypt(messageEncrypted: string, passphrase: string): string;
367
396
  /**
368
397
  * Detect IP data, call only one time
369
398
  * @param callback Callback will be called when the IP is ready
370
399
  */
371
400
  detectIP(callback?: IDetectIPCallback): void;
372
401
  private detectIPCallbacks;
402
+ /**
403
+ * Encrypt message
404
+ * @param message Message
405
+ * @param passphrase Secret passphrase
406
+ * @returns Result
407
+ */
408
+ encrypt(message: string, passphrase: string): string;
409
+ /**
410
+ * Enchance secret passphrase
411
+ * @param passphrase Secret passphrase
412
+ * @param miliseconds Miliseconds
413
+ * @returns Enhanced passphrase
414
+ */
415
+ protected encryptionEnhance(passphrase: string, miliseconds: number): string;
373
416
  /**
374
417
  * Format date to string
375
418
  * @param input Input date
@@ -1,6 +1,7 @@
1
1
  import { NotificationAlign, NotificationMessageType } from '@etsoo/notificationbase';
2
2
  import { ApiDataError } from '@etsoo/restclient';
3
3
  import { DateUtils, DomUtils, NumberUtils, StorageUtils } from '@etsoo/shared';
4
+ import { AES } from 'crypto-js';
4
5
  import { AddressRegion } from '../address/AddressRegion';
5
6
  import { AddressUtils } from '../address/AddressUtils';
6
7
  import { ActionResultError } from '../result/ActionResultError';
@@ -192,6 +193,18 @@ export class CoreApp {
192
193
  region.name = AddressUtils.getRegionLabel(id, this.labelDelegate);
193
194
  });
194
195
  }
196
+ /**
197
+ * Decrypt message
198
+ * @param messageEncrypted Encrypted message
199
+ * @param passphrase Secret passphrase
200
+ * @returns Pure text
201
+ */
202
+ decrypt(messageEncrypted, passphrase) {
203
+ const pos = messageEncrypted.indexOf('M');
204
+ const miliseconds = parseInt(messageEncrypted.substring(0, pos));
205
+ const message = messageEncrypted.substring(pos + 1);
206
+ return AES.decrypt(message, this.encryptionEnhance(passphrase, miliseconds)).toString();
207
+ }
195
208
  /**
196
209
  * Detect IP data, call only one time
197
210
  * @param callback Callback will be called when the IP is ready
@@ -225,6 +238,30 @@ export class CoreApp {
225
238
  var _a;
226
239
  (_a = this.ipDetectCallbacks) === null || _a === void 0 ? void 0 : _a.forEach((f) => f());
227
240
  }
241
+ /**
242
+ * Encrypt message
243
+ * @param message Message
244
+ * @param passphrase Secret passphrase
245
+ * @returns Result
246
+ */
247
+ encrypt(message, passphrase) {
248
+ const miliseconds = new Date().getUTCMilliseconds();
249
+ return (miliseconds +
250
+ 'M' +
251
+ AES.encrypt(message, this.encryptionEnhance(passphrase, miliseconds)).toString());
252
+ }
253
+ /**
254
+ * Enchance secret passphrase
255
+ * @param passphrase Secret passphrase
256
+ * @param miliseconds Miliseconds
257
+ * @returns Enhanced passphrase
258
+ */
259
+ encryptionEnhance(passphrase, miliseconds) {
260
+ var _a;
261
+ passphrase += miliseconds.toString();
262
+ passphrase += passphrase.length.toString();
263
+ return passphrase + ((_a = this.passphrase) !== null && _a !== void 0 ? _a : '');
264
+ }
228
265
  /**
229
266
  * Format date to string
230
267
  * @param input Input date
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.1.59",
3
+ "version": "1.1.63",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -54,7 +54,9 @@
54
54
  "dependencies": {
55
55
  "@etsoo/notificationbase": "^1.0.94",
56
56
  "@etsoo/restclient": "^1.0.62",
57
- "@etsoo/shared": "^1.0.75"
57
+ "@etsoo/shared": "^1.0.75",
58
+ "@types/crypto-js": "^4.0.2",
59
+ "crypto-js": "^4.1.1"
58
60
  },
59
61
  "devDependencies": {
60
62
  "@babel/cli": "^7.16.0",
@@ -14,6 +14,7 @@ import {
14
14
  NumberUtils,
15
15
  StorageUtils
16
16
  } from '@etsoo/shared';
17
+ import { AES } from 'crypto-js';
17
18
  import { AddressRegion } from '../address/AddressRegion';
18
19
  import { AddressUtils } from '../address/AddressUtils';
19
20
  import { ActionResultError } from '../result/ActionResultError';
@@ -128,6 +129,11 @@ export interface ICoreApp<
128
129
  */
129
130
  userData?: IUserData;
130
131
 
132
+ /**
133
+ * Passphrase for encryption
134
+ */
135
+ passphrase?: string;
136
+
131
137
  /**
132
138
  * Search input element
133
139
  */
@@ -159,12 +165,28 @@ export interface ICoreApp<
159
165
  */
160
166
  changeCulture(culture: DataTypes.CultureDefinition): void;
161
167
 
168
+ /**
169
+ * Decrypt message
170
+ * @param messageEncrypted Encrypted message
171
+ * @param passphrase Secret passphrase
172
+ * @returns Pure text
173
+ */
174
+ decrypt(messageEncrypted: string, passphrase: string): string;
175
+
162
176
  /**
163
177
  * Detect IP data, call only one time
164
178
  * @param callback Callback will be called when the IP is ready
165
179
  */
166
180
  detectIP(callback?: IDetectIPCallback): void;
167
181
 
182
+ /**
183
+ * Encrypt message
184
+ * @param message Message
185
+ * @param passphrase Secret passphrase
186
+ * @returns Result
187
+ */
188
+ encrypt(message: string, passphrase: string): string;
189
+
168
190
  /**
169
191
  * Format date to string
170
192
  * @param input Input date
@@ -415,6 +437,11 @@ export abstract class CoreApp<
415
437
  */
416
438
  userData?: IUserData;
417
439
 
440
+ /**
441
+ * Passphrase for encryption
442
+ */
443
+ passphrase?: string;
444
+
418
445
  /**
419
446
  * Response token header field name
420
447
  */
@@ -625,6 +652,22 @@ export abstract class CoreApp<
625
652
  });
626
653
  }
627
654
 
655
+ /**
656
+ * Decrypt message
657
+ * @param messageEncrypted Encrypted message
658
+ * @param passphrase Secret passphrase
659
+ * @returns Pure text
660
+ */
661
+ decrypt(messageEncrypted: string, passphrase: string) {
662
+ const pos = messageEncrypted.indexOf('M');
663
+ const miliseconds = parseInt(messageEncrypted.substring(0, pos));
664
+ const message = messageEncrypted.substring(pos + 1);
665
+ return AES.decrypt(
666
+ message,
667
+ this.encryptionEnhance(passphrase, miliseconds)
668
+ ).toString();
669
+ }
670
+
628
671
  /**
629
672
  * Detect IP data, call only one time
630
673
  * @param callback Callback will be called when the IP is ready
@@ -665,6 +708,36 @@ export abstract class CoreApp<
665
708
  this.ipDetectCallbacks?.forEach((f) => f());
666
709
  }
667
710
 
711
+ /**
712
+ * Encrypt message
713
+ * @param message Message
714
+ * @param passphrase Secret passphrase
715
+ * @returns Result
716
+ */
717
+ encrypt(message: string, passphrase: string) {
718
+ const miliseconds = new Date().getUTCMilliseconds();
719
+ return (
720
+ miliseconds +
721
+ 'M' +
722
+ AES.encrypt(
723
+ message,
724
+ this.encryptionEnhance(passphrase, miliseconds)
725
+ ).toString()
726
+ );
727
+ }
728
+
729
+ /**
730
+ * Enchance secret passphrase
731
+ * @param passphrase Secret passphrase
732
+ * @param miliseconds Miliseconds
733
+ * @returns Enhanced passphrase
734
+ */
735
+ protected encryptionEnhance(passphrase: string, miliseconds: number) {
736
+ passphrase += miliseconds.toString();
737
+ passphrase += passphrase.length.toString();
738
+ return passphrase + (this.passphrase ?? '');
739
+ }
740
+
668
741
  /**
669
742
  * Format date to string
670
743
  * @param input Input date