@cj-tech-master/excelts 9.1.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +16 -1
  2. package/dist/browser/modules/archive/compression/crc32.js +1 -1
  3. package/dist/browser/modules/archive/crypto/aes.d.ts +0 -8
  4. package/dist/browser/modules/archive/crypto/aes.js +1 -20
  5. package/dist/browser/modules/archive/crypto/index.d.ts +2 -1
  6. package/dist/browser/modules/archive/crypto/index.js +3 -1
  7. package/dist/browser/modules/csv/parse/row-processor.d.ts +1 -1
  8. package/dist/browser/modules/csv/worker/worker-script.generated.js +1 -1
  9. package/dist/browser/modules/excel/utils/cell-matrix.js +1 -0
  10. package/dist/browser/modules/excel/utils/encryptor.browser.d.ts +4 -5
  11. package/dist/browser/modules/excel/utils/encryptor.browser.js +7 -12
  12. package/dist/browser/modules/excel/utils/encryptor.d.ts +1 -1
  13. package/dist/browser/modules/excel/utils/encryptor.js +4 -7
  14. package/dist/browser/modules/pdf/builder/document-builder.d.ts +517 -0
  15. package/dist/browser/modules/pdf/builder/document-builder.js +1493 -0
  16. package/dist/browser/modules/pdf/builder/form-appearance.d.ts +56 -0
  17. package/dist/browser/modules/pdf/builder/form-appearance.js +140 -0
  18. package/dist/browser/modules/pdf/builder/image-utils.d.ts +39 -0
  19. package/dist/browser/modules/pdf/builder/image-utils.js +129 -0
  20. package/dist/browser/modules/pdf/builder/pdf-editor.d.ts +230 -0
  21. package/dist/browser/modules/pdf/builder/pdf-editor.js +1574 -0
  22. package/dist/browser/modules/pdf/builder/resource-merger.d.ts +41 -0
  23. package/dist/browser/modules/pdf/builder/resource-merger.js +258 -0
  24. package/dist/browser/modules/pdf/core/digital-signature.d.ts +109 -0
  25. package/dist/browser/modules/pdf/core/digital-signature.js +659 -0
  26. package/dist/browser/modules/pdf/core/encryption.js +8 -7
  27. package/dist/browser/modules/pdf/core/pdf-object.d.ts +11 -0
  28. package/dist/browser/modules/pdf/core/pdf-object.js +38 -0
  29. package/dist/browser/modules/pdf/core/pdf-stream.d.ts +32 -0
  30. package/dist/browser/modules/pdf/core/pdf-stream.js +66 -0
  31. package/dist/browser/modules/pdf/core/pdf-writer.d.ts +55 -1
  32. package/dist/browser/modules/pdf/core/pdf-writer.js +271 -6
  33. package/dist/browser/modules/pdf/core/pdfa.d.ts +62 -0
  34. package/dist/browser/modules/pdf/core/pdfa.js +261 -0
  35. package/dist/browser/modules/pdf/index.d.ts +11 -0
  36. package/dist/browser/modules/pdf/index.js +9 -0
  37. package/dist/browser/modules/pdf/reader/bookmark-extractor.d.ts +35 -0
  38. package/dist/browser/modules/pdf/reader/bookmark-extractor.js +324 -0
  39. package/dist/browser/modules/pdf/reader/pdf-decrypt.js +6 -5
  40. package/dist/browser/modules/pdf/reader/pdf-reader.d.ts +17 -0
  41. package/dist/browser/modules/pdf/reader/pdf-reader.js +26 -2
  42. package/dist/browser/modules/pdf/reader/table-extractor.d.ts +69 -0
  43. package/dist/browser/modules/pdf/reader/table-extractor.js +365 -0
  44. package/dist/browser/modules/pdf/render/layout-engine.d.ts +21 -1
  45. package/dist/browser/modules/pdf/render/layout-engine.js +112 -5
  46. package/dist/browser/modules/pdf/render/page-renderer.d.ts +2 -9
  47. package/dist/browser/modules/pdf/render/page-renderer.js +62 -103
  48. package/dist/browser/modules/pdf/render/pdf-exporter.js +2 -61
  49. package/dist/browser/modules/pdf/render/style-converter.d.ts +4 -0
  50. package/dist/browser/modules/pdf/render/style-converter.js +1 -1
  51. package/dist/browser/modules/pdf/types.d.ts +14 -1
  52. package/dist/browser/modules/stream/browser/readable.js +8 -2
  53. package/dist/browser/utils/crypto.browser.d.ts +64 -0
  54. package/dist/browser/{modules/pdf/core/crypto.js → utils/crypto.browser.js} +91 -101
  55. package/dist/browser/utils/crypto.d.ts +97 -0
  56. package/dist/browser/utils/crypto.js +209 -0
  57. package/dist/cjs/modules/archive/compression/crc32.js +1 -1
  58. package/dist/cjs/modules/archive/crypto/aes.js +2 -23
  59. package/dist/cjs/modules/archive/crypto/index.js +3 -1
  60. package/dist/cjs/modules/csv/worker/worker-script.generated.js +1 -1
  61. package/dist/cjs/modules/excel/utils/cell-matrix.js +1 -0
  62. package/dist/cjs/modules/excel/utils/encryptor.browser.js +7 -12
  63. package/dist/cjs/modules/excel/utils/encryptor.js +4 -10
  64. package/dist/cjs/modules/pdf/builder/document-builder.js +1532 -0
  65. package/dist/cjs/modules/pdf/builder/form-appearance.js +145 -0
  66. package/dist/cjs/modules/pdf/builder/image-utils.js +135 -0
  67. package/dist/cjs/modules/pdf/builder/pdf-editor.js +1612 -0
  68. package/dist/cjs/modules/pdf/builder/resource-merger.js +263 -0
  69. package/dist/cjs/modules/pdf/core/digital-signature.js +667 -0
  70. package/dist/cjs/modules/pdf/core/encryption.js +8 -7
  71. package/dist/cjs/modules/pdf/core/pdf-object.js +38 -0
  72. package/dist/cjs/modules/pdf/core/pdf-stream.js +66 -0
  73. package/dist/cjs/modules/pdf/core/pdf-writer.js +272 -6
  74. package/dist/cjs/modules/pdf/core/pdfa.js +266 -0
  75. package/dist/cjs/modules/pdf/index.js +19 -1
  76. package/dist/cjs/modules/pdf/reader/bookmark-extractor.js +327 -0
  77. package/dist/cjs/modules/pdf/reader/pdf-decrypt.js +6 -5
  78. package/dist/cjs/modules/pdf/reader/pdf-reader.js +26 -2
  79. package/dist/cjs/modules/pdf/reader/table-extractor.js +368 -0
  80. package/dist/cjs/modules/pdf/render/layout-engine.js +113 -4
  81. package/dist/cjs/modules/pdf/render/page-renderer.js +63 -105
  82. package/dist/cjs/modules/pdf/render/pdf-exporter.js +3 -62
  83. package/dist/cjs/modules/pdf/render/style-converter.js +1 -0
  84. package/dist/cjs/modules/stream/browser/readable.js +8 -2
  85. package/dist/cjs/{modules/pdf/core/crypto.js → utils/crypto.browser.js} +95 -102
  86. package/dist/cjs/utils/crypto.js +228 -0
  87. package/dist/esm/modules/archive/compression/crc32.js +1 -1
  88. package/dist/esm/modules/archive/crypto/aes.js +1 -20
  89. package/dist/esm/modules/archive/crypto/index.js +3 -1
  90. package/dist/esm/modules/csv/worker/worker-script.generated.js +1 -1
  91. package/dist/esm/modules/excel/utils/cell-matrix.js +1 -0
  92. package/dist/esm/modules/excel/utils/encryptor.browser.js +7 -12
  93. package/dist/esm/modules/excel/utils/encryptor.js +4 -7
  94. package/dist/esm/modules/pdf/builder/document-builder.js +1493 -0
  95. package/dist/esm/modules/pdf/builder/form-appearance.js +140 -0
  96. package/dist/esm/modules/pdf/builder/image-utils.js +129 -0
  97. package/dist/esm/modules/pdf/builder/pdf-editor.js +1574 -0
  98. package/dist/esm/modules/pdf/builder/resource-merger.js +258 -0
  99. package/dist/esm/modules/pdf/core/digital-signature.js +659 -0
  100. package/dist/esm/modules/pdf/core/encryption.js +8 -7
  101. package/dist/esm/modules/pdf/core/pdf-object.js +38 -0
  102. package/dist/esm/modules/pdf/core/pdf-stream.js +66 -0
  103. package/dist/esm/modules/pdf/core/pdf-writer.js +271 -6
  104. package/dist/esm/modules/pdf/core/pdfa.js +261 -0
  105. package/dist/esm/modules/pdf/index.js +9 -0
  106. package/dist/esm/modules/pdf/reader/bookmark-extractor.js +324 -0
  107. package/dist/esm/modules/pdf/reader/pdf-decrypt.js +6 -5
  108. package/dist/esm/modules/pdf/reader/pdf-reader.js +26 -2
  109. package/dist/esm/modules/pdf/reader/table-extractor.js +365 -0
  110. package/dist/esm/modules/pdf/render/layout-engine.js +112 -5
  111. package/dist/esm/modules/pdf/render/page-renderer.js +62 -103
  112. package/dist/esm/modules/pdf/render/pdf-exporter.js +2 -61
  113. package/dist/esm/modules/pdf/render/style-converter.js +1 -1
  114. package/dist/esm/modules/stream/browser/readable.js +8 -2
  115. package/dist/esm/{modules/pdf/core/crypto.js → utils/crypto.browser.js} +91 -101
  116. package/dist/esm/utils/crypto.js +209 -0
  117. package/dist/iife/excelts.iife.js +1248 -1074
  118. package/dist/iife/excelts.iife.js.map +1 -1
  119. package/dist/iife/excelts.iife.min.js +53 -54
  120. package/dist/types/modules/archive/crypto/aes.d.ts +0 -8
  121. package/dist/types/modules/archive/crypto/index.d.ts +2 -1
  122. package/dist/types/modules/csv/parse/row-processor.d.ts +1 -1
  123. package/dist/types/modules/excel/utils/encryptor.browser.d.ts +4 -5
  124. package/dist/types/modules/excel/utils/encryptor.d.ts +1 -1
  125. package/dist/types/modules/pdf/builder/document-builder.d.ts +517 -0
  126. package/dist/types/modules/pdf/builder/form-appearance.d.ts +56 -0
  127. package/dist/types/modules/pdf/builder/image-utils.d.ts +39 -0
  128. package/dist/types/modules/pdf/builder/pdf-editor.d.ts +230 -0
  129. package/dist/types/modules/pdf/builder/resource-merger.d.ts +41 -0
  130. package/dist/types/modules/pdf/core/digital-signature.d.ts +109 -0
  131. package/dist/types/modules/pdf/core/pdf-object.d.ts +11 -0
  132. package/dist/types/modules/pdf/core/pdf-stream.d.ts +32 -0
  133. package/dist/types/modules/pdf/core/pdf-writer.d.ts +55 -1
  134. package/dist/types/modules/pdf/core/pdfa.d.ts +62 -0
  135. package/dist/types/modules/pdf/index.d.ts +11 -0
  136. package/dist/types/modules/pdf/reader/bookmark-extractor.d.ts +35 -0
  137. package/dist/types/modules/pdf/reader/pdf-reader.d.ts +17 -0
  138. package/dist/types/modules/pdf/reader/table-extractor.d.ts +69 -0
  139. package/dist/types/modules/pdf/render/layout-engine.d.ts +21 -1
  140. package/dist/types/modules/pdf/render/page-renderer.d.ts +2 -9
  141. package/dist/types/modules/pdf/render/style-converter.d.ts +4 -0
  142. package/dist/types/modules/pdf/types.d.ts +14 -1
  143. package/dist/types/utils/crypto.browser.d.ts +64 -0
  144. package/dist/types/utils/crypto.d.ts +97 -0
  145. package/package.json +110 -111
  146. package/dist/browser/modules/pdf/core/crypto.d.ts +0 -65
  147. package/dist/types/modules/pdf/core/crypto.d.ts +0 -65
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Cryptographic primitives — Node.js version.
3
+ *
4
+ * Uses `node:crypto` for maximum performance where possible.
5
+ * Pure JS fallbacks for operations where `node:crypto` would be inconvenient
6
+ * (e.g., AES-CBC with specific PDF padding semantics).
7
+ *
8
+ * The browser counterpart (`crypto.browser.ts`) provides the same API using
9
+ * pure JS implementations for synchronous ops and Web Crypto for async ops.
10
+ *
11
+ * Shared by: PDF (encryption/decryption), Archive (via re-export if needed),
12
+ * and digital signature infrastructure.
13
+ *
14
+ * @see FIPS 197 — AES
15
+ * @see FIPS 180-4 — SHA-256
16
+ * @see RFC 1321 — MD5
17
+ * @see RFC 2104 — HMAC
18
+ */
19
+ import crypto from "node:crypto";
20
+ // =============================================================================
21
+ // SHA-256
22
+ // =============================================================================
23
+ /**
24
+ * SHA-256 hash function.
25
+ * @returns 32-byte digest
26
+ */
27
+ export function sha256(input) {
28
+ return new Uint8Array(crypto.createHash("sha256").update(input).digest());
29
+ }
30
+ // =============================================================================
31
+ // Generic hash
32
+ // =============================================================================
33
+ /**
34
+ * HMAC-SHA256 (RFC 2104).
35
+ * @returns 32-byte MAC
36
+ */
37
+ export function hmacSha256(key, message) {
38
+ return new Uint8Array(crypto.createHmac("sha256", key).update(message).digest());
39
+ }
40
+ // =============================================================================
41
+ // MD5
42
+ // =============================================================================
43
+ /**
44
+ * MD5 hash function (RFC 1321).
45
+ * @returns 16-byte digest
46
+ */
47
+ export function md5(input) {
48
+ return new Uint8Array(crypto.createHash("md5").update(input).digest());
49
+ }
50
+ // =============================================================================
51
+ // AES-CBC
52
+ // =============================================================================
53
+ /**
54
+ * AES-CBC encryption with PKCS#7 padding.
55
+ * Supports AES-128 (16-byte key) and AES-256 (32-byte key).
56
+ */
57
+ export function aesCbcEncrypt(plaintext, key, iv) {
58
+ const algo = key.length === 16 ? "aes-128-cbc" : "aes-256-cbc";
59
+ const cipher = crypto.createCipheriv(algo, key, iv);
60
+ return new Uint8Array(Buffer.concat([cipher.update(plaintext), cipher.final()]));
61
+ }
62
+ /**
63
+ * AES-CBC decryption with PKCS#7 padding removal.
64
+ * Supports AES-128 (16-byte key) and AES-256 (32-byte key).
65
+ */
66
+ export function aesCbcDecrypt(ciphertext, key, iv) {
67
+ const algo = key.length === 16 ? "aes-128-cbc" : "aes-256-cbc";
68
+ const decipher = crypto.createDecipheriv(algo, key, iv);
69
+ try {
70
+ return new Uint8Array(Buffer.concat([decipher.update(ciphertext), decipher.final()]));
71
+ }
72
+ catch {
73
+ // Invalid padding — return raw decrypted data without padding removal
74
+ // (matches pure JS behavior for NIST test vectors and PDF key derivation)
75
+ const decipher2 = crypto.createDecipheriv(algo, key, iv);
76
+ decipher2.setAutoPadding(false);
77
+ return new Uint8Array(Buffer.concat([decipher2.update(ciphertext), decipher2.final()]));
78
+ }
79
+ }
80
+ /**
81
+ * AES-CBC decryption WITHOUT PKCS#7 padding removal.
82
+ * Used for key derivation where the output length is known.
83
+ */
84
+ export function aesCbcDecryptRaw(ciphertext, key, iv) {
85
+ const algo = key.length === 16 ? "aes-128-cbc" : "aes-256-cbc";
86
+ const decipher = crypto.createDecipheriv(algo, key, iv);
87
+ decipher.setAutoPadding(false);
88
+ return new Uint8Array(Buffer.concat([decipher.update(ciphertext), decipher.final()]));
89
+ }
90
+ /**
91
+ * AES-CBC encryption WITHOUT PKCS#7 padding.
92
+ * Used when the plaintext is already block-aligned.
93
+ *
94
+ * @throws if plaintext length is not a multiple of 16.
95
+ */
96
+ export function aesCbcEncryptRaw(plaintext, key, iv) {
97
+ if (plaintext.length % 16 !== 0) {
98
+ throw new Error("aesCbcEncryptRaw: plaintext length must be a multiple of 16");
99
+ }
100
+ const algo = key.length === 16 ? "aes-128-cbc" : "aes-256-cbc";
101
+ const cipher = crypto.createCipheriv(algo, key, iv);
102
+ cipher.setAutoPadding(false);
103
+ return new Uint8Array(Buffer.concat([cipher.update(plaintext), cipher.final()]));
104
+ }
105
+ /**
106
+ * AES-ECB encryption of a single 16-byte block (no padding, no IV).
107
+ */
108
+ export function aesEcbEncrypt(block, key) {
109
+ const algo = key.length === 16 ? "aes-128-ecb" : "aes-256-ecb";
110
+ const cipher = crypto.createCipheriv(algo, key, null);
111
+ cipher.setAutoPadding(false);
112
+ return new Uint8Array(Buffer.concat([cipher.update(block), cipher.final()]));
113
+ }
114
+ // =============================================================================
115
+ // RC4 (legacy)
116
+ // =============================================================================
117
+ /**
118
+ * RC4 stream cipher.
119
+ * @deprecated Only used for reading legacy encrypted PDFs.
120
+ */
121
+ export function rc4(key, data) {
122
+ // Node's crypto doesn't expose RC4 in modern versions, use pure JS
123
+ const s = new Uint8Array(256);
124
+ for (let i = 0; i < 256; i++) {
125
+ s[i] = i;
126
+ }
127
+ let j = 0;
128
+ for (let i = 0; i < 256; i++) {
129
+ j = (j + s[i] + key[i % key.length]) & 0xff;
130
+ [s[i], s[j]] = [s[j], s[i]];
131
+ }
132
+ const result = new Uint8Array(data.length);
133
+ let ii = 0;
134
+ let jj = 0;
135
+ for (let k = 0; k < data.length; k++) {
136
+ ii = (ii + 1) & 0xff;
137
+ jj = (jj + s[ii]) & 0xff;
138
+ [s[ii], s[jj]] = [s[jj], s[ii]];
139
+ result[k] = data[k] ^ s[(s[ii] + s[jj]) & 0xff];
140
+ }
141
+ return result;
142
+ }
143
+ // =============================================================================
144
+ // Random bytes
145
+ // =============================================================================
146
+ /**
147
+ * Generate cryptographically secure random bytes.
148
+ */
149
+ export function randomBytes(length) {
150
+ return new Uint8Array(crypto.randomBytes(length));
151
+ }
152
+ // =============================================================================
153
+ // Generic hash
154
+ // =============================================================================
155
+ /**
156
+ * Compute a hash digest using any algorithm supported by the platform.
157
+ *
158
+ * @param algorithm - Hash algorithm name (e.g., "SHA-256", "SHA-512", "SHA-1", "MD5").
159
+ * Normalized internally: hyphens removed, lowercased.
160
+ * @param data - Data to hash
161
+ * @returns The digest bytes
162
+ */
163
+ export function hash(algorithm, data) {
164
+ const algo = algorithm.toLowerCase().replace(/-/g, "");
165
+ return new Uint8Array(crypto.createHash(algo).update(data).digest());
166
+ }
167
+ /**
168
+ * Async version of `hash()` — same behavior, but returns a Promise for API
169
+ * parity with the browser version.
170
+ */
171
+ export async function hashAsync(algorithm, data) {
172
+ return hash(algorithm, data);
173
+ }
174
+ // =============================================================================
175
+ // RSA signature operations (async — for digital signatures)
176
+ // =============================================================================
177
+ /**
178
+ * Verify an RSA PKCS#1 v1.5 signature.
179
+ *
180
+ * @param publicKeyDer - DER-encoded SubjectPublicKeyInfo
181
+ * @param signature - The signature bytes
182
+ * @param data - The signed data (will be hashed with SHA-256)
183
+ */
184
+ export async function rsaVerify(publicKeyDer, signature, data) {
185
+ const key = crypto.createPublicKey({
186
+ key: Buffer.from(publicKeyDer),
187
+ format: "der",
188
+ type: "spki"
189
+ });
190
+ const verifier = crypto.createVerify("SHA256");
191
+ verifier.update(data);
192
+ return verifier.verify(key, signature);
193
+ }
194
+ /**
195
+ * Create an RSA PKCS#1 v1.5 signature.
196
+ *
197
+ * @param privateKeyDer - DER-encoded PKCS#8 private key
198
+ * @param data - The data to sign (will be hashed with SHA-256)
199
+ */
200
+ export async function rsaSign(privateKeyDer, data) {
201
+ const key = crypto.createPrivateKey({
202
+ key: Buffer.from(privateKeyDer),
203
+ format: "der",
204
+ type: "pkcs8"
205
+ });
206
+ const signer = crypto.createSign("SHA256");
207
+ signer.update(data);
208
+ return new Uint8Array(signer.sign(key));
209
+ }
@@ -85,7 +85,7 @@ function ensureZlibSync() {
85
85
  return;
86
86
  }
