polen 0.8.0-next.7 → 0.8.0-next.9

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 (171) hide show
  1. package/build/api/api.d.ts +4 -0
  2. package/build/api/api.d.ts.map +1 -0
  3. package/build/api/api.js +4 -0
  4. package/build/api/api.js.map +1 -0
  5. package/build/api/{build/build.d.ts → builder/builder.d.ts} +3 -3
  6. package/build/api/builder/builder.d.ts.map +1 -0
  7. package/build/api/{build/build.js → builder/builder.js} +11 -14
  8. package/build/api/builder/builder.js.map +1 -0
  9. package/build/api/builder/index.d.ts +2 -0
  10. package/build/api/builder/index.d.ts.map +1 -0
  11. package/build/api/builder/index.js +2 -0
  12. package/build/api/builder/index.js.map +1 -0
  13. package/build/api/config/config.d.ts +5 -0
  14. package/build/api/config/config.d.ts.map +1 -0
  15. package/build/api/config/config.js +5 -0
  16. package/build/api/config/config.js.map +1 -0
  17. package/build/api/{configurator → config}/configurator.d.ts +13 -3
  18. package/build/api/config/configurator.d.ts.map +1 -0
  19. package/build/api/{configurator → config}/configurator.js +52 -28
  20. package/build/api/config/configurator.js.map +1 -0
  21. package/build/api/config/define.d.ts +7 -0
  22. package/build/api/config/define.d.ts.map +1 -0
  23. package/build/api/config/define.js +7 -0
  24. package/build/api/config/define.js.map +1 -0
  25. package/build/api/config/index.d.ts +2 -0
  26. package/build/api/config/index.d.ts.map +1 -0
  27. package/build/api/config/index.js +2 -0
  28. package/build/api/config/index.js.map +1 -0
  29. package/build/api/config/load.d.ts +11 -0
  30. package/build/api/config/load.d.ts.map +1 -0
  31. package/build/api/config/load.js +36 -0
  32. package/build/api/config/load.js.map +1 -0
  33. package/build/api/config/merge.d.ts +7 -0
  34. package/build/api/config/merge.d.ts.map +1 -0
  35. package/build/api/config/merge.js +54 -0
  36. package/build/api/config/merge.js.map +1 -0
  37. package/build/api/config-resolver/config-resolver.d.ts +3 -0
  38. package/build/api/config-resolver/config-resolver.d.ts.map +1 -0
  39. package/build/api/config-resolver/config-resolver.js +3 -0
  40. package/build/api/config-resolver/config-resolver.js.map +1 -0
  41. package/build/api/config-resolver/index.d.ts +2 -0
  42. package/build/api/config-resolver/index.d.ts.map +1 -0
  43. package/build/api/config-resolver/index.js +2 -0
  44. package/build/api/config-resolver/index.js.map +1 -0
  45. package/build/api/config-resolver/resolve.d.ts +16 -0
  46. package/build/api/config-resolver/resolve.d.ts.map +1 -0
  47. package/build/api/config-resolver/resolve.js +21 -0
  48. package/build/api/config-resolver/resolve.js.map +1 -0
  49. package/build/api/config-resolver/vite.d.ts +10 -0
  50. package/build/api/config-resolver/vite.d.ts.map +1 -0
  51. package/build/api/config-resolver/vite.js +18 -0
  52. package/build/api/config-resolver/vite.js.map +1 -0
  53. package/build/api/index.d.ts +2 -0
  54. package/build/api/index.d.ts.map +1 -0
  55. package/build/api/index.js +2 -0
  56. package/build/api/index.js.map +1 -0
  57. package/build/api/vite/plugins/build.d.ts +2 -2
  58. package/build/api/vite/plugins/build.d.ts.map +1 -1
  59. package/build/api/vite/plugins/build.js.map +1 -1
  60. package/build/api/vite/plugins/core.d.ts +2 -2
  61. package/build/api/vite/plugins/core.d.ts.map +1 -1
  62. package/build/api/vite/plugins/core.js +20 -8
  63. package/build/api/vite/plugins/core.js.map +1 -1
  64. package/build/api/vite/plugins/main.d.ts +2 -2
  65. package/build/api/vite/plugins/main.d.ts.map +1 -1
  66. package/build/api/vite/plugins/main.js +19 -18
  67. package/build/api/vite/plugins/main.js.map +1 -1
  68. package/build/api/vite/plugins/serve.d.ts +2 -2
  69. package/build/api/vite/plugins/serve.d.ts.map +1 -1
  70. package/build/api/vite/plugins/serve.js.map +1 -1
  71. package/build/cli/commands/$default.js +1 -1
  72. package/build/cli/commands/$default.js.map +1 -1
  73. package/build/cli/commands/build.js +3 -5
  74. package/build/cli/commands/build.js.map +1 -1
  75. package/build/cli/commands/dev.js +8 -15
  76. package/build/cli/commands/dev.js.map +1 -1
  77. package/build/cli/commands/open.js +2 -2
  78. package/build/cli/commands/open.js.map +1 -1
  79. package/build/cli/index.js +6 -0
  80. package/build/cli/index.js.map +1 -1
  81. package/build/exports/polen.d.ts +3 -3
  82. package/build/exports/polen.d.ts.map +1 -1
  83. package/build/exports/polen.js +3 -3
  84. package/build/exports/polen.js.map +1 -1
  85. package/build/lib/file-router/linter.js +2 -2
  86. package/build/lib/file-router/linter.js.map +1 -1
  87. package/build/lib/kit-temp.d.ts +5 -0
  88. package/build/lib/kit-temp.d.ts.map +1 -1
  89. package/build/lib/kit-temp.js +29 -0
  90. package/build/lib/kit-temp.js.map +1 -1
  91. package/build/lib/vite-plugin-mdx/index.d.ts +2 -0
  92. package/build/lib/vite-plugin-mdx/index.d.ts.map +1 -0
  93. package/build/lib/vite-plugin-mdx/index.js +4 -0
  94. package/build/lib/vite-plugin-mdx/index.js.map +1 -0
  95. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts +2 -0
  96. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts.map +1 -0
  97. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js +74 -0
  98. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js.map +1 -0
  99. package/build/lib/vite-plugins/vite-plugins.d.ts +0 -1
  100. package/build/lib/vite-plugins/vite-plugins.d.ts.map +1 -1
  101. package/build/lib/vite-plugins/vite-plugins.js +0 -1
  102. package/build/lib/vite-plugins/vite-plugins.js.map +1 -1
  103. package/build/lib/vite-virtual/identified-loader.d.ts.map +1 -1
  104. package/build/lib/vite-virtual/identified-loader.js +4 -0
  105. package/build/lib/vite-virtual/identified-loader.js.map +1 -1
  106. package/build/project-data.d.ts +2 -2
  107. package/build/project-data.d.ts.map +1 -1
  108. package/build/template/server/render-page.jsx +1 -1
  109. package/build/template/server/render-page.jsx.map +1 -1
  110. package/package.json +11 -6
  111. package/src/api/api.ts +3 -0
  112. package/src/api/{build/build.ts → builder/builder.ts} +11 -14
  113. package/src/api/builder/index.ts +1 -0
  114. package/src/api/config/config.ts +4 -0
  115. package/src/api/{configurator → config}/configurator.ts +61 -42
  116. package/src/api/config/define.ts +8 -0
  117. package/src/api/config/index.ts +1 -0
  118. package/src/api/config/load.ts +52 -0
  119. package/src/api/config/merge.ts +68 -0
  120. package/src/api/config-resolver/config-resolver.ts +2 -0
  121. package/src/api/config-resolver/index.ts +1 -0
  122. package/src/api/config-resolver/resolve.ts +28 -0
  123. package/src/api/config-resolver/vite.ts +27 -0
  124. package/src/api/index.ts +1 -0
  125. package/src/api/vite/plugins/build.ts +3 -3
  126. package/src/api/vite/plugins/core.ts +22 -10
  127. package/src/api/vite/plugins/main.ts +21 -20
  128. package/src/api/vite/plugins/serve.ts +2 -2
  129. package/src/cli/commands/$default.ts +1 -1
  130. package/src/cli/commands/build.ts +3 -5
  131. package/src/cli/commands/dev.ts +8 -15
  132. package/src/cli/commands/open.ts +2 -2
  133. package/src/cli/index.ts +7 -0
  134. package/src/exports/polen.ts +3 -3
  135. package/src/lib/file-router/linter.ts +2 -2
  136. package/src/lib/kit-temp.ts +30 -0
  137. package/src/lib/vite-plugin-mdx/index.ts +2 -0
  138. package/src/lib/vite-plugin-mdx/vite-plugin-mdx.ts +81 -0
  139. package/src/lib/vite-plugins/vite-plugins.ts +0 -1
  140. package/src/lib/vite-virtual/identified-loader.ts +4 -0
  141. package/src/project-data.ts +2 -2
  142. package/src/template/server/render-page.tsx +1 -1
  143. package/build/api/build/build.d.ts.map +0 -1
  144. package/build/api/build/build.js.map +0 -1
  145. package/build/api/configurator/configurator.d.ts.map +0 -1
  146. package/build/api/configurator/configurator.js.map +0 -1
  147. package/build/api/configurator/index.d.ts +0 -2
  148. package/build/api/configurator/index.d.ts.map +0 -1
  149. package/build/api/configurator/index.js +0 -2
  150. package/build/api/configurator/index.js.map +0 -1
  151. package/build/api/define-config.d.ts +0 -13
  152. package/build/api/define-config.d.ts.map +0 -1
  153. package/build/api/define-config.js +0 -23
  154. package/build/api/define-config.js.map +0 -1
  155. package/build/api/load-config.d.ts +0 -9
  156. package/build/api/load-config.d.ts.map +0 -1
  157. package/build/api/load-config.js +0 -39
  158. package/build/api/load-config.js.map +0 -1
  159. package/build/api/vite/vite-plugin-delete.d.ts +0 -2
  160. package/build/api/vite/vite-plugin-delete.d.ts.map +0 -1
  161. package/build/api/vite/vite-plugin-delete.js +0 -11
  162. package/build/api/vite/vite-plugin-delete.js.map +0 -1
  163. package/build/lib/vite-plugins/output-logger.d.ts +0 -3
  164. package/build/lib/vite-plugins/output-logger.d.ts.map +0 -1
  165. package/build/lib/vite-plugins/output-logger.js +0 -13
  166. package/build/lib/vite-plugins/output-logger.js.map +0 -1
  167. package/src/api/configurator/index.ts +0 -1
  168. package/src/api/define-config.ts +0 -35
  169. package/src/api/load-config.ts +0 -54
  170. package/src/api/vite/vite-plugin-delete.ts +0 -10
  171. package/src/lib/vite-plugins/output-logger.ts +0 -14
