Spaces:
Running
Running
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| 0 && (module.exports = { | |
| arrayBufferToString: null, | |
| decrypt: null, | |
| encrypt: null, | |
| getActionEncryptionKey: null, | |
| stringToUint8Array: null | |
| }); | |
| function _export(target, all) { | |
| for(var name in all)Object.defineProperty(target, name, { | |
| enumerable: true, | |
| get: all[name] | |
| }); | |
| } | |
| _export(exports, { | |
| arrayBufferToString: function() { | |
| return arrayBufferToString; | |
| }, | |
| decrypt: function() { | |
| return decrypt; | |
| }, | |
| encrypt: function() { | |
| return encrypt; | |
| }, | |
| getActionEncryptionKey: function() { | |
| return getActionEncryptionKey; | |
| }, | |
| stringToUint8Array: function() { | |
| return stringToUint8Array; | |
| } | |
| }); | |
| const _invarianterror = require("../../shared/lib/invariant-error"); | |
| const _manifestssingleton = require("./manifests-singleton"); | |
| let __next_loaded_action_key; | |
| function arrayBufferToString(buffer) { | |
| const bytes = new Uint8Array(buffer); | |
| const len = bytes.byteLength; | |
| // @anonrig: V8 has a limit of 65535 arguments in a function. | |
| // For len < 65535, this is faster. | |
| // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623 | |
| if (len < 65535) { | |
| return String.fromCharCode.apply(null, bytes); | |
| } | |
| let binary = ''; | |
| for(let i = 0; i < len; i++){ | |
| binary += String.fromCharCode(bytes[i]); | |
| } | |
| return binary; | |
| } | |
| function stringToUint8Array(binary) { | |
| const len = binary.length; | |
| const arr = new Uint8Array(len); | |
| for(let i = 0; i < len; i++){ | |
| arr[i] = binary.charCodeAt(i); | |
| } | |
| return arr; | |
| } | |
| function encrypt(key, iv, data) { | |
| return crypto.subtle.encrypt({ | |
| name: 'AES-GCM', | |
| iv | |
| }, key, data); | |
| } | |
| function decrypt(key, iv, data) { | |
| return crypto.subtle.decrypt({ | |
| name: 'AES-GCM', | |
| iv | |
| }, key, data); | |
| } | |
| async function getActionEncryptionKey() { | |
| if (__next_loaded_action_key) { | |
| return __next_loaded_action_key; | |
| } | |
| const serverActionsManifest = (0, _manifestssingleton.getServerActionsManifest)(); | |
| const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifest.encryptionKey; | |
| if (rawKey === undefined) { | |
| throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), "__NEXT_ERROR_CODE", { | |
| value: "E571", | |
| enumerable: false, | |
| configurable: true | |
| }); | |
| } | |
| __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [ | |
| 'encrypt', | |
| 'decrypt' | |
| ]); | |
| return __next_loaded_action_key; | |
| } | |
| //# sourceMappingURL=encryption-utils.js.map |