87
87
  try {
88
- // eslint-disable-next-line @typescript-eslint/no-require-imports
88
+ // oxlint-disable-next-line typescript/no-require-imports
89
89
  _zlib = require("zlib");
90
90
  _zlibInitStarted = true;
91
91
  }
@@ -16,8 +16,6 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AES_PASSWORD_VERIFY_LENGTH = exports.AES_AUTH_CODE_LENGTH = exports.AES_STRENGTH_FROM_BYTE = exports.AES_STRENGTH_BYTE = exports.AES_KEY_LENGTH = exports.AES_SALT_LENGTH = exports.AES_EXTRA_FIELD_ID = exports.COMPRESSION_METHOD_AES = exports.AES_VERSION_AE1 = exports.AES_VERSION_AE2 = exports.AES_VENDOR_ID = void 0;
19
- exports.getRandomValues = getRandomValues;
20
- exports.randomBytes = randomBytes;
21
19
  exports.aesDerive = aesDerive;
22
20
  exports.aesComputeHmac = aesComputeHmac;
23
21
  exports.aesCtr = aesCtr;
@@ -30,6 +28,7 @@ exports.aesCheckPasswordOnly = aesCheckPasswordOnly;
30
28
  exports.aesVerifyPassword = aesCheckPasswordOnly;
