presetter 5.0.0 → 6.0.0

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.
Files changed (130) hide show
  1. package/lib/executable/entry.d.ts.map +1 -1
  2. package/lib/executable/entry.js +4 -43
  3. package/lib/executable/error.d.ts.map +1 -1
  4. package/lib/executable/error.js +1 -15
  5. package/lib/executable/index.js +1 -15
  6. package/lib/index.d.ts +4 -5
  7. package/lib/index.d.ts.map +1 -1
  8. package/lib/index.js +5 -20
  9. package/lib/io.d.ts +8 -42
  10. package/lib/io.d.ts.map +1 -1
  11. package/lib/io.js +24 -156
  12. package/lib/package.d.ts +2 -2
  13. package/lib/package.d.ts.map +1 -1
  14. package/lib/package.js +3 -17
  15. package/lib/preset/bootstrap.d.ts +5 -0
  16. package/lib/preset/bootstrap.d.ts.map +1 -0
  17. package/lib/preset/bootstrap.js +32 -0
  18. package/lib/preset/config/index.d.ts +3 -0
  19. package/lib/preset/config/index.d.ts.map +1 -0
  20. package/lib/preset/config/index.js +4 -0
  21. package/lib/preset/config/resolve.d.ts +8 -0
  22. package/lib/preset/config/resolve.d.ts.map +1 -0
  23. package/lib/preset/config/resolve.js +25 -0
  24. package/lib/preset/config/search.d.ts +7 -0
  25. package/lib/preset/config/search.d.ts.map +1 -0
  26. package/lib/preset/config/search.js +25 -0
  27. package/lib/preset/context.d.ts +2 -1
  28. package/lib/preset/context.d.ts.map +1 -1
  29. package/lib/preset/context.js +5 -24
  30. package/lib/preset/index.d.ts +5 -2
  31. package/lib/preset/index.d.ts.map +1 -1
  32. package/lib/preset/index.js +6 -18
  33. package/lib/preset/project.d.ts +8 -0
  34. package/lib/preset/project.d.ts.map +1 -0
  35. package/lib/preset/project.js +28 -0
  36. package/lib/preset/resolution/asset.d.ts +31 -0
  37. package/lib/preset/resolution/asset.d.ts.map +1 -0
  38. package/lib/preset/resolution/asset.js +78 -0
  39. package/lib/preset/resolution/content.d.ts +37 -0
  40. package/lib/preset/resolution/content.d.ts.map +1 -0
  41. package/lib/preset/resolution/content.js +55 -0
  42. package/lib/preset/resolution/debugger.d.ts +3 -0
  43. package/lib/preset/resolution/debugger.d.ts.map +1 -0
  44. package/lib/preset/resolution/debugger.js +3 -0
  45. package/lib/preset/resolution/index.d.ts +6 -0
  46. package/lib/preset/resolution/index.d.ts.map +1 -0
  47. package/lib/preset/resolution/index.js +7 -0
  48. package/lib/preset/resolution/object.d.ts +9 -0
  49. package/lib/preset/resolution/object.d.ts.map +1 -0
  50. package/lib/preset/resolution/object.js +10 -0
  51. package/lib/preset/resolution/preset.d.ts +9 -0
  52. package/lib/preset/resolution/preset.d.ts.map +1 -0
  53. package/lib/preset/resolution/preset.js +17 -0
  54. package/lib/preset/resolution/script.d.ts +9 -0
  55. package/lib/preset/resolution/script.d.ts.map +1 -0
  56. package/lib/preset/resolution/script.js +39 -0
  57. package/lib/preset/resolution/variable.d.ts +9 -0
  58. package/lib/preset/resolution/variable.d.ts.map +1 -0
  59. package/lib/preset/resolution/variable.js +33 -0
  60. package/lib/preset/scripts.d.ts.map +1 -1
  61. package/lib/preset/scripts.js +5 -22
  62. package/lib/resolve.d.ts +7 -0
  63. package/lib/resolve.d.ts.map +1 -0
  64. package/lib/resolve.js +27 -0
  65. package/lib/run.d.ts.map +1 -1
  66. package/lib/run.js +4 -19
  67. package/lib/scripts.d.ts.map +1 -1
  68. package/lib/scripts.js +3 -18
  69. package/lib/serialization.d.ts +15 -0
  70. package/lib/serialization.d.ts.map +1 -0
  71. package/lib/serialization.js +48 -0
  72. package/lib/task.d.ts.map +1 -1
  73. package/lib/task.js +1 -16
  74. package/lib/template/index.d.ts +3 -0
  75. package/lib/template/index.d.ts.map +1 -0
  76. package/lib/template/index.js +4 -0
  77. package/lib/template/merge.d.ts +33 -0
  78. package/lib/template/merge.d.ts.map +1 -0
  79. package/lib/template/merge.js +84 -0
  80. package/lib/template/substitute.d.ts +11 -0
  81. package/lib/template/substitute.d.ts.map +1 -0
  82. package/lib/template/substitute.js +19 -0
  83. package/lib/utilities/display.d.ts +15 -0
  84. package/lib/utilities/display.d.ts.map +1 -0
  85. package/lib/utilities/display.js +51 -0
  86. package/lib/utilities/index.d.ts +3 -1
  87. package/lib/utilities/index.d.ts.map +1 -1
  88. package/lib/utilities/index.js +4 -16
  89. package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
  90. package/lib/utilities/mapping.d.ts.map +1 -0
  91. package/lib/utilities/mapping.js +10 -0
  92. package/lib/utilities/object.d.ts +20 -0
  93. package/lib/utilities/object.d.ts.map +1 -0
  94. package/lib/utilities/object.js +37 -0
  95. package/package.json +10 -7
  96. package/lib/content.d.ts +0 -123
  97. package/lib/content.d.ts.map +0 -1
  98. package/lib/content.js +0 -244
  99. package/lib/directive.d.ts +0 -34
  100. package/lib/directive.d.ts.map +0 -1
  101. package/lib/directive.js +0 -172
  102. package/lib/error.d.ts +0 -8
  103. package/lib/error.d.ts.map +0 -1
  104. package/lib/error.js +0 -32
  105. package/lib/preset/content.d.ts +0 -14
  106. package/lib/preset/content.d.ts.map +0 -1
  107. package/lib/preset/content.js +0 -32
  108. package/lib/preset/graph.d.ts +0 -22
  109. package/lib/preset/graph.d.ts.map +0 -1
  110. package/lib/preset/graph.js +0 -53
  111. package/lib/preset/mapping.d.ts +0 -9
  112. package/lib/preset/mapping.d.ts.map +0 -1
  113. package/lib/preset/mapping.js +0 -41
  114. package/lib/preset/presetterRC.d.ts +0 -25
  115. package/lib/preset/presetterRC.d.ts.map +0 -1
  116. package/lib/preset/presetterRC.js +0 -76
  117. package/lib/preset/setup.d.ts +0 -17
  118. package/lib/preset/setup.d.ts.map +0 -1
  119. package/lib/preset/setup.js +0 -80
  120. package/lib/preset/unset.d.ts +0 -5
  121. package/lib/preset/unset.d.ts.map +0 -1
  122. package/lib/preset/unset.js +0 -31
  123. package/lib/resolution.d.ts +0 -22
  124. package/lib/resolution.d.ts.map +0 -1
  125. package/lib/resolution.js +0 -61
  126. package/lib/template.d.ts +0 -64
  127. package/lib/template.d.ts.map +0 -1
  128. package/lib/template.js +0 -199
  129. package/lib/utilities/mapValues.d.ts.map +0 -1
  130. package/lib/utilities/mapValues.js +0 -24