@@ -0,0 +1,4 @@
1
+ export * from './builder/index.js';
2
+ export * from './config-resolver/index.js';
3
+ export * from './config/index.js';
4
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './builder/index.js';
2
+ export * from './config-resolver/index.js';
3
+ export * from './config/index.js';
4
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA"}
@@ -1,8 +1,8 @@
1
- import { Configurator } from '#api/configurator/index.js';
1
+ import { Config } from '#api/config/index.js';
2
2
  interface BuildConfigInput {
3
3
  debug?: boolean;
4
- architecture?: Configurator.BuildArchitecture;
4
+ architecture?: Config.BuildArchitecture;
5
5
  }
6
6
  export declare const build: (buildConfigInput: BuildConfigInput) => Promise<void>;
7
7
  export {};
8
- //# sourceMappingURL=build.d.ts.map
8
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/api/builder/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAU7C,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAA;CACxC;AAED,eAAO,MAAM,KAAK,GAAU,kBAAkB,gBAAgB,kBA+B7D,CAAA"}
@@ -1,19 +1,16 @@
1
- import { Configurator } from '#api/configurator/index.js';
2
- import { loadConfig } from '#api/load-config.js';
1
+ import { ConfigResolver } from '#api/config-resolver/index.js';
2
+ import { Config } from '#api/config/index.js';
3
3
  import { Vite } from '#dep/vite/index.js';
