presetter 3.5.5 → 4.0.1
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.
- package/LICENSE +21 -0
 - package/README.md +3 -3
 - package/bin/cli.js +5 -0
 - package/bin/run-p.js +6 -0
 - package/bin/run-s.js +6 -0
 - package/bin/{run → run.js} +4 -2
 - package/lib/content.d.ts +1 -1
 - package/lib/content.js +58 -66
 - package/lib/directive.d.ts +3 -3
 - package/lib/directive.js +12 -17
 - package/lib/error.js +2 -6
 - package/lib/executable/entry.d.ts +1 -1
 - package/lib/executable/entry.js +57 -24
 - package/lib/executable/error.js +12 -19
 - package/lib/executable/index.js +5 -6
 - package/lib/index.d.ts +6 -6
 - package/lib/index.js +7 -23
 - package/lib/io.d.ts +7 -4
 - package/lib/io.js +53 -57
 - package/lib/package.d.ts +3 -5
 - package/lib/package.js +18 -31
 - package/lib/preset/content.d.ts +6 -0
 - package/lib/preset/content.js +13 -0
 - package/lib/preset/context.d.ts +2 -0
 - package/lib/preset/context.js +14 -0
 - package/lib/preset/graph.d.ts +4 -0
 - package/lib/preset/graph.js +20 -0
 - package/lib/preset/index.d.ts +3 -0
 - package/lib/preset/index.js +4 -0
 - package/lib/preset/mapping.d.ts +2 -0
 - package/lib/preset/mapping.js +15 -0
 - package/lib/preset/presetterRC.d.ts +5 -0
 - package/lib/preset/presetterRC.js +38 -0
 - package/lib/preset/scripts.d.ts +1 -0
 - package/lib/preset/scripts.js +10 -0
 - package/lib/preset/setup.d.ts +6 -0
 - package/lib/preset/setup.js +43 -0
 - package/lib/preset/unset.d.ts +1 -0
 - package/lib/preset/unset.js +14 -0
 - package/lib/resolution.d.ts +1 -1
 - package/lib/resolution.js +11 -17
 - package/lib/run.d.ts +5 -1
 - package/lib/run.js +68 -74
 - package/lib/scripts.d.ts +3 -3
 - package/lib/scripts.js +13 -15
 - package/lib/task.d.ts +8 -0
 - package/lib/task.js +37 -0
 - package/lib/template.d.ts +6 -6
 - package/lib/template.js +25 -35
 - package/lib/utilities/index.d.ts +1 -0
 - package/lib/utilities/index.js +2 -0
 - package/lib/utilities/mapValues.d.ts +1 -0
 - package/lib/utilities/mapValues.js +4 -0
 - package/package.json +35 -43
 - package/bin/cli +0 -3
 - package/lib/preset.d.ts +0 -15
 - package/lib/preset.js +0 -188
 - package/lib/types.d.ts +0 -73
 - package/lib/types.js +0 -3
 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,8 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "presetter",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": " 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "4.0.1",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "engines": {
         
     | 
| 
       5 
     | 
    
         
            -
                "node": ">= 
     | 
| 
      
 5 
     | 
    
         
            +
                "node": ">=16.0.0"
         
     | 
| 
       6 
6 
     | 
    
         
             
              },
         
     | 
| 
       7 
7 
     | 
    
         
             
              "description": "Make project configurations clean with presets",
         
     | 
| 
       8 
8 
     | 
    
         
             
              "keywords": [
         
     | 
| 
         @@ -21,62 +21,54 @@ 
     | 
|
| 
       21 
21 
     | 
    
         
             
              "license": "MIT",
         
     | 
| 
       22 
22 
     | 
    
         
             
              "author": "Alvis HT Tang <alvis@hilbert.space>",
         
     | 
| 
       23 
23 
     | 
    
         
             
              "bin": {
         
     | 
| 
       24 
     | 
    
         
            -
                "presetter": "./bin/cli",
         
     | 
| 
       25 
     | 
    
         
            -
                "run": "./bin/run"
         
     | 
| 
      
 24 
     | 
    
         
            +
                "presetter": "./bin/cli.js",
         
     | 
| 
      
 25 
     | 
    
         
            +
                "run": "./bin/run.js",
         
     | 
| 
      
 26 
     | 
    
         
            +
                "run-s": "./bin/run-s.js",
         
     | 
| 
      
 27 
     | 
    
         
            +
                "run-p": "./bin/run-p.js"
         
     | 
| 
       26 
28 
     | 
    
         
             
              },
         
     | 
| 
       27 
29 
     | 
    
         
             
              "main": "lib/index.js",
         
     | 
| 
       28 
     | 
    
         
            -
              "module": "lib/index.mjs",
         
     | 
| 
       29 
30 
     | 
    
         
             
              "types": "lib/index.d.ts",
         
     | 
| 
       30 
     | 
    
         
            -
              " 
     | 
| 
       31 
     | 
    
         
            -
                ".": {
         
     | 
| 
       32 
     | 
    
         
            -
                  "require": "./lib/index.js",
         
     | 
| 
       33 
     | 
    
         
            -
                  "import": "./lib/index.mjs"
         
     | 
| 
       34 
     | 
    
         
            -
                },
         
     | 
| 
       35 
     | 
    
         
            -
                "./package.json": "./package.json"
         
     | 
| 
       36 
     | 
    
         
            -
              },
         
     | 
| 
      
 31 
     | 
    
         
            +
              "type": "module",
         
     | 
