@lakutata/core 1.0.46 → 1.0.49

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.
@@ -12,4 +12,8 @@ export declare class Formatter extends Plugin {
12
12
  asDate(inp: string | number | Date): Date;
13
13
  asDateText(inp?: Date | string | number, format?: string): string;
14
14
  asPercent(value: number, decimals?: number): string;
15
+ sortObject<T = any>(obj: T, options?: {
16
+ deep?: boolean;
17
+ compare?: (left: string, right: string) => number;
18
+ }): T;
15
19
  }
@@ -16,6 +16,7 @@ exports.Formatter = void 0;
16
16
  const Plugin_1 = require("../base/Plugin");
17
17
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
18
18
  const DependencyInjection_1 = require("../decorators/DependencyInjection");
19
+ const sort_keys_1 = __importDefault(require("sort-keys"));
19
20
  class Formatter extends Plugin_1.Plugin {
20
21
  constructor() {
21
22
  super(...arguments);
@@ -40,6 +41,9 @@ class Formatter extends Plugin_1.Plugin {
40
41
  const val = +((value * 100).toFixed(decimals));
41
42
  return `${val}%`;
42
43
  }
44
+ sortObject(obj, options) {
45
+ return (0, sort_keys_1.default)(obj, options ? options : { deep: true });
46
+ }
43
47
  }
44
48
  __decorate([
45
49
  (0, DependencyInjection_1.Configurable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../src/plugins/Formatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqC;AACrC,sEAA4C;AAC5C,2EAA8D;AAQ9D,MAAa,SAAU,SAAQ,eAAM;IAArC;;QAYoB,eAAU,GAAW,qBAAqB,CAAA;IAiD9D,CAAC;IA3DA,IAAc,QAAQ;QACrB,OAAe,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9B,CAAC;IAeM,WAAW,CAAC,MAA8B,IAAI,IAAI,EAAE;QAC1D,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;IACpD,CAAC;IAOM,sBAAsB,CAAC,MAA8B,IAAI,IAAI,EAAE;QACrE,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;IACvD,CAAC;IAOM,MAAM,CAAC,GAA2B;QACxC,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;IACtD,CAAC;IAQM,UAAU,CAAC,MAA8B,IAAI,IAAI,EAAE,EAAE,MAAe;QAC1E,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvF,CAAC;IAQM,SAAS,CAAC,KAAa,EAAE,WAAmB,CAAC;QACnD,MAAM,GAAG,GAAW,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,OAAO,GAAG,GAAG,GAAG,CAAA;IACjB,CAAC;CACD;AAjDA;IADC,IAAA,kCAAY,GAAE;;6CAC8C;AAZ9D,8BA6DC"}
1
+ {"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../src/plugins/Formatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqC;AACrC,sEAA4C;AAC5C,2EAA8D;AAC9D,0DAAgC;AAQhC,MAAa,SAAU,SAAQ,eAAM;IAArC;;QAYoB,eAAU,GAAW,qBAAqB,CAAA;IA2D9D,CAAC;IArEA,IAAc,QAAQ;QACrB,OAAe,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9B,CAAC;IAeM,WAAW,CAAC,MAA8B,IAAI,IAAI,EAAE;QAC1D,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;IACpD,CAAC;IAOM,sBAAsB,CAAC,MAA8B,IAAI,IAAI,EAAE;QACrE,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;IACvD,CAAC;IAOM,MAAM,CAAC,GAA2B;QACxC,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;IACtD,CAAC;IAQM,UAAU,CAAC,MAA8B,IAAI,IAAI,EAAE,EAAE,MAAe;QAC1E,OAAO,yBAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvF,CAAC;IAQM,SAAS,CAAC,KAAa,EAAE,WAAmB,CAAC;QACnD,MAAM,GAAG,GAAW,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,OAAO,GAAG,GAAG,GAAG,CAAA;IACjB,CAAC;IAQM,UAAU,CAAU,GAAM,EAAE,OAA+E;QACjH,OAAO,IAAA,mBAAQ,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;IACvD,CAAC;CACD;AA3DA;IADC,IAAA,kCAAY,GAAE;;6CAC8C;AAZ9D,8BAuEC"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { Plugin } from '../base/Plugin';
3
4
  import { URL } from 'url';
4
5
  import { NeedleOptions as HttpRequestOptions } from 'needle';
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.Security = void 0;
16
16
  const string_random_1 = __importDefault(require("string-random"));
17
17
  const crypto_js_1 = require("crypto-js");
18
+ const sort_keys_1 = __importDefault(require("sort-keys"));
18
19
  const bcryptjs_1 = require("bcryptjs");
19
20
  const Plugin_1 = require("../base/Plugin");
20
21
  const JSON_1 = require("./JSON");
@@ -37,7 +38,7 @@ class Security extends Plugin_1.Plugin {
37
38
  });
38
39
  }
39
40
  MD5(data, key) {
40
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
41
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
41
42
  if (key) {
42
43
  return (0, crypto_js_1.HmacMD5)(stringData, key).toString();
43
44
  }
@@ -46,7 +47,7 @@ class Security extends Plugin_1.Plugin {
46
47
  }
47
48
  }
48
49
  SHA1(data, key) {
49
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
50
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
50
51
  if (key) {
51
52
  return (0, crypto_js_1.HmacSHA1)(stringData, key).toString();
52
53
  }
@@ -55,7 +56,7 @@ class Security extends Plugin_1.Plugin {
55
56
  }
56
57
  }
57
58
  SHA3(data, key) {
58
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
59
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
59
60
  if (key) {
60
61
  return (0, crypto_js_1.HmacSHA3)(stringData, key).toString();
61
62
  }
@@ -64,7 +65,7 @@ class Security extends Plugin_1.Plugin {
64
65
  }
65
66
  }
66
67
  SHA224(data, key) {
67
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
68
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
68
69
  if (key) {
69
70
  return (0, crypto_js_1.HmacSHA224)(stringData, key).toString();
70
71
  }
@@ -73,7 +74,7 @@ class Security extends Plugin_1.Plugin {
73
74
  }
74
75
  }
75
76
  SHA256(data, key) {
76
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
77
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
77
78
  if (key) {
78
79
  return (0, crypto_js_1.HmacSHA256)(stringData, key).toString();
79
80
  }
@@ -82,7 +83,7 @@ class Security extends Plugin_1.Plugin {
82
83
  }
83
84
  }
84
85
  SHA384(data, key) {
85
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
86
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
86
87
  if (key) {
87
88
  return (0, crypto_js_1.HmacSHA384)(stringData, key).toString();
88
89
  }
@@ -91,7 +92,7 @@ class Security extends Plugin_1.Plugin {
91
92
  }
92
93
  }
93
94
  SHA512(data, key) {
94
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
95
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
95
96
  if (key) {
96
97
  return (0, crypto_js_1.HmacSHA512)(stringData, key).toString();
97
98
  }
@@ -100,7 +101,7 @@ class Security extends Plugin_1.Plugin {
100
101
  }
101
102
  }
102
103
  encryptByPassword(data, password) {
103
- const stringData = typeof data === 'string' ? data : this.JSON.stringify(data);
104
+ const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
104
105
  return crypto_js_1.AES.encrypt(stringData, password).toString();
105
106
  }
106
107
  decryptByPassword(ciphertext, password) {
@@ -1 +1 @@
1
- {"version":3,"file":"Security.js","sourceRoot":"","sources":["../../src/plugins/Security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Security.js","sourceRoot":"","sources":["../../src/plugins/Security.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/core",
3
- "version": "1.0.46",
3
+ "version": "1.0.49",
4
4
  "description": "Lakutata Framework Core",
5
5
  "main": "./build/Core.js",
6
6
  "types": "./build/Core.d.ts",
@@ -55,23 +55,24 @@
55
55
  "dependencies": {
56
56
  "bcryptjs": "^2.4.3",
57
57
  "crypto-js": "^4.1.1",
58
- "google-libphonenumber": "^3.2.27",
58
+ "google-libphonenumber": "^3.2.30",
59
59
  "inversify": "^6.0.1",
60
60
  "is-ssh": "^1.3.3",
61
61
  "json-helpers": "^5.2.0",
62
62
  "json5": "^2.2.1",
63
63
  "lodash.mapvalues": "^4.6.0",
64
- "memfs": "^3.4.1",
64
+ "memfs": "^3.4.7",
65
65
  "merge-deep": "^3.0.3",
66
- "moment": "^2.29.3",
66
+ "moment": "^2.29.4",
67
67
  "moment-timezone": "^0.5.34",
68
- "msgpack5": "^6.0.0",
68
+ "msgpack5": "^6.0.2",
69
69
  "needle": "^3.1.0",
70
70
  "node-rsa": "^1.1.1",
71
71
  "p-timeout": "^4.1.0",
72
72
  "pupa": "^2.1.1",
73
73
  "random": "^3.0.6",
74
74
  "reflect-metadata": "^0.1.13",
75
+ "sort-keys": "^4.2.0",
75
76
  "string-random": "^0.1.3",
76
77
  "winston": "^3.7.2",
77
78
  "winston-transport": "^4.5.0",
@@ -96,8 +97,8 @@
96
97
  "eslint-plugin-node": "^11.1.0",
97
98
  "eslint-plugin-promise": "^5.2.0",
98
99
  "shx": "^0.3.4",
99
- "ts-node": "^10.7.0" ,
100
- "typescript": "^4.6.2"
100
+ "ts-node": "^10.9.1",
101
+ "typescript": "^4.7.4"
101
102
  },
102
103
  "engines": {
103
104
  "node": ">=12.22.1"
@@ -1,6 +1,7 @@
1
1
  import {Plugin} from '../base/Plugin'
2
2
  import momentTimezone from 'moment-timezone'
3
3
  import {Configurable} from '../decorators/DependencyInjection'
4
+ import sortKeys from 'sort-keys'
4
5
 
5
6
  declare module '../Core' {
6
7
  interface Application {
@@ -69,4 +70,14 @@ export class Formatter extends Plugin {
69
70
  const val: number = +((value * 100).toFixed(decimals))
70
71
  return `${val}%`
71
72
  }
72
- }
73
+
74
+ /**
75
+ * 对象内容排序(Object或Array均可)
76
+ * @param {T} obj
77
+ * @param {{deep?: boolean, compare?: (left: string, right: string) => number}} options
78
+ * @returns {T}
79
+ */
80
+ public sortObject<T = any>(obj: T, options?: { deep?: boolean; compare?: (left: string, right: string) => number }): T {
81
+ return sortKeys(obj, options ? options : {deep: true})
82
+ }
83
+ }
@@ -17,6 +17,7 @@ import {
17
17
  AES,
18
18
  enc
19
19
  } from 'crypto-js'
20
+ import sortKeys from 'sort-keys'
20
21
  import {genSalt, genSaltSync, hash, hashSync, compare, compareSync} from 'bcryptjs'
21
22
  import {Plugin} from '../base/Plugin'
22
23
  import {JSON} from './JSON'
@@ -70,7 +71,7 @@ export class Security extends Plugin {
70
71
  * @constructor
71
72
  */
72
73
  public MD5(data: any, key?: string): string {
73
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
74
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
74
75
  if (key) {
75
76
  return HmacMD5(stringData, key).toString()
76
77
  } else {
@@ -86,7 +87,7 @@ export class Security extends Plugin {
86
87
  * @constructor
87
88
  */
88
89
  public SHA1(data: any, key?: string): string {
89
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
90
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
90
91
  if (key) {
91
92
  return HmacSHA1(stringData, key).toString()
92
93
  } else {
@@ -102,7 +103,7 @@ export class Security extends Plugin {
102
103
  * @constructor
103
104
  */
104
105
  public SHA3(data: any, key?: string): string {
105
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
106
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
106
107
  if (key) {
107
108
  return HmacSHA3(stringData, key).toString()
108
109
  } else {
@@ -118,7 +119,7 @@ export class Security extends Plugin {
118
119
  * @constructor
119
120
  */
120
121
  public SHA224(data: any, key?: string): string {
121
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
122
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
122
123
  if (key) {
123
124
  return HmacSHA224(stringData, key).toString()
124
125
  } else {
@@ -134,7 +135,7 @@ export class Security extends Plugin {
134
135
  * @constructor
135
136
  */
136
137
  public SHA256(data: any, key?: string): string {
137
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
138
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
138
139
  if (key) {
139
140
  return HmacSHA256(stringData, key).toString()
140
141
  } else {
@@ -150,7 +151,7 @@ export class Security extends Plugin {
150
151
  * @constructor
151
152
  */
152
153
  public SHA384(data: any, key?: string): string {
153
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
154
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
154
155
  if (key) {
155
156
  return HmacSHA384(stringData, key).toString()
156
157
  } else {
@@ -166,7 +167,7 @@ export class Security extends Plugin {
166
167
  * @constructor
167
168
  */
168
169
  public SHA512(data: any, key?: string): string {
169
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
170
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
170
171
  if (key) {
171
172
  return HmacSHA512(stringData, key).toString()
172
173
  } else {
@@ -181,7 +182,7 @@ export class Security extends Plugin {
181
182
  * @returns {string}
182
183
  */
183
184
  public encryptByPassword<T = any>(data: T, password: string): string {
184
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(data)
185
+ const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
185
186
  return AES.encrypt(stringData, password).toString()
186
187
  }
187
188
 
@@ -40,7 +40,7 @@ import {TestException} from './exceptions/TestException'
40
40
  {
41
41
  class: Formatter,
42
42
  dateFormat: 'YYYY-MM-DD HH:mm:ss'
43
- },
43
+ }
44
44
  // {
45
45
  // class: Logger,
46
46
  // level: 'debug'