#!/usr/bin/env node var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // src/bin.ts var import_node_fs = __toESM(require("fs"), 1); var import_node_path = __toESM(require("path"), 1); var import_glob = require("glob"); var import_object = __toESM(require("object.groupby"), 1); var argv = process.argv.slice(2); var files = argv; if (argv.includes("--help") || !files.length) { console.log( ` Usage: add-pkg-exports Description: Add exports field to package.json based on the files found by the glob pattern `.trim() ); process.exit(0); } var resolvedFiles = files.length === 1 ? (0, import_glob.globSync)(files[0], { absolute: true, cwd: process.cwd() }) : files.map((file) => import_node_path.default.resolve(file)); var x = resolvedFiles.sort().map((value) => { const relative = import_node_path.default.relative(process.cwd(), value); const rel = `./${relative}`; const extname = `.${import_node_path.default.basename(rel).split(".").slice(1).join(".")}`; const basename = import_node_path.default.basename(rel, extname); const key = basename === "index" ? "." : `./${basename}`; const keyword = extname === ".cjs" ? "require" : extname === ".js" ? "import" : void 0; return { extname, key, rel, keyword }; }); var grouped = Object.entries((0, import_object.default)(x, (v) => v.key)).sort(([a], [b]) => a.localeCompare(b)); var exportsProperty = Object.fromEntries( grouped.map(([key, value]) => { return [key, Object.fromEntries(value?.filter((v) => v.keyword).map((v) => [v.keyword, v.rel]) || [])]; }) ); var packagePath = import_node_path.default.join(process.cwd(), "./package.json"); var packageJson = JSON.parse(import_node_fs.default.readFileSync(packagePath, "utf-8")); packageJson.exports = exportsProperty; import_node_fs.default.writeFileSync(packagePath, JSON.stringify(packageJson, null, 2));