"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { decodeFromBase64: null, encodeToBase64: null, generateActionId: null, getActionsFromBuildInfo: null, getLoaderModuleNamedExports: null, isActionServerLayerEntryModule: null, isCSSMod: null, isClientComponentEntryModule: null, regexCSS: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { decodeFromBase64: function() { return decodeFromBase64; }, encodeToBase64: function() { return encodeToBase64; }, generateActionId: function() { return generateActionId; }, getActionsFromBuildInfo: function() { return getActionsFromBuildInfo; }, getLoaderModuleNamedExports: function() { return getLoaderModuleNamedExports; }, isActionServerLayerEntryModule: function() { return isActionServerLayerEntryModule; }, isCSSMod: function() { return isCSSMod; }, isClientComponentEntryModule: function() { return isClientComponentEntryModule; }, regexCSS: function() { return regexCSS; } }); const _crypto = require("crypto"); const _constants = require("../../../shared/lib/constants"); const imageExtensions = [ "jpg", "jpeg", "png", "webp", "avif", "ico", "svg" ]; const imageRegex = new RegExp(`\\.(${imageExtensions.join("|")})$`); function isActionServerLayerEntryModule(mod) { const rscInfo = mod.buildInfo.rsc; return !!((rscInfo == null ? void 0 : rscInfo.actions) && (rscInfo == null ? void 0 : rscInfo.type) === _constants.RSC_MODULE_TYPES.server); } // Determine if the whole module is client action, 'use server' in nested closure in the client module function isActionClientLayerModule(mod) { const rscInfo = mod.buildInfo.rsc; return !!((rscInfo == null ? void 0 : rscInfo.actions) && (rscInfo == null ? void 0 : rscInfo.type) === _constants.RSC_MODULE_TYPES.client); } function isClientComponentEntryModule(mod) { const rscInfo = mod.buildInfo.rsc; const hasClientDirective = rscInfo == null ? void 0 : rscInfo.isClientRef; const isActionLayerEntry = isActionClientLayerModule(mod); return hasClientDirective || isActionLayerEntry || imageRegex.test(mod.resource); } const regexCSS = /\.(css|scss|sass)(\?.*)?$/; function isCSSMod(mod) { var _mod_loaders; return !!(mod.type === "css/mini-extract" || mod.resource && regexCSS.test(mod.resource) || ((_mod_loaders = mod.loaders) == null ? void 0 : _mod_loaders.some(({ loader })=>loader.includes("next-style-loader/index.js") || loader.includes("mini-css-extract-plugin/loader.js") || loader.includes("@vanilla-extract/webpack-plugin/loader/")))); } function getActionsFromBuildInfo(mod) { var _mod_buildInfo_rsc, _mod_buildInfo; return (_mod_buildInfo = mod.buildInfo) == null ? void 0 : (_mod_buildInfo_rsc = _mod_buildInfo.rsc) == null ? void 0 : _mod_buildInfo_rsc.actions; } function generateActionId(filePath, exportName) { return (0, _crypto.createHash)("sha1").update(filePath + ":" + exportName).digest("hex"); } function encodeToBase64(obj) { return Buffer.from(JSON.stringify(obj)).toString("base64"); } function decodeFromBase64(str) { return JSON.parse(Buffer.from(str, "base64").toString("utf8")); } async function getLoaderModuleNamedExports(resourcePath, context) { var _mod_dependencies; const mod = await new Promise((res, rej)=>{ context.loadModule(resourcePath, (err, _source, _sourceMap, module1)=>{ if (err) { return rej(err); } res(module1); }); }); const exportNames = ((_mod_dependencies = mod.dependencies) == null ? void 0 : _mod_dependencies.filter((dep)=>{ return [ "HarmonyExportImportedSpecifierDependency", "HarmonyExportSpecifierDependency" ].includes(dep.constructor.name) && "name" in dep && dep.name !== "default"; }).map((dep)=>{ return dep.name; })) || []; return exportNames; } //# sourceMappingURL=utils.js.map