| 
       37 
32 
     | 
    
         
             
              "repository": {
         
     | 
| 
       38 
33 
     | 
    
         
             
                "type": "git",
         
     | 
| 
       39 
34 
     | 
    
         
             
                "url": "git+https://github.com/alvis/presetter.git"
         
     | 
| 
       40 
35 
     | 
    
         
             
              },
         
     | 
| 
       41 
     | 
    
         
            -
              "scripts": {
         
     | 
| 
       42 
     | 
    
         
            -
                "bootstrap": "npm run ts-node -- --eval \"require('./source/preset.ts').bootstrapPreset()\" && npm run script -- prepare",
         
     | 
| 
       43 
     | 
    
         
            -
                "build": "npm run script -- build",
         
     | 
| 
       44 
     | 
    
         
            -
                "clean": "npm run script -- clean",
         
     | 
| 
       45 
     | 
    
         
            -
                "coverage": "npm run script -- coverage",
         
     | 
| 
       46 
     | 
    
         
            -
                "lint": "npm run script -- lint",
         
     | 
| 
       47 
     | 
    
         
            -
                "prepublishOnly": "npm run bootstrap && npm run script -- prepublishOnly",
         
     | 
| 
       48 
     | 
    
         
            -
                "script": "npm run ts-node -- --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; require('./source/executable');\" -- run ",
         
     | 
| 
       49 
     | 
    
         
            -
                "stage": "npm run script -- stage --",
         
     | 
| 
       50 
     | 
    
         
            -
                "ts-node": "ts-node --cwd-mode --compiler-options=\"{\\\"esModuleInterop\\\":true,\\\"target\\\":\\\"es6\\\"}\" --transpile-only --require tsconfig-paths/register",
         
     | 
| 
       51 
     | 
    
         
            -
                "test": "npm run script -- test --",
         
     | 
| 
       52 
     | 
    
         
            -
                "watch": "npm run script -- watch --"
         
     | 
| 
       53 
     | 
    
         
            -
              },
         
     | 
| 
       54 
36 
     | 
    
         
             
              "devDependencies": {
         
     | 
| 
       55 
37 
     | 
    
         
             
                "@types/js-yaml": "^4.0.0",
         
     | 
| 
       56 
     | 
    
         
            -
                "@types/lodash": "^4.0.0",
         
     | 
| 
       57 
38 
     | 
    
         
             
                "@types/node": "*",
         
     | 
| 
       58 
39 
     | 
    
         
             
                "@types/yargs": "^17.0.0",
         
     | 
| 
       59 
     | 
    
         
            -
                " 
     | 
| 
       60 
     | 
    
         
            -
                " 
     | 
| 
       61 
     | 
    
         
            -
                "tsconfig-paths": "^4.0.0",
         
     | 
| 
       62 
     | 
    
         
            -
                "type-fest": "^2.0.0",
         
     | 
| 
       63 
     | 
    
         
            -
                "typescript": "^4.0.0"
         
     | 
| 
      
 40 
     | 
    
         
            +
                "type-fest": "^3.12.0",
         
     | 
| 
      
 41 
     | 
    
         
            +
                "presetter-preset-strict": "4.0.1"
         
     | 
| 
       64 
42 
     | 
    
         
             
              },
         
     | 
| 
       65 
43 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       66 
     | 
    
         
            -
                "@npmcli/arborist": "^ 
     | 
| 
       67 
     | 
    
         
            -
                "@npmcli/config": "^ 
     | 
| 
      
 44 
     | 
    
         
            +
                "@npmcli/arborist": "^6.0.0",
         
     | 
| 
      
 45 
     | 
    
         
            +
                "@npmcli/config": "^6.0.0",
         
     | 
| 
      
 46 
     | 
    
         
            +
                "@npmcli/run-script": "^6.0.0",
         
     | 
| 
       68 
47 
     | 
    
         
             
                "callsite-record": "^4.0.0",
         
     | 
| 
       69 
     | 
    
         
            -
                "chalk": "^ 
     | 
| 
       70 
     | 
    
         
            -
                "execa": "^ 
     | 
| 
       71 
     | 
    
         
            -
                "js-yaml": "^4. 
     | 
| 
       72 
     | 
    
         
            -
                " 
     | 
| 
      
 48 
     | 
    
         
            +
                "chalk": "^5.2.0",
         
     | 
| 
      
 49 
     | 
    
         
            +
                "execa": "^7.1.0",
         
     | 
| 
      
 50 
     | 
    
         
            +
                "js-yaml": "^4.1.0",
         
     | 
| 
      
 51 
     | 
    
         
            +
                "listr2": "^6.6.0",
         
     | 
| 
       73 
52 
     | 
    
         
             
                "mvdan-sh": "^0.10.0",
         
     | 
| 
       74 
     | 
    
         
            -
                "pupa": "^ 
     | 
| 
       75 
     | 
    
         
            -
                "read-pkg": "^ 
     | 
| 
       76 
     | 
    
         
            -
                "read-pkg-up": "^ 
     | 
| 
      
 53 
     | 
    
         
            +
                "pupa": "^3.1.0",
         
     | 
| 
      
 54 
     | 
    
         
            +
                "read-pkg": "^8.0.0",
         
     | 
| 
      
 55 
     | 
    
         
            +
                "read-pkg-up": "^9.1.0",
         
     | 
| 
       77 
56 
     | 
    
         
             
                "resolve-pkg": "^2.0.0",
         
     | 
| 
       78 
