almighty-tool 0.0.1

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 (115) hide show
  1. package/.babelrc +17 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintignore +7 -0
  4. package/.eslintrc.js +5 -0
  5. package/.nvmrc +1 -0
  6. package/.prettierrc.js +1 -0
  7. package/.yarnrc +12 -0
  8. package/CHANGELOG.md +7 -0
  9. package/README.md +11 -0
  10. package/jest.config.js +1 -0
  11. package/lib/api/interfaces/api/base.api.d.ts +48 -0
  12. package/lib/api/interfaces/api/base.api.js +3 -0
  13. package/lib/api/interfaces/api/base.api.js.map +1 -0
  14. package/lib/api/interfaces/models/basic.model.d.ts +4 -0
  15. package/lib/api/interfaces/models/basic.model.js +3 -0
  16. package/lib/api/interfaces/models/basic.model.js.map +1 -0
  17. package/lib/api/interfaces/models/pagination.model.d.ts +26 -0
  18. package/lib/api/interfaces/models/pagination.model.js +3 -0
  19. package/lib/api/interfaces/models/pagination.model.js.map +1 -0
  20. package/lib/api/interfaces/types.d.ts +7 -0
  21. package/lib/api/interfaces/types.js +3 -0
  22. package/lib/api/interfaces/types.js.map +1 -0
  23. package/lib/api/models/basic.model.d.ts +7 -0
  24. package/lib/api/models/basic.model.js +25 -0
  25. package/lib/api/models/basic.model.js.map +1 -0
  26. package/lib/api/models/pagination.model.d.ts +35 -0
  27. package/lib/api/models/pagination.model.js +113 -0
  28. package/lib/api/models/pagination.model.js.map +1 -0
  29. package/lib/common/enum-object.d.ts +48 -0
  30. package/lib/common/enum-object.js +84 -0
  31. package/lib/common/enum-object.js.map +1 -0
  32. package/lib/common/general.d.ts +28 -0
  33. package/lib/common/general.js +173 -0
  34. package/lib/common/general.js.map +1 -0
  35. package/lib/common/validator.d.ts +20 -0
  36. package/lib/common/validator.js +30 -0
  37. package/lib/common/validator.js.map +1 -0
  38. package/lib/dayjs/locales/zh-cn.d.ts +40 -0
  39. package/lib/dayjs/locales/zh-cn.js +73 -0
  40. package/lib/dayjs/locales/zh-cn.js.map +1 -0
  41. package/lib/formats/date.format.d.ts +30 -0
  42. package/lib/formats/date.format.js +78 -0
  43. package/lib/formats/date.format.js.map +1 -0
  44. package/lib/interfaces/common/general.d.ts +186 -0
  45. package/lib/interfaces/common/general.js +28 -0
  46. package/lib/interfaces/common/general.js.map +1 -0
  47. package/lib/interfaces/utils/basic-util.d.ts +22 -0
  48. package/lib/interfaces/utils/basic-util.js +3 -0
  49. package/lib/interfaces/utils/basic-util.js.map +1 -0
  50. package/lib/interfaces/utils/date-util.d.ts +12 -0
  51. package/lib/interfaces/utils/date-util.js +3 -0
  52. package/lib/interfaces/utils/date-util.js.map +1 -0
  53. package/lib/interfaces/utils/format-util.d.ts +7 -0
  54. package/lib/interfaces/utils/format-util.js +3 -0
  55. package/lib/interfaces/utils/format-util.js.map +1 -0
  56. package/lib/locales/en/index.d.ts +19 -0
  57. package/lib/locales/en/index.js +21 -0
  58. package/lib/locales/en/index.js.map +1 -0
  59. package/lib/locales/index.d.ts +0 -0
  60. package/lib/locales/index.js +2 -0
  61. package/lib/locales/index.js.map +1 -0
  62. package/lib/locales/zh-cn/index.d.ts +33 -0
  63. package/lib/locales/zh-cn/index.js +35 -0
  64. package/lib/locales/zh-cn/index.js.map +1 -0
  65. package/lib/utils/accurate.util.d.ts +28 -0
  66. package/lib/utils/accurate.util.js +123 -0
  67. package/lib/utils/accurate.util.js.map +1 -0
  68. package/lib/utils/basic.util.d.ts +83 -0
  69. package/lib/utils/basic.util.js +286 -0
  70. package/lib/utils/basic.util.js.map +1 -0
  71. package/lib/utils/crypto.util.d.ts +65 -0
  72. package/lib/utils/crypto.util.js +151 -0
  73. package/lib/utils/crypto.util.js.map +1 -0
  74. package/lib/utils/date.util.d.ts +52 -0
  75. package/lib/utils/date.util.js +211 -0
  76. package/lib/utils/date.util.js.map +1 -0
  77. package/lib/utils/format.util.d.ts +49 -0
  78. package/lib/utils/format.util.js +98 -0
  79. package/lib/utils/format.util.js.map +1 -0
  80. package/lib/utils/locale.util.d.ts +20 -0
  81. package/lib/utils/locale.util.js +206 -0
  82. package/lib/utils/locale.util.js.map +1 -0
  83. package/lib/utils/number.util.d.ts +21 -0
  84. package/lib/utils/number.util.js +33 -0
  85. package/lib/utils/number.util.js.map +1 -0
  86. package/package.json +102 -0
  87. package/templates/eslints/eggjs.project.js +15 -0
  88. package/templates/eslints/element-ui.project.js +4 -0
  89. package/templates/eslints/recommended.js +26 -0
  90. package/templates/eslints/rules/recommended.js +26 -0
  91. package/templates/eslints/rules/vue.js +12 -0
  92. package/templates/eslints/server.project.js +18 -0
  93. package/templates/eslints/uni-app-v8.project.js +43 -0
  94. package/templates/eslints/uni-app.project.js +45 -0
  95. package/templates/eslints/vue.project.js +39 -0
  96. package/templates/jest/element-ui.project.js +1 -0
  97. package/templates/jest/recommended.js +19 -0
  98. package/templates/jest/vue.project.js +44 -0
  99. package/templates/postcss/recommended.js +4 -0
  100. package/templates/postcss/uni-app.js +11 -0
  101. package/templates/prettiers/recommended.js +26 -0
  102. package/templates/stylelint/recommended.js +42 -0
  103. package/templates/stylelint/rules/recommended.js +22 -0
  104. package/templates/stylelint/uni-app.project.js +11 -0
  105. package/templates/tsconfigs/eggjs.json +31 -0
  106. package/templates/tsconfigs/element-ui.json +3 -0
  107. package/templates/tsconfigs/lib.json +15 -0
  108. package/templates/tsconfigs/quasar.json +25 -0
  109. package/templates/tsconfigs/recommended.json +43 -0
  110. package/templates/tsconfigs/server.json +23 -0
  111. package/templates/tsconfigs/uni-app.json +39 -0
  112. package/templates/tsconfigs/vue.json +45 -0
  113. package/templates/tslints/recommended.json +13 -0
  114. package/tsconfig.json +9 -0
  115. package/types/index.d.ts +0 -0
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
6
+ var is_what_1 = require("is-what");
7
+ var lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
8
+ var qs_1 = (0, tslib_1.__importDefault)(require("qs"));
9
+ var crypto_util_1 = (0, tslib_1.__importDefault)(require("./crypto.util"));
10
+ exports.default = {
11
+ /** 将css样式对象转为字符串 */
12
+ cssObjectToString: function (style) {
13
+ var styles = [];
14
+ lodash_1.default.each(style, function (value, key) {
15
+ if (value !== null && value !== false) {
16
+ styles.push("".concat(key, ": ").concat(value));
17
+ }
18
+ });
19
+ return styles.join('; ');
20
+ },
21
+ /** 文本复制: 暂支持h5端网页版 */
22
+ setClipboardData: function (options) {
23
+ var data = (options || {}).data || '';
24
+ var isOk = false;
25
+ if (typeof document !== 'undefined' && typeof document.createElement !== 'undefined') {
26
+ var textarea = document.createElement('textarea');
27
+ try {
28
+ textarea.value = data;
29
+ document.body.appendChild(textarea);
30
+ textarea.select();
31
+ document.execCommand('Copy');
32
+ document.body.removeChild(textarea);
33
+ if (options && typeof options.success === 'function') {
34
+ options.success({
35
+ data: data,
36
+ errMsg: 'setClipboardData:ok',
37
+ });
38
+ isOk = true;
39
+ }
40
+ }
41
+ catch (error) {
42
+ if (options && typeof options.fail === 'function') {
43
+ options.fail({
44
+ data: data,
45
+ errMsg: 'setClipboardData:fail',
46
+ });
47
+ }
48
+ }
49
+ finally {
50
+ if (options && typeof options.complete === 'function') {
51
+ if (isOk) {
52
+ options.complete({
53
+ data: data,
54
+ errMsg: 'setClipboardData:ok',
55
+ });
56
+ }
57
+ else {
58
+ options.complete({
59
+ data: data,
60
+ errMsg: 'setClipboardData:fail',
61
+ });
62
+ }
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ if (typeof options !== 'undefined' && typeof options.fail === 'function') {
68
+ options.fail({
69
+ data: data,
70
+ errMsg: 'setClipboardData:fail',
71
+ });
72
+ }
73
+ if (typeof options !== 'undefined' && typeof options.complete === 'function') {
74
+ options.complete({
75
+ data: data,
76
+ errMsg: 'setClipboardData:fail',
77
+ });
78
+ }
79
+ }
80
+ },
81
+ /** 根据baseUrl and queryString构造URL */
82
+ buildUrl: function (url, query) {
83
+ if (query === void 0) { query = {}; }
84
+ var queryString = typeof query === 'string' ? query : qs_1.default.stringify(query);
85
+ if (queryString) {
86
+ if (url.includes('?')) {
87
+ if (url.endsWith('&')) {
88
+ return "".concat(url).concat(queryString);
89
+ }
90
+ else {
91
+ return "".concat(url, "&").concat(queryString);
92
+ }
93
+ }
94
+ else {
95
+ return "".concat(url, "?").concat(queryString);
96
+ }
97
+ }
98
+ return url;
99
+ },
100
+ /** 将一个对象转为查询参数 */
101
+ encodeQuery: function (query) {
102
+ return encodeURIComponent(crypto_util_1.default.base64Encode(JSON.stringify(query)));
103
+ },
104
+ /** 将编码后的查询参数解开 */
105
+ decodeQuery: function (str) {
106
+ return JSON.parse(crypto_util_1.default.base64Decode(decodeURIComponent(str)));
107
+ },
108
+ /** 睡眠等待毫秒 */
109
+ sleep: function (timeout) {
110
+ return new Promise(function (resolve) {
111
+ setTimeout(function () {
112
+ resolve();
113
+ }, timeout);
114
+ });
115
+ },
116
+ /** 异步forEach */
117
+ forEachAsync: function (arr, callback) {
118
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
119
+ var length, objectArr, k;
120
+ return (0, tslib_1.__generator)(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ length = arr.length;
124
+ objectArr = Object(arr);
125
+ k = 0;
126
+ _a.label = 1;
127
+ case 1:
128
+ if (!(k < length)) return [3 /*break*/, 4];
129
+ if (!(k in objectArr)) return [3 /*break*/, 3];
130
+ return [4 /*yield*/, callback(objectArr[k], k, objectArr)];
131
+ case 2:
132
+ _a.sent();
133
+ _a.label = 3;
134
+ case 3:
135
+ k++;
136
+ return [3 /*break*/, 1];
137
+ case 4: return [2 /*return*/];
138
+ }
139
+ });
140
+ });
141
+ },
142
+ /**
143
+ *
144
+ * 给一个对象数组进行去重
145
+ *
146
+ * @param objs
147
+ * @param key
148
+ */
149
+ objectsUniqueByKey: function (objs, key) {
150
+ var newObjs = [];
151
+ var cacheObjs = {};
152
+ objs.forEach(function (obj) {
153
+ var value = Reflect.get(obj, key);
154
+ if (typeof Reflect.get(cacheObjs, value) === 'undefined') {
155
+ newObjs.push(obj);
156
+ Reflect.set(cacheObjs, value, obj);
157
+ }
158
+ });
159
+ return newObjs;
160
+ },
161
+ /**
162
+ *
163
+ * 给一个对象数组按照key来索引
164
+ *
165
+ * @param objs
166
+ * @param key
167
+ */
168
+ objectsIndexByKey: function (objs, key) {
169
+ var newObjs = {};
170
+ objs.forEach(function (obj) {
171
+ Reflect.set(newObjs, Reflect.get(obj, key), obj);
172
+ });
173
+ return newObjs;
174
+ },
175
+ /**
176
+ *
177
+ * 给一个对象数组fn进行索引,返回对象
178
+ *
179
+ * @param objs
180
+ * @param fn
181
+ */
182
+ objectsIndexByFn: function (objs, fn) {
183
+ var newObjs = {};
184
+ objs.forEach(function (obj) {
185
+ Reflect.set(newObjs, fn(obj), obj);
186
+ });
187
+ return newObjs;
188
+ },
189
+ /**
190
+ *
191
+ * 给一个对象数组按照key来分组
192
+ *
193
+ * @param objs
194
+ * @param key
195
+ */
196
+ objectsGroupByKey: function (objs, key) {
197
+ var newObjs = {};
198
+ objs.forEach(function (obj) {
199
+ var value = obj[key];
200
+ var pairObjs = Reflect.get(newObjs, value);
201
+ if (typeof pairObjs === 'undefined') {
202
+ pairObjs = [];
203
+ Reflect.set(newObjs, value, pairObjs);
204
+ }
205
+ pairObjs.push(obj);
206
+ });
207
+ return newObjs;
208
+ },
209
+ /**
210
+ *
211
+ * 给一个对象数组按照fn来分组
212
+ *
213
+ * @param objs
214
+ * @param fn
215
+ */
216
+ objectsGroupByFn: function (objs, fn) {
217
+ var newObjs = {};
218
+ objs.forEach(function (obj) {
219
+ var value = fn(obj);
220
+ var pairObjs = Reflect.get(newObjs, value);
221
+ if (typeof pairObjs === 'undefined') {
222
+ pairObjs = [];
223
+ Reflect.set(newObjs, value, pairObjs);
224
+ }
225
+ pairObjs.push(obj);
226
+ });
227
+ return newObjs;
228
+ },
229
+ /** 将对象按照特定的key进行排序 */
230
+ sortKeys: function (obj, options) {
231
+ if (options === void 0) { options = {}; }
232
+ if (!(0, is_what_1.isPlainObject)(obj) && !Array.isArray(obj)) {
233
+ throw new TypeError('Expected a plain object or array');
234
+ }
235
+ var deep = options.deep, compare = options.compare;
236
+ var seenInput = [];
237
+ var seenOutput = [];
238
+ var deepSortArray = function (array) {
239
+ var seenIndex = seenInput.indexOf(array);
240
+ if (seenIndex !== -1) {
241
+ return seenOutput[seenIndex];
242
+ }
243
+ var result = [];
244
+ seenInput.push(array);
245
+ seenOutput.push(result);
246
+ array.forEach(function (item) {
247
+ if (Array.isArray(item)) {
248
+ array.push(deepSortArray(item));
249
+ }
250
+ if ((0, is_what_1.isPlainObject)(item)) {
251
+ array.push(_sortKeys(item));
252
+ }
253
+ array.push(item);
254
+ });
255
+ return result;
256
+ };
257
+ var _sortKeys = function (object) {
258
+ var seenIndex = seenInput.indexOf(object);
259
+ if (seenIndex !== -1) {
260
+ return seenOutput[seenIndex];
261
+ }
262
+ var result = {};
263
+ var keys = Object.keys(object).sort(compare);
264
+ seenInput.push(object);
265
+ seenOutput.push(result);
266
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
267
+ var key = keys_1[_i];
268
+ var value = object[key];
269
+ var newValue = void 0;
270
+ if (deep && Array.isArray(value)) {
271
+ newValue = deepSortArray(value);
272
+ }
273
+ else {
274
+ newValue = deep && (0, is_what_1.isPlainObject)(value) ? _sortKeys(value) : value;
275
+ }
276
+ Object.defineProperty(result, key, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, Object.getOwnPropertyDescriptor(object, key)), { value: newValue }));
277
+ }
278
+ return result;
279
+ };
280
+ if (Array.isArray(obj)) {
281
+ return deep ? deepSortArray(obj) : obj.slice();
282
+ }
283
+ return _sortKeys(obj);
284
+ },
285
+ };
286
+ //# sourceMappingURL=basic.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.util.js","sourceRoot":"","sources":["../../src/utils/basic.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ import crypto from 'crypto';
3
+ interface IGenerateRsaKeyPairOptions {
4
+ modulusLength?: number;
5
+ publicExponent?: number;
6
+ }
7
+ declare const _default: {
8
+ /** 私钥加密: 对长文字进行 */
9
+ longPrivateEncrypt(privateKey: string | Buffer, buffer: string | Buffer): {
10
+ encryptedAesKey: string;
11
+ encryptedData: string;
12
+ };
13
+ /** 公钥解密: 对长文字进行 */
14
+ longPublicDecrypt(publicKey: string | Buffer, encryptedAesKey: string, encryptedData: string): string;
15
+ /** 公钥加密: 对长文字进行 */
16
+ longPublicEncrypt(publicKey: string | Buffer, buffer: string | Buffer): {
17
+ encryptedAesKey: string;
18
+ encryptedData: string;
19
+ };
20
+ /** 私钥解密: 对长文字进行 */
21
+ longPrivatgeDecrypt(privateKey: string | Buffer, encryptedAesKey: string, encryptedData: string): string;
22
+ /** 私钥加密 */
23
+ privateEncrypt(privateKey: string | Buffer, buffer: string | Buffer): string;
24
+ /** 公钥解密 */
25
+ publicDecrypt(publicKey: string | Buffer, buffer: string | Buffer): Buffer;
26
+ /** 公钥加密 */
27
+ publicEncrypt(publicKey: string | Buffer, buffer: string | Buffer): string;
28
+ /** 私钥解密 */
29
+ privateDecrypt(privateKey: string | Buffer, buffer: string | Buffer): Buffer;
30
+ /** 生成RSA的钥匙对 */
31
+ generateRsaKeyPair(options?: IGenerateRsaKeyPairOptions): {
32
+ publicKey: string;
33
+ privateKey: string;
34
+ };
35
+ /** 获取md5摘要 */
36
+ md5(value: string, encoding?: crypto.BinaryToTextEncoding): string;
37
+ /** 获取sha256摘要 */
38
+ sha256(value: string, encoding?: crypto.BinaryToTextEncoding): string;
39
+ /** 获取sha512摘要 */
40
+ sha512(value: string, encoding?: crypto.BinaryToTextEncoding): string;
41
+ /** base64编码 */
42
+ base64Encode(value: string): string;
43
+ /** base64解码 */
44
+ base64Decode(value: string): string;
45
+ /** 生成随机的aes iv */
46
+ generateAesIv(algorithm?: string): string;
47
+ /** 生成随机的aes key */
48
+ generateAesKey(algorithm?: string): string;
49
+ /** 生成随机的字节 */
50
+ generateRandomBytes(bytes?: number): Buffer;
51
+ /**
52
+ * 加密
53
+ *
54
+ * iv-length: 192/8
55
+ */
56
+ aesEncrypt(data: string, key: string, iv: string, algorithm?: string): string;
57
+ /**
58
+ * 解密
59
+ */
60
+ aesDecrypt(data: string, key: string, iv: string, algorithm?: string): string;
61
+ };
62
+ /**
63
+ * http://nodejs.cn/api/crypto.html
64
+ */
65
+ export default _default;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var crypto_1 = (0, tslib_1.__importDefault)(require("crypto"));
5
+ var general_1 = (0, tslib_1.__importDefault)(require("../common/general"));
6
+ var deepmerge_1 = (0, tslib_1.__importDefault)(require("deepmerge"));
7
+ /**
8
+ * http://nodejs.cn/api/crypto.html
9
+ */
10
+ exports.default = {
11
+ /** 私钥加密: 对长文字进行 */
12
+ longPrivateEncrypt: function (privateKey, buffer) {
13
+ var aesKey = this.generateAesKey('aes-128-cbc');
14
+ var aesIv = this.generateAesIv('aes-128-cbc');
15
+ var encryptedAesKey = this.privateEncrypt(privateKey, aesKey);
16
+ var encryptedData = "".concat(aesIv).concat(this.aesEncrypt(buffer.toString(), aesKey, aesIv));
17
+ return {
18
+ encryptedAesKey: encryptedAesKey,
19
+ encryptedData: encryptedData,
20
+ };
21
+ },
22
+ /** 公钥解密: 对长文字进行 */
23
+ longPublicDecrypt: function (publicKey, encryptedAesKey, encryptedData) {
24
+ var key = this.publicDecrypt(publicKey, encryptedAesKey).toString();
25
+ var iv = encryptedData.slice(0, 16);
26
+ return this.aesDecrypt(encryptedData.slice(16), key, iv);
27
+ },
28
+ /** 公钥加密: 对长文字进行 */
29
+ longPublicEncrypt: function (publicKey, buffer) {
30
+ var aesKey = this.generateAesKey('aes-128-cbc');
31
+ var aesIv = this.generateAesIv('aes-128-cbc');
32
+ var encryptedAesKey = this.publicEncrypt(publicKey, aesKey);
33
+ var encryptedData = "".concat(aesIv).concat(this.aesEncrypt(buffer.toString(), aesKey, aesIv));
34
+ return {
35
+ encryptedAesKey: encryptedAesKey,
36
+ encryptedData: encryptedData,
37
+ };
38
+ },
39
+ /** 私钥解密: 对长文字进行 */
40
+ longPrivatgeDecrypt: function (privateKey, encryptedAesKey, encryptedData) {
41
+ var key = this.privateDecrypt(privateKey, encryptedAesKey).toString();
42
+ var iv = encryptedData.slice(0, 16);
43
+ return this.aesDecrypt(encryptedData.slice(16), key, iv);
44
+ },
45
+ /** 私钥加密 */
46
+ privateEncrypt: function (privateKey, buffer) {
47
+ return crypto_1.default.privateEncrypt(privateKey, Buffer.from(buffer)).toString('base64');
48
+ },
49
+ /** 公钥解密 */
50
+ publicDecrypt: function (publicKey, buffer) {
51
+ return crypto_1.default.publicDecrypt(publicKey, Buffer.from(buffer.toString(), 'base64'));
52
+ },
53
+ /** 公钥加密 */
54
+ publicEncrypt: function (publicKey, buffer) {
55
+ return crypto_1.default.publicEncrypt(publicKey, Buffer.from(buffer)).toString('base64');
56
+ },
57
+ /** 私钥解密 */
58
+ privateDecrypt: function (privateKey, buffer) {
59
+ return crypto_1.default.privateDecrypt(privateKey, Buffer.from(buffer.toString(), 'base64'));
60
+ },
61
+ /** 生成RSA的钥匙对 */
62
+ generateRsaKeyPair: function (options) {
63
+ if (options === void 0) { options = {}; }
64
+ var _a = crypto_1.default.generateKeyPairSync('rsa', (0, deepmerge_1.default)({
65
+ modulusLength: 4096,
66
+ publicKeyEncoding: {
67
+ type: 'spki',
68
+ format: 'pem',
69
+ },
70
+ privateKeyEncoding: {
71
+ type: 'pkcs8',
72
+ format: 'pem',
73
+ // cipher: 'aes-256-cbc',
74
+ // passphrase: 'top secret',
75
+ },
76
+ }, options)), publicKey = _a.publicKey, privateKey = _a.privateKey;
77
+ return {
78
+ publicKey: "".concat(publicKey),
79
+ privateKey: "".concat(privateKey),
80
+ };
81
+ },
82
+ /** 获取md5摘要 */
83
+ md5: function (value, encoding) {
84
+ if (encoding === void 0) { encoding = 'hex'; }
85
+ return crypto_1.default.createHash('md5').update(value).digest(encoding);
86
+ },
87
+ /** 获取sha256摘要 */
88
+ sha256: function (value, encoding) {
89
+ if (encoding === void 0) { encoding = 'hex'; }
90
+ return crypto_1.default.createHash('sha256').update(value).digest(encoding);
91
+ },
92
+ /** 获取sha512摘要 */
93
+ sha512: function (value, encoding) {
94
+ if (encoding === void 0) { encoding = 'hex'; }
95
+ return crypto_1.default.createHash('sha512').update(value).digest(encoding);
96
+ },
97
+ /** base64编码 */
98
+ base64Encode: function (value) {
99
+ return Buffer.from(value).toString('base64');
100
+ },
101
+ /** base64解码 */
102
+ base64Decode: function (value) {
103
+ return Buffer.from(value, 'base64').toString();
104
+ },
105
+ /** 生成随机的aes iv */
106
+ generateAesIv: function (algorithm) {
107
+ if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
108
+ return general_1.default.generateRandomString({
109
+ length: Number(algorithm.split('-')[1]) / 8,
110
+ });
111
+ },
112
+ /** 生成随机的aes key */
113
+ generateAesKey: function (algorithm) {
114
+ if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
115
+ return general_1.default.generateRandomString({
116
+ length: Number(algorithm.split('-')[1]) / 8,
117
+ });
118
+ },
119
+ /** 生成随机的字节 */
120
+ generateRandomBytes: function (bytes) {
121
+ if (bytes === void 0) { bytes = 16; }
122
+ return crypto_1.default.randomBytes(bytes);
123
+ },
124
+ /**
125
+ * 加密
126
+ *
127
+ * iv-length: 192/8
128
+ */
129
+ aesEncrypt: function (data, key, iv, algorithm) {
130
+ if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
131
+ var cipherChunks = [];
132
+ var cipher = crypto_1.default.createCipheriv(algorithm, key, iv);
133
+ cipher.setAutoPadding(true);
134
+ cipherChunks.push(cipher.update(data, 'utf8', 'base64'));
135
+ cipherChunks.push(cipher.final('base64'));
136
+ return cipherChunks.join('');
137
+ },
138
+ /**
139
+ * 解密
140
+ */
141
+ aesDecrypt: function (data, key, iv, algorithm) {
142
+ if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
143
+ var cipherChunks = [];
144
+ var decipher = crypto_1.default.createDecipheriv(algorithm, key, iv);
145
+ decipher.setAutoPadding(true);
146
+ cipherChunks.push(decipher.update(data, 'base64', 'utf8'));
147
+ cipherChunks.push(decipher.final('utf8'));
148
+ return cipherChunks.join('');
149
+ },
150
+ };
151
+ //# sourceMappingURL=crypto.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.util.js","sourceRoot":"","sources":["../../src/utils/crypto.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export declare type RANGE_UNIT = 'year' | 'years' | 'y' | 'month' | 'months' | 'M' | 'week' | 'weeks' | 'w' | 'day' | 'days' | 'd' | 'hour' | 'hours' | 'h' | 'minute' | 'minutes' | 'm' | 'second' | 'seconds' | 's' | 'millisecond' | 'milliseconds' | 'ms';
2
+ /**
3
+ * 日期相关的方法封装
4
+ */
5
+ declare const dateUtil: {
6
+ /** 是否为闰年 */
7
+ isLeapYear(date: Date): boolean;
8
+ isLeap(year: number): boolean;
9
+ /** 是否是一个月的最后一天 */
10
+ isLastDayOfMonth(date: Date): boolean;
11
+ /** 获取日期的最后一天 */
12
+ getLastDayOfMonth(date: Date): number;
13
+ /**
14
+ * 时间相减
15
+ *
16
+ * @param date 原始时间
17
+ * @param amount 数量
18
+ * @param unit 单位
19
+ * @param fixMonthDay 是否修复月份里的日期
20
+ */
21
+ subtract(date: Date, amount: number, unit?: RANGE_UNIT, fixMonthDay?: boolean): Date;
22
+ /** 加时间 */
23
+ add(date: Date, amount: number, unit: RANGE_UNIT): Date;
24
+ /**
25
+ * 将字符串解析为Date类型
26
+ *
27
+ * eg.
28
+ *
29
+ * - '2020-02-28T05:29:10.000Z' ← '2020-02-28 13:29:10'
30
+ * - '2020-02-27T16:00:00.000Z' ← '2020-02-28'
31
+ * - '2020-02-27T16:00:00.000Z' ← '2020/02/28'
32
+ * - '2020-02-27T16:00:00.000Z' ← '2020/2/28'
33
+ * - '2020-02-07T16:00:00.000Z' ← '2020/2/8'
34
+ * - '2020-02-27T16:00:00.000Z' ← '2020年02月28日'
35
+ * - '2020-02-28T05:29:10.000Z' ← '2020年02月28日 13:29:10'
36
+ * - '2020-02-28T05:29:10.000Z' ← '2020年02月28日 13:29:10'
37
+ */
38
+ parse(value: Date | string | null): Date | null;
39
+ /**
40
+ * 是否是同一年
41
+ */
42
+ isSameYear(value: Date, value2?: Date): boolean;
43
+ /**
44
+ * 是否是同一月
45
+ */
46
+ isSameMonth(value: Date, value2?: Date): boolean;
47
+ /**
48
+ * 是否是同一天
49
+ */
50
+ isSameDate(value: Date, value2?: Date): boolean;
51
+ };
52
+ export default dateUtil;