4
4
  import { Fs } from '@wollybeard/kit';
5
5
  import consola from 'consola';
6
6
  const buildDefaults = {
7
7
  debug: false,
8
- architecture: Configurator.BuildArchitecture.enum.ssg,
8
+ architecture: Config.BuildArchitecture.enum.ssg,
9
9
  };
10
10
  export const build = async (buildConfigInput) => {
11
11
  const buildConfig = { ...buildDefaults, ...buildConfigInput };
12
- const config = await loadConfig({
13
- env: {
14
- command: `build`,
15
- mode: `production`,
16
- },
12
+ const viteUserConfig = await ConfigResolver.fromFile({
13
+ dir: process.cwd(),
17
14
  overrides: {
18
15
  build: {
19
16
  architecture: buildConfig.architecture,
@@ -23,21 +20,21 @@ export const build = async (buildConfigInput) => {
23
20
  },
24
21
  },
25
22
  });
26
- const builder = await Vite.createBuilder(config);
23
+ const builder = await Vite.createBuilder(viteUserConfig);
27
24
  await builder.buildApp();
28
25
  if (buildConfig.architecture === `ssg`) {
29
26
  consola.info(`Generating static site...`);
30
- await import(config._polen.normalized.paths.project.absolute.build.serverEntrypoint);
27
+ await import(viteUserConfig._polen.paths.project.absolute.build.serverEntrypoint);
31
28
  // Clean up server file which should now be done being used for SSG geneation.
32
- await Fs.remove(config._polen.normalized.paths.project.absolute.build.serverEntrypoint);
29
+ await Fs.remove(viteUserConfig._polen.paths.project.absolute.build.serverEntrypoint);
33
30
  // todo: there is also some kind of prompt js asset that we probably need to clean up or review...
34
31
  consola.success(`Done`);
35
- consola.info(`try it: npx serve ${config._polen.normalized.paths.project.relative.build.root} -p 4000`);
32
+ consola.info(`try it: npx serve ${viteUserConfig._polen.paths.project.relative.build.root} -p 4000`);
36
33
  }
37
34
  else if (buildConfig.architecture === `ssr`) {
38
- consola.info(`try it: node ${config._polen.normalized.paths.project.relative.build.root}/app.js`);
35
+ consola.info(`try it: node ${viteUserConfig._polen.paths.project.relative.build.root}/app.js`);
39
36
  // todo: no hardcoded port
40
37
  consola.info(`Then visit http://localhost:3001`);
41
38
  }
42
39
  };
43
- //# sourceMappingURL=build.js.map
40
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/api/builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AACpC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG;CAChD,CAAA;AAOD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,gBAAkC,EAAE,EAAE;IAChE,MAAM,WAAW,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAE7D,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC;QACnD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,YAAY,EAAE,WAAW,CAAC,YAAY;aACvC;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,WAAW,CAAC,KAAK;aACzB;SACF;KACF,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACxD,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;IAExB,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACzC,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACjF,8EAA8E;QAC9E,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACpF,kGAAkG;QAClG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvB,OAAO,CAAC,IAAI,CAAC,qBAAqB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAA;IACtG,CAAC;SAAM,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;QAC9F,0BAA0B;QAC1B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAClD,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Builder from './builder.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Builder from './builder.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './configurator.js';
2
+ export * from './define.js';
3
+ export * from './load.js';
4
+ export * from './merge.js';
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/api/config/config.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './configurator.js';
2
+ export * from './define.js';
3
+ export * from './load.js';
4
+ export * from './merge.js';
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/api/config/config.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
@@ -19,9 +19,9 @@ export interface ConfigInput {
19
19
  /**
20
20
  * Path to the root directory of your project.
21
21
  *
22
- * Relative paths will be resolved relative to the current working directory.
22
+ * Relative paths will be resolved relative to this config file.
23
23
  *
24
- * @defaultValue process.cwd()
24
+ * @defaultValue The directory where the config file is located.
25
25
  */
26
26
  root?: string;
27
27
  /**
@@ -87,6 +87,7 @@ export interface TemplateVariables {
87
87
  title: string;
88
88
  }
89
89
  export interface Config {
90
+ _input: ConfigInput;
90
91
  build: {
91
92
  architecture: BuildArchitecture;
92
93
  };
@@ -129,6 +130,15 @@ export interface Config {
129
130
  vite?: Vite.UserConfig;
130
131
  };
131
132
  }
132
- export declare const normalizeInput: (configInput?: ConfigInput) => Promise<Config>;
133
+ export declare const normalizeInput: (configInput: ConfigInput | undefined,
134
+ /**
135
+ * If the input has a relative root path, then resolve it relative to this path.
136
+ *
137
+ * We tell users relative paths are resolved to the config file directory.
138
+ * Config loaders should pass the directory of the config file here to ensure that happens.
139
+ *
140
+ * If this is omitted, then relative root paths will throw an error.
141
+ */
142
+ baseRootDirPath: string) => Promise<Config>;
133
143
  export {};
134
144
  //# sourceMappingURL=configurator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurator.d.ts","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { assertPathAbsolute } from '#lib/kit-temp.js';
1
2
  import { Path } from '@wollybeard/kit';
2
3
  import { z } from 'zod';
3
4
  import { packagePaths } from '../../package-paths.js';
@@ -7,24 +8,13 @@ export const BuildArchitectureEnum = {
7
8
  ssr: `ssr`,
8
9
  };
9
10
  export const BuildArchitecture = z.nativeEnum(BuildArchitectureEnum);
10
- const configInputDefaults = {
11
- templateVariables: {
12
- title: `My Developer Portal`,
13
- },
14
- schemaAugmentations: [],
15
- watch: {
16
- also: [],
17
- },
18
- build: {
19
- architecture: BuildArchitecture.enum.ssg,
20
- },
21
- schema: null,
22
- ssr: {
23
- enabled: true,
24
- },
25
- paths: {
11
+ const buildPaths = (rootDir) => {
12
+ if (!Path.isAbsolute(rootDir))
13
+ throw new Error(`Root dir path must be absolute: ${rootDir}`);
14
+ const ensureAbsolute = Path.ensureAbsoluteWith(rootDir);
15
+ return {
26
16
  project: {
27
- rootDir: process.cwd(),
17
+ rootDir,
28
18
  relative: {
29
19
  build: {
30
20
  root: `build`,
@@ -37,34 +27,68 @@ const configInputDefaults = {
37
27
  },
38
28
  absolute: {
39
29
  build: {
40
- root: Path.ensureAbsoluteWithCWD(`build`),
41
- serverEntrypoint: Path.ensureAbsoluteWithCWD(`build/app.js`),
42
- assets: Path.ensureAbsoluteWithCWD(`build/assets`),
30
+ root: ensureAbsolute(`build`),
31
+ serverEntrypoint: ensureAbsolute(`build/app.js`),
32
+ assets: ensureAbsolute(`build/assets`),
43
33
  },
44
- pages: Path.ensureAbsoluteWithCWD(`pages`),
34
+ pages: ensureAbsolute(`pages`),
45
35
  },
46
36
  },
47
37
  framework: packagePaths,
38
+ };
39
+ };
40
+ const configInputDefaults = {
41
+ _input: {},
42
+ templateVariables: {
43
+ title: `My Developer Portal`,
44
+ },
45
+ schemaAugmentations: [],
46
+ watch: {
47
+ also: [],
48
+ },
49
+ build: {
50
+ architecture: BuildArchitecture.enum.ssg,
51
+ },
52
+ schema: null,
53
+ ssr: {
54
+ enabled: true,
48
55
  },
56
+ paths: buildPaths(process.cwd()),
49
57
  advanced: {
50
58
  debug: false,
51
59
  explorer: false,
52
60
  },
53
61
  };
54
- export const normalizeInput = async (configInput) => {
62
+ export const normalizeInput = async (configInput,
63
+ /**
64
+ * If the input has a relative root path, then resolve it relative to this path.
65
+ *
66
+ * We tell users relative paths are resolved to the config file directory.
67
+ * Config loaders should pass the directory of the config file here to ensure that happens.
68
+ *
69
+ * If this is omitted, then relative root paths will throw an error.
70
+ */
71
+ baseRootDirPath) => {
72
+ assertPathAbsolute(baseRootDirPath);
55
73
  const config = structuredClone(configInputDefaults);
74
+ if (configInput) {
75
+ config._input = configInput;
76
+ }
56
77
  if (configInput?.build?.architecture) {
57
78
  config.build.architecture = configInput.build.architecture;
58
79
  }
59
80
  if (configInput?.advanced?.debug !== undefined) {
60
81
  config.advanced.debug = configInput.advanced.debug;
61
82
  }
62
- if (configInput?.root) {
63
- config.paths.project.rootDir = Path.ensureAbsoluteWithCWD(configInput.root);
64
- // Re-compute absolute paths
65
- config.paths.project.absolute.build.root = Path.join(config.paths.project.rootDir, config.paths.project.relative.build.root);
66
- config.paths.project.absolute.build.assets = Path.join(config.paths.project.rootDir, config.paths.project.relative.build.relative.assets);
67
- config.paths.project.absolute.pages = Path.join(config.paths.project.rootDir, config.paths.project.relative.pages);
83
+ if (configInput?.root !== undefined) {
84
+ if (!baseRootDirPath && !Path.isAbsolute(configInput.root)) {
85
+ throw new Error(`Root path must be absolute or baseRootPath must be provided to resolve relative root paths. Provided: ${configInput.root}`);
86
+ }
87
+ const root = Path.ensureAbsolute(configInput.root, baseRootDirPath);
88
+ config.paths = buildPaths(root);
89
+ }
90
+ else if (baseRootDirPath) {
91
+ config.paths = buildPaths(baseRootDirPath);
68
92
  }
69
93
  if (configInput?.advanced?.vite) {
70
94
  config.advanced.vite = configInput.advanced.vite;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ConfigInput } from './configurator.js';
2
+ /**
3
+ * Define a Polen configuration.
4
+ * This is an identity function that provides type safety for config files.
5
+ */
6
+ export declare const defineConfig: (value: ConfigInput) => ConfigInput;
7
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/api/config/define.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;GAGG;AACH,eAAO,MAAM,YAAY,qCAA2B,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Fn } from '@wollybeard/kit';
2
+ /**
3
+ * Define a Polen configuration.
4
+ * This is an identity function that provides type safety for config files.
5
+ */
6
+ export const defineConfig = (Fn.identity);
7
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/api/config/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAGpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAA,EAAE,CAAC,QAAqB,CAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Config from './config.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Config from './config.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { ConfigInput } from './configurator.js';
2
+ export declare const fileNameBases: string[];
3
+ export declare const fileNameExtensionsTypeScript: string[];
4
+ export declare const fileNameExtensionsJavaScript: string[];
5
+ export declare const fileNameExtensions: string[];
6
+ export declare const fileNames: string[];
7
+ export interface LoadOptions {
8
+ dir: string;
9
+ }
10
+ export declare const load: (options: LoadOptions) => Promise<ConfigInput>;
11
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/api/config/load.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,aAAa,UAAoC,CAAA;AAC9D,eAAO,MAAM,4BAA4B,UAAiC,CAAA;AAC1E,eAAO,MAAM,4BAA4B,UAAkB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,UAAqE,CAAA;AACpG,eAAO,MAAM,SAAS,UAAgF,CAAA;AAEtG,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,IAAI,GAAU,SAAS,WAAW,KAAG,OAAO,CAAC,WAAW,CAoCpE,CAAA"}
@@ -0,0 +1,36 @@
1
+ import { assertOptionalPathAbsolute, pickFirstPathExisting } from '#lib/kit-temp.js';
2
+ import { Path } from '@wollybeard/kit';
3
+ export const fileNameBases = [`polen.config`, `.polen.config`];
4
+ export const fileNameExtensionsTypeScript = [`.ts`, `.js`, `.mjs`, `.mts`];
5
+ export const fileNameExtensionsJavaScript = [`.js`, `.mjs`];
6
+ export const fileNameExtensions = [...fileNameExtensionsTypeScript, ...fileNameExtensionsJavaScript];
7
+ export const fileNames = fileNameBases.flatMap(base => fileNameExtensions.map(ext => `${base}${ext}`));
8
+ export const load = async (options) => {
9
+ assertOptionalPathAbsolute(options.dir);
10
+ const filePaths = fileNames.map(fileName => Path.join(options.dir, fileName));
11
+ const filePath = await pickFirstPathExisting(filePaths);
12
+ if (!filePath)
13
+ return {};
14
+ let module;
15
+ if (fileNameExtensionsTypeScript.some(_ => filePath.endsWith(_))) {
16
+ // @see https://tsx.is/dev-api/ts-import#usage
17
+ const { tsImport } = await import(`tsx/esm/api`);
18
+ // eslint-disable-next-line
19
+ module = await tsImport(filePath, import.meta.url);
20
+ }
21
+ else {
22
+ // eslint-disable-next-line
23
+ module = await import(filePath);
24
+ }
25
+ // // Use dynamic import with file URL to support Windows
26
+ // const configUrl = pathToFileURL(configPath).href
27
+ // todo: report errors nicely if this fails
28
+ const configInput = await (module.default ?? module.config);
29
+ // todo: check schema of configInput
30
+ // todo: report errors nicely
31
+ if (!configInput) {
32
+ throw new Error(`Your Polen config module (${filePath}) must export a config. You can use a default export or named export of \`config\`.`);
33
+ }
34
+ return configInput;
35
+ };
36
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/api/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAEpF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,4BAA4B,EAAE,GAAG,4BAA4B,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;AAMtG,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,OAAoB,EAAwB,EAAE;IACvE,0BAA0B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAEvD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IAExB,IAAI,MAA+E,CAAA;IAEnF,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,8CAA8C;QAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;QAChD,2BAA2B;QAC3B,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,2BAA2B;QAC3B,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,+DAA+D;IAC/D,yDAAyD;IAEzD,2CAA2C;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAE3D,oCAAoC;IAEpC,6BAA6B;IAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,qFAAqF,CAC3H,CAAA;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { ConfigInput } from './configurator.js';
2
+ /**
3
+ * Deep merge two Polen config inputs.
4
+ * The second config (overrides) takes precedence over the first (base).
5
+ */
6
+ export declare const mergeInputs: (base: ConfigInput, overrides?: ConfigInput | undefined) => ConfigInput;
7
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/api/config/merge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,WAAW,EAEjB,YAAY,WAAW,GAAG,SAAS,KAClC,WAwDF,CAAA"}
@@ -0,0 +1,54 @@
1
+ import { Vite } from '#dep/vite/index.js';
2
+ /**
3
+ * Deep merge two Polen config inputs.
4
+ * The second config (overrides) takes precedence over the first (base).
5
+ */
6
+ export const mergeInputs = (base,
7
+ // eslint-disable-next-line
8
+ overrides) => {
9
+ if (!overrides) {
10
+ return base;
11
+ }
12
+ const merged = {
13
+ ...base,
14
+ ...overrides,
15
+ };
16
+ // Merge schema if both have it
17
+ if (base.schema || overrides.schema) {
18
+ merged.schema = overrides.schema ?? base.schema;
19
+ }
20
+ // Merge build config
21
+ if (base.build || overrides.build) {
22
+ merged.build = {
23
+ ...base.build,
24
+ ...overrides.build,
25
+ };
26
+ }
27
+ // Merge advanced config
28
+ if (base.advanced || overrides.advanced) {
29
+ merged.advanced = {
30
+ ...base.advanced,
31
+ ...overrides.advanced,
32
+ };
33
+ // Merge advanced.watch config
34
+ if (base.advanced?.watch || overrides.advanced?.watch) {
35
+ merged.advanced.watch = {
36
+ ...base.advanced?.watch,
37
+ ...overrides.advanced?.watch,
38
+ };
39
+ // Merge watch.also arrays
40
+ if (base.advanced?.watch?.also || overrides.advanced?.watch?.also) {
41
+ merged.advanced.watch.also = [
42
+ ...(base.advanced?.watch?.also ?? []),
43
+ ...(overrides.advanced?.watch?.also ?? []),
44
+ ];
45
+ }
46
+ }
47
+ // Merge Vite configs if present
48
+ if (base.advanced?.vite ?? overrides.advanced?.vite) {
49
+ merged.advanced.vite = Vite.mergeConfig(base.advanced?.vite ?? {}, overrides.advanced?.vite ?? {});
50
+ }
51
+ }
52
+ return merged;
53
+ };
54
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/api/config/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAGzC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAiB;AACjB,2BAA2B;AAC3B,SAAmC,EACtB,EAAE;IACf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAgB;QAC1B,GAAG,IAAI;QACP,GAAG,SAAS;KACb,CAAA;IAED,+BAA+B;IAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IACjD,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,GAAG;YACb,GAAG,IAAI,CAAC,KAAK;YACb,GAAG,SAAS,CAAC,KAAK;SACnB,CAAA;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,CAAC,QAAQ,GAAG;YAChB,GAAG,IAAI,CAAC,QAAQ;YAChB,GAAG,SAAS,CAAC,QAAQ;SACtB,CAAA;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG;gBACtB,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK;gBACvB,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK;aAC7B,CAAA;YAED,0BAA0B;YAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAClE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG;oBAC3B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;oBACrC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;iBAC3C,CAAA;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CACrC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EACzB,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAC/B,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './resolve.js';
2
+ export * from './vite.js';
3
+ //# sourceMappingURL=config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../../src/api/config-resolver/config-resolver.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './resolve.js';
2
+ export * from './vite.js';
3
+ //# sourceMappingURL=config-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../../src/api/config-resolver/config-resolver.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as ConfigResolver from './config-resolver.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/config-resolver/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as ConfigResolver from './config-resolver.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/config-resolver/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { type ConfigInput } from '../config/configurator.js';
2
+ import { type LoadOptions } from '../config/load.js';
3
+ import { type ViteUserConfigWithPolen } from './vite.js';
4
+ interface ResolveFromFileOptions extends LoadOptions {
5
+ overrides?: ConfigInput;
6
+ }
7
+ export declare const fromFile: (options: ResolveFromFileOptions) => Promise<ViteUserConfigWithPolen>;
8
+ export declare const fromMemory: (input: ConfigInput,
9
+ /**
10
+ * Refer to `baseRootDirPath` parameter on {@link normalizeInput}.
11
+ *
12
+ * @defaultValue `process.cwd()`
13
+ */
14
+ baseRootDirPath?: string) => Promise<ViteUserConfigWithPolen>;
15
+ export {};
16
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/api/config-resolver/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAE1E,UAAU,sBAAuB,SAAQ,WAAW;IAClD,SAAS,CAAC,EAAE,WAAW,CAAA;CACxB;AAED,eAAO,MAAM,QAAQ,GAAU,SAAS,sBAAsB,KAAG,OAAO,CAAC,uBAAuB,CAI/F,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,OAAO,WAAW;AAClB;;;;GAIG;AACH,kBAAkB,MAAM,qCAKzB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { normalizeInput } from '../config/configurator.js';
2
+ import { load } from '../config/load.js';
3
+ import { mergeInputs } from '../config/merge.js';
4
+ import { toViteUserConfig } from './vite.js';
5
+ export const fromFile = async (options) => {
6
+ const configInput = await load(options);
7
+ const configInputMerged = mergeInputs(configInput, options.overrides);
8
+ return fromMemory(configInputMerged, options.dir);
9
+ };
10
+ export const fromMemory = async (input,
11
+ /**
12
+ * Refer to `baseRootDirPath` parameter on {@link normalizeInput}.
13
+ *
14
+ * @defaultValue `process.cwd()`
15
+ */
16
+ baseRootDirPath) => {
17
+ const configNormalized = await normalizeInput(input, baseRootDirPath ?? process.cwd());
18
+ const viteUserConfig = toViteUserConfig(configNormalized);
19
+ return viteUserConfig;
20
+ };
21
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/api/config-resolver/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAoB,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAgC,MAAM,WAAW,CAAA;AAM1E,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,OAA+B,EAAoC,EAAE;IAClG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACrE,OAAO,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,KAAkB;AAClB;;;;GAIG;AACH,eAAwB,EACxB,EAAE;IACF,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACtF,MAAM,cAAc,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;IACzD,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Vite } from '#dep/vite/index.js';
2
+ import type { Config } from '../config/configurator.js';
3
+ /**
4
+ * Transform Polen config input into a Vite configuration.
5
+ */
6
+ export declare const toViteUserConfig: (config: Config) => ViteUserConfigWithPolen;
7
+ export interface ViteUserConfigWithPolen extends Vite.UserConfig {
8
+ _polen: Config;
9
+ }
10
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../../src/api/config-resolver/vite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,KACb,uBAaF,CAAA;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,UAAU;IAC9D,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,18 @@
1
+ import { Main } from '#api/vite/plugins/main.js';
2
+ import { Vite } from '#dep/vite/index.js';
3
+ /**
4
+ * Transform Polen config input into a Vite configuration.
5
+ */
6
+ export const toViteUserConfig = (config) => {
7
+ const viteUserConfigFromPolen = {
8
+ plugins: [Main(config)],
9
+ };
10
+ const viteUserConfigMerged = config.advanced.vite
11
+ ? Vite.mergeConfig(viteUserConfigFromPolen, config.advanced.vite)
12
+ : viteUserConfigFromPolen;
13
+ return {
14
+ ...viteUserConfigMerged,
15
+ _polen: config,
16
+ };
17
+ };
18
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../../../src/api/config-resolver/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAGzC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAc,EACW,EAAE;IAC3B,MAAM,uBAAuB,GAAoB;QAC/C,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACxB,CAAA;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;QAC/C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,uBAAuB,CAAA;IAE3B,OAAO;QACL,GAAG,oBAAoB;QACvB,MAAM,EAAE,MAAM;KACf,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Api from './api.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Api from './api.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA"}