57 
     | 
    
         
             
                "source-map-support": "^0.5.0",
         
     | 
| 
       79 
     | 
    
         
            -
                "write-pkg": "^ 
     | 
| 
       80 
     | 
    
         
            -
                "yargs": "^17.0.0"
         
     | 
| 
      
 58 
     | 
    
         
            +
                "write-pkg": "^5.1.0",
         
     | 
| 
      
 59 
     | 
    
         
            +
                "yargs": "^17.0.0",
         
     | 
| 
      
 60 
     | 
    
         
            +
                "yargs-parser": "^21.0.0",
         
     | 
| 
      
 61 
     | 
    
         
            +
                "presetter-types": "4.0.1"
         
     | 
| 
      
 62 
     | 
    
         
            +
              },
         
     | 
| 
      
 63 
     | 
    
         
            +
              "scripts": {
         
     | 
| 
      
 64 
     | 
    
         
            +
                "bootstrap": "tsx --eval \"require('./source/preset').bootstrapPreset()\" && npm run prepare",
         
     | 
| 
      
 65 
     | 
    
         
            +
                "build": "npm run script -- build",
         
     | 
| 
      
 66 
     | 
    
         
            +
                "clean": "npm run script -- clean",
         
     | 
| 
      
 67 
     | 
    
         
            +
                "coverage": "npm run script -- coverage --",
         
     | 
| 
      
 68 
     | 
    
         
            +
                "lint": "npm run script -- lint",
         
     | 
| 
      
 69 
     | 
    
         
            +
                "script": "tsx --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; require('./source/executable');\" -- run --template",
         
     | 
| 
      
 70 
     | 
    
         
            +
                "stage": "npm run script -- stage --",
         
     | 
| 
      
 71 
     | 
    
         
            +
                "test": "npm run script -- test --",
         
     | 
| 
      
 72 
     | 
    
         
            +
                "watch": "npm run script -- watch --"
         
     | 
| 
       81 
73 
     | 
    
         
             
              }
         
     | 
| 
       82 
     | 
    
         
            -
            }
         
     | 
| 
      
 74 
     | 
    
         
            +
            }
         
     | 
    
        package/bin/cli
    DELETED
    
    
    
        package/lib/preset.d.ts
    DELETED
    
    | 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import type { PresetAsset, PresetContext, PresetGraph, PresetNode, PresetterConfig, ResolvedPresetContext, Template } from './types';
         
     | 
| 
       2 
     | 
    
         
            -
            export declare function getPresetterRCPaths(base: string): Promise<string[]>;
         
     | 
| 
       3 
     | 
    
         
            -
            export declare function getPresetterRC(root: string): Promise<PresetterConfig>;
         
     | 
| 
       4 
     | 
    
         
            -
            export declare function updatePresetterRC(root: string, config: PresetterConfig): Promise<void>;
         
     | 
| 
       5 
     | 
    
         
            -
            export declare function assertPresetterRC(value: unknown): asserts value is PresetterConfig;
         
     | 
| 
       6 
     | 
    
         
            -
            export declare function getPresetAsset(name: string, context: PresetContext): Promise<PresetAsset>;
         
     | 
| 
       7 
     | 
    
         
            -
            export declare function getPresetNode(name: string, context: PresetContext): Promise<PresetNode>;
         
     | 
| 
       8 
     | 
    
         
            -
            export declare function getPresetGraph(context: PresetContext): Promise<PresetGraph>;
         
     | 
| 
       9 
     | 
    
         
            -
            export declare function getScripts(): Promise<Record<string, string>>;
         
     | 
| 
       10 
     | 
    
         
            -
            export declare function setupPreset(...uris: string[]): Promise<void>;
         
     | 
| 
       11 
     | 
    
         
            -
            export declare function bootstrapPreset(): Promise<void>;
         
     | 
| 
       12 
     | 
    
         
            -
            export declare function bootstrapContent(context: PresetContext): Promise<void>;
         
     | 
| 
       13 
     | 
    
         
            -
            export declare function unsetPreset(): Promise<void>;
         
     | 
| 
       14 
     | 
    
         
            -
            export declare function getContext(): Promise<PresetContext>;
         
     | 
| 
       15 
     | 
    
         
            -
            export declare function getDestinationMap(template: Record<string, Template>, context: ResolvedPresetContext<'noSymlinks'>): Promise<Record<string, string>>;
         
     | 
    
        package/lib/preset.js
    DELETED
    
    | 
         @@ -1,188 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            "use strict";
         
     | 
| 
       2 
     | 
    
         
            -
            var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
         
     | 
| 
       3 
     | 
    
         
            -
                if (k2 === undefined) k2 = k;
         
     | 
| 
       4 
     | 
    
         
            -
                var desc = Object.getOwnPropertyDescriptor(m, k);
         
     | 
| 
       5 
     | 
    
         
            -
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
         
     | 
| 
       6 
     | 
    
         
            -
                  desc = { enumerable: true, get: function() { return m[k]; } };
         
     | 
| 
       7 
     | 
    
         
            -
                }
         
     | 
| 
       8 
     | 
    
         
            -
                Object.defineProperty(o, k2, desc);
         
     | 
| 
       9 
     | 
    
         
            -
            }) : (function(o, m, k, k2) {
         
     | 
| 
       10 
     | 
    
         
            -
                if (k2 === undefined) k2 = k;
         
     | 
| 
       11 
     | 
    
         
            -
                o[k2] = m[k];
         
     | 
| 
       12 
     | 
    
         
            -
            }));
         
     | 
