presetter 4.7.2 → 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 (134) hide show
  1. package/README.md +5 -5
  2. package/lib/debugger.d.ts +4 -0
  3. package/lib/debugger.d.ts.map +1 -0
  4. package/lib/debugger.js +4 -0
  5. package/lib/executable/entry.d.ts.map +1 -1
  6. package/lib/executable/entry.js +4 -43
  7. package/lib/executable/error.d.ts.map +1 -1
  8. package/lib/executable/error.js +1 -16
  9. package/lib/executable/index.js +2 -16
  10. package/lib/index.d.ts +4 -5
  11. package/lib/index.d.ts.map +1 -1
  12. package/lib/index.js +6 -21
  13. package/lib/io.d.ts +8 -42
  14. package/lib/io.d.ts.map +1 -1
  15. package/lib/io.js +24 -156
  16. package/lib/package.d.ts +2 -2
  17. package/lib/package.d.ts.map +1 -1
  18. package/lib/package.js +5 -20
  19. package/lib/preset/bootstrap.d.ts +5 -0
  20. package/lib/preset/bootstrap.d.ts.map +1 -0
  21. package/lib/preset/bootstrap.js +32 -0
  22. package/lib/preset/config/index.d.ts +3 -0
  23. package/lib/preset/config/index.d.ts.map +1 -0
  24. package/lib/preset/config/index.js +4 -0
  25. package/lib/preset/config/resolve.d.ts +8 -0
  26. package/lib/preset/config/resolve.d.ts.map +1 -0
  27. package/lib/preset/config/resolve.js +25 -0
  28. package/lib/preset/config/search.d.ts +7 -0
  29. package/lib/preset/config/search.d.ts.map +1 -0
  30. package/lib/preset/config/search.js +25 -0
  31. package/lib/preset/context.d.ts +2 -1
  32. package/lib/preset/context.d.ts.map +1 -1
  33. package/lib/preset/context.js +5 -24
  34. package/lib/preset/index.d.ts +5 -2
  35. package/lib/preset/index.d.ts.map +1 -1
  36. package/lib/preset/index.js +7 -18
  37. package/lib/preset/project.d.ts +8 -0
  38. package/lib/preset/project.d.ts.map +1 -0
  39. package/lib/preset/project.js +28 -0
  40. package/lib/preset/resolution/asset.d.ts +31 -0
  41. package/lib/preset/resolution/asset.d.ts.map +1 -0
  42. package/lib/preset/resolution/asset.js +78 -0
  43. package/lib/preset/resolution/content.d.ts +37 -0
  44. package/lib/preset/resolution/content.d.ts.map +1 -0
  45. package/lib/preset/resolution/content.js +55 -0
  46. package/lib/preset/resolution/debugger.d.ts +3 -0
  47. package/lib/preset/resolution/debugger.d.ts.map +1 -0
  48. package/lib/preset/resolution/debugger.js +3 -0
  49. package/lib/preset/resolution/index.d.ts +6 -0
  50. package/lib/preset/resolution/index.d.ts.map +1 -0
  51. package/lib/preset/resolution/index.js +7 -0
  52. package/lib/preset/resolution/object.d.ts +9 -0
  53. package/lib/preset/resolution/object.d.ts.map +1 -0
  54. package/lib/preset/resolution/object.js +10 -0
  55. package/lib/preset/resolution/preset.d.ts +9 -0
  56. package/lib/preset/resolution/preset.d.ts.map +1 -0
  57. package/lib/preset/resolution/preset.js +17 -0
  58. package/lib/preset/resolution/script.d.ts +9 -0
  59. package/lib/preset/resolution/script.d.ts.map +1 -0
  60. package/lib/preset/resolution/script.js +39 -0
  61. package/lib/preset/resolution/variable.d.ts +9 -0
  62. package/lib/preset/resolution/variable.d.ts.map +1 -0
  63. package/lib/preset/resolution/variable.js +33 -0
  64. package/lib/preset/scripts.d.ts.map +1 -1
  65. package/lib/preset/scripts.js +6 -20
  66. package/lib/resolve.d.ts +7 -0
  67. package/lib/resolve.d.ts.map +1 -0
  68. package/lib/resolve.js +27 -0
  69. package/lib/run.d.ts.map +1 -1
  70. package/lib/run.js +7 -19
  71. package/lib/scripts.d.ts.map +1 -1
  72. package/lib/scripts.js +8 -19
  73. package/lib/serialization.d.ts +15 -0
  74. package/lib/serialization.d.ts.map +1 -0
  75. package/lib/serialization.js +48 -0
  76. package/lib/task.d.ts.map +1 -1
  77. package/lib/task.js +5 -17
  78. package/lib/template/index.d.ts +3 -0
  79. package/lib/template/index.d.ts.map +1 -0
  80. package/lib/template/index.js +4 -0
  81. package/lib/template/merge.d.ts +33 -0
  82. package/lib/template/merge.d.ts.map +1 -0
  83. package/lib/template/merge.js +84 -0
  84. package/lib/template/substitute.d.ts +11 -0
  85. package/lib/template/substitute.d.ts.map +1 -0
  86. package/lib/template/substitute.js +19 -0
  87. package/lib/utilities/display.d.ts +15 -0
  88. package/lib/utilities/display.d.ts.map +1 -0
  89. package/lib/utilities/display.js +51 -0
  90. package/lib/utilities/index.d.ts +3 -1
  91. package/lib/utilities/index.d.ts.map +1 -1
  92. package/lib/utilities/index.js +5 -17
  93. package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
  94. package/lib/utilities/mapping.d.ts.map +1 -0
  95. package/lib/utilities/mapping.js +10 -0
  96. package/lib/utilities/object.d.ts +20 -0
  97. package/lib/utilities/object.d.ts.map +1 -0
  98. package/lib/utilities/object.js +37 -0
  99. package/package.json +21 -16
  100. package/lib/content.d.ts +0 -123
  101. package/lib/content.d.ts.map +0 -1
  102. package/lib/content.js +0 -241
  103. package/lib/directive.d.ts +0 -34
  104. package/lib/directive.d.ts.map +0 -1
  105. package/lib/directive.js +0 -172
  106. package/lib/error.d.ts +0 -8
  107. package/lib/error.d.ts.map +0 -1
  108. package/lib/error.js +0 -32
  109. package/lib/preset/content.d.ts +0 -14
  110. package/lib/preset/content.d.ts.map +0 -1
  111. package/lib/preset/content.js +0 -32
  112. package/lib/preset/graph.d.ts +0 -22
  113. package/lib/preset/graph.d.ts.map +0 -1
  114. package/lib/preset/graph.js +0 -53
  115. package/lib/preset/mapping.d.ts +0 -9
  116. package/lib/preset/mapping.d.ts.map +0 -1
  117. package/lib/preset/mapping.js +0 -38
  118. package/lib/preset/presetterRC.d.ts +0 -25
  119. package/lib/preset/presetterRC.d.ts.map +0 -1
  120. package/lib/preset/presetterRC.js +0 -74
  121. package/lib/preset/setup.d.ts +0 -17
  122. package/lib/preset/setup.d.ts.map +0 -1
  123. package/lib/preset/setup.js +0 -80
  124. package/lib/preset/unset.d.ts +0 -5
  125. package/lib/preset/unset.d.ts.map +0 -1
  126. package/lib/preset/unset.js +0 -31
  127. package/lib/resolution.d.ts +0 -22
  128. package/lib/resolution.d.ts.map +0 -1
  129. package/lib/resolution.js +0 -61
  130. package/lib/template.d.ts +0 -64
  131. package/lib/template.d.ts.map +0 -1
  132. package/lib/template.js +0 -199
  133. package/lib/utilities/mapValues.d.ts.map +0 -1
  134. package/lib/utilities/mapValues.js +0 -24
