UNPKG

zephyr-xpack-internal

Version:

Xpack internals for Zephyr

139 lines (138 loc) • 6.31 kB
"use strict"; var __webpack_require__ = {}; (()=>{ __webpack_require__.d = (exports1, getters, values)=>{ var define = (defs, kind)=>{ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { enumerable: true, [kind]: defs[key] }); }; define(getters, "get"); define(values, "value"); }; })(); (()=>{ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); })(); (()=>{ __webpack_require__.r = (exports1)=>{ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, { value: 'Module' }); Object.defineProperty(exports1, '__esModule', { value: true }); }; })(); var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { modulePartOne: ()=>modulePartOne }); const external_node_path_namespaceObject = require("node:path"); const external_node_fs_namespaceObject = require("node:fs"); const external_zephyr_agent_namespaceObject = require("zephyr-agent"); const external_get_licenses_js_namespaceObject = require("./get-licenses.js"); function isString(value) { return 'string' == typeof value; } function modulePartOne(modules) { const consumes = []; const consumesByName = {}; const modulesObj = {}; const npmModules = new Map(); modules?.forEach((mod)=>{ const { identifier, reasons, moduleType, nameForCondition, size } = mod; const data = identifier?.split(' '); if ('remote-module' === moduleType) { if (data?.length === 4 && isString(data[3]) && isString(data[2])) { const name = data[3].replace('./', ''); let applicationID = data[2].replace('webpack/container/reference/', ''); if (applicationID.includes('?')) applicationID = new URLSearchParams(applicationID.split('?')[1]).get('remoteName'); const consume = { consumingApplicationID: name, applicationID, name, usedIn: new Set() }; consumes.push(consume); if (nameForCondition) consumesByName[nameForCondition] = consume; } if (reasons) reasons.forEach(({ userRequest, resolvedModule })=>{ if (!userRequest || !consumesByName[userRequest] || !resolvedModule) return; const module = resolvedModule.replace('./', ''); consumesByName[userRequest].usedIn.add(module); }); } else if (data && 'container' === data[0] && 'entry' === data[1] && data[3]) JSON.parse(data[3]).forEach(([prefixedName, file])=>{ const name = prefixedName.replace('./', ''); modulesObj[file.import[0]] = { id: `${name}:${name}`, name, applicationID: name, requires: [], file: file.import[0] }; }); else if (nameForCondition && nameForCondition.includes('node_modules')) { const contextArray = nameForCondition.split(external_node_path_namespaceObject.sep); const afterModule = nameForCondition.split('node_modules' + external_node_path_namespaceObject.sep); const search = afterModule[1] && afterModule[1].startsWith('@') ? 3 : 2; contextArray.splice(contextArray.indexOf('node_modules') + search); const context = contextArray.join(external_node_path_namespaceObject.sep); const packageJsonFile = (0, external_node_path_namespaceObject.join)(context, 'package.json'); const packageJson = safe_read_package_json_sync(packageJsonFile); if (packageJson) { const existingPackage = npmModules.get(packageJson.name); if (existingPackage) { const existingReference = existingPackage[packageJson.version]; if (!existingReference) external_zephyr_agent_namespaceObject.ze_log.buildstats('Duplicate dependency detected:', `${packageJson.name}@${packageJson.version}`, 'already tracking:', Object.keys(existingPackage).join(', '), 'in:', nameForCondition); const existingSize = existingReference?.size ?? 0; const data = { name: packageJson.name, version: packageJson.version, homepage: packageJson.homepage, license: (0, external_get_licenses_js_namespaceObject.getLicenses)(packageJson), size: (Number(existingSize) || 0) + (size ?? 0) }; if (existingReference) Object.assign(existingReference, data); else existingPackage[packageJson.version] = data; npmModules.set(packageJson.name, existingPackage); } else { const newDep = { [packageJson.version]: { name: packageJson.name, version: packageJson.version, homepage: packageJson.homepage, license: (0, external_get_licenses_js_namespaceObject.getLicenses)(packageJson), size } }; npmModules.set(packageJson.name, newDep); } } } }); return { consumes, modulesObj, npmModules }; } function safe_read_package_json_sync(file_path) { try { return JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(file_path, { encoding: 'utf-8' })); } catch { return; } } exports.modulePartOne = __webpack_exports__.modulePartOne; for(var __rspack_i in __webpack_exports__)if (-1 === [ "modulePartOne" ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i]; Object.defineProperty(exports, '__esModule', { value: true }); //# sourceMappingURL=module-part-one.js.map