| 
       13 
     | 
    
         
            -
            var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
         
     | 
| 
       14 
     | 
    
         
            -
                Object.defineProperty(o, "default", { enumerable: true, value: v });
         
     | 
| 
       15 
     | 
    
         
            -
            }) : function(o, v) {
         
     | 
| 
       16 
     | 
    
         
            -
                o["default"] = v;
         
     | 
| 
       17 
     | 
    
         
            -
            });
         
     | 
| 
       18 
     | 
    
         
            -
            var __importStar = (this && this.__importStar) || function (mod) {
         
     | 
| 
       19 
     | 
    
         
            -
                if (mod && mod.__esModule) return mod;
         
     | 
| 
       20 
     | 
    
         
            -
                var result = {};
         
     | 
| 
       21 
     | 
    
         
            -
                if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
         
     | 
| 
       22 
     | 
    
         
            -
                __setModuleDefault(result, mod);
         
     | 
| 
       23 
     | 
    
         
            -
                return result;
         
     | 
| 
       24 
     | 
    
         
            -
            };
         
     | 
| 
       25 
     | 
    
         
            -
            var __importDefault = (this && this.__importDefault) || function (mod) {
         
     | 
| 
       26 
     | 
    
         
            -
                return (mod && mod.__esModule) ? mod : { "default": mod };
         
     | 
| 
       27 
     | 
    
         
            -
            };
         
     | 
| 
       28 
     | 
    
         
            -
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       29 
     | 
    
         
            -
            exports.getDestinationMap = exports.getContext = exports.unsetPreset = exports.bootstrapContent = exports.bootstrapPreset = exports.setupPreset = exports.getScripts = exports.getPresetGraph = exports.getPresetNode = exports.getPresetAsset = exports.assertPresetterRC = exports.updatePresetterRC = exports.getPresetterRC = exports.getPresetterRCPaths = void 0;
         
     | 
| 
       30 
     | 
    
         
            -
            const console_1 = require("console");
         
     | 
| 
       31 
     | 
    
         
            -
            const fs_1 = require("fs");
         
     | 
| 
       32 
     | 
    
         
            -
            const lodash_1 = require("lodash");
         
     | 
| 
       33 
     | 
    
         
            -
            const path_1 = require("path");
         
     | 
| 
       34 
     | 
    
         
            -
            const read_pkg_1 = __importDefault(require("read-pkg"));
         
     | 
| 
       35 
     | 
    
         
            -
            const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
         
     | 
| 
       36 
     | 
    
         
            -
            const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
         
     | 
| 
       37 
     | 
    
         
            -
            const write_pkg_1 = __importDefault(require("write-pkg"));
         
     | 
| 
       38 
     | 
    
         
            -
            const content_1 = require("./content");
         
     | 
| 
       39 
     | 
    
         
            -
            const io_1 = require("./io");
         
     | 
| 
       40 
     | 
    
         
            -
            const package_1 = require("./package");
         
     | 
| 
       41 
     | 
    
         
            -
            const template_1 = require("./template");
         
     | 
| 
       42 
     | 
    
         
            -
            const PRESETTERRC = '.presetterrc';
         
     | 
| 
       43 
     | 
    
         
            -
            const JSON_INDENT = 2;
         
     | 
| 
       44 
     | 
    
         
            -
            async function getPresetterRCPaths(base) {
         
     | 
| 
       45 
     | 
    
         
            -
                const filesFromBase = ['', '.json']
         
     | 
| 
       46 
     | 
    
         
            -
                    .map((ext) => (0, path_1.resolve)(base, `${PRESETTERRC}${ext}`))
         
     | 
| 
       47 
     | 
    
         
            -
                    .filter(fs_1.existsSync);
         
     | 
| 
       48 
     | 
    
         
            -
                const parent = await (0, read_pkg_up_1.default)({ cwd: (0, path_1.dirname)(base) });
         
     | 
| 
       49 
     | 
    
         
            -
                const filesFromParent = (parent === null || parent === void 0 ? void 0 : parent.path)
         
     | 
| 
       50 
     | 
    
         
            -
                    ? await getPresetterRCPaths((0, path_1.dirname)(parent.path))
         
     | 
| 
       51 
     | 
    
         
            -
                    : [];
         
     | 
| 
       52 
     | 
    
         
            -
                return [...filesFromParent, ...filesFromBase];
         
     | 
| 
       53 
     | 
    
         
            -
            }
         
     | 
| 
       54 
     | 
    
         
            -
            exports.getPresetterRCPaths = getPresetterRCPaths;
         
     | 
| 
       55 
     | 
    
         
            -
            async function getPresetterRC(root) {
         
     | 
| 
       56 
     | 
    
         
            -
                const paths = await getPresetterRCPaths(root);
         
     | 
| 
       57 
     | 
    
         
            -
                const path = paths.pop();
         
     | 
| 
       58 
     | 
    
         
            -
                if (path) {
         
     | 
| 
       59 
     | 
    
         
            -
                    const custom = (0, io_1.loadFile)(path, 'json');
         
     | 
| 
       60 
     | 
    
         
            -
                    assertPresetterRC(custom);
         
     | 
| 
       61 
     | 
    
         
            -
                    return custom;
         
     | 
| 
       62 
     | 
    
         
            -
                }
         
     | 
| 
       63 
     | 
    
         
            -
                throw new Error('Missing preset defined in .presetterrc');
         
     | 
| 
       64 
     | 
    
         
            -
            }
         
     | 
