cipher-kit 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/web/encode.ts","../src/web/encrypt.ts","../src/web/export.ts"],"names":["$ok","$err","$stringifyError","$isStr","error","WEB_API_ALGORITHM","isWebApiKey","isInWebApiEncryptionFormat","stringifyObj","parseToObj","__export"],"mappings":"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","file":"chunk-HPWXLVXW.cjs","sourcesContent":["import { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { EncodingFormat } from '~/types';\r\n\r\nconst textEncoder = new TextEncoder();\r\nconst textDecoder = new TextDecoder();\r\n\r\nexport function encode(data: string, format: EncodingFormat = 'utf8'): Result<{ bytes: Uint8Array }> {\r\n try {\r\n switch (format) {\r\n case 'base64':\r\n return $ok({ bytes: $fromBase64(data) });\r\n case 'base64url':\r\n return $ok({ bytes: $fromBase64Url(data) });\r\n case 'hex':\r\n return $ok({ bytes: $fromHex(data) });\r\n case 'utf8':\r\n return $ok({ bytes: textEncoder.encode(data) });\r\n default:\r\n return $err({\r\n msg: `Crypto Web API: Unsupported encode format: ${format}`,\r\n desc: 'Use base64, base64url, hex, or utf8',\r\n });\r\n }\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to encode data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function decode(data: ArrayBuffer | Uint8Array, format: EncodingFormat = 'utf8'): Result<string> {\r\n try {\r\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\r\n switch (format) {\r\n case 'base64':\r\n return $ok($toBase64(bytes));\r\n case 'base64url':\r\n return $ok($toBase64Url(bytes));\r\n case 'hex':\r\n return $ok($toHex(bytes));\r\n case 'utf8':\r\n return $ok(textDecoder.decode(bytes));\r\n default:\r\n return $err({\r\n msg: `Crypto Web API: Unsupported decode format: ${format}`,\r\n desc: 'Use base64, base64url, hex, or utf8',\r\n });\r\n }\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to decode data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nfunction $toBase64(bytes: Uint8Array): string {\r\n let binary = '';\r\n const chunkSize = 0x8000; // 32KB per chunk\r\n for (let i = 0; i < bytes.length; i += chunkSize) {\r\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));\r\n }\r\n return btoa(binary);\r\n}\r\n\r\nfunction $fromBase64(data: string): Uint8Array {\r\n const binary = atob(data);\r\n const len = binary.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binary.charCodeAt(i);\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction $toBase64Url(bytes: Uint8Array): string {\r\n return $toBase64(bytes).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\r\n}\r\n\r\nfunction $fromBase64Url(data: string): Uint8Array {\r\n let b64 = data.replace(/-/g, '+').replace(/_/g, '/');\r\n const padLen = (4 - (b64.length % 4)) % 4;\r\n b64 += '='.repeat(padLen);\r\n return $fromBase64(b64);\r\n}\r\n\r\nfunction $toHex(bytes: Uint8Array): string {\r\n return Array.from(bytes)\r\n .map((b) => b.toString(16).padStart(2, '0'))\r\n .join('');\r\n}\r\n\r\nfunction $fromHex(data: string): Uint8Array {\r\n const clean = data.startsWith('0x') ? data.slice(2) : data;\r\n if (clean.length % 2 !== 0) throw new Error('Invalid hex string');\r\n const out = new Uint8Array(clean.length / 2);\r\n for (let i = 0; i < out.length; i++) {\r\n out[i] = Number.parseInt(clean.slice(i * 2, i * 2 + 2), 16);\r\n }\r\n return out;\r\n}\r\n","import { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { WebApiKey } from '~/types';\r\nimport { $isStr, isInWebApiEncryptionFormat, isWebApiKey, parseToObj, stringifyObj, WEB_API_ALGORITHM } from '~/utils';\r\nimport { decode, encode } from './encode';\r\n\r\nexport function generateUuid(): Result<string> {\r\n try {\r\n return $ok(crypto.randomUUID());\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to generate UUID', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function hash(data: string): Promise<Result<string>> {\r\n if (!$isStr(data, 0)) {\r\n return $err({ msg: 'Crypto Web API: Empty data for hashing', desc: 'Data must be a non-empty string' });\r\n }\r\n\r\n const { bytes, error } = encode(data, 'utf8');\r\n if (error) return $err(error);\r\n\r\n try {\r\n const hashed = await crypto.subtle.digest('SHA-256', bytes);\r\n return decode(hashed, 'base64url');\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to hash data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function createSecretKey(key: string | WebApiKey): Promise<Result<{ secretKey: WebApiKey }>> {\r\n if (typeof key === 'string') {\r\n try {\r\n if (!$isStr(key)) return $err({ msg: 'Crypto Web API: Empty key', desc: 'Key must be a non-empty string' });\r\n const { bytes, error } = encode(key, 'utf8');\r\n if (error) return $err(error);\r\n\r\n const hashedKey = await crypto.subtle.digest('SHA-256', bytes);\r\n const secretKey = await crypto.subtle.importKey('raw', hashedKey, { name: WEB_API_ALGORITHM }, true, [\r\n 'encrypt',\r\n 'decrypt',\r\n ]);\r\n return $ok({ secretKey });\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to create secret key', desc: $stringifyError(error) });\r\n }\r\n }\r\n\r\n if (!isWebApiKey(key)) {\r\n return $err({ msg: 'Crypto Web API: Invalid secret key', desc: 'Expected a WebApiKey(webcrypto.CryptoKey)' });\r\n }\r\n\r\n return $ok({ secretKey: key });\r\n}\r\n\r\nexport async function encrypt(data: string, secretKey: WebApiKey): Promise<Result<string>> {\r\n try {\r\n if (!$isStr(data)) {\r\n return $err({ msg: 'Crypto Web API: Empty data for encryption', desc: 'Data must be a non-empty string' });\r\n }\r\n\r\n if (!isWebApiKey(secretKey)) {\r\n return $err({ msg: 'Crypto Web API: Invalid encryption key', desc: 'Expected a NodeKey(crypto.KeyObject)' });\r\n }\r\n\r\n const { bytes, error } = encode(data, 'utf8');\r\n if (error) return $err(error);\r\n\r\n const iv = crypto.getRandomValues(new Uint8Array(12));\r\n const encrypted = await crypto.subtle.encrypt({ name: WEB_API_ALGORITHM, iv: iv }, secretKey, bytes);\r\n\r\n const { result: decodedIv, error: ivError } = decode(iv, 'base64url');\r\n const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, 'base64url');\r\n\r\n if (ivError || encryptedError) {\r\n return $err({\r\n msg: 'Crypto Web API: Failed to encode IV or encrypted data',\r\n desc: `Decoding error: ${ivError || encryptedError}`,\r\n });\r\n }\r\n\r\n return $ok(`${decodedIv}.${decodedEncrypted}.`);\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to encrypt data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function decrypt(encrypted: string, secretKey: WebApiKey): Promise<Result<string>> {\r\n if (isInWebApiEncryptionFormat(encrypted) === false) {\r\n return $err({\r\n msg: 'Crypto Web API: Invalid encrypted data format',\r\n desc: 'Encrypted data must be in the format \"iv.encryptedData.tag.\"',\r\n });\r\n }\r\n\r\n const [iv, encryptedWithTag] = encrypted.split('.', 3);\r\n if (!$isStr(iv) || !$isStr(encryptedWithTag)) {\r\n return $err({\r\n msg: 'Crypto Web API: Invalid encrypted data',\r\n desc: 'Encrypted data must contain valid IV, encrypted and tag components',\r\n });\r\n }\r\n\r\n if (!isWebApiKey(secretKey)) {\r\n return $err({ msg: 'Crypto Web API: Invalid decryption key', desc: '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(encryptedWithTag, 'base64url');\r\n if (ivError || encryptedError) {\r\n return $err({\r\n msg: 'Crypto Web API: Failed to decode IV or encrypted data',\r\n desc: `Encoding error: ${ivError || encryptedError}`,\r\n });\r\n }\r\n\r\n try {\r\n const decrypted = await crypto.subtle.decrypt({ name: WEB_API_ALGORITHM, iv: ivBytes }, secretKey, encryptedBytes);\r\n return decode(decrypted, 'utf8');\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to decrypt data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function encryptObj(data: Record<string, unknown>, secretKey: WebApiKey): Promise<Result<string>> {\r\n const { result, error } = stringifyObj(data);\r\n if (error) return $err(error);\r\n return await encrypt(result, secretKey);\r\n}\r\n\r\nexport async function decryptObj(\r\n encrypted: string,\r\n secretKey: WebApiKey,\r\n): Promise<Result<{ result: Record<string, unknown> }>> {\r\n const { result, error } = await decrypt(encrypted, secretKey);\r\n if (error) return $err(error);\r\n return parseToObj(result);\r\n}\r\n","export { decode, encode } from './encode';\r\nexport { createSecretKey, decrypt, decryptObj, encrypt, encryptObj, generateUuid, hash } from './encrypt';\r\n"]}
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ var chunkM5QWZAR4_cjs = require('./chunk-M5QWZAR4.cjs');
4
+ var buffer = require('buffer');
5
+ var nodeCrypto = require('crypto');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var nodeCrypto__default = /*#__PURE__*/_interopDefault(nodeCrypto);
10
+
11
+ function encode(data, format = "utf8") {
12
+ try {
13
+ return chunkM5QWZAR4_cjs.$ok({ bytes: buffer.Buffer.from(data, format) });
14
+ } catch (error) {
15
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to encode data", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
16
+ }
17
+ }
18
+ function decode(data, format = "utf8") {
19
+ try {
20
+ return chunkM5QWZAR4_cjs.$ok(buffer.Buffer.from(data).toString(format));
21
+ } catch (error) {
22
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to decode data", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
23
+ }
24
+ }
25
+ function generateUuid() {
26
+ try {
27
+ return chunkM5QWZAR4_cjs.$ok(nodeCrypto__default.default.randomUUID());
28
+ } catch (error) {
29
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to generate UUID", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
30
+ }
31
+ }
32
+ function hash(data) {
33
+ if (!chunkM5QWZAR4_cjs.$isStr(data, 0)) {
34
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Empty data for hashing", desc: "Data must be a non-empty string" });
35
+ }
36
+ try {
37
+ const hashed = nodeCrypto__default.default.createHash("sha256").update(data).digest();
38
+ return decode(hashed, "base64url");
39
+ } catch (error) {
40
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to hash data with Crypto NodeJS", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
41
+ }
42
+ }
43
+ function createSecretKey(key) {
44
+ if (typeof key === "string") {
45
+ try {
46
+ if (!chunkM5QWZAR4_cjs.$isStr(key)) return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Empty key", desc: "Key must be a non-empty string" });
47
+ const hashedKey = nodeCrypto__default.default.createHash("sha256").update(key).digest();
48
+ const secretKey = nodeCrypto__default.default.createSecretKey(hashedKey);
49
+ return chunkM5QWZAR4_cjs.$ok({ secretKey });
50
+ } catch (error) {
51
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to create secret key", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
52
+ }
53
+ }
54
+ if (!chunkM5QWZAR4_cjs.isNodeKey(key)) {
55
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Invalid secret key", desc: "Expected a NodeKey(crypto.KeyObject)" });
56
+ }
57
+ return chunkM5QWZAR4_cjs.$ok({ secretKey: key });
58
+ }
59
+ function encrypt(data, secretKey) {
60
+ try {
61
+ if (!chunkM5QWZAR4_cjs.$isStr(data)) {
62
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Empty data for encryption", desc: "Data must be a non-empty string" });
63
+ }
64
+ if (!chunkM5QWZAR4_cjs.isNodeKey(secretKey)) {
65
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Invalid encryption key", desc: "Expected a NodeKey(crypto.KeyObject)" });
66
+ }
67
+ const iv = nodeCrypto__default.default.randomBytes(12);
68
+ const cipher = nodeCrypto__default.default.createCipheriv(chunkM5QWZAR4_cjs.NODE_ALGORITHM, secretKey, iv);
69
+ const encrypted = buffer.Buffer.concat([cipher.update(data, "utf8"), cipher.final()]);
70
+ const tag = cipher.getAuthTag();
71
+ const { result: decodedIv, error: ivError } = decode(iv, "base64url");
72
+ const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, "base64url");
73
+ const { result: decodedTag, error: tagError } = decode(tag, "base64url");
74
+ if (ivError || encryptedError || tagError) {
75
+ return chunkM5QWZAR4_cjs.$err({
76
+ msg: "Crypto NodeJS: Failed to encode IV or encrypted data",
77
+ desc: `Decoding error: ${ivError || encryptedError || tagError}`
78
+ });
79
+ }
80
+ return chunkM5QWZAR4_cjs.$ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);
81
+ } catch (error) {
82
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to encrypt data", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
83
+ }
84
+ }
85
+ function decrypt(encrypted, secretKey) {
86
+ if (chunkM5QWZAR4_cjs.isInNodeEncryptionFormat(encrypted) === false) {
87
+ return chunkM5QWZAR4_cjs.$err({
88
+ msg: "Crypto NodeJS: Invalid encrypted data format",
89
+ desc: 'Encrypted data must be in the format "iv.encryptedData.tag."'
90
+ });
91
+ }
92
+ const [iv, encryptedData, tag] = encrypted.split(".", 4);
93
+ if (!chunkM5QWZAR4_cjs.$isStr(iv) || !chunkM5QWZAR4_cjs.$isStr(encryptedData) || !chunkM5QWZAR4_cjs.$isStr(tag)) {
94
+ return chunkM5QWZAR4_cjs.$err({
95
+ msg: "Crypto NodeJS: Invalid encrypted data",
96
+ desc: "Encrypted data must contain valid IV, encrypted data, and tag components"
97
+ });
98
+ }
99
+ if (!chunkM5QWZAR4_cjs.isNodeKey(secretKey)) {
100
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Invalid decryption key", desc: "Expected a crypto.KeyObject" });
101
+ }
102
+ const { bytes: ivBytes, error: ivError } = encode(iv, "base64url");
103
+ const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedData, "base64url");
104
+ const { bytes: tagBytes, error: tagError } = encode(tag, "base64url");
105
+ if (ivError || encryptedError || tagError) {
106
+ return chunkM5QWZAR4_cjs.$err({
107
+ msg: "Crypto NodeJS: Failed to decode IV or encrypted data",
108
+ desc: `Encoding error: ${ivError || encryptedError || tagError}`
109
+ });
110
+ }
111
+ try {
112
+ const decipher = nodeCrypto__default.default.createDecipheriv(chunkM5QWZAR4_cjs.NODE_ALGORITHM, secretKey, ivBytes);
113
+ decipher.setAuthTag(tagBytes);
114
+ const decrypted = buffer.Buffer.concat([decipher.update(encryptedBytes), decipher.final()]);
115
+ return decode(decrypted, "utf8");
116
+ } catch (error) {
117
+ return chunkM5QWZAR4_cjs.$err({ msg: "Crypto NodeJS: Failed to decrypt data", desc: chunkM5QWZAR4_cjs.$stringifyError(error) });
118
+ }
119
+ }
120
+ function encryptObj(data, secretKey) {
121
+ const { result, error } = chunkM5QWZAR4_cjs.stringifyObj(data);
122
+ if (error) return chunkM5QWZAR4_cjs.$err(error);
123
+ return encrypt(result, secretKey);
124
+ }
125
+ function decryptObj(encrypted, secretKey) {
126
+ const { result, error } = decrypt(encrypted, secretKey);
127
+ if (error) return chunkM5QWZAR4_cjs.$err(error);
128
+ return chunkM5QWZAR4_cjs.parseToObj(result);
129
+ }
130
+
131
+ // src/node/export.ts
132
+ var export_exports = {};
133
+ chunkM5QWZAR4_cjs.__export(export_exports, {
134
+ createSecretKey: () => createSecretKey,
135
+ decode: () => decode,
136
+ decrypt: () => decrypt,
137
+ decryptObj: () => decryptObj,
138
+ encode: () => encode,
139
+ encrypt: () => encrypt,
140
+ encryptObj: () => encryptObj,
141
+ generateUuid: () => generateUuid,
142
+ hash: () => hash
143
+ });
144
+
145
+ exports.createSecretKey = createSecretKey;
146
+ exports.decode = decode;
147
+ exports.decrypt = decrypt;
148
+ exports.decryptObj = decryptObj;
149
+ exports.encode = encode;
150
+ exports.encrypt = encrypt;
151
+ exports.encryptObj = encryptObj;
152
+ exports.export_exports = export_exports;
153
+ exports.generateUuid = generateUuid;
154
+ exports.hash = hash;
155
+ //# sourceMappingURL=chunk-KLCBAR7C.cjs.map
156
+ //# sourceMappingURL=chunk-KLCBAR7C.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/node/encode.ts","../src/node/encrypt.ts","../src/node/export.ts"],"names":["$ok","Buffer","$err","$stringifyError","nodeCrypto","$isStr","isNodeKey","NODE_ALGORITHM","isInNodeEncryptionFormat","stringifyObj","parseToObj","__export"],"mappings":"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","file":"chunk-KLCBAR7C.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({ msg: 'Crypto NodeJS: Failed to encode data', desc: $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({ msg: 'Crypto NodeJS: Failed to decode data', desc: $stringifyError(error) });\r\n }\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, isInNodeEncryptionFormat, isNodeKey, NODE_ALGORITHM, parseToObj, stringifyObj } from '~/utils';\r\nimport { decode, encode } from './encode';\r\n\r\nexport function generateUuid(): Result<string> {\r\n try {\r\n return $ok(nodeCrypto.randomUUID());\r\n } catch (error) {\r\n return $err({ msg: 'Crypto NodeJS: Failed to generate UUID', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function hash(data: string): Result<string> {\r\n if (!$isStr(data, 0)) {\r\n return $err({ msg: 'Crypto NodeJS: Empty data for hashing', desc: '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({ msg: 'Crypto NodeJS: Failed to hash data with Crypto NodeJS', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function createSecretKey(key: string | NodeKey): Result<{ secretKey: NodeKey }> {\r\n if (typeof key === 'string') {\r\n try {\r\n if (!$isStr(key)) return $err({ msg: 'Crypto NodeJS: Empty key', desc: 'Key must be a non-empty string' });\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({ msg: 'Crypto NodeJS: Failed to create secret key', desc: $stringifyError(error) });\r\n }\r\n }\r\n\r\n if (!isNodeKey(key)) {\r\n return $err({ msg: 'Crypto NodeJS: Invalid secret key', desc: 'Expected a NodeKey(crypto.KeyObject)' });\r\n }\r\n\r\n return $ok({ secretKey: key });\r\n}\r\n\r\nexport function encrypt(data: string, secretKey: NodeKey): Result<string> {\r\n try {\r\n if (!$isStr(data)) {\r\n return $err({ msg: 'Crypto NodeJS: Empty data for encryption', desc: 'Data must be a non-empty string' });\r\n }\r\n\r\n if (!isNodeKey(secretKey)) {\r\n return $err({ msg: 'Crypto NodeJS: Invalid encryption key', desc: 'Expected a NodeKey(crypto.KeyObject)' });\r\n }\r\n\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({\r\n msg: 'Crypto NodeJS: Failed to encode IV or encrypted data',\r\n desc: `Decoding error: ${ivError || encryptedError || tagError}`,\r\n });\r\n }\r\n\r\n return $ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);\r\n } catch (error) {\r\n return $err({ msg: 'Crypto NodeJS: Failed to encrypt data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function decrypt(encrypted: string, secretKey: NodeKey): Result<string> {\r\n if (isInNodeEncryptionFormat(encrypted) === false) {\r\n return $err({\r\n msg: 'Crypto NodeJS: Invalid encrypted data format',\r\n desc: 'Encrypted data must be in the format \"iv.encryptedData.tag.\"',\r\n });\r\n }\r\n\r\n const [iv, encryptedData, tag] = encrypted.split('.', 4);\r\n if (!$isStr(iv) || !$isStr(encryptedData) || !$isStr(tag)) {\r\n return $err({\r\n msg: 'Crypto NodeJS: Invalid encrypted data',\r\n desc: 'Encrypted data must contain valid IV, encrypted data, and tag components',\r\n });\r\n }\r\n\r\n if (!isNodeKey(secretKey)) {\r\n return $err({ msg: 'Crypto NodeJS: Invalid decryption key', desc: '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({\r\n msg: 'Crypto NodeJS: Failed to decode IV or encrypted data',\r\n desc: `Encoding error: ${ivError || encryptedError || tagError}`,\r\n });\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({ msg: 'Crypto NodeJS: Failed to decrypt data', desc: $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","export { decode, encode } from './encode';\r\nexport { createSecretKey, decrypt, decryptObj, encrypt, encryptObj, generateUuid, hash } from './encrypt';\r\n"]}
@@ -1,3 +1,5 @@
1
+ import nodeCrypto from 'crypto';
2
+
1
3
  var __defProp = Object.defineProperty;
2
4
  var __export = (target, all) => {
3
5
  for (var name in all)
@@ -9,10 +11,13 @@ function $ok(result) {
9
11
  if ($isObj(result)) return { success: true, ...result };
10
12
  return { success: true, result };
11
13
  }
12
- function $err(typeOrErr) {
14
+ function $err(err) {
13
15
  return {
14
16
  success: false,
15
- error: "msg" in typeOrErr && "desc" in typeOrErr ? { message: typeOrErr.msg, description: typeOrErr.desc } : { message: typeOrErr.message, description: typeOrErr.description }
17
+ error: {
18
+ message: "msg" in err ? err.msg : err.message,
19
+ description: "desc" in err ? err.desc : err.description
20
+ }
16
21
  };
17
22
  }
18
23
  function $stringifyError(error) {
@@ -38,33 +43,37 @@ function isInNodeEncryptionFormat(data) {
38
43
  function isInWebApiEncryptionFormat(data) {
39
44
  return typeof data === "string" && ENCRYPTION_REGEX.WEB_API.test(data);
40
45
  }
41
- function $isStr(value, min = 0) {
46
+ function $isStr(value, min = 1) {
42
47
  return (value !== null || value !== void 0) && typeof value === "string" && value.trim().length >= min;
43
48
  }
44
49
  function $isObj(value) {
45
50
  return typeof value === "object" && value !== null && value !== void 0 && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
46
51
  }
52
+ function isWebApiKey(key) {
53
+ return key !== null && key !== void 0 && typeof key === "object" && "type" in key && typeof key.type === "string" && "algorithm" in key && typeof key.algorithm === "object" && "extractable" in key && typeof key.extractable === "boolean" && "usages" in key && Array.isArray(key.usages) && key.usages.every((usage) => typeof usage === "string");
54
+ }
55
+ function isNodeKey(key) {
56
+ return key instanceof nodeCrypto.KeyObject;
57
+ }
47
58
  function stringifyObj(obj) {
48
- if (!$isObj(obj)) return $err({ msg: "Invalid object", desc: "Input is not a plain object" });
49
59
  try {
60
+ if (!$isObj(obj)) return $err({ msg: "Invalid object", desc: "Input is not a plain object" });
50
61
  return $ok(JSON.stringify(obj));
51
62
  } catch (error) {
52
63
  return $err({ msg: "Stringify error", desc: $stringifyError(error) });
53
64
  }
54
65
  }
55
66
  function parseToObj(str) {
56
- if (!$isStr(str)) return $err({ msg: "Invalid input", desc: "Input is not a valid string" });
57
67
  try {
68
+ if (!$isStr(str)) return $err({ msg: "Invalid input", desc: "Input is not a valid string" });
58
69
  const obj = JSON.parse(str);
59
- if (!$isObj(obj)) {
60
- return $err({ msg: "Invalid object format", desc: "Parsed data is not a plain object" });
61
- }
70
+ if (!$isObj(obj)) return $err({ msg: "Invalid object format", desc: "Parsed data is not a plain object" });
62
71
  return $ok({ result: obj });
63
72
  } catch (error) {
64
73
  return $err({ msg: "Invalid format", desc: $stringifyError(error) });
65
74
  }
66
75
  }
67
76
 
68
- export { $err, $isStr, $ok, $stringifyError, ENCRYPTION_REGEX, NODE_ALGORITHM, WEB_API_ALGORITHM, __export, isInEncryptionFormat, isInNodeEncryptionFormat, isInWebApiEncryptionFormat, parseToObj, stringifyObj };
69
- //# sourceMappingURL=chunk-F52DT5C4.js.map
70
- //# sourceMappingURL=chunk-F52DT5C4.js.map
77
+ export { $err, $isStr, $ok, $stringifyError, ENCRYPTION_REGEX, NODE_ALGORITHM, WEB_API_ALGORITHM, __export, isInEncryptionFormat, isInNodeEncryptionFormat, isInWebApiEncryptionFormat, isNodeKey, isWebApiKey, parseToObj, stringifyObj };
78
+ //# sourceMappingURL=chunk-LO5ITHDI.js.map
79
+ //# sourceMappingURL=chunk-LO5ITHDI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error.ts","../src/utils.ts"],"names":[],"mappings":"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","file":"chunk-LO5ITHDI.js","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(err: { msg: string; desc: string }): Result<never, ResultErr>;\r\nexport function $err(err: ResultErr): Result<never, ResultErr>;\r\nexport function $err(err: { msg: string; desc: string } | ResultErr): Result<never, ResultErr> {\r\n return {\r\n success: false,\r\n error: {\r\n message: 'msg' in err ? err.msg : err.message,\r\n description: 'desc' in err ? err.desc : err.description,\r\n },\r\n } 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 nodeCrypto from 'node:crypto';\r\nimport type { WebApiKey } from '~/types';\r\nimport { $err, $ok, $stringifyError, type Result } from './error';\r\n\r\nexport const NODE_ALGORITHM = 'aes-256-gcm';\r\nexport const WEB_API_ALGORITHM = 'AES-GCM';\r\n\r\nexport const ENCRYPTION_REGEX = Object.freeze({\r\n GENERAL: /^(?:[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)?\\.)$/,\r\n NODE: /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/,\r\n WEB_API: /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/,\r\n});\r\n\r\nexport function isInEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.GENERAL.test(data);\r\n}\r\n\r\nexport function isInNodeEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.NODE.test(data);\r\n}\r\n\r\nexport function isInWebApiEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.WEB_API.test(data);\r\n}\r\n\r\nexport function $isStr(value: unknown, min = 1): 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 isWebApiKey(key: unknown): key is WebApiKey {\r\n return (\r\n key !== null &&\r\n key !== undefined &&\r\n typeof key === 'object' &&\r\n 'type' in key &&\r\n typeof key.type === 'string' &&\r\n 'algorithm' in key &&\r\n typeof key.algorithm === 'object' &&\r\n 'extractable' in key &&\r\n typeof key.extractable === 'boolean' &&\r\n 'usages' in key &&\r\n Array.isArray(key.usages) &&\r\n key.usages.every((usage) => typeof usage === 'string')\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\r\nexport function stringifyObj(obj: Record<string, unknown>): Result<string> {\r\n try {\r\n if (!$isObj(obj)) return $err({ msg: 'Invalid object', desc: 'Input is not a plain object' });\r\n return $ok(JSON.stringify(obj));\r\n } catch (error) {\r\n return $err({ msg: 'Stringify error', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function parseToObj(str: string): Result<{ result: Record<string, unknown> }> {\r\n try {\r\n if (!$isStr(str)) return $err({ msg: 'Invalid input', desc: 'Input is not a valid string' });\r\n const obj = JSON.parse(str);\r\n if (!$isObj(obj)) return $err({ msg: 'Invalid object format', desc: 'Parsed data is not a plain object' });\r\n return $ok({ result: obj });\r\n } catch (error) {\r\n return $err({ msg: 'Invalid format', desc: $stringifyError(error) });\r\n }\r\n}\r\n"]}
@@ -1,5 +1,11 @@
1
1
  'use strict';
2
2
 
3
+ var nodeCrypto = require('crypto');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var nodeCrypto__default = /*#__PURE__*/_interopDefault(nodeCrypto);
8
+
3
9
  var __defProp = Object.defineProperty;
4
10
  var __export = (target, all) => {
5
11
  for (var name in all)
@@ -11,10 +17,13 @@ function $ok(result) {
11
17
  if ($isObj(result)) return { success: true, ...result };
12
18
  return { success: true, result };
13
19
  }
14
- function $err(typeOrErr) {
20
+ function $err(err) {
15
21
  return {
16
22
  success: false,
17
- error: "msg" in typeOrErr && "desc" in typeOrErr ? { message: typeOrErr.msg, description: typeOrErr.desc } : { message: typeOrErr.message, description: typeOrErr.description }
23
+ error: {
24
+ message: "msg" in err ? err.msg : err.message,
25
+ description: "desc" in err ? err.desc : err.description
26
+ }
18
27
  };
19
28
  }
20
29
  function $stringifyError(error) {
@@ -40,27 +49,31 @@ function isInNodeEncryptionFormat(data) {
40
49
  function isInWebApiEncryptionFormat(data) {
41
50
  return typeof data === "string" && ENCRYPTION_REGEX.WEB_API.test(data);
42
51
  }
43
- function $isStr(value, min = 0) {
52
+ function $isStr(value, min = 1) {
44
53
  return (value !== null || value !== void 0) && typeof value === "string" && value.trim().length >= min;
45
54
  }
46
55
  function $isObj(value) {
47
56
  return typeof value === "object" && value !== null && value !== void 0 && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
48
57
  }
58
+ function isWebApiKey(key) {
59
+ return key !== null && key !== void 0 && typeof key === "object" && "type" in key && typeof key.type === "string" && "algorithm" in key && typeof key.algorithm === "object" && "extractable" in key && typeof key.extractable === "boolean" && "usages" in key && Array.isArray(key.usages) && key.usages.every((usage) => typeof usage === "string");
60
+ }
61
+ function isNodeKey(key) {
62
+ return key instanceof nodeCrypto__default.default.KeyObject;
63
+ }
49
64
  function stringifyObj(obj) {
50
- if (!$isObj(obj)) return $err({ msg: "Invalid object", desc: "Input is not a plain object" });
51
65
  try {
66
+ if (!$isObj(obj)) return $err({ msg: "Invalid object", desc: "Input is not a plain object" });
52
67
  return $ok(JSON.stringify(obj));
53
68
  } catch (error) {
54
69
  return $err({ msg: "Stringify error", desc: $stringifyError(error) });
55
70
  }
56
71
  }
57
72
  function parseToObj(str) {
58
- if (!$isStr(str)) return $err({ msg: "Invalid input", desc: "Input is not a valid string" });
59
73
  try {
74
+ if (!$isStr(str)) return $err({ msg: "Invalid input", desc: "Input is not a valid string" });
60
75
  const obj = JSON.parse(str);
61
- if (!$isObj(obj)) {
62
- return $err({ msg: "Invalid object format", desc: "Parsed data is not a plain object" });
63
- }
76
+ if (!$isObj(obj)) return $err({ msg: "Invalid object format", desc: "Parsed data is not a plain object" });
64
77
  return $ok({ result: obj });
65
78
  } catch (error) {
66
79
  return $err({ msg: "Invalid format", desc: $stringifyError(error) });
@@ -78,7 +91,9 @@ exports.__export = __export;
78
91
  exports.isInEncryptionFormat = isInEncryptionFormat;
79
92
  exports.isInNodeEncryptionFormat = isInNodeEncryptionFormat;
80
93
  exports.isInWebApiEncryptionFormat = isInWebApiEncryptionFormat;
94
+ exports.isNodeKey = isNodeKey;
95
+ exports.isWebApiKey = isWebApiKey;
81
96
  exports.parseToObj = parseToObj;
82
97
  exports.stringifyObj = stringifyObj;
83
- //# sourceMappingURL=chunk-IMSNCUFU.cjs.map
84
- //# sourceMappingURL=chunk-IMSNCUFU.cjs.map
98
+ //# sourceMappingURL=chunk-M5QWZAR4.cjs.map
99
+ //# sourceMappingURL=chunk-M5QWZAR4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error.ts","../src/utils.ts"],"names":["nodeCrypto"],"mappings":"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","file":"chunk-M5QWZAR4.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(err: { msg: string; desc: string }): Result<never, ResultErr>;\r\nexport function $err(err: ResultErr): Result<never, ResultErr>;\r\nexport function $err(err: { msg: string; desc: string } | ResultErr): Result<never, ResultErr> {\r\n return {\r\n success: false,\r\n error: {\r\n message: 'msg' in err ? err.msg : err.message,\r\n description: 'desc' in err ? err.desc : err.description,\r\n },\r\n } 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 nodeCrypto from 'node:crypto';\r\nimport type { WebApiKey } from '~/types';\r\nimport { $err, $ok, $stringifyError, type Result } from './error';\r\n\r\nexport const NODE_ALGORITHM = 'aes-256-gcm';\r\nexport const WEB_API_ALGORITHM = 'AES-GCM';\r\n\r\nexport const ENCRYPTION_REGEX = Object.freeze({\r\n GENERAL: /^(?:[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)?\\.)$/,\r\n NODE: /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/,\r\n WEB_API: /^([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)\\.$/,\r\n});\r\n\r\nexport function isInEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.GENERAL.test(data);\r\n}\r\n\r\nexport function isInNodeEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.NODE.test(data);\r\n}\r\n\r\nexport function isInWebApiEncryptionFormat(data: string): boolean {\r\n return typeof data === 'string' && ENCRYPTION_REGEX.WEB_API.test(data);\r\n}\r\n\r\nexport function $isStr(value: unknown, min = 1): 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 isWebApiKey(key: unknown): key is WebApiKey {\r\n return (\r\n key !== null &&\r\n key !== undefined &&\r\n typeof key === 'object' &&\r\n 'type' in key &&\r\n typeof key.type === 'string' &&\r\n 'algorithm' in key &&\r\n typeof key.algorithm === 'object' &&\r\n 'extractable' in key &&\r\n typeof key.extractable === 'boolean' &&\r\n 'usages' in key &&\r\n Array.isArray(key.usages) &&\r\n key.usages.every((usage) => typeof usage === 'string')\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\r\nexport function stringifyObj(obj: Record<string, unknown>): Result<string> {\r\n try {\r\n if (!$isObj(obj)) return $err({ msg: 'Invalid object', desc: 'Input is not a plain object' });\r\n return $ok(JSON.stringify(obj));\r\n } catch (error) {\r\n return $err({ msg: 'Stringify error', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function parseToObj(str: string): Result<{ result: Record<string, unknown> }> {\r\n try {\r\n if (!$isStr(str)) return $err({ msg: 'Invalid input', desc: 'Input is not a valid string' });\r\n const obj = JSON.parse(str);\r\n if (!$isObj(obj)) return $err({ msg: 'Invalid object format', desc: 'Parsed data is not a plain object' });\r\n return $ok({ result: obj });\r\n } catch (error) {\r\n return $err({ msg: 'Invalid format', desc: $stringifyError(error) });\r\n }\r\n}\r\n"]}
package/dist/index.cjs CHANGED
@@ -1,90 +1,94 @@
1
1
  'use strict';
2
2
 
3
- var chunkRF735UV3_cjs = require('./chunk-RF735UV3.cjs');
4
- var chunk65XPPPAR_cjs = require('./chunk-65XPPPAR.cjs');
5
- var chunkIMSNCUFU_cjs = require('./chunk-IMSNCUFU.cjs');
3
+ var chunkKLCBAR7C_cjs = require('./chunk-KLCBAR7C.cjs');
4
+ var chunkHPWXLVXW_cjs = require('./chunk-HPWXLVXW.cjs');
5
+ var chunkM5QWZAR4_cjs = require('./chunk-M5QWZAR4.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "createSecretKey", {
10
10
  enumerable: true,
11
- get: function () { return chunkRF735UV3_cjs.createSecretKey; }
11
+ get: function () { return chunkKLCBAR7C_cjs.createSecretKey; }
12
12
  });
13
13
  Object.defineProperty(exports, "decode", {
14
14
  enumerable: true,
15
- get: function () { return chunkRF735UV3_cjs.decode; }
15
+ get: function () { return chunkKLCBAR7C_cjs.decode; }
16
16
  });
17
17
  Object.defineProperty(exports, "decrypt", {
18
18
  enumerable: true,
19
- get: function () { return chunkRF735UV3_cjs.decrypt; }
19
+ get: function () { return chunkKLCBAR7C_cjs.decrypt; }
20
20
  });
21
21
  Object.defineProperty(exports, "decryptObj", {
22
22
  enumerable: true,
23
- get: function () { return chunkRF735UV3_cjs.decryptObj; }
23
+ get: function () { return chunkKLCBAR7C_cjs.decryptObj; }
24
24
  });
25
25
  Object.defineProperty(exports, "encode", {
26
26
  enumerable: true,
27
- get: function () { return chunkRF735UV3_cjs.encode; }
27
+ get: function () { return chunkKLCBAR7C_cjs.encode; }
28
28
  });
29
29
  Object.defineProperty(exports, "encrypt", {
30
30
  enumerable: true,
31
- get: function () { return chunkRF735UV3_cjs.encrypt; }
31
+ get: function () { return chunkKLCBAR7C_cjs.encrypt; }
32
32
  });
33
33
  Object.defineProperty(exports, "encryptObj", {
34
34
  enumerable: true,
35
- get: function () { return chunkRF735UV3_cjs.encryptObj; }
35
+ get: function () { return chunkKLCBAR7C_cjs.encryptObj; }
36
36
  });
37
37
  Object.defineProperty(exports, "generateUuid", {
38
38
  enumerable: true,
39
- get: function () { return chunkRF735UV3_cjs.generateUuid; }
39
+ get: function () { return chunkKLCBAR7C_cjs.generateUuid; }
40
40
  });
41
41
  Object.defineProperty(exports, "hash", {
42
42
  enumerable: true,
43
- get: function () { return chunkRF735UV3_cjs.hash; }
44
- });
45
- Object.defineProperty(exports, "isNodeKey", {
46
- enumerable: true,
47
- get: function () { return chunkRF735UV3_cjs.isNodeKey; }
43
+ get: function () { return chunkKLCBAR7C_cjs.hash; }
48
44
  });
49
45
  Object.defineProperty(exports, "nodeKit", {
50
46
  enumerable: true,
51
- get: function () { return chunkRF735UV3_cjs.export_exports; }
47
+ get: function () { return chunkKLCBAR7C_cjs.export_exports; }
52
48
  });
53
49
  Object.defineProperty(exports, "webApiKit", {
54
50
  enumerable: true,
55
- get: function () { return chunk65XPPPAR_cjs.export_exports; }
51
+ get: function () { return chunkHPWXLVXW_cjs.export_exports; }
56
52
  });
57
53
  Object.defineProperty(exports, "ENCRYPTION_REGEX", {
58
54
  enumerable: true,
59
- get: function () { return chunkIMSNCUFU_cjs.ENCRYPTION_REGEX; }
55
+ get: function () { return chunkM5QWZAR4_cjs.ENCRYPTION_REGEX; }
60
56
  });
61
57
  Object.defineProperty(exports, "NODE_ALGORITHM", {
62
58
  enumerable: true,
63
- get: function () { return chunkIMSNCUFU_cjs.NODE_ALGORITHM; }
59
+ get: function () { return chunkM5QWZAR4_cjs.NODE_ALGORITHM; }
64
60
  });
65
61
  Object.defineProperty(exports, "WEB_API_ALGORITHM", {
66
62
  enumerable: true,
67
- get: function () { return chunkIMSNCUFU_cjs.WEB_API_ALGORITHM; }
63
+ get: function () { return chunkM5QWZAR4_cjs.WEB_API_ALGORITHM; }
68
64
  });
69
65
  Object.defineProperty(exports, "isInEncryptionFormat", {
70
66
  enumerable: true,
71
- get: function () { return chunkIMSNCUFU_cjs.isInEncryptionFormat; }
67
+ get: function () { return chunkM5QWZAR4_cjs.isInEncryptionFormat; }
72
68
  });
73
69
  Object.defineProperty(exports, "isInNodeEncryptionFormat", {
74
70
  enumerable: true,
75
- get: function () { return chunkIMSNCUFU_cjs.isInNodeEncryptionFormat; }
71
+ get: function () { return chunkM5QWZAR4_cjs.isInNodeEncryptionFormat; }
76
72
  });
77
73
  Object.defineProperty(exports, "isInWebApiEncryptionFormat", {
78
74
  enumerable: true,
79
- get: function () { return chunkIMSNCUFU_cjs.isInWebApiEncryptionFormat; }
75
+ get: function () { return chunkM5QWZAR4_cjs.isInWebApiEncryptionFormat; }
76
+ });
77
+ Object.defineProperty(exports, "isNodeKey", {
78
+ enumerable: true,
79
+ get: function () { return chunkM5QWZAR4_cjs.isNodeKey; }
80
+ });
81
+ Object.defineProperty(exports, "isWebApiKey", {
82
+ enumerable: true,
83
+ get: function () { return chunkM5QWZAR4_cjs.isWebApiKey; }
80
84
  });
81
85
  Object.defineProperty(exports, "parseToObj", {
82
86
  enumerable: true,
83
- get: function () { return chunkIMSNCUFU_cjs.parseToObj; }
87
+ get: function () { return chunkM5QWZAR4_cjs.parseToObj; }
84
88
  });
85
89
  Object.defineProperty(exports, "stringifyObj", {
86
90
  enumerable: true,
87
- get: function () { return chunkIMSNCUFU_cjs.stringifyObj; }
91
+ get: function () { return chunkM5QWZAR4_cjs.stringifyObj; }
88
92
  });
89
93
  //# sourceMappingURL=index.cjs.map
90
94
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- export { E as ENCRYPTION_REGEX, N as NODE_ALGORITHM, c as NodeKey, W as WEB_API_ALGORITHM, d as WebApiKey, i as isInEncryptionFormat, a as isInNodeEncryptionFormat, b as isInWebApiEncryptionFormat, p as parseToObj, s as stringifyObj } from './types-C7UlGfO2.cjs';
2
- import { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, isNodeKey } from './node.cjs';
3
- import { createSecretKey as createSecretKey$1, decode as decode$1, decrypt as decrypt$1, decryptObj as decryptObj$1, encode as encode$1, encrypt as encrypt$1, encryptObj as encryptObj$1, generateUuid as generateUuid$1, hash as hash$1, isWebApiKey } from './web-api.cjs';
1
+ export { E as ENCRYPTION_REGEX, N as NODE_ALGORITHM, e as NodeKey, W as WEB_API_ALGORITHM, f as WebApiKey, i as isInEncryptionFormat, a as isInNodeEncryptionFormat, b as isInWebApiEncryptionFormat, c as isNodeKey, d as isWebApiKey, p as parseToObj, s as stringifyObj } from './utils-Bryp07ny.cjs';
2
+ import { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash } from './node.cjs';
3
+ import { createSecretKey as createSecretKey$1, decode as decode$1, decrypt as decrypt$1, decryptObj as decryptObj$1, encode as encode$1, encrypt as encrypt$1, encryptObj as encryptObj$1, generateUuid as generateUuid$1, hash as hash$1 } from './web-api.cjs';
4
4
  import 'node:crypto';
5
5
  import 'node:buffer';
6
6
 
@@ -13,14 +13,12 @@ declare const _export$1_encrypt: typeof encrypt;
13
13
  declare const _export$1_encryptObj: typeof encryptObj;
14
14
  declare const _export$1_generateUuid: typeof generateUuid;
15
15
  declare const _export$1_hash: typeof hash;
16
- declare const _export$1_isNodeKey: typeof isNodeKey;
17
16
  declare namespace _export$1 {
18
- export { _export$1_createSecretKey as createSecretKey, _export$1_decode as decode, _export$1_decrypt as decrypt, _export$1_decryptObj as decryptObj, _export$1_encode as encode, _export$1_encrypt as encrypt, _export$1_encryptObj as encryptObj, _export$1_generateUuid as generateUuid, _export$1_hash as hash, _export$1_isNodeKey as isNodeKey };
17
+ export { _export$1_createSecretKey as createSecretKey, _export$1_decode as decode, _export$1_decrypt as decrypt, _export$1_decryptObj as decryptObj, _export$1_encode as encode, _export$1_encrypt as encrypt, _export$1_encryptObj as encryptObj, _export$1_generateUuid as generateUuid, _export$1_hash as hash };
19
18
  }
20
19
 
21
- declare const _export_isWebApiKey: typeof isWebApiKey;
22
20
  declare namespace _export {
23
- export { createSecretKey$1 as createSecretKey, decode$1 as decode, decrypt$1 as decrypt, decryptObj$1 as decryptObj, encode$1 as encode, encrypt$1 as encrypt, encryptObj$1 as encryptObj, generateUuid$1 as generateUuid, hash$1 as hash, _export_isWebApiKey as isWebApiKey };
21
+ export { createSecretKey$1 as createSecretKey, decode$1 as decode, decrypt$1 as decrypt, decryptObj$1 as decryptObj, encode$1 as encode, encrypt$1 as encrypt, encryptObj$1 as encryptObj, generateUuid$1 as generateUuid, hash$1 as hash };
24
22
  }
25
23
 
26
- export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, isNodeKey, _export$1 as nodeKit, _export as webApiKit };
24
+ export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, _export$1 as nodeKit, _export as webApiKit };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { E as ENCRYPTION_REGEX, N as NODE_ALGORITHM, c as NodeKey, W as WEB_API_ALGORITHM, d as WebApiKey, i as isInEncryptionFormat, a as isInNodeEncryptionFormat, b as isInWebApiEncryptionFormat, p as parseToObj, s as stringifyObj } from './types-C7UlGfO2.js';
2
- import { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, isNodeKey } from './node.js';
3
- import { createSecretKey as createSecretKey$1, decode as decode$1, decrypt as decrypt$1, decryptObj as decryptObj$1, encode as encode$1, encrypt as encrypt$1, encryptObj as encryptObj$1, generateUuid as generateUuid$1, hash as hash$1, isWebApiKey } from './web-api.js';
1
+ export { E as ENCRYPTION_REGEX, N as NODE_ALGORITHM, e as NodeKey, W as WEB_API_ALGORITHM, f as WebApiKey, i as isInEncryptionFormat, a as isInNodeEncryptionFormat, b as isInWebApiEncryptionFormat, c as isNodeKey, d as isWebApiKey, p as parseToObj, s as stringifyObj } from './utils-Bryp07ny.js';
2
+ import { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash } from './node.js';
3
+ import { createSecretKey as createSecretKey$1, decode as decode$1, decrypt as decrypt$1, decryptObj as decryptObj$1, encode as encode$1, encrypt as encrypt$1, encryptObj as encryptObj$1, generateUuid as generateUuid$1, hash as hash$1 } from './web-api.js';
4
4
  import 'node:crypto';
5
5
  import 'node:buffer';
6
6
 
@@ -13,14 +13,12 @@ declare const _export$1_encrypt: typeof encrypt;
13
13
  declare const _export$1_encryptObj: typeof encryptObj;
14
14
  declare const _export$1_generateUuid: typeof generateUuid;
15
15
  declare const _export$1_hash: typeof hash;
16
- declare const _export$1_isNodeKey: typeof isNodeKey;
17
16
  declare namespace _export$1 {
18
- export { _export$1_createSecretKey as createSecretKey, _export$1_decode as decode, _export$1_decrypt as decrypt, _export$1_decryptObj as decryptObj, _export$1_encode as encode, _export$1_encrypt as encrypt, _export$1_encryptObj as encryptObj, _export$1_generateUuid as generateUuid, _export$1_hash as hash, _export$1_isNodeKey as isNodeKey };
17
+ export { _export$1_createSecretKey as createSecretKey, _export$1_decode as decode, _export$1_decrypt as decrypt, _export$1_decryptObj as decryptObj, _export$1_encode as encode, _export$1_encrypt as encrypt, _export$1_encryptObj as encryptObj, _export$1_generateUuid as generateUuid, _export$1_hash as hash };
19
18
  }
20
19
 
21
- declare const _export_isWebApiKey: typeof isWebApiKey;
22
20
  declare namespace _export {
23
- export { createSecretKey$1 as createSecretKey, decode$1 as decode, decrypt$1 as decrypt, decryptObj$1 as decryptObj, encode$1 as encode, encrypt$1 as encrypt, encryptObj$1 as encryptObj, generateUuid$1 as generateUuid, hash$1 as hash, _export_isWebApiKey as isWebApiKey };
21
+ export { createSecretKey$1 as createSecretKey, decode$1 as decode, decrypt$1 as decrypt, decryptObj$1 as decryptObj, encode$1 as encode, encrypt$1 as encrypt, encryptObj$1 as encryptObj, generateUuid$1 as generateUuid, hash$1 as hash };
24
22
  }
25
23
 
26
- export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, isNodeKey, _export$1 as nodeKit, _export as webApiKit };
24
+ export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, _export$1 as nodeKit, _export as webApiKit };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, isNodeKey, export_exports as nodeKit } from './chunk-PKIT6YQN.js';
2
- export { export_exports as webApiKit } from './chunk-UYBB4K56.js';
3
- export { ENCRYPTION_REGEX, NODE_ALGORITHM, WEB_API_ALGORITHM, isInEncryptionFormat, isInNodeEncryptionFormat, isInWebApiEncryptionFormat, parseToObj, stringifyObj } from './chunk-F52DT5C4.js';
1
+ export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash, export_exports as nodeKit } from './chunk-GOCDVHG7.js';
2
+ export { export_exports as webApiKit } from './chunk-FTE4MPWV.js';
3
+ export { ENCRYPTION_REGEX, NODE_ALGORITHM, WEB_API_ALGORITHM, isInEncryptionFormat, isInNodeEncryptionFormat, isInWebApiEncryptionFormat, isNodeKey, isWebApiKey, parseToObj, stringifyObj } from './chunk-LO5ITHDI.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map