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/lib/executable/index.js
    CHANGED
    
    | 
         @@ -1,6 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            const  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxtQ0FBZ0M7QUFDaEMsbUNBQXNDO0FBRXRDLElBQUEsYUFBSyxHQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFXLENBQUMsQ0FBQyJ9
         
     | 
| 
      
 1 
     | 
    
         
            +
            import { entry } from './entry.js';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { handleError } from './error.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            const [, , ...args] = process.argv;
         
     | 
| 
      
 4 
     | 
    
         
            +
            entry(args).catch(handleError);
         
     | 
| 
      
 5 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFFbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyJ9
         
     | 
    
        package/lib/index.d.ts
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            export * from ' 
     | 
| 
       2 
     | 
    
         
            -
            export * from './ 
     | 
| 
       3 
     | 
    
         
            -
            export * from './ 
     | 
| 
       4 
     | 
    
         
            -
            export * from './ 
     | 
| 
       5 
     | 
    
         
            -
            export * from './ 
     | 
| 
       6 
     | 
    
         
            -
            export * from './ 
     | 
| 
      
 1 
     | 
    
         
            +
            export * from 'presetter-types';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export * from './content.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export * from './directive.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            export * from './io.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            export * from './resolution.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            export * from './template.js';
         
     | 
    
        package/lib/index.js
    CHANGED
    
    | 
         @@ -1,23 +1,7 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       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 __exportStar = (this && this.__exportStar) || function(m, exports) {
         
     | 
| 
       14 
     | 
    
         
            -
                for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
         
     | 
| 
       15 
     | 
    
         
            -
            };
         
     | 
| 
       16 
     | 
    
         
            -
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       17 
     | 
    
         
            -
            __exportStar(require("./content"), exports);
         
     | 
| 
       18 
     | 
    
         
            -
            __exportStar(require("./directive"), exports);
         
     | 
| 
       19 
     | 
    
         
            -
            __exportStar(require("./io"), exports);
         
     | 
| 
       20 
     | 
    
         
            -
            __exportStar(require("./resolution"), exports);
         
     | 
| 
       21 
     | 
    
         
            -
            __exportStar(require("./template"), exports);
         
     | 
| 
       22 
     | 
    
         
            -
            __exportStar(require("./types"), exports);
         
     | 
| 
       23 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLHNDQUFvQjtBQUNwQiw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBRTFCLHlDQUF1QiJ9
         
     | 
| 
      
 1 
     | 
    
         
            +
            export * from 'presetter-types';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export * from './content.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export * from './directive.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            export * from './io.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            export * from './resolution.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            export * from './template.js';
         
     | 
| 
      
 7 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUMifQ==
         
     | 
    
        package/lib/io.d.ts
    CHANGED
    
    | 
         @@ -1,7 +1,10 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import type { Template } from ' 
     | 
| 
      
 1 
     | 
    
         
            +
            import type { Template } from 'presetter-types';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export interface IOOptions {
         
     | 
| 
      
 3 
     | 
    
         
            +
                force?: boolean;
         
     | 
| 
      
 4 
     | 
    
         
            +
            }
         
     | 
| 
       2 
5 
     | 
    
         
             
            export declare function loadFile(path: string, defaultFormat?: 'json' | 'yaml'): Record<string, unknown>;
         
     | 
| 
       3 
6 
     | 
    
         
             
            export declare function loadFile(path: string, defaultFormat?: 'text'): string;
         
     | 
| 
       4 
7 
     | 
    
         
             
            export declare function serializeContent(destination: string, content: Template): string;
         
     | 
| 
       5 
     | 
    
         
            -
            export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string 
     | 