| 
       65 
     | 
    
         
            -
            exports.getPresetterRC = getPresetterRC;
         
     | 
| 
       66 
     | 
    
         
            -
            async function updatePresetterRC(root, config) {
         
     | 
| 
       67 
     | 
    
         
            -
                const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
         
     | 
| 
       68 
     | 
    
         
            -
                (0, fs_1.writeFileSync)((0, path_1.resolve)(root, `${PRESETTERRC}.json`), JSON.stringify((0, template_1.merge)(existingPresetterRC, config), null, JSON_INDENT));
         
     | 
| 
       69 
     | 
    
         
            -
            }
         
     | 
| 
       70 
     | 
    
         
            -
            exports.updatePresetterRC = updatePresetterRC;
         
     | 
| 
       71 
     | 
    
         
            -
            function assertPresetterRC(value) {
         
     | 
| 
       72 
     | 
    
         
            -
                if (!(0, template_1.isJSON)(value) ||
         
     | 
| 
       73 
     | 
    
         
            -
                    (typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
         
     | 
| 
       74 
     | 
    
         
            -
                    throw new Error(`invalid presetter configuration file`);
         
     | 
| 
       75 
     | 
    
         
            -
                }
         
     | 
| 
       76 
     | 
    
         
            -
            }
         
     | 
| 
       77 
     | 
    
         
            -
            exports.assertPresetterRC = assertPresetterRC;
         
     | 
| 
       78 
     | 
    
         
            -
            async function getPresetAsset(name, context) {
         
     | 
| 
       79 
     | 
    
         
            -
                try {
         
     | 
| 
       80 
     | 
    
         
            -
                    const module = (0, resolve_pkg_1.default)(name, {
         
     | 
| 
       81 
     | 
    
         
            -
                        cwd: context.target.root,
         
     | 
| 
       82 
     | 
    
         
            -
                    });
         
     | 
| 
       83 
     | 
    
         
            -
                    const { default: presetPresetAsset } = (await Promise.resolve().then(() => __importStar(require(module))));
         
     | 
| 
       84 
     | 
    
         
            -
                    return await presetPresetAsset(context);
         
     | 
| 
       85 
     | 
    
         
            -
                }
         
     | 
| 
       86 
     | 
    
         
            -
                catch (_a) {
         
     | 
| 
       87 
     | 
    
         
            -
                    throw new Error(`cannot resolve preset ${name}`);
         
     | 
| 
       88 
     | 
    
         
            -
                }
         
     | 
| 
       89 
     | 
    
         
            -
            }
         
     | 
| 
       90 
     | 
    
         
            -
            exports.getPresetAsset = getPresetAsset;
         
     | 
| 
       91 
     | 
    
         
            -
            async function getPresetNode(name, context) {
         
     | 
| 
       92 
     | 
    
         
            -
                var _a;
         
     | 
| 
       93 
     | 
    
         
            -
                const asset = await getPresetAsset(name, context);
         
     | 
| 
       94 
     | 
    
         
            -
                const nodes = await Promise.all(((_a = asset.extends) !== null && _a !== void 0 ? _a : []).map(async (extension) => getPresetNode(extension, context)));
         
     | 
| 
       95 
     | 
    
         
            -
                return { name, asset, nodes };
         
     | 
| 
       96 
     | 
    
         
            -
            }
         
     | 
| 
       97 
     | 
    
         
            -
            exports.getPresetNode = getPresetNode;
         
     | 
| 
       98 
     | 
    
         
            -
            async function getPresetGraph(context) {
         
     | 
| 
       99 
     | 
    
         
            -
                const { preset } = context.custom;
         
     | 
| 
       100 
     | 
    
         
            -
                const presets = Array.isArray(preset) ? preset : [preset];
         
     | 
| 
       101 
     | 
    
         
            -
                return Promise.all(presets.map(async (name) => getPresetNode(name, context)));
         
     | 
| 
       102 
     | 
    
         
            -
            }
         
     | 
| 
       103 
     | 
    
         
            -
            exports.getPresetGraph = getPresetGraph;
         
     | 
| 
       104 
     | 
    
         
            -
            async function getScripts() {
         
     | 
| 
       105 
     | 
    
         
            -
                const context = await getContext();
         
     | 
| 
       106 
     | 
    
         
            -
                const graph = await getPresetGraph(context);
         
     | 
| 
       107 
     | 
    
         
            -
                const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
         
     | 
| 
       108 
     | 
    
         
            -
                return (0, content_1.resolveScripts)({ graph, context: resolvedContext });
         
     | 
| 
       109 
     | 
    
         
            -
            }
         
     | 
| 
       110 
     | 
    
         
            -
            exports.getScripts = getScripts;
         
     | 
| 
       111 
     | 
    
         
            -
            async function setupPreset(...uris) {
         
     | 
| 
       112 
     | 
    
         
            -
                const { path } = await (0, package_1.getPackage)();
         
     | 
| 
       113 
     | 
    
         
            -
                const root = (0, path_1.dirname)(path);
         
     | 
| 
       114 
     | 
    
         
            -
                const packageBefore = (await (0, read_pkg_1.default)({ cwd: root })).devDependencies;
         
     | 
| 
       115 
     | 
    
         
            -
                (0, console_1.info)(`Installing ${uris.join(' ')}... it may take a few moment...`);
         
     | 
| 
       116 
     | 
    
         
            -
                await (0, package_1.reifyDependencies)({
         
     | 
| 
       117 
     | 
    
         
            -
                    root,
         
     | 
| 
       118 
     | 
    
         
            -
                    add: ['presetter', ...uris],
         
     | 
| 
       119 
     | 
    
         
            -
                    saveAs: 'dev',
         
     | 
| 
       120 
     | 
    
         
            -
                    lockFile: true,
         
     | 
| 
       121 
     | 
    
         
            -
                });
         
     | 
| 
       122 
     | 
    
         
            -
                const packageAfter = (await (0, read_pkg_1.default)({ cwd: root })).devDependencies;
         
     | 
| 
       123 
     | 
    
         
            -
                const newPackages = getNewPackages(Object.assign({}, packageBefore), Object.assign({}, packageAfter));
         
     | 
| 
       124 
     | 
    
         
            -
                const preset = newPackages.filter((name) => name !== 'presetter');
         
     | 
| 
       125 
     | 
    
         
            -
                (0, console_1.info)('Updating .presetterrc.json & package.json');
         
     | 
| 
       126 
     | 
    
         
            -
                await updatePresetterRC(root, { preset });
         
     | 
| 
       127 
     | 
    
         
            -
                const context = await getContext();
         
     | 
| 
       128 
     | 
    
         
            -
                await bootstrapContent(context);
         
     | 
| 
       129 
     | 
    
         
            -
                await (0, write_pkg_1.default)(root, (0, lodash_1.defaultsDeep)(context.target.package, {
         
     | 
| 
       130 
     | 
    
         
            -
                    scripts: { prepare: 'presetter bootstrap' },
         
     | 
| 
       131 
     | 
    
         
            -
                }));
         
     | 
| 
       132 
     | 
    
         
            -
                (0, console_1.info)('Done. Enjoy coding!');
         
     | 
| 
       133 
     | 
    
         
            -
            }
         
     | 
| 
       134 
     | 
    
         
            -
            exports.setupPreset = setupPreset;
         
     | 
| 
       135 
     | 
    
         
            -
            async function bootstrapPreset() {
         
     | 
| 
       136 
     | 
    
         
            -
                const context = await getContext();
         
     | 
| 
       137 
     | 
    
         
            -
                if (!(0, package_1.arePeerPackagesAutoInstalled)()) {
         
     | 
| 
       138 
     | 
    
         
            -
                    await (0, package_1.reifyDependencies)({ root: context.target.root });
         
     | 
| 
       139 
     | 
    
         
            -
                }
         
     | 
| 
       140 
     | 
    
         
            -
                await bootstrapContent(context);
         
     | 
| 
       141 
     | 
    
         
            -
            }
         
     | 
| 
       142 
     | 
    
         
            -
            exports.bootstrapPreset = bootstrapPreset;
         
     | 
| 
       143 
     | 
    
         
            -
            async function bootstrapContent(context) {
         
     | 
| 
       144 
     | 
    
         
            -
                const graph = await getPresetGraph(context);
         
     | 
| 
       145 
     | 
    
         
            -
                const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
         
     | 
| 
       146 
     | 
    
         
            -
                const content = await (0, content_1.resolveTemplate)({ graph, context: resolvedContext });
         
     | 
| 
       147 
     | 
    
         
            -
                const destinationMap = await getDestinationMap(content, resolvedContext);
         
     | 
| 
       148 
     | 
    
         
            -
                (0, io_1.writeFiles)(context.target.root, content, destinationMap);
         
     | 
| 
       149 
     | 
    
         
            -
                (0, io_1.linkFiles)(context.target.root, destinationMap);
         
     | 
| 
       150 
     | 
    
         
            -
            }
         
     | 
| 
       151 
     | 
    
         
            -
            exports.bootstrapContent = bootstrapContent;
         
     | 
| 
       152 
     | 
    
         
            -
            async function unsetPreset() {
         
     | 
| 
       153 
     | 
    
         
            -
                const context = await getContext();
         
     | 
| 
       154 
     | 
    
         
            -
                const graph = await getPresetGraph(context);
         
     | 
| 
       155 
     | 
    
         
            -
                const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
         
     | 
| 
       156 
     | 
    
         
            -
                const content = await (0, content_1.resolveTemplate)({ graph, context: resolvedContext });
         
     | 
| 
       157 
     | 
    
         
            -
                const configurationLink = await getDestinationMap(content, resolvedContext);
         
     | 
| 
       158 
     | 
    
         
            -
                (0, io_1.unlinkFiles)(context.target.root, configurationLink);
         
     | 
| 
       159 
     | 
    
         
            -
            }
         
     | 
| 
       160 
     | 
    
         
            -
            exports.unsetPreset = unsetPreset;
         
     | 
| 
       161 
     | 
    
         
            -
            async function getContext() {
         
     | 
| 
       162 
     | 
    
         
            -
                const { json, path } = await (0, package_1.getPackage)();
         
     | 
| 
       163 
     | 
    
         
            -
                const root = (0, path_1.dirname)(path);
         
     | 
| 
       164 
     | 
    
         
            -
                const target = { name: json.name, root, package: json };
         
     | 
| 
       165 
     | 
    
         
            -
                const custom = await getPresetterRC(root);
         
     | 
| 
       166 
     | 
    
         
            -
                return {
         
     | 
| 
       167 
     | 
    
         
            -
                    target,
         
     | 
| 
       168 
     | 
    
         
            -
                    custom,
         
     | 
| 
       169 
     | 
    
         
            -
                };
         
     | 
| 
       170 
     | 
    
         
            -
            }
         
     | 
| 
       171 
     | 
    
         
            -
            exports.getContext = getContext;
         
     | 
| 
       172 
     | 
    
         
            -
            async function getDestinationMap(template, context) {
         
     | 
| 
       173 
     | 
    
         
            -
                const { custom: { noSymlinks }, target: { root }, } = context;
         
     | 
| 
       174 
     | 
    
         
            -
                const presetterDir = (0, resolve_pkg_1.default)('presetter', { cwd: root });
         
     | 
| 
       175 
     | 
    
         
            -
                const outDir = (0, path_1.resolve)(presetterDir, 'generated', context.target.name);
         
     | 
| 
       176 
     | 
    
         
            -
                const relativePaths = [...Object.keys(template)];
         
     | 
| 
       177 
     | 
    
         
            -
                return Object.fromEntries([
         
     | 
| 
       178 
     | 
    
         
            -
                    ...relativePaths.map((relativePath) => [
         
     | 
| 
       179 
     | 
    
         
            -
                        relativePath,
         
     | 
| 
       180 
     | 
    
         
            -
                        (0, path_1.resolve)(noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
         
     | 
| 
       181 
     | 
    
         
            -
                    ]),
         
     | 
| 
       182 
     | 
    
         
            -
                ]);
         
     | 
| 
       183 
     | 
    
         
            -
            }
         
     | 
| 
       184 
     | 
    
         
            -
            exports.getDestinationMap = getDestinationMap;
         
     | 
| 
       185 
     | 
    
         
            -
            function getNewPackages(before, after) {
         
     | 
| 
       186 
     | 
    
         
            -
                return Object.keys(after).filter((name) => !before[name]);
         
     | 
| 
       187 
     | 
    
         
            -
            }
         
     | 
| 
       188 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3ByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLHFDQUErQjtBQUMvQiwyQkFBK0M7QUFDL0MsbUNBQXNDO0FBQ3RDLCtCQUF3QztBQUN4Qyx3REFBbUM7QUFDbkMsOERBQXdDO0FBQ3hDLDhEQUF5QztBQUN6QywwREFBcUM7QUFFckMsdUNBQTRFO0FBQzVFLDZCQUFvRTtBQUNwRSx1Q0FJbUI7QUFDbkIseUNBQTJDO0FBYzNDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFrQmYsS0FBSyxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDcEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO1NBQ2hDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBQSxjQUFPLEVBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLGVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBYSxFQUFDLEVBQUUsR0FBRyxFQUFFLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUczRCxNQUFNLGVBQWUsR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLElBQUEsY0FBTyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQWJELGtEQWFDO0FBT00sS0FB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
         
     | 
    
        package/lib/types.d.ts
    DELETED
    
    | 
         @@ -1,73 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import type { PackageJson } from 'read-pkg-up';
         
     | 
| 
       2 
     | 
    
         
            -
            import type { JsonObject } from 'type-fest';
         
     | 
| 
       3 
     | 
    
         
            -
            export declare type PresetGraph = PresetNode[];
         
     | 
| 
       4 
     | 
    
         
            -
            export declare type PresetNode = {
         
     | 
| 
       5 
     | 
    
         
            -
                name: string;
         
     | 
| 
       6 
     | 
    
         
            -
                asset: PresetAsset;
         
     | 
| 
       7 
     | 
    
         
            -
                nodes: PresetGraph;
         
     | 
| 
       8 
     | 
    
         
            -
            };
         
     | 
| 
       9 
     | 
    
         
            -
            export declare type PresetterConfig = {
         
     | 
| 
       10 
     | 
    
         
            -
                preset: string | string[];
         
     | 
| 
       11 
     | 
    
         
            -
                config?: Record<string, JsonObject | string[]>;
         
     | 
| 
       12 
     | 
    
         
            -
                scripts?: Record<string, string>;
         
     | 
| 
       13 
     | 
    
         
            -
                variable?: Record<string, string>;
         
     | 
| 
       14 
     | 
    
         
            -
                ignores?: IgnoreRule[];
         
     | 
| 
       15 
     | 
    
         
            -
                noSymlinks?: string[];
         
     | 
| 
       16 
     | 
    
         
            -
            };
         
     | 
| 
       17 
     | 
    
         
            -
            export interface PresetAsset {
         
     | 
| 
       18 
     | 
    
         
            -
                extends?: string[];
         
     | 
| 
       19 
     | 
    
         
            -
                template?: TemplateMap | TemplateMapGenerator;
         
     | 
| 
       20 
     | 
    
         
            -
                noSymlinks?: string[] | Generator<string[], 'variable'>;
         
     | 
| 
       21 
     | 
    
         
            -
                scripts?: Record<string, string> | string;
         
     | 
| 
       22 
     | 
    
         
            -
                variable?: Record<string, string>;
         
     | 
| 
       23 
     | 
    
         
            -
                supplementaryConfig?: ConfigMap | ConfigMapGenerator;
         
     | 
| 
       24 
     | 
    
         
            -
                supplementaryIgnores?: IgnoreRule[] | IgnoreRulesGenerator;
         
     | 
| 
       25 
     | 
    
         
            -
                supplementaryScripts?: Record<string, string> | string;
         
     | 
| 
       26 
     | 
    
         
            -
            }
         
     | 
| 
       27 
     | 
    
         
            -
            export interface ResolvedPresetAsset extends Omit<PresetAsset, 'extends'> {
         
     | 
| 
       28 
     | 
    
         
            -
                template?: Record<string, Template>;
         
     | 
| 
       29 
     | 
    
         
            -
                noSymlinks?: string[];
         
     | 
| 
       30 
     | 
    
         
            -
                scripts?: Record<string, string>;
         
     | 
| 
       31 
     | 
    
         
            -
                variable?: Record<string, string>;
         
     | 
| 
       32 
     | 
    
         
            -
                supplementaryConfig?: Record<string, Config>;
         
     | 
| 
       33 
     | 
    
         
            -
                supplementaryIgnores?: Array<string | Record<string, IgnorePath>>;
         
     | 
| 
       34 
     | 
    
         
            -
                supplementaryScripts?: Record<string, string>;
         
     | 
| 
       35 
     | 
    
         
            -
            }
         
     | 
| 
       36 
     | 
    
         
            -
            export interface TargetContext {
         
     | 
| 
       37 
     | 
    
         
            -
                name: string;
         
     | 
| 
       38 
     | 
    
         
            -
                root: string;
         
     | 
| 
       39 
     | 
    
         
            -
                package: PackageJson;
         
     | 
| 
       40 
     | 
    
         
            -
            }
         
     | 
| 
       41 
     | 
    
         
            -
            export interface PresetContext {
         
     | 
| 
       42 
     | 
    
         
            -
                target: TargetContext;
         
     | 
| 
       43 
     | 
    
         
            -
                custom: PresetterConfig;
         
     | 
| 
       44 
     | 
    
         
            -
            }
         
     | 
| 
       45 
     | 
    
         
            -
            export interface ResolvedPresetContext<F extends keyof PresetterConfig = 'config' | 'noSymlinks' | 'variable'> extends PresetContext {
         
     | 
| 
       46 
     | 
    
         
            -
                custom: PresetterConfig & {
         
     | 
| 
       47 
     | 
    
         
            -
                    [K in keyof Pick<PresetterConfig, F>]-?: PresetterConfig[K];
         
     | 
| 
       48 
     | 
    
         
            -
                } & {
         
     | 
| 
       49 
     | 
    
         
            -
                    [K in keyof Pick<PresetterConfig, Exclude<keyof PresetterConfig, F>>]: PresetterConfig[K];
         
     | 
| 
       50 
     | 
    
         
            -
                };
         
     | 
| 
       51 
     | 
    
         
            -
            }
         
     | 
| 
       52 
     | 
    
         
            -
            declare type Path = string;
         
     | 
| 
       53 
     | 
    
         
            -
            export declare type Template = string | JsonObject;
         
     | 
| 
       54 
     | 
    
         
            -
            export declare type TemplateGenerator = Generator<Template>;
         
     | 
| 
       55 
     | 
    
         
            -
            export declare type TemplateMap = Record<string, Path | Template | TemplateGenerator>;
         
     | 
| 
       56 
     | 
    
         
            -
            export declare type TemplateMapGenerator = Generator<TemplateMap>;
         
     | 
| 
       57 
     | 
    
         
            -
            export declare type Config = string[] | JsonObject;
         
     | 
| 
       58 
     | 
    
         
            -
            export declare type ConfigGenerator = Generator<Config>;
         
     | 
| 
       59 
     | 
    
         
            -
            export declare type ConfigMap = Record<string, Path | Config | ConfigGenerator>;
         
     | 
| 
       60 
     | 
    
         
            -
            export declare type ConfigMapGenerator = Generator<ConfigMap, 'variable'>;
         
     | 
| 
       61 
     | 
    
         
            -
            export declare type IgnoreRule = string | number | Record<string, IgnorePath>;
         
     | 
| 
       62 
     | 
    
         
            -
            export declare type IgnorePath = string[] | number[] | {
         
     | 
| 
       63 
     | 
    
         
            -
                [key: string]: IgnorePath;
         
     | 
| 
       64 
     | 
    
         
            -
            };
         
     | 
| 
       65 
     | 
    
         
            -
            export declare type IgnoreRulesGenerator = Generator<IgnoreRule[], 'variable'>;
         
     | 
| 
       66 
     | 
    
         
            -
            export declare type Generator<R, K extends keyof PresetterConfig = 'config' | 'noSymlinks' | 'variable'> = (args: ResolvedPresetContext<K>) => PotentiallyPromise<R>;
         
     | 
| 
       67 
     | 
    
         
            -
            export declare type DynamicAssetField = {
         
     | 
| 
       68 
     | 
    
         
            -
                [F in keyof PresetAsset]-?: Generator<any, never> extends PresetAsset[F] ? Record<string, any> extends PresetAsset[F] ? F : never : never;
         
     | 
| 
       69 
     | 
    
         
            -
            }[keyof PresetAsset];
         
     | 
| 
       70 
     | 
    
         
            -
            export declare type DynamicAsset<F extends DynamicAssetField> = Exclude<PresetAsset[F], undefined | Generator<any>>[string] extends infer R ? R extends Generator<infer V> ? V : never : never;
         
     | 
| 
       71 
     | 
    
         
            -
            export declare type PotentiallyPromise<T> = T | PromiseLike<T>;
         
     | 
| 
       72 
     | 
    
         
            -
            export declare type RequiredResolution<F extends DynamicAssetField = DynamicAssetField> = PresetAsset[F] extends infer R ? R extends Generator<any, infer K> ? K : never : never;
         
     | 
| 
       73 
     | 
    
         
            -
            export {};
         
     | 
    
        package/lib/types.js
    DELETED