31
29
  exports.aesCheckSignature = aesCheckSignature;
32
30
  const binary_1 = require("../../../utils/binary.js");
31
+ const crypto_1 = require("../../../utils/crypto.js");
33
32
  const text_1 = require("../shared/text.js");
34
33
  /**
35
34
  * AES vendor ID for WinZip format.
@@ -100,26 +99,6 @@ function getWebCrypto() {
100
99
  }
101
100
  throw new Error("Web Crypto API not available");
102
101
  }
103
- /**
104
- * Get crypto.getRandomValues (works in both Node.js and browsers).
105
- */
106
- function getRandomValues(array) {
107
- if (typeof globalThis.crypto?.getRandomValues !== "undefined") {
108
- // Uint8Array's buffer type (ArrayBufferLike) is wider than what the TS lib
109
- // definition of getRandomValues expects (ArrayBuffer). The cast is safe
110
- // because getRandomValues fills the view in-place regardless of buffer type.
111
- globalThis.crypto.getRandomValues(array);
112
- return array;
113
- }
114
- throw new Error("crypto.getRandomValues not available");
115
- }
116
- /**
117
- * Generate random bytes.
118
- */
119
- function randomBytes(length) {
120
- const bytes = new Uint8Array(length);
121
- return getRandomValues(bytes);
122
- }
123
102
  /**
124
103
  * Derive AES keys from password using PBKDF2.
125
104
  *
@@ -329,7 +308,7 @@ async function aesDecrypt(encryptedData, password, keyStrength) {
329
308
  async function aesEncrypt(data, password, keyStrength) {
330
309
  const saltLen = exports.AES_SALT_LENGTH[keyStrength];
331
310
  // Generate random salt
332
- const salt = randomBytes(saltLen);
311
+ const salt = (0, crypto_1.randomBytes)(saltLen);
333
312
  // Derive keys
334
313
  const keys = await aesDerive(password, salt, keyStrength);
335
314
  // Encrypt data
@@ -42,7 +42,9 @@ Object.defineProperty(exports, "aesEncrypt", { enumerable: true, get: function (
42
42
  Object.defineProperty(exports, "aesEncryptedSize", { enumerable: true, get: function () { return aes_1.aesEncryptedSize; } });
43
43
  Object.defineProperty(exports, "aesVerifyPassword", { enumerable: true, get: function () { return aes_1.aesVerifyPassword; } });
44
44
  Object.defineProperty(exports, "buildAesExtraField", { enumerable: true, get: function () { return aes_1.buildAesExtraField; } });
45
- Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return aes_1.randomBytes; } });
45
+ // Random bytes from shared @utils/crypto
46
+ var crypto_1 = require("../../../utils/crypto.js");
47
+ Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return crypto_1.randomBytes; } });
46
48
  // Types
47
49
  var types_1 = require("./types");
48
50
  Object.defineProperty(exports, "getEncryptionMethodName", { enumerable: true, get: function () { return types_1.getEncryptionMethodName; } });