| 
       6 
     | 
    
         
            -
            export declare function linkFiles(root: string, configurationLink: Record<string, string 
     | 
| 
       7 
     | 
    
         
            -
            export declare function unlinkFiles(root: string, configurationLink: Record<string, string 
     | 
| 
      
 8 
     | 
    
         
            +
            export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string>, options?: IOOptions): void;
         
     | 
| 
      
 9 
     | 
    
         
            +
            export declare function linkFiles(root: string, configurationLink: Record<string, string>, options?: IOOptions): void;
         
     | 
| 
      
 10 
     | 
    
         
            +
            export declare function unlinkFiles(root: string, configurationLink: Record<string, string>, options?: IOOptions): void;
         
     | 
    
        package/lib/io.js
    CHANGED
    
    | 
         @@ -1,94 +1,90 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            const fs_1 = require("fs");
         
     | 
| 
       6 
     | 
    
         
            -
            const js_yaml_1 = require("js-yaml");
         
     | 
| 
       7 
     | 
    
         
            -
            const path_1 = require("path");
         
     | 
| 
      
 1 
     | 
    
         
            +
            import { info } from 'node:console';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { lstatSync, mkdirSync, readFileSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { basename, dirname, extname, relative, resolve } from 'node:path';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { dump, load } from 'js-yaml';
         
     | 
| 
       8 
5 
     | 
    
         
             
            const INDENT = 2;
         
     | 
| 
       9 
     | 
    
         
            -
            function loadFile(path, defaultFormat = 'text') {
         
     | 
| 
       10 
     | 
    
         
            -
                const content =  
     | 
| 
       11 
     | 
    
         
            -
                switch ( 
     | 
| 
      
 6 
     | 
    
         
            +
            export function loadFile(path, defaultFormat = 'text') {
         
     | 
| 
      
 7 
     | 
    
         
            +
                const content = readFileSync(path).toString();
         
     | 
| 
      
 8 
     | 
    
         
            +
                switch (extname(path) || `.${defaultFormat}`) {
         
     | 
| 
       12 
9 
     | 
    
         
             
                    case '.json':
         
     | 
| 
       13 
10 
     | 
    
         
             
                        return JSON.parse(content);
         
     | 
| 
       14 
11 
     | 
    
         
             
                    case '.yaml':
         
     | 
| 
       15 
12 
     | 
    
         
             
                    case '.yml':
         
     | 
| 
       16 
     | 
    
         
            -
                        return  
     | 
| 
      
 13 
     | 
    
         
            +
                        return load(content);
         
     | 
| 
       17 
14 
     | 
    
         
             
                    default:
         
     | 
| 
       18 
15 
     | 
    
         
             
                        return content;
         
     | 
| 
       19 
16 
     | 
    
         
             
                }
         
     | 
| 
       20 
17 
     | 
    
         
             
            }
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
            function serializeContent(destination, content) {
         
     | 
| 
      
 18 
     | 
    
         
            +
            export function serializeContent(destination, content) {
         
     | 
| 
       23 
19 
     | 
    
         
             
                if (typeof content === 'string') {
         
     | 
| 
       24 
20 
     | 
    
         
             
                    return content;
         
     | 
| 
       25 
21 
     | 
    
         
             
                }
         
     | 
| 
       26 
     | 
    
         
            -
                switch ( 
     | 
| 
      
 22 
     | 
    
         
            +
                switch (extname(destination)) {
         
     | 
| 
       27 
23 
     | 
    
         
             
                    case '.yaml':
         
     | 
| 
       28 
24 
     | 
    
         
             
                    case '.yml':
         
     | 
| 
       29 
     | 
    
         
            -
                        return  
     | 
| 
      
 25 
     | 
    
         
            +
                        return dump(content);
         
     | 
| 
       30 
26 
     | 
    
         
             
                    case '.json':
         
     | 
| 
       31 
27 
     | 
    
         
             
                    default:
         
     | 
| 
       32 
28 
     | 
    
         
             
                        return JSON.stringify(content, null, INDENT);
         
     | 
| 
       33 
29 
     | 
    
         
             
                }
         
     | 
| 
       34 
30 
     | 
    
         
             
            }
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
            export function writeFiles(root, config, pathMap, options) {
         
     | 
| 
      
 32 
     | 
    
         
            +
                const { force = false } = { ...options };
         
     | 
| 
       37 
33 
     | 
    
         
             
                for (const [key, content] of Object.entries(config)) {
         
     | 
| 
       38 
34 
     | 
    
         
             
                    const destination = pathMap[key];
         
     | 
| 
       39 
     | 
    
         
            -
                    if ( 
     | 
| 
       40 
     | 
    
         
            -
                        destination  
     | 
| 
       41 
     | 
    
         
            -
                        ( 
     | 
| 
       42 
     | 
    
         
            -
                        ( 
     | 
| 
       43 
     | 
    
         
            -
                        ( 
     | 
| 
      
 35 
     | 
    
         
            +
                    if (force ||
         
     | 
| 
      
 36 
     | 
    
         
            +
                        !lstatSync(destination, { throwIfNoEntry: false }) ||
         
     | 
| 
      
 37 
     | 
    
         
            +
                        destination !== resolve(root, key)) {
         
     | 
| 
      
 38 
     | 
    
         
            +
                        info(`Generating ${key}`);
         
     | 
| 
      
 39 
     | 
    
         
            +
                        ensureFile(destination, serializeContent(destination, content));
         
     | 
| 
       44 
40 
     | 
    
         
             
                    }
         
     | 
| 
       45 
41 
     | 
    
         
             
                    else {
         
     | 
| 
       46 
     | 
    
         
            -
                         
     | 
| 
      
 42 
     | 
    
         
            +
                        info(`Skipping ${key}`);
         
     | 
| 
       47 
43 
     | 
    
         
             
                    }
         
     | 
| 
       48 
44 
     | 
    
         
             
                }
         
     | 
| 
       49 
45 
     | 
    
         
             
            }
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
      
 46 
     | 
    
         
            +
            export function linkFiles(root, configurationLink, options) {
         
     | 
| 
      
 47 
     | 
    
         
            +
                const { force = false } = { ...options };
         
     | 
| 
       52 
48 
     | 
    
         
             
                for (const [file, destination] of Object.entries(configurationLink)) {
         
     | 
| 
       53 
     | 
    
         
            -
                    const  
     | 
| 
       54 
     | 
    
         
            -
                    const to =  
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                         
     | 
| 
       58 
     | 
    
         
            -
                         
     | 
| 
       59 
     | 
    
         
            -
                        ( 
     | 
| 
       60 
     | 
    
         
            -
                        (0, fs_1.symlinkSync)(to, link);
         
     | 
| 
       61 
     | 
    
         
            -
                    }
         
     | 
| 
       62 
     | 
    
         
            -
                    else if (to !== (0, path_1.basename)(to)) {
         
     | 
| 
       63 
     | 
    
         
            -
                        (0, console_1.info)(`Skipping ${(0, path_1.relative)(root, link)} => ${to}`);
         
     | 
| 
      
 49 
     | 
    
         
            +
                    const path = resolve(root, file);
         
     | 
| 
      
 50 
     | 
    
         
            +
                    const to = relative(dirname(path), destination);
         
     | 
| 
      
 51 
     | 
    
         
            +
                    const pathStat = lstatSync(path, { throwIfNoEntry: false });
         
     | 
| 
      
 52 
     | 
    
         
            +
                    if (to !== basename(to) &&
         
     | 
| 
      
 53 
     | 
    
         
            +
                        (!pathStat || pathStat.isSymbolicLink() || force)) {
         
     | 
| 
      
 54 
     | 
    
         
            +
                        info(`Linking ${relative(root, path)} => ${to}`);
         
     | 
| 
      
 55 
     | 
    
         
            +
                        ensureLink(path, to);
         
     | 
| 
       64 
56 
     | 
    
         
             
                    }
         
     | 
| 
       65 
57 
     | 
    
         
             
                }
         
     | 
| 
       66 
58 
     | 
    
         
             
            }
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
      
 59 
     | 
    
         
            +
            export function unlinkFiles(root, configurationLink, options) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                const { force = false } = { ...options };
         
     | 
| 
       69 
61 
     | 
    
         
             
                for (const [name, destination] of Object.entries(configurationLink)) {
         
     | 
| 
       70 
     | 
    
         
            -
                     
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                            continue;
         
     | 
| 
       77 
     | 
    
         
            -
                        }
         
     | 
| 
       78 
     | 
    
         
            -
                    }
         
     | 
| 
       79 
     | 
    
         
            -
                    catch (_a) {
         
     | 
| 
      
 62 
     | 
    
         
            +
                    const link = resolveLink(resolve(root, name));
         
     | 
| 
      
 63 
     | 
    
         
            +
                    const to = relative(root, destination);
         
     | 
| 
      
 64 
     | 
    
         
            +
                    if (link === to || force) {
         
     | 
| 
      
 65 
     | 
    
         
            +
                        info(`Removing ${name}`);
         
     | 
| 
      
 66 
     | 
    
         
            +
                        unlinkSync(resolve(root, name));
         
     | 
| 
      
 67 
     | 
    
         
            +
                        continue;
         
     | 
| 
       80 
68 
     | 
    
         
             
                    }
         
     | 
| 
       81 
     | 
    
         
            -
                     
     | 
| 
      
 69 
     | 
    
         
            +
                    info(`Skipping ${name}`);
         
     | 
| 
       82 
70 
     | 
    
         
             
                }
         
     | 
| 
       83 
71 
     | 
    
         
             
            }
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                 
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
      
 72 
     | 
    
         
            +
            function resolveLink(path) {
         
     | 
| 
      
 73 
     | 
    
         
            +
                const pathStat = lstatSync(path, { throwIfNoEntry: false });
         
     | 
| 
      
 74 
     | 
    
         
            +
                return pathStat?.isSymbolicLink() ? readlinkSync(path) : null;
         
     | 
| 
      
 75 
     | 
    
         
            +
            }
         
     | 
| 
      
 76 
     | 
    
         
            +
            function ensureLink(path, to) {
         
     | 
| 
      
 77 
     | 
    
         
            +
                mkdirSync(dirname(path), { recursive: true });
         
     | 
| 
      
 78 
     | 
    
         
            +
                if (lstatSync(path, { throwIfNoEntry: false })) {
         
     | 
| 
      
 79 
     | 
    
         
            +
                    unlinkSync(path);
         
     | 
| 
       89 
80 
     | 
    
         
             
                }
         
     | 
| 
       90 
     | 
    
         
            -
                 
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
      
 81 
     | 
    
         
            +
                symlinkSync(to, path);
         
     | 
| 
      
 82 
     | 
    
         
            +
            }
         
     | 
| 
      
 83 
     | 
    
         
            +
            function ensureFile(path, content) {
         
     | 
| 
      
 84 
     | 
    
         
            +
                mkdirSync(dirname(path), { recursive: true });
         
     | 
| 
      
 85 
     | 
    
         
            +
                if (lstatSync(path, { throwIfNoEntry: false })) {
         
     | 
| 
      
 86 
     | 
    
         
            +
                    unlinkSync(path);
         
     | 
| 
       92 
87 
     | 
    
         
             
                }
         
     | 
| 
      
 88 
     | 
    
         
            +
                writeFileSync(path, content);
         
     | 
| 
       93 
89 
     | 
    
         
             
            }
         
     | 
| 
       94 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64, 
     | 
| 
      
 90 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBV3JDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQWFqQixNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osZ0JBQTBDLE1BQU07SUFFaEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRzlDLFFBQVEsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLEVBQUU7UUFDNUMsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUN4RCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUNsRDtZQUNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQVFELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsV0FBbUIsRUFDbkIsT0FBaUI7SUFFakIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxRQUFRLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUM1QixLQUFLLE9B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
         
     | 
    
        package/lib/package.d.ts
    CHANGED
    
    | 
         @@ -1,9 +1,7 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import type {  
     | 
| 
       2 
     | 
    
         
            -
            export  
     | 
| 
      
 1 
     | 
    
         
            +
            import type { PackageJson } from 'type-fest';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export type Package = {
         
     | 
| 
       3 
3 
     | 
    
         
             
                path: string;
         
     | 
| 
       4 
     | 
    
         
            -
                json:  
     | 
| 
       5 
     | 
    
         
            -
                    scripts: Record<string, string>;
         
     | 
| 
       6 
     | 
    
         
            -
                };
         
     | 
| 
      
 4 
     | 
    
         
            +
                json: PackageJson;
         
     | 
| 
       7 
5 
     | 
    
         
             
            };
         
     | 
| 
       8 
6 
     | 
    
         
             
            export declare function arePeerPackagesAutoInstalled(): boolean;
         
     | 
| 
       9 
7 
     | 
    
         
             
            export declare function getPackage(root?: string): Promise<Package>;
         
     | 
    
        package/lib/package.js
    CHANGED
    
    | 
         @@ -1,21 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            exports.reifyDependencies = exports.getPackage = exports.arePeerPackagesAutoInstalled = void 0;
         
     | 
| 
       7 
     | 
    
         
            -
            const arborist_1 = require("@npmcli/arborist");
         
     | 
| 
       8 
     | 
    
         
            -
            const config_1 = __importDefault(require("@npmcli/config"));
         
     | 
| 
       9 
     | 
    
         
            -
            const lodash_1 = require("lodash");
         
     | 
| 
       10 
     | 
    
         
            -
            const os_1 = require("os");
         
     | 
| 
       11 
     | 
    
         
            -
            const path_1 = require("path");
         
     | 
| 
       12 
     | 
    
         
            -
            const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
         
     | 
| 
      
 1 
     | 
    
         
            +
            import { homedir } from 'node:os';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { resolve } from 'node:path';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { Arborist } from '@npmcli/arborist';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import Config from '@npmcli/config';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { readPackageUp } from 'read-pkg-up';
         
     | 
| 
       13 
6 
     | 
    
         
             
            const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
         
     | 
| 
       14 
     | 
    
         
            -
            function arePeerPackagesAutoInstalled() {
         
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
       16 
     | 
    
         
            -
                const [ 
     | 
| 
       17 
     | 
    
         
            -
                const [ 
     | 
| 
       18 
     | 
    
         
            -
                const [major] = (_d = version === null || version === void 0 ? void 0 : version.split('.')) !== null && _d !== void 0 ? _d : [];
         
     | 
| 
      
 7 
     | 
    
         
            +
            export function arePeerPackagesAutoInstalled() {
         
     | 
| 
      
 8 
     | 
    
         
            +
                const [clientID] = process.env['npm_config_user_agent']?.split(' ') ?? [];
         
     | 
| 
      
 9 
     | 
    
         
            +
                const [name, version] = clientID?.split('/') ?? [];
         
     | 
| 
      
 10 
     | 
    
         
            +
                const [major] = version?.split('.') ?? [];
         
     | 
| 
       19 
11 
     | 
    
         
             
                const isNPM = name === 'npm';
         
     | 
| 
       20 
12 
     | 
    
         
             
                const isNonNPM = name !== 'npm';
         
     | 
| 
       21 
13 
     | 
    
         
             
                return (isNonNPM ||
         
     | 
| 
         @@ -23,24 +15,20 @@ function arePeerPackagesAutoInstalled() { 
     | 
|
| 
       23 
15 
     | 
    
         
             
                        major !== undefined &&
         
     | 
| 
       24 
16 
     | 
    
         
             
                        parseInt(major) >= NPM_VERSION_FOR_PEER_INSTALLATION));
         
     | 
| 
       25 
17 
     | 
    
         
             
            }
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                const detail = await (0, read_pkg_up_1.default)({ cwd: root, normalize: true });
         
     | 
| 
      
 18 
     | 
    
         
            +
            export async function getPackage(root) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                const detail = await readPackageUp({ cwd: root, normalize: true });
         
     | 
| 
       29 
20 
     | 
    
         
             
                if (!detail) {
         
     | 
| 
       30 
21 
     | 
    
         
             
                    throw new Error("failed to find target's package.json");
         
     | 
| 
       31 
22 
     | 
    
         
             
                }
         
     | 
| 
       32 
23 
     | 
    
         
             
                const path = detail.path;
         
     | 
| 
       33 
     | 
    
         
            -
                const json =  
     | 
| 
       34 
     | 
    
         
            -
                    scripts: {},
         
     | 
| 
       35 
     | 
    
         
            -
                });
         
     | 
| 
      
 24 
     | 
    
         
            +
                const json = detail.packageJson;
         
     | 
| 
       36 
25 
     | 
    
         
             
                return { path, json };
         
     | 
| 
       37 
26 
     | 
    
         
             
            }
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = Object.assign({}, args);
         
     | 
| 
      
 27 
     | 
    
         
            +
            export async function reifyDependencies(args) {
         
     | 
| 
      
 28 
     | 
    
         
            +
                const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = { ...args };
         
     | 
| 
       41 
29 
     | 
    
         
             
                const config = await getNPMConfig();
         
     | 
| 
       42 
30 
     | 
    
         
             
                const workspacesEnabled = arePeerPackagesAutoInstalled();
         
     | 
| 
       43 
     | 
    
         
            -
                const arborist = new  
     | 
| 
      
 31 
     | 
    
         
            +
                const arborist = new Arborist({ path: root, workspacesEnabled, ...config });
         
     | 
| 
       44 
32 
     | 
    
         
             
                const actualTree = await arborist.reify({
         
     | 
| 
       45 
33 
     | 
    
         
             
                    add,
         
     | 
| 
       46 
34 
     | 
    
         
             
                    rm: remove,
         
     | 
| 
         @@ -53,11 +41,10 @@ async function reifyDependencies(args) { 
     | 
|
| 
       53 
41 
     | 
    
         
             
                    spec: edge.spec,
         
     | 
| 
       54 
42 
     | 
    
         
             
                }));
         
     | 
| 
       55 
43 
     | 
    
         
             
            }
         
     | 
| 
       56 
     | 
    
         
            -
            exports.reifyDependencies = reifyDependencies;
         
     | 
| 
       57 
44 
     | 
    
         
             
            async function getNPMConfig() {
         
     | 
| 
       58 
     | 
    
         
            -
                const config = new  
     | 
| 
      
 45 
     | 
    
         
            +
                const config = new Config({
         
     | 
| 
       59 
46 
     | 
    
         
             
                    definitions: {
         
     | 
| 
       60 
     | 
    
         
            -
                        userconfig: { default:  
     | 
| 
      
 47 
     | 
    
         
            +
                        userconfig: { default: resolve(homedir(), '.npmrc'), type: String },
         
     | 
| 
       61 
48 
     | 
    
         
             
                        registry: { default: 'https://registry.npmjs.org', type: String },
         
     | 
| 
       62 
49 
     | 
    
         
             
                    },
         
     | 
| 
       63 
50 
     | 
    
         
             
                    npmPath: '.',
         
     | 
| 
         @@ -68,4 +55,4 @@ async function getNPMConfig() { 
     | 
|
| 
       68 
55 
     | 
    
         
             
                await config.load();
         
     | 
| 
       69 
56 
     | 
    
         
             
                return config.flat;
         
     | 
| 
       70 
57 
     | 
    
         
             
            }
         
     | 
| 
       71 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64, 
     | 
| 
      
 58 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk1QyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsQ0FBQztBQWM1QyxNQUFNLFVBQVUsNEJBQTRCO0lBSTFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFHMUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFHcEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUssRUFBa0IsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUM7SUFFaEMsT0FBTyxDQUVMLFFBQVE7UUFDUixDQUFDLEtBQUs7WUFDSixLQUFLLEtBQUssU0FBUztZQUNuQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksaUNBQWlDLENBQUMsQ0FDeEQsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUduRSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsV0FBMEIsQ0FBQztJQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFZRCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBTXZDO0lBQ0MsTUFBTSxFQUNKLElBQUksRUFDSixHQUFHLEdBQUcsRUFBRSxFQUNSLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLE1BQU0sRUFDZixRQUFRLEdBQUcsS0FBSyxHQUNqQixHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUdoQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztJQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRzVFLE1BQU0sVUFBVSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN0QyxHQUFHO1FBQ0gsRUFBRSxFQUFFLE1BQU07UUFDVixRQUFRLEVBQUUsTUFBTTtRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxJQUFJO0tBQ2IsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7S0FDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBTUQsS0FBSyxVQUFVLFlBQVk7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDeEIsV0FBVyxFQUFFO1lBQ1gsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25FLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1NBQ2xFO1FBQ0QsT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsQ0FDUCxNQUE4QixFQUM5QixlQUF1QyxFQUNqQyxFQUFFO1lBSVIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXBCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDIn0=
         
     | 
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { resolveContext, resolveTemplate } from '../content.js';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { linkFiles, writeFiles } from '../io.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { getPresetGraph } from './graph.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { getDestinationMap } from './mapping.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            export async function bootstrapContent(context, options) {
         
     | 
| 
      
 6 
     | 
    
         
            +
                const graph = await getPresetGraph(context);
         
     | 
| 
      
 7 
     | 
    
         
            +
                const resolvedContext = await resolveContext({ graph, context });
         
     | 
| 
      
 8 
     | 
    
         
            +
                const content = await resolveTemplate({ graph, context: resolvedContext });
         
     | 
| 
      
 9 
     | 
    
         
            +
                const destinationMap = await getDestinationMap(content, resolvedContext);
         
     | 
| 
      
 10 
     | 
    
         
            +
                writeFiles(context.target.root, content, destinationMap, options);
         
     | 
| 
      
 11 
     | 
    
         
            +
                linkFiles(context.target.root, destinationMap, options);
         
     | 
| 
      
 12 
     | 
    
         
            +
            }
         
     | 
| 
      
 13 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWU5QyxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUFzQixFQUN0QixPQUEwQjtJQUUxQixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXpFLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyJ9
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { dirname } from 'node:path';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getPackage } from '../package.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { getPresetterRC } from './presetterRC.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            export async function getContext() {
         
     | 
| 
      
 5 
     | 
    
         
            +
                const { json, path } = await getPackage();
         
     | 
| 
      
 6 
     | 
    
         
            +
                const root = dirname(path);
         
     | 
| 
      
 7 
     | 
    
         
            +
                const target = { name: json.name, root, package: json };
         
     | 
| 
      
 8 
     | 
    
         
            +
                const custom = await getPresetterRC(root);
         
     | 
| 
      
 9 
     | 
    
         
            +
                return {
         
     | 
| 
      
 10 
     | 
    
         
            +
                    target,
         
     | 
| 
      
 11 
     | 
    
         
            +
                    custom,
         
     | 
| 
      
 12 
     | 
    
         
            +
                };
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
      
 14 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQzFDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUMsT0FBTztRQUNMLE1BQU07UUFDTixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMifQ==
         
     | 
| 
         @@ -0,0 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import type { PresetAsset, PresetContext, PresetGraph, PresetNode } from 'presetter-types';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export declare function getPresetAsset(name: string, context: PresetContext): Promise<PresetAsset>;
         
     | 
| 
      
 3 
     | 
    
         
            +
            export declare function getPresetGraph(context: PresetContext): Promise<PresetGraph>;
         
     | 
| 
      
 4 
     | 
    
         
            +
            export declare function getPresetNode(name: string, context: PresetContext): Promise<PresetNode>;
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export async function getPresetAsset(name, context) {
         
     | 
| 
      
 2 
     | 
    
         
            +
                try {
         
     | 
| 
      
 3 
     | 
    
         
            +
                    const { default: getPresetAsset } = (await import(name));
         
     | 
| 
      
 4 
     | 
    
         
            +
                    return await getPresetAsset(context);
         
     | 
| 
      
 5 
     | 
    
         
            +
                }
         
     | 
| 
      
 6 
     | 
    
         
            +
                catch {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    throw new Error(`cannot resolve preset ${name}`);
         
     | 
| 
      
 8 
     | 
    
         
            +
                }
         
     | 
| 
      
 9 
     | 
    
         
            +
            }
         
     | 
| 
      
 10 
     | 
    
         
            +
            export async function getPresetGraph(context) {
         
     | 
| 
      
 11 
     | 
    
         
            +
                const { preset } = context.custom;
         
     | 
| 
      
 12 
     | 
    
         
            +
                const presets = Array.isArray(preset) ? preset : [preset];
         
     | 
| 
      
 13 
     | 
    
         
            +
                return Promise.all(presets.map(async (name) => getPresetNode(name, context)));
         
     | 
| 
      
 14 
     | 
    
         
            +
            }
         
     | 
| 
      
 15 
     | 
    
         
            +
            export async function getPresetNode(name, context) {
         
     | 
| 
      
 16 
     | 
    
         
            +
                const asset = await getPresetAsset(name, context);
         
     | 
| 
      
 17 
     | 
    
         
            +
                const nodes = await Promise.all((asset.extends ?? []).map(async (extension) => getPresetNode(extension, context)));
         
     | 
| 
      
 18 
     | 
    
         
            +
                return { name, asset, nodes };
         
     | 
| 
      
 19 
     | 
    
         
            +
            }
         
     | 
| 
      
 20 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2dyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQSxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBWSxFQUNaLE9BQXNCO0lBRXRCLElBQUk7UUFFRixNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBRXRELENBQUM7UUFFRixPQUFPLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQXNCO0lBR3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBUUQsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQ2pDLElBQVksRUFDWixPQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUNsQyxDQUNGLENBQUM7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
         
     | 
| 
         @@ -0,0 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export * from './scripts.js';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export * from './setup.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export * from './unset.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyJ9
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { resolve } from 'node:path';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import resolvePackage from 'resolve-pkg';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export async function getDestinationMap(template, context) {
         
     | 
| 
      
 4 
     | 
    
         
            +
                const { custom: { noSymlinks }, target: { root }, } = context;
         
     | 
| 
      
 5 
     | 
    
         
            +
                const presetterDir = resolvePackage('presetter', { cwd: root });
         
     | 
| 
      
 6 
     | 
    
         
            +
                const outDir = resolve(presetterDir, 'generated', context.target.name);
         
     | 
| 
      
 7 
     | 
    
         
            +
                const relativePaths = [...Object.keys(template)];
         
     | 
| 
      
 8 
     | 
    
         
            +
                return Object.fromEntries([
         
     | 
| 
      
 9 
     | 
    
         
            +
                    ...relativePaths.map((relativePath) => [
         
     | 
| 
      
 10 
     | 
    
         
            +
                        relativePath,
         
     | 
| 
      
 11 
     | 
    
         
            +
                        resolve(noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
         
     | 
| 
      
 12 
     | 
    
         
            +
                    ]),
         
     | 
| 
      
 13 
     | 
    
         
            +
                ]);
         
     | 
| 
      
 14 
     | 
    
         
            +
            }
         
     | 
| 
      
 15 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sY0FBYyxNQUFNLGFBQWEsQ0FBQztBQVV6QyxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUNqQixHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBYSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhFLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFakQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBb0IsRUFBRSxDQUFDO1lBQ3ZELFlBQVk7WUFDWixPQUFPLENBRUwsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDaEUsWUFBWSxDQUNiO1NBQ0YsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMifQ==
         
     | 
| 
         @@ -0,0 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import type { PresetterConfig } from 'presetter-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;
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { existsSync, writeFileSync } from 'node:fs';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { dirname, resolve } from 'node:path';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { readPackageUp } from 'read-pkg-up';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { loadFile } from '../io.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { isJSON, merge } from '../template.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            const PRESETTERRC = '.presetterrc';
         
     | 
| 
      
 7 
     | 
    
         
            +
            const JSON_INDENT = 2;
         
     | 
| 
      
 8 
     | 
    
         
            +
            export async function getPresetterRCPaths(base) {
         
     | 
| 
      
 9 
     | 
    
         
            +
                const filesFromBase = ['', '.json']
         
     | 
| 
      
 10 
     | 
    
         
            +
                    .map((ext) => resolve(base, `${PRESETTERRC}${ext}`))
         
     | 
| 
      
 11 
     | 
    
         
            +
                    .filter(existsSync);
         
     | 
| 
      
 12 
     | 
    
         
            +
                const parent = await readPackageUp({ cwd: dirname(base) });
         
     | 
| 
      
 13 
     | 
    
         
            +
                const filesFromParent = parent?.path
         
     | 
| 
      
 14 
     | 
    
         
            +
                    ? await getPresetterRCPaths(dirname(base))
         
     | 
| 
      
 15 
     | 
    
         
            +
                    : [];
         
     | 
| 
      
 16 
     | 
    
         
            +
                return [...filesFromParent, ...filesFromBase];
         
     | 
| 
      
 17 
     | 
    
         
            +
            }
         
     | 
| 
      
 18 
     | 
    
         
            +
            export async function getPresetterRC(root) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                const paths = await getPresetterRCPaths(root);
         
     | 
| 
      
 20 
     | 
    
         
            +
                if (!paths.length) {
         
     | 
| 
      
 21 
     | 
    
         
            +
                    throw new Error('missing presetter configuration file');
         
     | 
| 
      
 22 
     | 
    
         
            +
                }
         
     | 
| 
      
 23 
     | 
    
         
            +
                const configs = paths.map((path) => loadFile(path, 'json'));
         
     | 
| 
      
 24 
     | 
    
         
            +
                const mergedConfig = configs.reduce((mergedConfig, config) => merge(mergedConfig, config), {});
         
     | 
| 
      
 25 
     | 
    
         
            +
                assertPresetterRC(mergedConfig);
         
     | 
| 
      
 26 
     | 
    
         
            +
                return mergedConfig;
         
     | 
| 
      
 27 
     | 
    
         
            +
            }
         
     | 
| 
      
 28 
     | 
    
         
            +
            export async function updatePresetterRC(root, config) {
         
     | 
| 
      
 29 
     | 
    
         
            +
                const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
         
     | 
| 
      
 30 
     | 
    
         
            +
                writeFileSync(resolve(root, `${PRESETTERRC}.json`), JSON.stringify(merge(existingPresetterRC, config), null, JSON_INDENT));
         
     | 
| 
      
 31 
     | 
    
         
            +
            }
         
     | 
| 
      
 32 
     | 
    
         
            +
            export function assertPresetterRC(value) {
         
     | 
| 
      
 33 
     | 
    
         
            +
                if (!isJSON(value) ||
         
     | 
| 
      
 34 
     | 
    
         
            +
                    (typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
         
     | 
| 
      
 35 
     | 
    
         
            +
                    throw new Error(`invalid presetter configuration file`);
         
     | 
| 
      
 36 
     | 
    
         
            +
                }
         
     | 
| 
      
 37 
     | 
    
         
            +
            }
         
     | 
| 
      
 38 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU01QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFFbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBT3RCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFHM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxFQUFFLElBQUk7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxPQUFPLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBWTtJQUUvQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQU9ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLElBQVksRUFDWixNQUF1QjtJQUV2QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFekUsYUFBYSxDQUNYLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLE9BQU8sQ0FBQyxFQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQ3RFLENBQUM7QUFDSixDQUFDO0FBTUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjO0lBRWQsSUFDRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDZCxDQUFDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDeEU7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDIn0=
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export declare function getScripts(): Promise<Record<string, string>>;
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { resolveContext, resolveScripts } from '../content.js';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getContext } from './context.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { getPresetGraph } from './graph.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            export async function getScripts() {
         
     | 
| 
      
 5 
     | 
    
         
            +
                const context = await getContext();
         
     | 
| 
      
 6 
     | 
    
         
            +
                const graph = await getPresetGraph(context);
         
     | 
| 
      
 7 
     | 
    
         
            +
                const resolvedContext = await resolveContext({ graph, context });
         
     | 
| 
      
 8 
     | 
    
         
            +
                return resolveScripts({ graph, context: resolvedContext });
         
     | 
| 
      
 9 
     | 
    
         
            +
            }
         
     | 
| 
      
 10 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNekMsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVqRSxPQUFPLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDIn0=
         
     | 
| 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { info } from 'node:console';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { dirname } from 'node:path';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { readPackage } from 'read-pkg';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { writePackage } from 'write-pkg';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { arePeerPackagesAutoInstalled, getPackage, reifyDependencies, } from '../package.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            import { bootstrapContent } from './content.js';
         
     | 
| 
      
 7 
     | 
    
         
            +
            import { getContext } from './context.js';
         
     | 
| 
      
 8 
     | 
    
         
            +
            import { updatePresetterRC } from './presetterRC.js';
         
     | 
| 
      
 9 
     | 
    
         
            +
            export async function bootstrapPreset(options) {
         
     | 
| 
      
 10 
     | 
    
         
            +
                const context = await getContext();
         
     | 
| 
      
 11 
     | 
    
         
            +
                if (!arePeerPackagesAutoInstalled()) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    await reifyDependencies({ root: context.target.root });
         
     | 
| 
      
 13 
     | 
    
         
            +
                }
         
     | 
| 
      
 14 
     | 
    
         
            +
                await bootstrapContent(context, options);
         
     | 
| 
      
 15 
     | 
    
         
            +
            }
         
     | 
| 
      
 16 
     | 
    
         
            +
            export async function setupPreset(...uris) {
         
     | 
| 
      
 17 
     | 
    
         
            +
                const { path } = await getPackage();
         
     | 
| 
      
 18 
     | 
    
         
            +
                const root = dirname(path);
         
     | 
| 
      
 19 
     | 
    
         
            +
                const packageBefore = (await readPackage({ cwd: root })).devDependencies;
         
     | 
| 
      
 20 
     | 
    
         
            +
                info(`Installing ${uris.join(' ')}... it may take a few moment...`);
         
     | 
| 
      
 21 
     | 
    
         
            +
                await reifyDependencies({
         
     | 
| 
      
 22 
     | 
    
         
            +
                    root,
         
     | 
| 
      
 23 
     | 
    
         
            +
                    add: ['presetter', ...uris],
         
     | 
| 
      
 24 
     | 
    
         
            +
                    saveAs: 'dev',
         
     | 
| 
      
 25 
     | 
    
         
            +
                    lockFile: true,
         
     | 
| 
      
 26 
     | 
    
         
            +
                });
         
     | 
| 
      
 27 
     | 
    
         
            +
                const packageAfter = (await readPackage({ cwd: root })).devDependencies;
         
     | 
| 
      
 28 
     | 
    
         
            +
                const newPackages = getNewPackages({ ...packageBefore }, { ...packageAfter });
         
     | 
| 
      
 29 
     | 
    
         
            +
                const preset = newPackages.filter((name) => name !== 'presetter');
         
     | 
| 
      
 30 
     | 
    
         
            +
                info('Updating .presetterrc.json & package.json');
         
     | 
| 
      
 31 
     | 
    
         
            +
                await updatePresetterRC(root, { preset });
         
     | 
| 
      
 32 
     | 
    
         
            +
                const context = await getContext();
         
     | 
| 
      
 33 
     | 
    
         
            +
                await bootstrapContent(context);
         
     | 
| 
      
 34 
     | 
    
         
            +
                const json = context.target.package;
         
     | 
| 
      
 35 
     | 
    
         
            +
                const scripts = { prepare: 'presetter bootstrap', ...json.scripts };
         
     | 
| 
      
 36 
     | 
    
         
            +
                const patched = { ...json, scripts };
         
     | 
| 
      
 37 
     | 
    
         
            +
                await writePackage(root, patched);
         
     | 
| 
      
 38 
     | 
    
         
            +
                info('Done. Enjoy coding!');
         
     | 
| 
      
 39 
     | 
    
         
            +
            }
         
     | 
| 
      
 40 
     | 
    
         
            +
            function getNewPackages(before, after) {
         
     | 
| 
      
 41 
     | 
    
         
            +
                return Object.keys(after).filter((name) => !before[name]);
         
     | 
| 
      
 42 
     | 
    
         
            +
            }
         
     | 
| 
      
 43 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixVQUFVLEVBQ1YsaUJBQWlCLEdBQ2xCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWNsRCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsT0FBMEI7SUFFMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUduQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsRUFBRTtRQUNuQyxNQUFNLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUdELE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFNRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFHakQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDcEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUd6RSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBR0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBRWxFLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBRWxELE1BQU0saUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUcxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFHaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEUsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBK0MsQ0FBQyxDQUFDO0lBRTFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFRRCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export declare function unsetPreset(): Promise<void>;
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { resolveContext, resolveTemplate } from '../content.js';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { unlinkFiles } from '../io.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { getContext } from './context.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { getPresetGraph } from './graph.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { getDestinationMap } from './mapping.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            export async function unsetPreset() {
         
     | 
| 
      
 7 
     | 
    
         
            +
                const context = await getContext();
         
     | 
| 
      
 8 
     | 
    
         
            +
                const graph = await getPresetGraph(context);
         
     | 
| 
      
 9 
     | 
    
         
            +
                const resolvedContext = await resolveContext({ graph, context });
         
     | 
| 
      
 10 
     | 
    
         
            +
                const content = await resolveTemplate({ graph, context: resolvedContext });
         
     | 
| 
      
 11 
     | 
    
         
            +
                const configurationLink = await getDestinationMap(content, resolvedContext);
         
     | 
| 
      
 12 
     | 
    
         
            +
                unlinkFiles(context.target.root, configurationLink);
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
      
 14 
     | 
    
         
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUs5QyxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
         
     | 
    
        package/lib/resolution.d.ts
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from ' 
     | 
| 
      
 1 
     | 
    
         
            +
            import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from 'presetter-types';
         
     | 
| 
       2 
2 
     | 
    
         
             
            export declare function getConfigKey(filename: string): string;
         
     | 
| 
       3 
3 
     | 
    
         
             
            export declare function loadDynamicMap<F extends DynamicAssetField>(map: PresetAsset[F], context: ResolvedPresetContext<RequiredResolution<F>>): Promise<Record<string, DynamicAsset<F>>>;
         
     | 
| 
       4 
4 
     | 
    
         
             
            export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
         
     |