cipher-kit 0.0.1 → 0.0.3

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkGYHEGPUY_cjs = require('./chunk-GYHEGPUY.cjs');
3
+ var chunkWD5FWRQ4_cjs = require('./chunk-WD5FWRQ4.cjs');
4
4
  var buffer = require('buffer');
5
5
  var nodeCrypto2 = require('crypto');
6
6
 
@@ -10,24 +10,23 @@ var nodeCrypto2__default = /*#__PURE__*/_interopDefault(nodeCrypto2);
10
10
 
11
11
  function encode(data, format = "utf8") {
12
12
  try {
13
- return chunkGYHEGPUY_cjs.$ok({ bytes: buffer.Buffer.from(data, format) });
13
+ return chunkWD5FWRQ4_cjs.$ok({ bytes: buffer.Buffer.from(data, format) });
14
14
  } catch (error) {
15
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to encode data", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
15
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to encode data", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
16
16
  }
17
17
  }
18
18
  function decode(data, format = "utf8") {
19
19
  try {
20
- return chunkGYHEGPUY_cjs.$ok(buffer.Buffer.from(data).toString(format));
20
+ return chunkWD5FWRQ4_cjs.$ok(buffer.Buffer.from(data).toString(format));
21
21
  } catch (error) {
22
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to decode data", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
22
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to decode data", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
23
23
  }
24
24
  }