@@ -0,0 +1,8 @@
1
+ import type { Preset } from 'presetter-types';
2
+ /**
3
+ * resolve the presetter configuration from the project root
4
+ * @param root the root directory containing the project's package.json
5
+ * @returns the resolved presetter configuration
6
+ */
7
+ export declare function resolvePresetterConfig(root: string): Promise<Preset>;
8
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../source/preset/config/resolve.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB1E"}
@@ -0,0 +1,25 @@
1
+ import { createJiti } from 'jiti';
2
+ import debug from '../../debugger.js';
3
+ import { searchPresetterConfigs } from './search.js';
4
+ /**
5
+ * resolve the presetter configuration from the project root
6
+ * @param root the root directory containing the project's package.json
7
+ * @returns the resolved presetter configuration
8
+ */
9
+ export async function resolvePresetterConfig(root) {
10
+ const configPaths = await searchPresetterConfigs(root);
11
+ if (configPaths.length === 0) {
12
+ throw new Error('no presetter configuration file found');
13
+ }
14
+ // NOTE: the priority is given to the configuration file closest to the project root, from mts, ts, mjs then js
15
+ const closestConfigPath = configPaths[0];
16
+ debug(`loading presetter configuration from ${closestConfigPath}`);
17
+ const jiti = createJiti(root, {
18
+ debug: !!process.env.DEBUG?.includes('presetter'),
19
+ });
20
+ // get the preset
21
+ return jiti.import(closestConfigPath, {
22
+ default: true,
23
+ });
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9wcmVzZXQvY29uZmlnL3Jlc29sdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJbEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsSUFBWTtJQUN2RCxNQUFNLFdBQVcsR0FBRyxNQUFNLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELCtHQUErRztJQUMvRyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QyxLQUFLLENBQUMsd0NBQXdDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNuRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQzVCLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUNsRCxDQUFDLENBQUM7SUFFSCxpQkFBaUI7SUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFTLGlCQUFpQixFQUFFO1FBQzVDLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -0,0 +1,7 @@
1
+ /**
2
+ * get all potential presetter configuration files by searching from the current base up to the monorepo root, if there is one
3
+ * @param base the base directory to start searching for the configuration file
4
+ * @returns list of presetter configuration files
5
+ */
6
+ export declare function searchPresetterConfigs(base: string): Promise<string[]>;
7
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../source/preset/config/search.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB5E"}
@@ -0,0 +1,25 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { readPackageUp } from 'read-pkg-up';
4
+ import debug from '../../debugger.js';
5
+ /** presetter configuration filename */
6
+ const PRESETTER_CONFIG = 'presetter.config';
7
+ /**
8
+ * get all potential presetter configuration files by searching from the current base up to the monorepo root, if there is one
9
+ * @param base the base directory to start searching for the configuration file
10
+ * @returns list of presetter configuration files
11
+ */
12
+ export async function searchPresetterConfigs(base) {
13
+ debug(`searching for presetter configuration files from ${base}`);
14
+ const filesFromBase = ['.mts', '.ts', '.mjs', '.js']
15
+ .map((ext) => resolve(base, `${PRESETTER_CONFIG}${ext}`))
16
+ .filter(existsSync);
17
+ debug(`found ${filesFromBase.length} configuration files from ${base}`);
18
+ const parent = await readPackageUp({ cwd: dirname(base) });
19
+ // if the base is the root of a monorepo, stop searching
20
+ const filesFromParent = parent?.path
21
+ ? await searchPresetterConfigs(dirname(base))
22
+ : [];
23
+ return [...filesFromBase, ...filesFromParent];
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9jb25maWcvc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyx1Q0FBdUM7QUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxJQUFZO0lBQ3ZELEtBQUssQ0FBQyxvREFBb0QsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVsRSxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztTQUNqRCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3hELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV0QixLQUFLLENBQUMsU0FBUyxhQUFhLENBQUMsTUFBTSw2QkFBNkIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNELHdEQUF3RDtJQUN4RCxNQUFNLGVBQWUsR0FBRyxNQUFNLEVBQUUsSUFBSTtRQUNsQyxDQUFDLENBQUMsTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVQLE9BQU8sQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO0FBQ2hELENBQUMifQ==
@@ -1,7 +1,8 @@
1
1
  import type { PresetContext } from 'presetter-types';
2
2
  /**
3
3
  * get context about the target project and any customization in .presetterrc
4
+ * @param cwd the current working directory
4
5
  * @returns context about the target project and any customization in .presetterrc
5
6
  */
6
- export declare function getContext(): Promise<PresetContext>;
7
+ export declare function getContext(cwd?: string): Promise<PresetContext>;
7
8
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../source/preset/context.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAUzD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../source/preset/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKrE"}
@@ -1,32 +1,13 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Collection of helpers for concluding the target context
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
1
  import { dirname } from 'node:path';
16
2
  import { getPackage } from '../package.js';
17
- import { getPresetterRC } from './presetterRC.js';
18
3
  /**
19
4
  * get context about the target project and any customization in .presetterrc
5
+ * @param cwd the current working directory
20
6
  * @returns context about the target project and any customization in .presetterrc
21
7
  */
22
- export async function getContext() {
23
- const { json, path } = await getPackage();
8
+ export async function getContext(cwd) {
9
+ const { json, path } = await getPackage(cwd);
24
10
  const root = dirname(path);
25
- const target = { name: json.name, root, package: json };
26
- const custom = await getPresetterRC(root);
27
- return {
28
- target,
29
- custom,
30
- };
11
+ return { root, package: json };
31
12
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFDLE9BQU87UUFDTCxNQUFNO1FBQ04sTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJeEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLEdBQVk7SUFDM0MsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0IsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDakMsQ0FBQyJ9
@@ -1,4 +1,7 @@
1
+ export * from './bootstrap.js';
2
+ export * from './config/index.js';
3
+ export * from './context.js';
4
+ export * from './project.js';
5
+ export * from './resolution/index.js';
1
6
  export * from './scripts.js';
2
- export * from './setup.js';
3
- export * from './unset.js';
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/preset/index.ts"],"names":[],"mappings":"AA4BA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/preset/index.ts"],"names":[],"mappings":"AAYA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -1,29 +1,17 @@
1
1
  /* v8 ignore start */
2
- /*
3
- * *** MIT LICENSE ***
4
- * -------------------------------------------------------------------------
5
- * This code may be modified and distributed under the MIT license.
6
- * See the LICENSE file for details.
7
- * -------------------------------------------------------------------------
8
- *
9
- * @summary Collection of helpers for setting up a project
10
- *
11
- * @author Alvis HT Tang <alvis@hilbert.space>
12
- * @license MIT
13
- * @copyright Copyright (c) 2020 - All Rights Reserved.
14
- * -------------------------------------------------------------------------
15
- */
16
2
  // NOTE on resolution steps
17
3
  // STEP 1 build a dependency tree of presets
18
4
  // STEP 2 resolve variables from the tree
19
5
  //
20
6
  // for template resolution
21
7
  // STEP 3 resolve template content from resolved variables
22
- // STEP 4 resolve noSimlinks from resolved variables
23
8
  //
24
9
  // for script resolution
25
10
  // STEP 3 resolve script content from resolved variables
11
+ export * from './bootstrap.js';
12
+ export * from './config/index.js';
13
+ export * from './context.js';
14
+ export * from './project.js';
15
+ export * from './resolution/index.js';
26
16
  export * from './scripts.js';
27
- export * from './setup.js';
28
- export * from './unset.js';
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQjtBQUVyQjs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsMkJBQTJCO0FBQzNCLDRDQUE0QztBQUM1Qyx5Q0FBeUM7QUFDekMsRUFBRTtBQUNGLDBCQUEwQjtBQUMxQiwwREFBMEQ7QUFDMUQsb0RBQW9EO0FBQ3BELEVBQUU7QUFDRix3QkFBd0I7QUFDeEIsd0RBQXdEO0FBRXhELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQjtBQUVyQiwyQkFBMkI7QUFDM0IsNENBQTRDO0FBQzVDLHlDQUF5QztBQUN6QyxFQUFFO0FBQ0YsMEJBQTBCO0FBQzFCLDBEQUEwRDtBQUMxRCxFQUFFO0FBQ0Ysd0JBQXdCO0FBQ3hCLHdEQUF3RDtBQUV4RCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQyJ9
@@ -0,0 +1,8 @@
1
+ import type { PresetContext, PresetNode } from 'presetter-types';
2
+ /**
3
+ * resolve the project preset
4
+ * @param context context about the target project and customization in .presetterrc
5
+ * @returns assets from the preset
6
+ */
7
+ export declare function resolveProjectPreset(context: PresetContext): Promise<PresetNode>;
8
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../source/preset/project.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
@@ -0,0 +1,28 @@
1
+ import { xception } from 'xception';
2
+ import debug from '../debugger.js';
3
+ import { resolvePresetterConfig } from './config/index.js';
4
+ import { resolvePreset } from './resolution/index.js';
5
+ /**
6
+ * resolve the project preset
7
+ * @param context context about the target project and customization in .presetterrc
8
+ * @returns assets from the preset
9
+ */
10
+ export async function resolveProjectPreset(context) {
11
+ try {
12
+ debug(`resolving preset at ${context.root}`);
13
+ // get the preset
14
+ const preset = await resolvePresetterConfig(context.root);
15
+ debug(`preset loaded, resolving nodes...`);
16
+ return await resolvePreset(preset, context);
17
+ }
18
+ catch (cause) {
19
+ throw xception(cause, {
20
+ meta: { project: context.package.name, root: context.root },
21
+ });
22
+ /* v8 ignore start */
23
+ }
24
+ finally {
25
+ debug(`all nodes resolved`);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk3Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsT0FBc0I7SUFFdEIsSUFBSSxDQUFDO1FBQ0gsS0FBSyxDQUFDLHVCQUF1QixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3QyxpQkFBaUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUQsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFM0MsT0FBTyxNQUFNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDcEIsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFO1NBQzVELENBQUMsQ0FBQztRQUNILHFCQUFxQjtJQUN2QixDQUFDO1lBQVMsQ0FBQztRQUNULEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,31 @@
1
+ import type { PresetContentContext, PresetContext, PresetNode, ResolvedPresetAsset, ResolvedPresetAssets, Variables } from 'presetter-types';
2
+ /**
3
+ * lists all asset names in a preset node
4
+ * @param node the preset node
5
+ * @param context the context in which the node is being resolved
6
+ * @returns an array of asset names
7
+ */
8
+ export declare function listAssetNames(node: PresetNode, context: PresetContentContext): string[];
9
+ /**
10
+ * resolves all assets for a given preset node
11
+ * @param node the preset node
12
+ * @param context the context in which the node is being resolved
13
+ * @returns a promise that resolves to the RESOLVED assets
14
+ */
15
+ export declare function resolveAssets(node: PresetNode, context: PresetContext): Promise<ResolvedPresetAssets>;
16
+ /**
17
+ * resolves a specific asset for a given preset node
18
+ * @param _ collection of arguments
19
+ * @param _.name the name of the asset
20
+ * @param _.node the preset node
21
+ * @param _.context the context in which the node is being resolved
22
+ * @param _.variables the variables to use during resolution
23
+ * @returns a promise that resolves to the RESOLVED asset
24
+ */
25
+ export declare function resolveAsset(_: {
26
+ name: string;
27
+ node: PresetNode;
28
+ context: PresetContext;
29
+ variables: Variables;
30
+ }): Promise<ResolvedPresetAsset | null | undefined>;
31
+ //# sourceMappingURL=asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/asset.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,oBAAoB,GAC5B,MAAM,EAAE,CAaV;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAmB/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC,CAoClD"}
@@ -0,0 +1,78 @@
1
+ import { prefixDisplay } from '../../utilities/index.js';
2
+ import { resolveNodeContent } from './content.js';
3
+ import Debug from './debugger.js';
4
+ import { resolveObject } from './object.js';
5
+ import { resolveVariables } from './variable.js';
6
+ /**
7
+ * lists all asset names in a preset node
8
+ * @param node the preset node
9
+ * @param context the context in which the node is being resolved
10
+ * @returns an array of asset names
11
+ */
12
+ export function listAssetNames(node, context) {
13
+ const assetsResolver = node.definition.assets ?? {};
14
+ const assets = assetsResolver instanceof Function
15
+ ? assetsResolver(context)
16
+ : assetsResolver;
17
+ return [
18
+ ...new Set([
19
+ ...Object.keys(assets),
20
+ ...node.nodes.flatMap((node) => listAssetNames(node, context)),
21
+ ]),
22
+ ];
23
+ }
24
+ /**
25
+ * resolves all assets for a given preset node
26
+ * @param node the preset node
27
+ * @param context the context in which the node is being resolved
28
+ * @returns a promise that resolves to the RESOLVED assets
29
+ */
30
+ export async function resolveAssets(node, context) {
31
+ const debug = Debug.extend('ASSETS').extend(node.definition.id);
32
+ // resolve variables for the node
33
+ const variables = await resolveVariables(node, context);
34
+ // list all asset names in the node
35
+ const names = listAssetNames(node, { ...context, variables });
36
+ debug('ASSET FILES\n%O', names);
37
+ // resolve each asset and return as an object
38
+ return Object.fromEntries(await Promise.all(names.map(async (name) => [
39
+ name,
40
+ await resolveAsset({ name, node, context, variables }),
41
+ ])));
42
+ }
43
+ /**
44
+ * resolves a specific asset for a given preset node
45
+ * @param _ collection of arguments
46
+ * @param _.name the name of the asset
47
+ * @param _.node the preset node
48
+ * @param _.context the context in which the node is being resolved
49
+ * @param _.variables the variables to use during resolution
50
+ * @returns a promise that resolves to the RESOLVED asset
51
+ */
52
+ export async function resolveAsset(_) {
53
+ const { name, node, context, variables } = _;
54
+ const debug = Debug.extend(name).extend(node.definition.id);
55
+ debug(`RESOLVING ASSET ${name} (INITIAL PASS)`);
56
+ // resolve the initial value of the asset
57
+ const initial = await resolveNodeContent({
58
+ name,
59
+ node,
60
+ context,
61
+ variables,
62
+ select: ({ assets }) => resolveObject(assets, { ...context, variables })?.[name],
63
+ });
64
+ debug(`RESOLVED ASSET ${name} (INITIAL PASS)\n${prefixDisplay('└─ ', initial)}`);
65
+ debug(`RESOLVING ASSET ${name} (FINAL PASS)`);
66
+ // resolve the final value of the asset, considering overrides
67
+ const final = await resolveNodeContent({
68
+ name,
69
+ node,
70
+ context,
71
+ initial,
72
+ variables,
73
+ select: ({ override }) => resolveObject(override?.assets, { ...context, variables })?.[name],
74
+ });
75
+ debug(`RESOLVED ASSET ${name} (FINAL PASS)\n${prefixDisplay('└─ ', final)}`);
76
+ return final;
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcHJlc2V0L3Jlc29sdXRpb24vYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFXOUM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFnQixFQUNoQixPQUE2QjtJQUU3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDcEQsTUFBTSxNQUFNLEdBQ1YsY0FBYyxZQUFZLFFBQVE7UUFDaEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDekIsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUVyQixPQUFPO1FBQ0wsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUNULEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvRCxDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxJQUFnQixFQUNoQixPQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLGlDQUFpQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV4RCxtQ0FBbUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRWhDLDZDQUE2QztJQUM3QyxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLElBQUk7UUFDSixNQUFNLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0tBQ3ZELENBQUMsQ0FDSCxDQUNzQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUFDLENBS2xDO0lBQ0MsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVELEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhELHlDQUF5QztJQUN6QyxNQUFNLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLFNBQVM7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDckIsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDM0QsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUNILGtCQUFrQixJQUFJLG9CQUFvQixhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQzFFLENBQUM7SUFFRixLQUFLLENBQUMsbUJBQW1CLElBQUksZUFBZSxDQUFDLENBQUM7SUFFOUMsOERBQThEO0lBQzlELE1BQU0sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQXNCO1FBQzFELElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLE9BQU87UUFDUCxTQUFTO1FBQ1QsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQ3ZCLGFBQWEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztLQUNyRSxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUMsa0JBQWtCLElBQUksa0JBQWtCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTdFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyJ9
@@ -0,0 +1,37 @@
1
+ import type { PresetContent, PresetContext, PresetDefinition, PresetNode, Variables } from 'presetter-types';
2
+ /**
3
+ * loads a potentially dynamic content
4
+ * @param _ collection of arguments
5
+ * @param _.content content to be loaded
6
+ * @param _.current the current content
7
+ * @param _.variables the variables to use during resolution
8
+ * @param _.context the context in which the content is being resolved
9
+ * @returns a promise that resolves to the RESOLVED content
10
+ */
11
+ export declare function resolveContent<T>(_: {
12
+ content?: PresetContent<T>;
13
+ current?: T | null;
14
+ variables?: Variables;
15
+ context: PresetContext;
16
+ }): Promise<T | null | undefined>;
17
+ /**
18
+ * resolves the content of a node within a preset
19
+ * @template T the type of the content to be resolved
20
+ * @param _ collection of arguments
21
+ * @param _.name the name of the preset being resolved
22
+ * @param _.node the node to resolve
23
+ * @param _.context the context in which the node is being resolved
24
+ * @param _.initial an optional initial value to start the resolution with
25
+ * @param _.variables an optional record of variables to use during resolution
26
+ * @param _.select a function to select the content definition from the preset definition
27
+ * @returns a promise that resolves to the RESOLVED content of the node, which can be of type `T`, `null`, or `undefined`
28
+ */
29
+ export declare function resolveNodeContent<T>(_: {
30
+ name: string;
31
+ node: PresetNode;
32
+ context: PresetContext;
33
+ initial?: T | null;
34
+ variables?: Variables;
35
+ select: (definition: PresetDefinition) => PresetContent<T> | undefined;
36
+ }): Promise<T | null | undefined>;
37
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/content.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAchC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CA8BhC"}
@@ -0,0 +1,55 @@
1
+ import { loadFile } from '../../io.js';
2
+ import { merge } from '../../template/index.js';
3
+ import { prefixDisplay } from '../../utilities/index.js';
4
+ import Debug from './debugger.js';
5
+ /**
6
+ * loads a potentially dynamic content
7
+ * @param _ collection of arguments
8
+ * @param _.content content to be loaded
9
+ * @param _.current the current content
10
+ * @param _.variables the variables to use during resolution
11
+ * @param _.context the context in which the content is being resolved
12
+ * @returns a promise that resolves to the RESOLVED content
13
+ */
14
+ export async function resolveContent(_) {
15
+ const { content, current, variables = {}, context } = _;
16
+ // if content is a function, call it with the current content and context
17
+ if (content instanceof Function) {
18
+ return content(current, { ...context, variables });
19
+ }
20
+ // if content is a string, load the file content
21
+ const resolvedContent = typeof content === 'string' ? loadFile(content, variables) : content;
22
+ // merge the current content with the RESOLVED content
23
+ return merge(current, resolvedContent);
24
+ }
25
+ /**
26
+ * resolves the content of a node within a preset
27
+ * @template T the type of the content to be resolved
28
+ * @param _ collection of arguments
29
+ * @param _.name the name of the preset being resolved
30
+ * @param _.node the node to resolve
31
+ * @param _.context the context in which the node is being resolved
32
+ * @param _.initial an optional initial value to start the resolution with
33
+ * @param _.variables an optional record of variables to use during resolution
34
+ * @param _.select a function to select the content definition from the preset definition
35
+ * @returns a promise that resolves to the RESOLVED content of the node, which can be of type `T`, `null`, or `undefined`
36
+ */
37
+ export async function resolveNodeContent(_) {
38
+ const { name, node, context, initial, variables, select } = _;
39
+ const { definition, nodes } = node;
40
+ const debug = Debug.extend(name).extend(node.definition.id);
41
+ debug(`INCOMING (${name})\n${prefixDisplay('└─ ', initial)}`);
42
+ const current = await nodes.reduce(async (merged, node) => {
43
+ const initial = await merged;
44
+ const next = await resolveNodeContent({ ..._, node, initial });
45
+ return merge(initial, next);
46
+ }, initial);
47
+ // select the content from the definition
48
+ const content = select(definition);
49
+ debug(`COMBINING (${name})\n${prefixDisplay('└─ ', current)}\n${prefixDisplay('└─ ', content)}`);
50
+ // resolve dynamic content
51
+ const out = await resolveContent({ content, current, variables, context });
52
+ debug(`RETURNING (${name})\n${prefixDisplay('└─ ', out)}`);
53
+ return out;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9wcmVzZXQvcmVzb2x1dGlvbi9jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFVL0I7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBSSxDQUt2QztJQUNDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXhELHlFQUF5RTtJQUN6RSxJQUFJLE9BQU8sWUFBWSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsTUFBTSxlQUFlLEdBQ25CLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRTlFLHNEQUFzRDtJQUN0RCxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUF5QixDQUFDO0FBQ2pFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUksQ0FPM0M7SUFDQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1RCxLQUFLLENBQUMsYUFBYSxJQUFJLE1BQU0sYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFOUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUNoQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUUvRCxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUF5QixDQUFDO0lBQ3RELENBQUMsRUFDRCxPQUF3QyxDQUN6QyxDQUFDO0lBRUYseUNBQXlDO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVuQyxLQUFLLENBQ0gsY0FBYyxJQUFJLE1BQU0sYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQzFGLENBQUM7SUFFRiwwQkFBMEI7SUFDMUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxjQUFjLENBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTlFLEtBQUssQ0FBQyxjQUFjLElBQUksTUFBTSxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ declare const _default: import("debug").Debugger;
2
+ export default _default;
3
+ //# sourceMappingURL=debugger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/debugger.ts"],"names":[],"mappings":";AAEA,wBAA0C"}
@@ -0,0 +1,3 @@
1
+ import Debug from '../../debugger.js';
2
+ export default Debug.extend('resolution');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcHJlc2V0L3Jlc29sdXRpb24vZGVidWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsZUFBZSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDIn0=
@@ -0,0 +1,6 @@
1
+ export * from './asset.js';
2
+ export * from './object.js';
3
+ export * from './preset.js';
4
+ export * from './script.js';
5
+ export * from './variable.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /* v8 ignore start */
2
+ export * from './asset.js';
3
+ export * from './object.js';
4
+ export * from './preset.js';
5
+ export * from './script.js';
6
+ export * from './variable.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcHJlc2V0L3Jlc29sdXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBRXJCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import type { PresetContentContext, PresetObject } from 'presetter-types';
2
+ /**
3
+ * resolve an object
4
+ * @param object the object to resolve
5
+ * @param context the context in which the object is being resolved
6
+ * @returns the resolved object
7
+ */
8
+ export declare function resolveObject<T>(object: PresetObject<T>, context: PresetContentContext): T;
9
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,oBAAoB,GAC5B,CAAC,CAEH"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * resolve an object
3
+ * @param object the object to resolve
4
+ * @param context the context in which the object is being resolved
5
+ * @returns the resolved object
6
+ */
7
+ export function resolveObject(object, context) {
8
+ return object instanceof Function ? object(context) : object;
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL29iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE1BQXVCLEVBQ3ZCLE9BQTZCO0lBRTdCLE9BQU8sTUFBTSxZQUFZLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDL0QsQ0FBQyJ9
@@ -0,0 +1,9 @@
1
+ import type { Preset, PresetContext, PresetNode } from 'presetter-types';
2
+ /**
3
+ * resolve a preset
4
+ * @param preset the preset to resolve
5
+ * @param context the context in which the preset is being resolved
6
+ * @returns the resolved preset node
7
+ */
8
+ export declare function resolvePreset(preset: Preset, context: PresetContext): Promise<PresetNode>;
9
+ //# sourceMappingURL=preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/preset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
@@ -0,0 +1,17 @@
1
+ import debug from './debugger.js';
2
+ /**
3
+ * resolve a preset
4
+ * @param preset the preset to resolve
5
+ * @param context the context in which the preset is being resolved
6
+ * @returns the resolved preset node
7
+ */
8
+ export async function resolvePreset(preset, context) {
9
+ debug(`resolving node ${preset.id}`);
10
+ const definition = preset instanceof Function
11
+ ? { id: preset.id, ...(await preset(context)) }
12
+ : preset;
13
+ const nodes = await Promise.all((definition.extends ?? []).map(async (preset) => resolvePreset(preset, context)));
14
+ debug(`preset ${preset.id} resolved`);
15
+ return { definition, nodes };
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL3ByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0I7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsTUFBYyxFQUNkLE9BQXNCO0lBRXRCLEtBQUssQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckMsTUFBTSxVQUFVLEdBQ2QsTUFBTSxZQUFZLFFBQVE7UUFDeEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7UUFDL0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUViLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDN0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDOUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FDL0IsQ0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLFVBQVUsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMvQixDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import type { PresetContext, PresetNode, Scripts } from 'presetter-types';
2
+ /**
3
+ * resolves all scripts for a given preset node
4
+ * @param node the preset node
5
+ * @param context the context in which the node is being resolved
6
+ * @returns a promise that resolves to the RESOLVED scripts
7
+ */
8
+ export declare function resolveScripts(node: PresetNode, context: PresetContext): Promise<Scripts>;
9
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/script.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CAoClB"}
@@ -0,0 +1,39 @@
1
+ import { substitute } from '../../template/index.js';
2
+ import { resolveNodeContent } from './content.js';
3
+ import Debug from './debugger.js';
4
+ import { resolveVariables } from './variable.js';
5
+ /**
6
+ * resolves all scripts for a given preset node
7
+ * @param node the preset node
8
+ * @param context the context in which the node is being resolved
9
+ * @returns a promise that resolves to the RESOLVED scripts
10
+ */
11
+ export async function resolveScripts(node, context) {
12
+ const name = 'SCRIPTS';
13
+ const debug = Debug.extend(name);
14
+ // resolve variables for the node
15
+ const variables = await resolveVariables(node, context);
16
+ debug('RESOLVING SCRIPTS (INITIAL PASS)');
17
+ // resolve the initial value of the scripts
18
+ const initial = await resolveNodeContent({
19
+ name,
20
+ node,
21
+ context,
22
+ variables,
23
+ select: ({ scripts }) => scripts,
24
+ });
25
+ debug('RESOLVED SCRIPTS (INITIAL PASS)\n%O', initial);
26
+ debug('RESOLVING SCRIPTS (FINAL PASS)');
27
+ // resolve the final value of the scripts, considering overrides
28
+ const final = (await resolveNodeContent({
29
+ name,
30
+ node,
31
+ context,
32
+ initial,
33
+ variables,
34
+ select: ({ override }) => override?.scripts,
35
+ })) ?? {};
36
+ debug('RESOLVED SCRIPTS (FINAL PASS)\n%O', final);
37
+ return substitute(final, variables);
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL3NjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJOUM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBZ0IsRUFDaEIsT0FBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsaUNBQWlDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhELEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBRTFDLDJDQUEyQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLFNBQVM7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPO0tBQ2pDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUV4QyxnRUFBZ0U7SUFDaEUsTUFBTSxLQUFLLEdBQ1QsQ0FBQyxNQUFNLGtCQUFrQixDQUFDO1FBQ3hCLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLE9BQU87UUFDUCxTQUFTO1FBQ1QsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU87S0FDNUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRVosS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRWxELE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN0QyxDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import type { PresetContext, PresetNode, Variables } from 'presetter-types';
2
+ /**
3
+ * resolves all variables for a given preset node
4
+ * @param node the preset node
5
+ * @param context the context in which the node is being resolved
6
+ * @returns a promise that resolves to the RESOLVED variables
7
+ */
8
+ export declare function resolveVariables(node: PresetNode, context: PresetContext): Promise<Variables>;
9
+ //# sourceMappingURL=variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/variable.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CA+BpB"}