@@ -0,0 +1,84 @@
1
+ import { isPlainObject } from '../utilities/index.js';
2
+ /**
3
+ * deep merge an object
4
+ * @param source default object if no additional property is supplied
5
+ * @param target properties to be merged with the default
6
+ * @returns merged object
7
+ */
8
+ export function merge(source, target) {
9
+ // LOGIC
10
+ // S\R | Array | Object | Primitive
11
+ // Array | EXTEND | AMEND | replace
12
+ // Object | replace | MERGE | replace
13
+ // Primitive | replace | replace | replace
14
+ if (source === target) {
15
+ // increase performance, especially for large objects, since no change is needed anyway
16
+ return source;
17
+ }
18
+ else if (Array.isArray(source)) {
19
+ return mergeArray(source, target);
20
+ }
21
+ else if (isPlainObject(source)) {
22
+ return mergeObject(source, target);
23
+ }
24
+ // NOTE:
25
+ // if target is undefined, return the source
26
+ // otherwise, return the target, even it is null
27
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
28
+ return (target === undefined ? source : target);
29
+ }
30
+ /**
31
+ * merge an array with any value
32
+ * @param source the source array to be merged
33
+ * @param target new replacement
34
+ * @returns merged value
35
+ */
36
+ export function mergeArray(source, target) {
37
+ // NOTE
38
+ // merging can only be done in two ways:
39
+ // 1. the target is also an array, then merge the two arrays
40
+ // 2. the target is an object with numeric keys representing the index of the value to be merged
41
+ if (Array.isArray(target)) {
42
+ return mergeArrays(source, target);
43
+ }
44
+ else if (isPlainObject(target) &&
45
+ [...Object.keys(target)].every((key) => parseInt(key) >= 0)) {
46
+ return [...source].map((value, key) => merge(value, target[key]));
47
+ }
48
+ // if a merge isn't possible return the replacement or the original if no replacement is found
49
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
50
+ return (target === undefined ? source : target);
51
+ }
52
+ /**
53
+ * merge two arrays
54
+ * @param source the source array to be merged
55
+ * @param target new replacement
56
+ * @returns merged array
57
+ */
58
+ export function mergeArrays(source, target) {
59
+ return [...new Set([...source, ...target])];
60
+ }
61
+ /**
62
+ * merge an object with any value
63
+ * @param source the source object to be merged
64
+ * @param target new replacement
65
+ * @returns merged value
66
+ */
67
+ export function mergeObject(source, target) {
68
+ if (isPlainObject(target)) {
69
+ // merge two objects together
70
+ const mergedSource = Object.fromEntries(Object.entries(source).map(([key, value]) => [
71
+ key,
72
+ merge(value, target[key]),
73
+ ]));
74
+ return {
75
+ ...mergedSource,
76
+ ...target,
77
+ ...mergedSource,
78
+ };
79
+ }
80
+ // otherwise replace the source with target
81
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
82
+ return (target === undefined ? source : target);
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdGVtcGxhdGUvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQWtCN0M7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFPLE1BQVMsRUFBRSxNQUFVO0lBQy9DLFFBQVE7SUFDUiw0Q0FBNEM7SUFDNUMsMENBQTBDO0lBQzFDLDBDQUEwQztJQUMxQywwQ0FBMEM7SUFFMUMsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDdEIsdUZBQXVGO1FBQ3ZGLE9BQU8sTUFBMEIsQ0FBQztJQUNwQyxDQUFDO1NBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBcUIsQ0FBQztJQUN4RCxDQUFDO1NBQU0sSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFxQixDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO0lBQ1IsNENBQTRDO0lBQzVDLGdEQUFnRDtJQUNoRCx3RUFBd0U7SUFDeEUsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFxQixDQUFDO0FBQ3RFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQU8sTUFBVyxFQUFFLE1BQVU7SUFDdEQsT0FBTztJQUNQLHdDQUF3QztJQUN4Qyw0REFBNEQ7SUFDNUQsZ0dBQWdHO0lBRWhHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXdCLENBQUM7SUFDNUQsQ0FBQztTQUFNLElBQ0wsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMzRCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3BDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUMzQixDQUFDO0lBRUQsOEZBQThGO0lBQzlGLHdFQUF3RTtJQUN4RSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsTUFBVyxFQUNYLE1BQVc7SUFFWCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBMEIsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixNQUFTLEVBQ1QsTUFBVTtJQUVWLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsNkJBQTZCO1FBQzdCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLEdBQUc7WUFDSCxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQixDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLFlBQVk7WUFDZixHQUFJLE1BQWlCO1lBQ3JCLEdBQUcsWUFBWTtTQUNJLENBQUM7SUFDeEIsQ0FBQztJQUVELDJDQUEyQztJQUMzQyx3RUFBd0U7SUFDeEUsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFxQixDQUFDO0FBQ3RFLENBQUMifQ==
@@ -0,0 +1,11 @@
1
+ import type { Variables } from 'presetter-types';
2
+ /**
3
+ * replace parameters in the template
4
+ * @param content template content
5
+ * @param variables variables to be substituted in the template
6
+ * @returns customized configuration
7
+ */
8
+ export declare function substitute(content: string, variables: Variables): string;
9
+ export declare function substitute<Content extends Record<string, unknown> | unknown[]>(content: Content, variables: Variables): Content;
10
+ export declare function substitute(content: unknown, variables: Variables): unknown;
11
+ //# sourceMappingURL=substitute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substitute.d.ts","sourceRoot":"","sources":["../../source/template/substitute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;AAC1E,wBAAgB,UAAU,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,EAC5E,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;AACX,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC"}
@@ -0,0 +1,19 @@
1
+ import pupa from 'pupa';
2
+ import { isJsonObject } from '../utilities/index.js';
3
+ export function substitute(content, variables) {
4
+ if (typeof content === 'string') {
5
+ return pupa(content, variables, { ignoreMissing: true });
6
+ }
7
+ else if (Array.isArray(content)) {
8
+ return content.map((value) => substitute(value, variables));
9
+ }
10
+ else if (isJsonObject(content)) {
11
+ return Object.fromEntries(Object.entries(content).map(([key, value]) => {
12
+ return [substitute(key, variables), substitute(value, variables)];
13
+ }));
14
+ }
15
+ else {
16
+ return content;
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic3RpdHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90ZW1wbGF0ZS9zdWJzdGl0dXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBZ0I1QyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWdCLEVBQUUsU0FBb0I7SUFDL0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7U0FBTSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,15 @@
1
+ /**
2
+ * displays the content of a variable
3
+ * @param content the content to display
4
+ * @param level the level of nesting
5
+ * @returns a string representation of the content
6
+ */
7
+ export declare function display(content: unknown, level?: number): string;
8
+ /**
9
+ * displays the content of a variable with a prefix
10
+ * @param prefix the prefix to add to the display
11
+ * @param content the content to display
12
+ * @returns a string representation of the content with the prefix
13
+ */
14
+ export declare function prefixDisplay(prefix: string, content: unknown): string;
15
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../source/utilities/display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,MAAM,CA6B3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAWtE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * displays the content of a variable
3
+ * @param content the content to display
4
+ * @param level the level of nesting
5
+ * @returns a string representation of the content
6
+ */
7
+ export function display(content, level = 0) {
8
+ if (typeof content === 'function') {
9
+ return 'Function';
10
+ }
11
+ else if (Array.isArray(content)) {
12
+ return `Array(${content.length})`;
13
+ }
14
+ else if (content instanceof Buffer) {
15
+ return 'Buffer';
16
+ }
17
+ else if (content === null) {
18
+ return 'null';
19
+ }
20
+ else if (typeof content === 'object') {
21
+ return `Object({${level > 1
22
+ ? '...' // skip displaying nested objects
23
+ : '\n' +
24
+ Object.keys(content)
25
+ .map((key) =>
26
+ // indent the content based on the level
27
+ ' '.repeat(level + 1) +
28
+ `${key}: ` +
29
+ display(content[key], level + 1))
30
+ .join('\n') +
31
+ '\n' +
32
+ ' '.repeat(level)}})`;
33
+ }
34
+ return typeof content;
35
+ }
36
+ /**
37
+ * displays the content of a variable with a prefix
38
+ * @param prefix the prefix to add to the display
39
+ * @param content the content to display
40
+ * @returns a string representation of the content with the prefix
41
+ */
42
+ export function prefixDisplay(prefix, content) {
43
+ const representation = display(content);
44
+ const indent = ' '.repeat(prefix.length);
45
+ return (prefix +
46
+ representation
47
+ .split('\n')
48
+ .join('\n' + indent)
49
+ .trim());
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS91dGlsaXRpZXMvZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBZ0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUNqRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLFNBQVMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQ3BDLENBQUM7U0FBTSxJQUFJLE9BQU8sWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztTQUFNLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkMsT0FBTyxXQUNMLEtBQUssR0FBRyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUM7WUFDekMsQ0FBQyxDQUFDLElBQUk7Z0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQ2pCLEdBQUcsQ0FDRixDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLHdDQUF3QztnQkFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUN0QixHQUFHLEdBQUcsSUFBSTtvQkFDVixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FDbkM7cUJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDYixJQUFJO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN2QixJQUFJLENBQUM7SUFDUCxDQUFDO0lBRUQsT0FBTyxPQUFPLE9BQU8sQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWMsRUFBRSxPQUFnQjtJQUM1RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekMsT0FBTyxDQUNMLE1BQU07UUFDTixjQUFjO2FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO2FBQ25CLElBQUksRUFBRSxDQUNWLENBQUM7QUFDSixDQUFDIn0=
@@ -1,2 +1,4 @@
1
- export * from './mapValues.js';
1
+ export * from './display.js';
2
+ export * from './mapping.js';
3
+ export * from './object.js';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/utilities/index.ts"],"names":[],"mappings":"AAiBA,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/utilities/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -1,17 +1,5 @@
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 utility functions
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2023 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- /* istanbul ignore file */
16
- export * from './mapValues.js';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCwwQkFBMEI7QUFFMUIsY0FBYyxhQUFhLENBQUMifQ==
1
+ /* v8 ignore start */
2
+ export * from './display.js';
3
+ export * from './mapping.js';
4
+ export * from './object.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQjtBQUVyQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQyJ9
@@ -5,4 +5,4 @@
5
5
  * @returns the mapped object
6
6
  */
7
7
  export declare function mapValues<T, U>(obj: Record<string, T>, fn: (value: T) => U): Record<string, U>;
8
- //# sourceMappingURL=mapValues.d.ts.map
8
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../source/utilities/mapping.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * map the values of an object to a new object with the same keys
3
+ * @param obj the object to be mapped
4
+ * @param fn the mapping function
5
+ * @returns the mapped object
6
+ */
7
+ export function mapValues(obj, fn) {
8
+ return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS91dGlsaXRpZXMvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQ3ZCLEdBQXNCLEVBQ3RCLEVBQW1CO0lBRW5CLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDNUQsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,20 @@
1
+ import type { JsonObject, JsonValue } from 'type-fest';
2
+ /**
3
+ * indicate whether the supplied value is a JSON object
4
+ * @param subject the subject to be tested
5
+ * @returns true if the subject is a JSON object
6
+ */
7
+ export declare function isJsonObject(subject: unknown): subject is JsonObject;
8
+ /**
9
+ * check if value is JSON compatible
10
+ * @param subject value to be checked
11
+ * @returns true if the value is JSON compatible
12
+ */
13
+ export declare function isJsonCompatible(subject: unknown): subject is JsonValue;
14
+ /**
15
+ * indicates whether the target is a plain object
16
+ * @param subject target to be checked
17
+ * @returns true if the target is a plain object
18
+ */
19
+ export declare function isPlainObject(subject: unknown): subject is Record<string, unknown>;
20
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../source/utilities/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAOpE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,SAAS,CASvE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQpC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * indicate whether the supplied value is a JSON object
3
+ * @param subject the subject to be tested
4
+ * @returns true if the subject is a JSON object
5
+ */
6
+ export function isJsonObject(subject) {
7
+ return (typeof subject === 'object' &&
8
+ !Array.isArray(subject) &&
9
+ subject !== null &&
10
+ isJsonCompatible(subject));
11
+ }
12
+ /**
13
+ * check if value is JSON compatible
14
+ * @param subject value to be checked
15
+ * @returns true if the value is JSON compatible
16
+ */
17
+ export function isJsonCompatible(subject) {
18
+ return (typeof subject === 'string' ||
19
+ typeof subject === 'number' ||
20
+ typeof subject === 'boolean' ||
21
+ subject === null ||
22
+ (Array.isArray(subject) && subject.every(isJsonCompatible)) ||
23
+ (isPlainObject(subject) && Object.values(subject).every(isJsonCompatible)));
24
+ }
25
+ /**
26
+ * indicates whether the target is a plain object
27
+ * @param subject target to be checked
28
+ * @returns true if the target is a plain object
29
+ */
30
+ export function isPlainObject(subject) {
31
+ return (!!subject &&
32
+ typeof subject === 'object' &&
33
+ (Object.getPrototypeOf(subject)?.constructor ===
34
+ Object ||
35
+ Object.getPrototypeOf(subject) === null));
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3V0aWxpdGllcy9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZ0I7SUFDM0MsT0FBTyxDQUNMLE9BQU8sT0FBTyxLQUFLLFFBQVE7UUFDM0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN2QixPQUFPLEtBQUssSUFBSTtRQUNoQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQWdCO0lBQy9DLE9BQU8sQ0FDTCxPQUFPLE9BQU8sS0FBSyxRQUFRO1FBQzNCLE9BQU8sT0FBTyxLQUFLLFFBQVE7UUFDM0IsT0FBTyxPQUFPLEtBQUssU0FBUztRQUM1QixPQUFPLEtBQUssSUFBSTtRQUNoQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBZ0I7SUFFaEIsT0FBTyxDQUNMLENBQUMsQ0FBQyxPQUFPO1FBQ1QsT0FBTyxPQUFPLEtBQUssUUFBUTtRQUMzQixDQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFtQixFQUFFLFdBQVc7WUFDN0QsTUFBTTtZQUNOLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQzNDLENBQUM7QUFDSixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "presetter",
3
- "version": "4.7.2",
3
+ "version": "6.0.0",
4
4
  "engines": {
5
5
  "node": ">=16.0.0"
6
6
  },
@@ -34,39 +34,44 @@
34
34
  "url": "git+https://github.com/alvis/presetter.git"
35
35
  },
36
36
  "devDependencies": {
37
+ "@types/debug": "^4.0.0",
37
38
  "@types/js-yaml": "^4.0.0",
38
39
  "@types/node": "*",
39
40
  "@types/yargs": "^17.0.0",
40
- "type-fest": "^3.12.0",
41
- "presetter-preset-strict": "4.7.2"
41
+ "type-fest": "^4.23.0",
42
+ "presetter-preset-esm": "6.0.0",
43
+ "presetter-preset-strict": "6.0.0",
44
+ "presetter-preset-essentials": "6.0.0"
42
45
  },
43
46
  "dependencies": {
44
- "@npmcli/arborist": "^6.0.0",
45
- "@npmcli/config": "^6.0.0",
46
- "@npmcli/run-script": "^6.0.0",
47
- "callsite-record": "^4.0.0",
48
- "chalk": "^5.2.0",
49
- "execa": "^7.1.0",
47
+ "@npmcli/arborist": "^8.0.0",
48
+ "@npmcli/config": "^9.0.0",
49
+ "@npmcli/run-script": "^9.0.0",
50
+ "callsite-record": "^4.1.0",
51
+ "chalk": "^5.3.0",
52
+ "debug": "^4.3.5",
53
+ "execa": "^9.3.0",
54
+ "jiti": "^2.4.0",
50
55
  "js-yaml": "^4.1.0",
51
- "listr2": "^6.6.0",
56
+ "listr2": "^8.2.0",
52
57
  "mvdan-sh": "^0.10.0",
53
58
  "pupa": "^3.1.0",
54
- "read-pkg": "^8.0.0",
55
- "read-pkg-up": "^9.1.0",
59
+ "read-pkg": "^9.0.0",
60
+ "read-pkg-up": "^11.0.0",
56
61
  "resolve-pkg": "^2.0.0",
57
62
  "source-map-support": "^0.5.0",
58
- "write-pkg": "^5.1.0",
63
+ "write-pkg": "^7.0.0",
59
64
  "yargs": "^17.0.0",
60
65
  "yargs-parser": "^21.0.0",
61
- "presetter-types": "4.7.2"
66
+ "xception": "^6.0.0",
67
+ "presetter-types": "6.0.0"
62
68
  },
63
69
  "scripts": {
64
- "bootstrap": "tsx --eval \"require('./source/preset').bootstrapPreset()\" && npm run prepare",
65
70
  "build": "npm run script -- build",
66
71
  "clean": "npm run script -- clean",
67
72
  "coverage": "npm run script -- coverage --",
68
73
  "lint": "npm run script -- lint",
69
- "script": "tsx --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; require('./source/executable');\" -- run --template",
74
+ "script": "tsx --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; import('./source/executable/index.ts');\" -- run --template",
70
75
  "stage": "npm run script -- stage --",
71
76
  "test": "npm run script -- test --",
72
77
  "watch": "npm run script -- watch --"
package/lib/content.d.ts DELETED
@@ -1,123 +0,0 @@
1
- import type { Config, PresetContext, PresetGraph, PresetNode, PresetterConfig, ResolvedPresetContext, Template } from 'presetter-types';
2
- /**
3
- * enrich the context with the resolved supplementary assets
4
- * @param _ collection of arguments
5
- * @param _.graph preset graph
6
- * @param _.context preset context
7
- * @returns enriched preset context
8
- */
9
- export declare function resolveContext(_: {
10
- graph: PresetGraph;
11
- context: PresetContext;
12
- }): Promise<ResolvedPresetContext>;
13
- /**
14
- * resolve no noSymlinks
15
- * @param _ collection of arguments
16
- * @param _.graph preset graph
17
- * @param _.context preset context
18
- * @returns list of noSymlinks
19
- */
20
- export declare function resolveNoSymlinks(_: {
21
- graph: PresetGraph;
22
- context: ResolvedPresetContext<'variable'>;
23
- }): Promise<string[]>;
24
- /**
25
- * compute the final config map
26
- * @param _ collection of arguments
27
- * @param _.graph preset graph
28
- * @param _.context preset context
29
- * @returns map of config content
30
- */
31
- export declare function resolveSupplementaryConfig(_: {
32
- graph: PresetGraph;
33
- context: ResolvedPresetContext<'variable'>;
34
- }): Promise<Record<string, Config>>;
35
- /**
36
- * compute the supplementary config map from a preset node
37
- * @param _ collection of arguments
38
- * @param _.node preset node
39
- * @param _.context preset context
40
- * @returns map of config content
41
- */
42
- export declare function resolveSupplementaryConfigFromNode(_: {
43
- node: PresetNode;
44
- context: ResolvedPresetContext<'variable'>;
45
- }): Promise<Record<string, Config>>;
46
- /**
47
- * compute script that will be merged with those provided by presets
48
- * @param _ collection of arguments
49
- * @param _.graph preset graph
50
- * @param _.context preset context
51
- * @returns map of config content
52
- */
53
- export declare function resolveSupplementaryScripts(_: {
54
- graph: PresetGraph;
55
- context: ResolvedPresetContext<'variable'>;
56
- }): Promise<Record<string, string>>;
57
- /**
58
- * compute the supplementary config map from a preset node
59
- * @param _ collection of arguments
60
- * @param _.node preset node
61
- * @param _.context preset context
62
- * @returns map of config content
63
- */
64
- export declare function resolveSupplementaryScriptsFromNode(_: {
65
- node: PresetNode;
66
- context: ResolvedPresetContext<'variable'>;
67
- }): Promise<Record<string, string>>;
68
- /**
69
- * combine default variables from presets with custom variables
70
- * @param _ collection of arguments
71
- * @param _.graph preset graph
72
- * @param _.config user config
73
- * @returns combined variables
74
- */
75
- export declare function resolveVariable(_: {
76
- graph: PresetGraph;
77
- config: PresetterConfig;
78
- }): Record<string, string>;
79
- /**
80
- * compute the final script map
81
- * @param _ collection of arguments
82
- * @param _.graph preset graph
83
- * @param _.context preset context
84
- * @returns map of script content
85
- */
86
- export declare function resolveScripts(_: {
87
- graph: PresetGraph;
88
- context: ResolvedPresetContext<'variable'>;
89
- }): Promise<Record<string, string>>;
90
- /**
91
- * compute the final script map from a preset node
92
- * @param _ collection of arguments
93
- * @param _.node preset node
94
- * @param _.context preset context
95
- * @returns map of script content
96
- */
97
- export declare function resolveScriptsFromNode(_: {
98
- node: PresetNode;
99
- context: ResolvedPresetContext<'variable'>;
100
- }): Promise<Record<string, string>>;
101
- /**
102
- * compute the final template content
103
- * @param _ collection of arguments
104
- * @param _.graph preset graph
105
- * @param _.context preset context
106
- * @returns map of template content
107
- */
108
- export declare function resolveTemplate(_: {
109
- graph: PresetGraph;
110
- context: ResolvedPresetContext;
111
- }): Promise<Record<string, Template>>;
112
- /**
113
- * compute the final template content from a preset node
114
- * @param _ collection of arguments
115
- * @param _.node preset node
116
- * @param _.context preset context
117
- * @returns map of template content
118
- */
119
- export declare function resolveTemplateFromNode(_: {
120
- node: PresetNode;
121
- context: ResolvedPresetContext;
122
- }): Promise<Record<string, Template>>;
123
- //# sourceMappingURL=content.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../source/content.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAEzB;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2BjC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE;IACzC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWpB;AA+BD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYlC;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CAAC,CAAC,EAAE;IAC1D,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBlC;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,CAAC,EAAE;IACnD,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYlC;AAED;;;;;;GAMG;AACH,wBAAsB,mCAAmC,CAAC,CAAC,EAAE;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBlC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;CACzB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzB;AAuBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAalC;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAAE;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBlC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CA0BpC;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAAE;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAsBpC"}