25
- var ENCRYPTED_NODE_REGEX = /^([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)\.$/;
26
25
  function newUuid() {
27
26
  try {
28
- return chunkGYHEGPUY_cjs.$ok(nodeCrypto2__default.default.randomUUID());
27
+ return chunkWD5FWRQ4_cjs.$ok(nodeCrypto2__default.default.randomUUID());
29
28
  } catch (error) {
30
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to generate UUID with Crypto NodeJS", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
29
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to generate UUID with Crypto NodeJS", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
31
30
  }
32
31
  }
33
32
  function $isNodeKey(key) {
@@ -37,36 +36,36 @@ function $isNodeKey(key) {
37
36
  // src/node/encrypt.ts
38
37
  var NODE_ALGORITHM = "aes-256-gcm";
39
38
  function hash(data) {
40
- if (!chunkGYHEGPUY_cjs.$isStr(data)) {
41
- return chunkGYHEGPUY_cjs.$err({ message: "Empty data for hashing", description: "Data must be a non-empty string" });
39
+ if (!chunkWD5FWRQ4_cjs.$isStr(data)) {
40
+ return chunkWD5FWRQ4_cjs.$err({ message: "Empty data for hashing", description: "Data must be a non-empty string" });
42
41
  }
43
42
  try {
44
43
  const hashed = nodeCrypto2__default.default.createHash("sha256").update(data).digest();
45
44
  return decode(hashed, "base64url");
46
45
  } catch (error) {
47
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to hash data with Crypto NodeJS", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
46
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to hash data with Crypto NodeJS", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
48
47
  }
49
48
  }
50
49
  function newSecretKey(key) {
51
50
  if (typeof key === "string") {
52
- if (!chunkGYHEGPUY_cjs.$isStr(key, 1)) return chunkGYHEGPUY_cjs.$err({ message: "Empty key for Crypto NodeJS", description: "Invalid secret key" });
51
+ if (!chunkWD5FWRQ4_cjs.$isStr(key, 1)) return chunkWD5FWRQ4_cjs.$err({ message: "Empty key for Crypto NodeJS", description: "Invalid secret key" });
53
52
  try {
54
53
  const hashedKey = nodeCrypto2__default.default.createHash("sha256").update(key).digest();
55
54
  const secretKey = nodeCrypto2__default.default.createSecretKey(hashedKey);
56
- return chunkGYHEGPUY_cjs.$ok({ secretKey });
55
+ return chunkWD5FWRQ4_cjs.$ok({ secretKey });
57
56
  } catch (error) {
58
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to create secret key with Crypto NodeJS", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
57
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to create secret key with Crypto NodeJS", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
59
58
  }
60
59
  }
61
- if (!$isNodeKey(key)) return chunkGYHEGPUY_cjs.$err({ message: "Invalid secret key", description: "Expected a crypto.KeyObject" });
62
- return chunkGYHEGPUY_cjs.$ok({ secretKey: key });
60
+ if (!$isNodeKey(key)) return chunkWD5FWRQ4_cjs.$err({ message: "Invalid secret key", description: "Expected a crypto.KeyObject" });
61
+ return chunkWD5FWRQ4_cjs.$ok({ secretKey: key });
63
62
  }
64
63
  function encrypt(data, secretKey) {
65
- if (!chunkGYHEGPUY_cjs.$isStr(data)) {
66
- return chunkGYHEGPUY_cjs.$err({ message: "Empty data for encryption", description: "Data must be a non-empty string" });
64
+ if (!chunkWD5FWRQ4_cjs.$isStr(data)) {
65
+ return chunkWD5FWRQ4_cjs.$err({ message: "Empty data for encryption", description: "Data must be a non-empty string" });
67
66
  }
68
67
  if (!$isNodeKey(secretKey)) {
69
- return chunkGYHEGPUY_cjs.$err({ message: "Invalid encryption key", description: "Expected a crypto.KeyObject" });
68
+ return chunkWD5FWRQ4_cjs.$err({ message: "Invalid encryption key", description: "Expected a crypto.KeyObject" });
70
69
  }
71
70
  try {
72
71
  const iv = nodeCrypto2__default.default.randomBytes(12);
@@ -77,35 +76,35 @@ function encrypt(data, secretKey) {
77
76
  const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, "base64url");
78
77
  const { result: decodedTag, error: tagError } = decode(tag, "base64url");
79
78
  if (ivError || encryptedError || tagError) {
80
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to encode encrypted data", description: "Encoding error" });
79
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to encode encrypted data", description: "Encoding error" });
81
80
  }
82
- return chunkGYHEGPUY_cjs.$ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);
81
+ return chunkWD5FWRQ4_cjs.$ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);
83
82
  } catch (error) {
84
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to encrypt data with Crypto NodeJS", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
83
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to encrypt data with Crypto NodeJS", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
85
84
  }
86
85
  }
87
86
  function decrypt(encrypted, secretKey) {
88
- if (ENCRYPTED_NODE_REGEX.test(encrypted) === false) {
89
- return chunkGYHEGPUY_cjs.$err({
87
+ if (chunkWD5FWRQ4_cjs.ENCRYPTED_NODE_REGEX.test(encrypted) === false) {
88
+ return chunkWD5FWRQ4_cjs.$err({
90
89
  message: "Invalid encrypted data format",
91
90
  description: 'Encrypted data must be in the format "iv.encrypted.tag."'
92
91
  });
93
92
  }
94
93
  const [iv, encryptedData, tag] = encrypted.split(".", 4);
95
- if (!chunkGYHEGPUY_cjs.$isStr(iv, 1) || !chunkGYHEGPUY_cjs.$isStr(encryptedData, 1) || !chunkGYHEGPUY_cjs.$isStr(tag, 1)) {
96
- return chunkGYHEGPUY_cjs.$err({
94
+ if (!chunkWD5FWRQ4_cjs.$isStr(iv, 1) || !chunkWD5FWRQ4_cjs.$isStr(encryptedData, 1) || !chunkWD5FWRQ4_cjs.$isStr(tag, 1)) {
95
+ return chunkWD5FWRQ4_cjs.$err({
97
96
  message: "Invalid parameters for decryption",
98
97
  description: "IV, encrypted data, and tag must be non-empty strings"
99
98
  });
100
99
  }
101
100
  if (!$isNodeKey(secretKey)) {
102
- return chunkGYHEGPUY_cjs.$err({ message: "Invalid decryption key", description: "Expected a crypto.KeyObject" });
101
+ return chunkWD5FWRQ4_cjs.$err({ message: "Invalid decryption key", description: "Expected a crypto.KeyObject" });
103
102
  }
104
103
  const { bytes: ivBytes, error: ivError } = encode(iv, "base64url");
105
104
  const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedData, "base64url");
106
105
  const { bytes: tagBytes, error: tagError } = encode(tag, "base64url");
107
106
  if (ivError || encryptedError || tagError) {
108
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to encode IV or encrypted data", description: "Encoding error" });
107
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to encode IV or encrypted data", description: "Encoding error" });
109
108
  }
110
109
  try {
111
110
  const decipher = nodeCrypto2__default.default.createDecipheriv(NODE_ALGORITHM, secretKey, ivBytes);
@@ -113,18 +112,29 @@ function decrypt(encrypted, secretKey) {
113
112
  const decrypted = buffer.Buffer.concat([decipher.update(encryptedBytes), decipher.final()]);
114
113
  return decode(decrypted, "utf8");
115
114
  } catch (error) {
116
- return chunkGYHEGPUY_cjs.$err({ message: "Failed to decrypt data with Crypto NodeJS", description: chunkGYHEGPUY_cjs.$stringifyError(error) });
115
+ return chunkWD5FWRQ4_cjs.$err({ message: "Failed to decrypt data with Crypto NodeJS", description: chunkWD5FWRQ4_cjs.$stringifyError(error) });
117
116
  }
118
117
  }
118
+ function encryptObj(data, secretKey) {
119
+ const { result, error } = chunkWD5FWRQ4_cjs.$stringifyObj(data);
120
+ if (error) return chunkWD5FWRQ4_cjs.$err(error);
121
+ return encrypt(result, secretKey);
122
+ }
123
+ function decryptObj(encrypted, secretKey) {
124
+ const { result, error } = decrypt(encrypted, secretKey);
125
+ if (error) return chunkWD5FWRQ4_cjs.$err(error);
126
+ return chunkWD5FWRQ4_cjs.$parseToObj(result);
127
+ }
119
128
 
120
- exports.ENCRYPTED_NODE_REGEX = ENCRYPTED_NODE_REGEX;
121
129
  exports.NODE_ALGORITHM = NODE_ALGORITHM;
122
130
  exports.decode = decode;
123
131
  exports.decrypt = decrypt;
132
+ exports.decryptObj = decryptObj;
124
133
  exports.encode = encode;
125
134
  exports.encrypt = encrypt;
135
+ exports.encryptObj = encryptObj;
126
136
  exports.hash = hash;
127
137
  exports.newSecretKey = newSecretKey;
128
138
  exports.newUuid = newUuid;
129
- //# sourceMappingURL=chunk-RKUUM2D6.cjs.map
130
- //# sourceMappingURL=chunk-RKUUM2D6.cjs.map
139
+ //# sourceMappingURL=chunk-WB7F34SY.cjs.map
140
+ //# sourceMappingURL=chunk-WB7F34SY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/node/encode.ts","../src/node/utils.ts","../src/node/encrypt.ts"],"names":["$ok","Buffer","$err","$stringifyError","nodeCrypto","$isStr","ENCRYPTED_NODE_REGEX","$stringifyObj","$parseToObj"],"mappings":"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","file":"chunk-WB7F34SY.cjs","sourcesContent":["import { Buffer } from 'node:buffer';\r\nimport { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { EncodingFormat } from '~/types';\r\n\r\nexport function encode(data: string, format: EncodingFormat = 'utf8'): Result<{ bytes: Buffer }> {\r\n try {\r\n return $ok({ bytes: Buffer.from(data, format) });\r\n } catch (error) {\r\n return $err({ message: 'Failed to encode data', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function decode(data: Buffer, format: EncodingFormat = 'utf8'): Result<string> {\r\n try {\r\n return $ok(Buffer.from(data).toString(format));\r\n } catch (error) {\r\n return $err({ message: 'Failed to decode data', description: $stringifyError(error) });\r\n }\r\n}\r\n","import nodeCrypto from 'node:crypto';\r\nimport { $err, $ok, $stringifyError, type Result } from '~/error';\r\n\r\nexport const ENCRYPTED_NODE_REGEX = /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/;\r\n\r\nexport function newUuid(): Result<string> {\r\n try {\r\n return $ok(nodeCrypto.randomUUID());\r\n } catch (error) {\r\n return $err({ message: 'Failed to generate UUID with Crypto NodeJS', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function $isNodeKey(key: unknown): key is nodeCrypto.KeyObject {\r\n return key instanceof nodeCrypto.KeyObject;\r\n}\r\n","import { Buffer } from 'node:buffer';\r\nimport nodeCrypto from 'node:crypto';\r\nimport { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { NodeKey } from '~/types';\r\nimport { $isStr, $parseToObj, $stringifyObj, ENCRYPTED_NODE_REGEX } from '~/utils';\r\nimport { decode, encode } from './encode';\r\nimport { $isNodeKey } from './utils';\r\n\r\nexport const NODE_ALGORITHM = 'aes-256-gcm';\r\n\r\nexport function hash(data: string): Result<string> {\r\n if (!$isStr(data)) {\r\n return $err({ message: 'Empty data for hashing', description: 'Data must be a non-empty string' });\r\n }\r\n\r\n try {\r\n const hashed = nodeCrypto.createHash('sha256').update(data).digest();\r\n return decode(hashed, 'base64url');\r\n } catch (error) {\r\n return $err({ message: 'Failed to hash data with Crypto NodeJS', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function newSecretKey(key: string | NodeKey): Result<{ secretKey: NodeKey }> {\r\n if (typeof key === 'string') {\r\n if (!$isStr(key, 1)) return $err({ message: 'Empty key for Crypto NodeJS', description: 'Invalid secret key' });\r\n\r\n try {\r\n const hashedKey = nodeCrypto.createHash('sha256').update(key).digest();\r\n const secretKey = nodeCrypto.createSecretKey(hashedKey);\r\n return $ok({ secretKey });\r\n } catch (error) {\r\n return $err({ message: 'Failed to create secret key with Crypto NodeJS', description: $stringifyError(error) });\r\n }\r\n }\r\n\r\n if (!$isNodeKey(key)) return $err({ message: 'Invalid secret key', description: 'Expected a crypto.KeyObject' });\r\n return $ok({ secretKey: key });\r\n}\r\n\r\nexport function encrypt(data: string, secretKey: NodeKey): Result<string> {\r\n if (!$isStr(data)) {\r\n return $err({ message: 'Empty data for encryption', description: 'Data must be a non-empty string' });\r\n }\r\n\r\n if (!$isNodeKey(secretKey)) {\r\n return $err({ message: 'Invalid encryption key', description: 'Expected a crypto.KeyObject' });\r\n }\r\n\r\n try {\r\n const iv = nodeCrypto.randomBytes(12);\r\n const cipher = nodeCrypto.createCipheriv(NODE_ALGORITHM, secretKey, iv);\r\n const encrypted = Buffer.concat([cipher.update(data, 'utf8'), cipher.final()]);\r\n const tag = cipher.getAuthTag();\r\n\r\n const { result: decodedIv, error: ivError } = decode(iv, 'base64url');\r\n const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, 'base64url');\r\n const { result: decodedTag, error: tagError } = decode(tag, 'base64url');\r\n if (ivError || encryptedError || tagError) {\r\n return $err({ message: 'Failed to encode encrypted data', description: 'Encoding error' });\r\n }\r\n\r\n return $ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);\r\n } catch (error) {\r\n return $err({ message: 'Failed to encrypt data with Crypto NodeJS', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function decrypt(encrypted: string, secretKey: NodeKey): Result<string> {\r\n if (ENCRYPTED_NODE_REGEX.test(encrypted) === false) {\r\n return $err({\r\n message: 'Invalid encrypted data format',\r\n description: 'Encrypted data must be in the format \"iv.encrypted.tag.\"',\r\n });\r\n }\r\n\r\n const [iv, encryptedData, tag] = encrypted.split('.', 4);\r\n if (!$isStr(iv, 1) || !$isStr(encryptedData, 1) || !$isStr(tag, 1)) {\r\n return $err({\r\n message: 'Invalid parameters for decryption',\r\n description: 'IV, encrypted data, and tag must be non-empty strings',\r\n });\r\n }\r\n\r\n if (!$isNodeKey(secretKey)) {\r\n return $err({ message: 'Invalid decryption key', description: 'Expected a crypto.KeyObject' });\r\n }\r\n\r\n const { bytes: ivBytes, error: ivError } = encode(iv, 'base64url');\r\n const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedData, 'base64url');\r\n const { bytes: tagBytes, error: tagError } = encode(tag, 'base64url');\r\n if (ivError || encryptedError || tagError) {\r\n return $err({ message: 'Failed to encode IV or encrypted data', description: 'Encoding error' });\r\n }\r\n\r\n try {\r\n const decipher = nodeCrypto.createDecipheriv(NODE_ALGORITHM, secretKey, ivBytes);\r\n decipher.setAuthTag(tagBytes);\r\n\r\n const decrypted = Buffer.concat([decipher.update(encryptedBytes), decipher.final()]);\r\n return decode(decrypted, 'utf8');\r\n } catch (error) {\r\n return $err({ message: 'Failed to decrypt data with Crypto NodeJS', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function encryptObj(data: Record<string, unknown>, secretKey: NodeKey): Result<string> {\r\n const { result, error } = $stringifyObj(data);\r\n if (error) return $err(error);\r\n return encrypt(result, secretKey);\r\n}\r\n\r\nexport function decryptObj(encrypted: string, secretKey: NodeKey): Result<{ result: Record<string, unknown> }> {\r\n const { result, error } = decrypt(encrypted, secretKey);\r\n if (error) return $err(error);\r\n return $parseToObj(result);\r\n}\r\n"]}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ // src/error.ts
4
+ function $ok(result) {
5
+ if ($isObj(result)) return { success: true, ...result };
6
+ return { success: true, result };
7
+ }
8
+ function $err(typeOrErr) {
9
+ return { success: false, error: typeOrErr };
10
+ }
11
+ function $stringifyError(error) {
12
+ if (error instanceof Error) return error.message;
13
+ if (typeof error === "string") return error;
14
+ return String(error);
15
+ }
16
+
17
+ // src/utils.ts
18
+ var ENCRYPTED_REGEX = /^(?:[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)?\.)$/;
19
+ var ENCRYPTED_NODE_REGEX = /^([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)\.$/;
20
+ var ENCRYPTED_WEB_REGEX = /^([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)\.$/;
21
+ function $isStr(value, min = 0) {
22
+ return (value !== null || value !== void 0) && typeof value === "string" && value.trim().length >= min;
23
+ }
24
+ function $isObj(value) {
25
+ return typeof value === "object" && value !== null && value !== void 0 && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
26
+ }
27
+ function $stringifyObj(obj) {
28
+ if (!$isObj(obj)) return $err({ message: "Invalid object", description: "Input is not a plain object" });
29
+ try {
30
+ return $ok(JSON.stringify(obj));
31
+ } catch (error) {
32
+ return $err({ message: "Stringify error", description: $stringifyError(error) });
33
+ }
34
+ }
35
+ function $parseToObj(str) {
36
+ if (!$isStr(str)) return $err({ message: "Invalid input", description: "Input is not a valid string" });
37
+ try {
38
+ const obj = JSON.parse(str);
39
+ if (!$isObj(obj)) {
40
+ return $err({ message: "Invalid object format", description: "Parsed data is not a plain object" });
41
+ }
42
+ return $ok({ result: obj });
43
+ } catch (error) {
44
+ return $err({ message: "Invalid format", description: $stringifyError(error) });
45
+ }
46
+ }
47
+
48
+ exports.$err = $err;
49
+ exports.$isStr = $isStr;
50
+ exports.$ok = $ok;
51
+ exports.$parseToObj = $parseToObj;
52
+ exports.$stringifyError = $stringifyError;
53
+ exports.$stringifyObj = $stringifyObj;
54
+ exports.ENCRYPTED_NODE_REGEX = ENCRYPTED_NODE_REGEX;
55
+ exports.ENCRYPTED_REGEX = ENCRYPTED_REGEX;
56
+ exports.ENCRYPTED_WEB_REGEX = ENCRYPTED_WEB_REGEX;
57
+ //# sourceMappingURL=chunk-WD5FWRQ4.cjs.map
58
+ //# sourceMappingURL=chunk-WD5FWRQ4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error.ts","../src/utils.ts"],"names":[],"mappings":";;;AAeO,SAAS,IAAO,MAAA,EAAuB;AAC5C,EAAA,IAAI,MAAA,CAAO,MAAM,CAAA,EAAG,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,GAAI,MAAA,EAAsB;AACtE,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAO;AACjC;AAIO,SAAS,KAAK,SAAA,EAA2F;AAC9G,EAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,SAAA,EAAU;AAC5C;AAEO,SAAS,gBAAgB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,YAAiB,KAAA,EAAO,OAAO,KAAA,CAAM,OAAA;AACzC,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;;;AC5BO,IAAM,eAAA,GAAkB;AACxB,IAAM,oBAAA,GAAuB;AAC7B,IAAM,mBAAA,GAAsB;AAE5B,SAAS,MAAA,CAAO,KAAA,EAAgB,GAAA,GAAM,CAAA,EAAoB;AAC/D,EAAA,OAAA,CAAQ,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,KAAc,OAAO,UAAU,QAAA,IAAY,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,IAAU,GAAA;AACxG;AAEO,SAAS,OAAO,KAAA,EAAkD;AACvE,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IACjB,KAAA,KAAU,IAAA,IACV,UAAU,MAAA,KACT,MAAA,CAAO,cAAA,CAAe,KAAK,MAAM,MAAA,CAAO,SAAA,IAAa,MAAA,CAAO,cAAA,CAAe,KAAK,CAAA,KAAM,IAAA,CAAA;AAE3F;AAEO,SAAS,cAAc,GAAA,EAA8C;AAC1E,EAAA,IAAI,CAAC,MAAA,CAAO,GAAG,CAAA,EAAG,OAAO,IAAA,CAAK,EAAE,OAAA,EAAS,gBAAA,EAAkB,WAAA,EAAa,6BAAA,EAA+B,CAAA;AAEvG,EAAA,IAAI;AACF,IAAA,OAAO,GAAA,CAAI,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,EAChC,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,IAAA,CAAK,EAAE,OAAA,EAAS,iBAAA,EAAmB,aAAa,eAAA,CAAgB,KAAK,GAAG,CAAA;AAAA,EACjF;AACF;AAEO,SAAS,YAAY,GAAA,EAA0D;AACpF,EAAA,IAAI,CAAC,MAAA,CAAO,GAAG,CAAA,EAAG,OAAO,IAAA,CAAK,EAAE,OAAA,EAAS,eAAA,EAAiB,WAAA,EAAa,6BAAA,EAA+B,CAAA;AAEtG,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC1B,IAAA,IAAI,CAAC,MAAA,CAAO,GAAG,CAAA,EAAG;AAChB,MAAA,OAAO,KAAK,EAAE,OAAA,EAAS,uBAAA,EAAyB,WAAA,EAAa,qCAAqC,CAAA;AAAA,IACpG;AAEA,IAAA,OAAO,GAAA,CAAI,EAAE,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,EAC5B,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,IAAA,CAAK,EAAE,OAAA,EAAS,gBAAA,EAAkB,aAAa,eAAA,CAAgB,KAAK,GAAG,CAAA;AAAA,EAChF;AACF","file":"chunk-WD5FWRQ4.cjs","sourcesContent":["import { $isObj } from './utils';\r\n\r\nexport interface ResultErr {\r\n readonly message: string;\r\n readonly description: string;\r\n}\r\n\r\nexport type Result<T, E = ResultErr> = T extends object\r\n ?\r\n | ({ readonly [K in keyof T]: T[K] } & { readonly success: true; readonly error?: undefined })\r\n | ({ readonly [K in keyof T]?: undefined } & { readonly success: false; readonly error: E })\r\n :\r\n | { readonly success: true; readonly result: T; readonly error?: undefined }\r\n | { readonly success: false; readonly error: E; readonly result?: undefined };\r\n\r\nexport function $ok<T>(result?: T): Result<T> {\r\n if ($isObj(result)) return { success: true, ...(result as T & object) } as Result<T>;\r\n return { success: true, result } as Result<T>;\r\n}\r\n\r\nexport function $err(typeOrErr: { message: string; description: string }): Result<never, ResultErr>;\r\nexport function $err(typeOrErr: ResultErr): Result<never, ResultErr>;\r\nexport function $err(typeOrErr: { message: string; description: string } | ResultErr): Result<never, ResultErr> {\r\n return { success: false, error: typeOrErr } as Result<never, ResultErr>;\r\n}\r\n\r\nexport function $stringifyError(error: unknown): string {\r\n if (error instanceof Error) return error.message;\r\n if (typeof error === 'string') return error;\r\n return String(error);\r\n}\r\n","import { $err, $ok, $stringifyError, type Result } from './error';\r\n\r\nexport const ENCRYPTED_REGEX = /^(?:[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)?\\.)$/;\r\nexport const ENCRYPTED_NODE_REGEX = /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/;\r\nexport const ENCRYPTED_WEB_REGEX = /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/;\r\n\r\nexport function $isStr(value: unknown, min = 0): value is string {\r\n return (value !== null || value !== undefined) && typeof value === 'string' && value.trim().length >= min;\r\n}\r\n\r\nexport function $isObj(value: unknown): value is Record<string, unknown> {\r\n return (\r\n typeof value === 'object' &&\r\n value !== null &&\r\n value !== undefined &&\r\n (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null)\r\n );\r\n}\r\n\r\nexport function $stringifyObj(obj: Record<string, unknown>): Result<string> {\r\n if (!$isObj(obj)) return $err({ message: 'Invalid object', description: 'Input is not a plain object' });\r\n\r\n try {\r\n return $ok(JSON.stringify(obj));\r\n } catch (error) {\r\n return $err({ message: 'Stringify error', description: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function $parseToObj(str: string): Result<{ result: Record<string, unknown> }> {\r\n if (!$isStr(str)) return $err({ message: 'Invalid input', description: 'Input is not a valid string' });\r\n\r\n try {\r\n const obj = JSON.parse(str);\r\n if (!$isObj(obj)) {\r\n return $err({ message: 'Invalid object format', description: 'Parsed data is not a plain object' });\r\n }\r\n\r\n return $ok({ result: obj });\r\n } catch (error) {\r\n return $err({ message: 'Invalid format', description: $stringifyError(error) });\r\n }\r\n}\r\n"]}
package/dist/index.cjs CHANGED
@@ -1,82 +1,130 @@
1
1
  'use strict';
2
2
 
3
- var chunkRKUUM2D6_cjs = require('./chunk-RKUUM2D6.cjs');
4
- var chunkSD6QP3UT_cjs = require('./chunk-SD6QP3UT.cjs');
5
- require('./chunk-GYHEGPUY.cjs');
3
+ var chunkWB7F34SY_cjs = require('./chunk-WB7F34SY.cjs');
4
+ var chunkKFZLZJ2J_cjs = require('./chunk-KFZLZJ2J.cjs');
5
+ var chunkWD5FWRQ4_cjs = require('./chunk-WD5FWRQ4.cjs');
6
6
 
7
7
 
8
8
 
9
- Object.defineProperty(exports, "ENCRYPTED_NODE_REGEX", {
10
- enumerable: true,
11
- get: function () { return chunkRKUUM2D6_cjs.ENCRYPTED_NODE_REGEX; }
12
- });
13
9
  Object.defineProperty(exports, "NODE_ALGORITHM", {
14
10
  enumerable: true,
15
- get: function () { return chunkRKUUM2D6_cjs.NODE_ALGORITHM; }
11
+ get: function () { return chunkWB7F34SY_cjs.NODE_ALGORITHM; }
16
12
  });
17
13
  Object.defineProperty(exports, "decode", {
18
14
  enumerable: true,
19
- get: function () { return chunkRKUUM2D6_cjs.decode; }
15
+ get: function () { return chunkWB7F34SY_cjs.decode; }
20
16
  });
21
17
  Object.defineProperty(exports, "decrypt", {
22
18
  enumerable: true,
23
- get: function () { return chunkRKUUM2D6_cjs.decrypt; }
19
+ get: function () { return chunkWB7F34SY_cjs.decrypt; }
20
+ });
21
+ Object.defineProperty(exports, "decryptObj", {
22
+ enumerable: true,
23
+ get: function () { return chunkWB7F34SY_cjs.decryptObj; }
24
24
  });
25
25
  Object.defineProperty(exports, "encode", {
26
26
  enumerable: true,
27
- get: function () { return chunkRKUUM2D6_cjs.encode; }
27
+ get: function () { return chunkWB7F34SY_cjs.encode; }
28
28
  });
29
29
  Object.defineProperty(exports, "encrypt", {
30
30
  enumerable: true,
31
- get: function () { return chunkRKUUM2D6_cjs.encrypt; }
31
+ get: function () { return chunkWB7F34SY_cjs.encrypt; }
32
+ });
33
+ Object.defineProperty(exports, "encryptObj", {
34
+ enumerable: true,
35
+ get: function () { return chunkWB7F34SY_cjs.encryptObj; }
32
36
  });
33
37
  Object.defineProperty(exports, "hash", {
34
38
  enumerable: true,
35
- get: function () { return chunkRKUUM2D6_cjs.hash; }
39
+ get: function () { return chunkWB7F34SY_cjs.hash; }
40
+ });
41
+ Object.defineProperty(exports, "newNodeSecretKey", {
42
+ enumerable: true,
43
+ get: function () { return chunkWB7F34SY_cjs.newSecretKey; }
44
+ });
45
+ Object.defineProperty(exports, "newNodeUuid", {
46
+ enumerable: true,
47
+ get: function () { return chunkWB7F34SY_cjs.newUuid; }
36
48
  });
37
49
  Object.defineProperty(exports, "newSecretKey", {
38
50
  enumerable: true,
39
- get: function () { return chunkRKUUM2D6_cjs.newSecretKey; }
51
+ get: function () { return chunkWB7F34SY_cjs.newSecretKey; }
40
52
  });
41
53
  Object.defineProperty(exports, "newUuid", {
42
54
  enumerable: true,
43
- get: function () { return chunkRKUUM2D6_cjs.newUuid; }
55
+ get: function () { return chunkWB7F34SY_cjs.newUuid; }
56
+ });
57
+ Object.defineProperty(exports, "nodeDecode", {
58
+ enumerable: true,
59
+ get: function () { return chunkWB7F34SY_cjs.decode; }
60
+ });
61
+ Object.defineProperty(exports, "nodeDecrypt", {
62
+ enumerable: true,
63
+ get: function () { return chunkWB7F34SY_cjs.decrypt; }
44
64
  });
45
- Object.defineProperty(exports, "ENCRYPTED_WEB_API_REGEX", {
65
+ Object.defineProperty(exports, "nodeDecryptObj", {
46
66
  enumerable: true,
47
- get: function () { return chunkSD6QP3UT_cjs.ENCRYPTED_WEB_API_REGEX; }
67
+ get: function () { return chunkWB7F34SY_cjs.decryptObj; }
68
+ });
69
+ Object.defineProperty(exports, "nodeEncode", {
70
+ enumerable: true,
71
+ get: function () { return chunkWB7F34SY_cjs.encode; }
72
+ });
73
+ Object.defineProperty(exports, "nodeEncrypt", {
74
+ enumerable: true,
75
+ get: function () { return chunkWB7F34SY_cjs.encrypt; }
76
+ });
77
+ Object.defineProperty(exports, "nodeEncryptObj", {
78
+ enumerable: true,
79
+ get: function () { return chunkWB7F34SY_cjs.encryptObj; }
80
+ });
81
+ Object.defineProperty(exports, "nodeHash", {
82
+ enumerable: true,
83
+ get: function () { return chunkWB7F34SY_cjs.hash; }
48
84
  });
49
85
  Object.defineProperty(exports, "WEB_API_ALGORITHM", {
50
86
  enumerable: true,
51
- get: function () { return chunkSD6QP3UT_cjs.WEB_API_ALGORITHM; }
87
+ get: function () { return chunkKFZLZJ2J_cjs.WEB_API_ALGORITHM; }
52
88
  });
53
89
  Object.defineProperty(exports, "newWebSecretKey", {
54
90
  enumerable: true,
55
- get: function () { return chunkSD6QP3UT_cjs.newSecretKey; }
91
+ get: function () { return chunkKFZLZJ2J_cjs.newSecretKey; }
56
92
  });
57
93
  Object.defineProperty(exports, "newWebUuid", {
58
94
  enumerable: true,
59
- get: function () { return chunkSD6QP3UT_cjs.newUuid; }
95
+ get: function () { return chunkKFZLZJ2J_cjs.newUuid; }
60
96
  });
61
97
  Object.defineProperty(exports, "webDecode", {
62
98
  enumerable: true,
63
- get: function () { return chunkSD6QP3UT_cjs.decode; }
99
+ get: function () { return chunkKFZLZJ2J_cjs.decode; }
64
100
  });
65
101
  Object.defineProperty(exports, "webDecrypt", {
66
102
  enumerable: true,
67
- get: function () { return chunkSD6QP3UT_cjs.decrypt; }
103
+ get: function () { return chunkKFZLZJ2J_cjs.decrypt; }
68
104
  });
69
105
  Object.defineProperty(exports, "webEncode", {
70
106
  enumerable: true,
71
- get: function () { return chunkSD6QP3UT_cjs.encode; }
107
+ get: function () { return chunkKFZLZJ2J_cjs.encode; }
72
108
  });
73
109
  Object.defineProperty(exports, "webEncrypt", {
74
110
  enumerable: true,
75
- get: function () { return chunkSD6QP3UT_cjs.encrypt; }
111
+ get: function () { return chunkKFZLZJ2J_cjs.encrypt; }
76
112
  });
77
113
  Object.defineProperty(exports, "webHash", {
78
114
  enumerable: true,
79
- get: function () { return chunkSD6QP3UT_cjs.hash; }
115
+ get: function () { return chunkKFZLZJ2J_cjs.hash; }
116
+ });
117
+ Object.defineProperty(exports, "ENCRYPTED_NODE_REGEX", {
118
+ enumerable: true,
119
+ get: function () { return chunkWD5FWRQ4_cjs.ENCRYPTED_NODE_REGEX; }
120
+ });
121
+ Object.defineProperty(exports, "ENCRYPTED_REGEX", {
122
+ enumerable: true,
123
+ get: function () { return chunkWD5FWRQ4_cjs.ENCRYPTED_REGEX; }
124
+ });
125
+ Object.defineProperty(exports, "ENCRYPTED_WEB_REGEX", {
126
+ enumerable: true,
127
+ get: function () { return chunkWD5FWRQ4_cjs.ENCRYPTED_WEB_REGEX; }
80
128
  });
81
129
  //# sourceMappingURL=index.cjs.map
82
130
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- export { N as NodeKey, W as WebApiKey } from './error-FGvKfjsn.cjs';
2
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid } from './node.cjs';
3
- export { ENCRYPTED_WEB_API_REGEX, WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './web-api.cjs';
1
+ export { E as ENCRYPTED_NODE_REGEX, a as ENCRYPTED_REGEX, b as ENCRYPTED_WEB_REGEX, N as NodeKey, W as WebApiKey } from './utils-D8fOvyw5.cjs';
2
+ export { NODE_ALGORITHM, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey as newNodeSecretKey, newUuid as newNodeUuid, newSecretKey, newUuid, decode as nodeDecode, decrypt as nodeDecrypt, decryptObj as nodeDecryptObj, encode as nodeEncode, encrypt as nodeEncrypt, encryptObj as nodeEncryptObj, hash as nodeHash } from './node.cjs';
3
+ export { WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './web-api.cjs';
4
4
  import 'node:crypto';
5
5
  import 'node:buffer';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { N as NodeKey, W as WebApiKey } from './error-FGvKfjsn.js';
2
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid } from './node.js';
3
- export { ENCRYPTED_WEB_API_REGEX, WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './web-api.js';
1
+ export { E as ENCRYPTED_NODE_REGEX, a as ENCRYPTED_REGEX, b as ENCRYPTED_WEB_REGEX, N as NodeKey, W as WebApiKey } from './utils-D8fOvyw5.js';
2
+ export { NODE_ALGORITHM, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey as newNodeSecretKey, newUuid as newNodeUuid, newSecretKey, newUuid, decode as nodeDecode, decrypt as nodeDecrypt, decryptObj as nodeDecryptObj, encode as nodeEncode, encrypt as nodeEncrypt, encryptObj as nodeEncryptObj, hash as nodeHash } from './node.js';
3
+ export { WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './web-api.js';
4
4
  import 'node:crypto';
5
5
  import 'node:buffer';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid } from './chunk-P6FZJODK.js';
2
- export { ENCRYPTED_WEB_API_REGEX, WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './chunk-57CXI3PH.js';
3
- import './chunk-K5MLGTAJ.js';
1
+ export { NODE_ALGORITHM, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey as newNodeSecretKey, newUuid as newNodeUuid, newSecretKey, newUuid, decode as nodeDecode, decrypt as nodeDecrypt, decryptObj as nodeDecryptObj, encode as nodeEncode, encrypt as nodeEncrypt, encryptObj as nodeEncryptObj, hash as nodeHash } from './chunk-MMHTEI3Q.js';
2
+ export { WEB_API_ALGORITHM, newSecretKey as newWebSecretKey, newUuid as newWebUuid, decode as webDecode, decrypt as webDecrypt, encode as webEncode, encrypt as webEncrypt, hash as webHash } from './chunk-GYFL6RUD.js';
3
+ export { ENCRYPTED_NODE_REGEX, ENCRYPTED_REGEX, ENCRYPTED_WEB_REGEX } from './chunk-72PZBMQR.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
package/dist/node.cjs CHANGED
@@ -1,45 +1,57 @@
1
1
  'use strict';
2
2
 
3
- var chunkRKUUM2D6_cjs = require('./chunk-RKUUM2D6.cjs');
4
- require('./chunk-GYHEGPUY.cjs');
3
+ var chunkWB7F34SY_cjs = require('./chunk-WB7F34SY.cjs');
4
+ var chunkWD5FWRQ4_cjs = require('./chunk-WD5FWRQ4.cjs');
5
5
 
6
6
 
7
7
 
8
- Object.defineProperty(exports, "ENCRYPTED_NODE_REGEX", {
9
- enumerable: true,
10
- get: function () { return chunkRKUUM2D6_cjs.ENCRYPTED_NODE_REGEX; }
11
- });
12
8
  Object.defineProperty(exports, "NODE_ALGORITHM", {
13
9
  enumerable: true,
14
- get: function () { return chunkRKUUM2D6_cjs.NODE_ALGORITHM; }
10
+ get: function () { return chunkWB7F34SY_cjs.NODE_ALGORITHM; }
15
11
  });
16
12
  Object.defineProperty(exports, "decode", {
17
13
  enumerable: true,
18
- get: function () { return chunkRKUUM2D6_cjs.decode; }
14
+ get: function () { return chunkWB7F34SY_cjs.decode; }
19
15
  });
20
16
  Object.defineProperty(exports, "decrypt", {
21
17
  enumerable: true,
22
- get: function () { return chunkRKUUM2D6_cjs.decrypt; }
18
+ get: function () { return chunkWB7F34SY_cjs.decrypt; }
19
+ });
20
+ Object.defineProperty(exports, "decryptObj", {
21
+ enumerable: true,
22
+ get: function () { return chunkWB7F34SY_cjs.decryptObj; }
23
23
  });
24
24
  Object.defineProperty(exports, "encode", {
25
25
  enumerable: true,
26
- get: function () { return chunkRKUUM2D6_cjs.encode; }
26
+ get: function () { return chunkWB7F34SY_cjs.encode; }
27
27
  });
28
28
  Object.defineProperty(exports, "encrypt", {
29
29
  enumerable: true,
30
- get: function () { return chunkRKUUM2D6_cjs.encrypt; }
30
+ get: function () { return chunkWB7F34SY_cjs.encrypt; }
31
+ });
32
+ Object.defineProperty(exports, "encryptObj", {
33
+ enumerable: true,
34
+ get: function () { return chunkWB7F34SY_cjs.encryptObj; }
31
35
  });
32
36
  Object.defineProperty(exports, "hash", {
33
37
  enumerable: true,
34
- get: function () { return chunkRKUUM2D6_cjs.hash; }
38
+ get: function () { return chunkWB7F34SY_cjs.hash; }
35
39
  });
36
40
  Object.defineProperty(exports, "newSecretKey", {
37
41
  enumerable: true,
38
- get: function () { return chunkRKUUM2D6_cjs.newSecretKey; }
42
+ get: function () { return chunkWB7F34SY_cjs.newSecretKey; }
39
43
  });
40
44
  Object.defineProperty(exports, "newUuid", {
41
45
  enumerable: true,
42
- get: function () { return chunkRKUUM2D6_cjs.newUuid; }
46
+ get: function () { return chunkWB7F34SY_cjs.newUuid; }
47
+ });
48
+ Object.defineProperty(exports, "ENCRYPTED_NODE_REGEX", {
49
+ enumerable: true,
50
+ get: function () { return chunkWD5FWRQ4_cjs.ENCRYPTED_NODE_REGEX; }
51
+ });
52
+ Object.defineProperty(exports, "ENCRYPTED_REGEX", {
53
+ enumerable: true,
54
+ get: function () { return chunkWD5FWRQ4_cjs.ENCRYPTED_REGEX; }
43
55
  });
44
56
  //# sourceMappingURL=node.cjs.map
45
57
  //# sourceMappingURL=node.cjs.map
package/dist/node.d.cts CHANGED
@@ -1,4 +1,5 @@
1
- import { E as EncodingFormat, R as Result, N as NodeKey } from './error-FGvKfjsn.cjs';
1
+ import { c as EncodingFormat, R as Result, N as NodeKey } from './utils-D8fOvyw5.cjs';
2
+ export { E as ENCRYPTED_NODE_REGEX, a as ENCRYPTED_REGEX } from './utils-D8fOvyw5.cjs';
2
3
  import { Buffer } from 'node:buffer';
3
4
  import 'node:crypto';
4
5
 
@@ -14,8 +15,11 @@ declare function newSecretKey(key: string | NodeKey): Result<{
14
15
  }>;
15
16
  declare function encrypt(data: string, secretKey: NodeKey): Result<string>;
16
17
  declare function decrypt(encrypted: string, secretKey: NodeKey): Result<string>;
18
+ declare function encryptObj(data: Record<string, unknown>, secretKey: NodeKey): Result<string>;
19
+ declare function decryptObj(encrypted: string, secretKey: NodeKey): Result<{
20
+ result: Record<string, unknown>;
21
+ }>;
17
22
 
18
- declare const ENCRYPTED_NODE_REGEX: RegExp;
19
23
  declare function newUuid(): Result<string>;
20
24
 
21
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, NodeKey, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid };
25
+ export { NODE_ALGORITHM, NodeKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey, newUuid };
package/dist/node.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { E as EncodingFormat, R as Result, N as NodeKey } from './error-FGvKfjsn.js';
1
+ import { c as EncodingFormat, R as Result, N as NodeKey } from './utils-D8fOvyw5.js';
2
+ export { E as ENCRYPTED_NODE_REGEX, a as ENCRYPTED_REGEX } from './utils-D8fOvyw5.js';
2
3
  import { Buffer } from 'node:buffer';
3
4
  import 'node:crypto';
4
5
 
@@ -14,8 +15,11 @@ declare function newSecretKey(key: string | NodeKey): Result<{
14
15
  }>;
15
16
  declare function encrypt(data: string, secretKey: NodeKey): Result<string>;
16
17
  declare function decrypt(encrypted: string, secretKey: NodeKey): Result<string>;
18
+ declare function encryptObj(data: Record<string, unknown>, secretKey: NodeKey): Result<string>;
19
+ declare function decryptObj(encrypted: string, secretKey: NodeKey): Result<{
20
+ result: Record<string, unknown>;
21
+ }>;
17
22
 
18
- declare const ENCRYPTED_NODE_REGEX: RegExp;
19
23
  declare function newUuid(): Result<string>;
20
24
 
21
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, NodeKey, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid };
25
+ export { NODE_ALGORITHM, NodeKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey, newUuid };
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- export { ENCRYPTED_NODE_REGEX, NODE_ALGORITHM, decode, decrypt, encode, encrypt, hash, newSecretKey, newUuid } from './chunk-P6FZJODK.js';
2
- import './chunk-K5MLGTAJ.js';
1
+ export { NODE_ALGORITHM, decode, decrypt, decryptObj, encode, encrypt, encryptObj, hash, newSecretKey, newUuid } from './chunk-MMHTEI3Q.js';
2
+ export { ENCRYPTED_NODE_REGEX, ENCRYPTED_REGEX } from './chunk-72PZBMQR.js';
3
3
  //# sourceMappingURL=node.js.map
4
4
  //# sourceMappingURL=node.js.map
@@ -28,4 +28,8 @@ type Result<T, E = ResultErr> = T extends object ? ({
28
28
  readonly result?: undefined;
29
29
  };
30
30
 
31
- export type { EncodingFormat as E, NodeKey as N, Result as R, WebApiKey as W };
31
+ declare const ENCRYPTED_REGEX: RegExp;
32
+ declare const ENCRYPTED_NODE_REGEX: RegExp;
33
+ declare const ENCRYPTED_WEB_REGEX: RegExp;
34
+
35
+ export { ENCRYPTED_NODE_REGEX as E, type NodeKey as N, type Result as R, type WebApiKey as W, ENCRYPTED_REGEX as a, ENCRYPTED_WEB_REGEX as b, type EncodingFormat as c };
@@ -28,4 +28,8 @@ type Result<T, E = ResultErr> = T extends object ? ({
28
28
  readonly result?: undefined;
29
29
  };
30
30
 
31
- export type { EncodingFormat as E, NodeKey as N, Result as R, WebApiKey as W };
31
+ declare const ENCRYPTED_REGEX: RegExp;
32
+ declare const ENCRYPTED_NODE_REGEX: RegExp;
33
+ declare const ENCRYPTED_WEB_REGEX: RegExp;
34
+
35
+ export { ENCRYPTED_NODE_REGEX as E, type NodeKey as N, type Result as R, type WebApiKey as W, ENCRYPTED_REGEX as a, ENCRYPTED_WEB_REGEX as b, type EncodingFormat as c };