zudoku 0.42.2 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/app/entry.client.js +21 -0
  2. package/dist/app/entry.client.js.map +1 -1
  3. package/dist/config/loader.d.ts +1 -16
  4. package/dist/config/loader.js +9 -90
  5. package/dist/config/loader.js.map +1 -1
  6. package/dist/config/validators/common.d.ts +193 -0
  7. package/dist/config/validators/common.js +2 -0
  8. package/dist/config/validators/common.js.map +1 -1
  9. package/dist/config/validators/validate.d.ts +70 -0
  10. package/dist/lib/components/Banner.js +1 -1
  11. package/dist/lib/components/Banner.js.map +1 -1
  12. package/dist/lib/components/Heading.d.ts +2 -2
  13. package/dist/lib/components/Heading.js +1 -1
  14. package/dist/lib/components/Heading.js.map +1 -1
  15. package/dist/lib/components/Layout.js +1 -1
  16. package/dist/lib/components/Layout.js.map +1 -1
  17. package/dist/lib/components/Main.js +3 -2
  18. package/dist/lib/components/Main.js.map +1 -1
  19. package/dist/lib/components/MobileTopNavigation.js +1 -1
  20. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  21. package/dist/lib/components/Pagination.js +2 -2
  22. package/dist/lib/components/Pagination.js.map +1 -1
  23. package/dist/lib/components/Search.js +1 -1
  24. package/dist/lib/components/Search.js.map +1 -1
  25. package/dist/lib/components/TopNavigation.js +1 -1
  26. package/dist/lib/components/TopNavigation.js.map +1 -1
  27. package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
  28. package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -1
  29. package/dist/lib/components/navigation/Sidebar.js +1 -1
  30. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  31. package/dist/lib/components/navigation/SidebarCategory.js +9 -5
  32. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  33. package/dist/lib/components/navigation/SidebarItem.js +2 -3
  34. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  35. package/dist/lib/components/navigation/Toc.js +2 -2
  36. package/dist/lib/components/navigation/Toc.js.map +1 -1
  37. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  38. package/dist/lib/core/ZudokuContext.js.map +1 -1
  39. package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
  40. package/dist/lib/oas/parser/upgrade/index.js +76 -24
  41. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  42. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  43. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  44. package/dist/lib/plugins/openapi/OperationListItem.js +4 -2
  45. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  46. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  47. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  48. package/dist/lib/plugins/openapi/SchemaList.js +1 -1
  49. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  50. package/dist/lib/plugins/openapi/client/useCreateQuery.js +10 -4
  51. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  52. package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
  53. package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
  54. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
  55. package/dist/lib/plugins/openapi/index.d.ts +3 -4
  56. package/dist/lib/plugins/openapi/index.js +6 -4
  57. package/dist/lib/plugins/openapi/index.js.map +1 -1
  58. package/dist/lib/plugins/openapi/interfaces.d.ts +4 -3
  59. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +1 -1
  60. package/dist/lib/plugins/openapi/playground/Playground.js +2 -2
  61. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  62. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
  63. package/dist/lib/plugins/openapi/playground/QueryParams.js +1 -1
  64. package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +1 -1
  65. package/dist/lib/plugins/openapi/playground/SubmitButton.js +1 -1
  66. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
  67. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +1 -1
  68. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  69. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +6 -4
  70. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  71. package/dist/lib/plugins/openapi/schema/SchemaView.js +8 -5
  72. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  73. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +40 -0
  74. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  75. package/dist/lib/plugins/openapi/util/getRoutes.js +33 -3
  76. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  77. package/dist/lib/ui/SyntaxHighlight.js +1 -1
  78. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  79. package/dist/lib/util/traverse.d.ts +1 -1
  80. package/dist/lib/util/traverse.js +6 -5
  81. package/dist/lib/util/traverse.js.map +1 -1
  82. package/dist/vite/build.js +1 -0
  83. package/dist/vite/build.js.map +1 -1
  84. package/dist/vite/config.js +1 -1
  85. package/dist/vite/config.js.map +1 -1
  86. package/dist/vite/dev-server.js +5 -2
  87. package/dist/vite/dev-server.js.map +1 -1
  88. package/dist/vite/html.d.ts +6 -2
  89. package/dist/vite/html.js +11 -8
  90. package/dist/vite/html.js.map +1 -1
  91. package/dist/vite/plugin-api.js +2 -2
  92. package/dist/vite/plugin-api.js.map +1 -1
  93. package/lib/{AuthenticationPlugin-ByDF051g.js → AuthenticationPlugin-BxoEZCSJ.js} +4 -4
  94. package/lib/{AuthenticationPlugin-ByDF051g.js.map → AuthenticationPlugin-BxoEZCSJ.js.map} +1 -1
  95. package/lib/{Markdown-mFpg_n9p.js → Markdown-DvdVn1O7.js} +1839 -1836
  96. package/lib/Markdown-DvdVn1O7.js.map +1 -0
  97. package/lib/{MdxPage-Cm7atiW3.js → MdxPage-DUcuusMU.js} +7 -7
  98. package/lib/{MdxPage-Cm7atiW3.js.map → MdxPage-DUcuusMU.js.map} +1 -1
  99. package/lib/{OasProvider-CDtbrUG_.js → OasProvider-CjMm8pB7.js} +8 -9
  100. package/lib/{OasProvider-CDtbrUG_.js.map → OasProvider-CjMm8pB7.js.map} +1 -1
  101. package/lib/{OperationList-DTyJIxKW.js → OperationList-BhJcPgGi.js} +1353 -1316
  102. package/lib/{OperationList-DTyJIxKW.js.map → OperationList-BhJcPgGi.js.map} +1 -1
  103. package/lib/Pagination-BgQxwq5j.js +48 -0
  104. package/lib/Pagination-BgQxwq5j.js.map +1 -0
  105. package/lib/{RouteGuard-DRtEu9nh.js → RouteGuard-D2gX29iI.js} +3 -3
  106. package/lib/{RouteGuard-DRtEu9nh.js.map → RouteGuard-D2gX29iI.js.map} +1 -1
  107. package/lib/{SchemaList-B9lvArDe.js → SchemaList-BexhT_Z0.js} +22 -23
  108. package/lib/{SchemaList-B9lvArDe.js.map → SchemaList-BexhT_Z0.js.map} +1 -1
  109. package/lib/SchemaView-Dt_-u8rW.js +365 -0
  110. package/lib/SchemaView-Dt_-u8rW.js.map +1 -0
  111. package/lib/{Select-CT64Ou40.js → Select-CYaEBIYK.js} +3 -3
  112. package/lib/{Select-CT64Ou40.js.map → Select-CYaEBIYK.js.map} +1 -1
  113. package/lib/{SlotletProvider-CS_nO-XT.js → SlotletProvider-wWbHYqWf.js} +7 -7
  114. package/lib/SlotletProvider-wWbHYqWf.js.map +1 -0
  115. package/lib/{SyntaxHighlight-CxhyyMkF.js → SyntaxHighlight-o7q0acut.js} +81 -81
  116. package/lib/{SyntaxHighlight-CxhyyMkF.js.map → SyntaxHighlight-o7q0acut.js.map} +1 -1
  117. package/lib/{Toc-D_tV8_Ri.js → Toc-BnN4zBb3.js} +17 -17
  118. package/lib/Toc-BnN4zBb3.js.map +1 -0
  119. package/lib/{chunk-BAXFHI7N-BVBOl9s0.js → chunk-BAXFHI7N-BLTsN6tl.js} +679 -659
  120. package/lib/{chunk-BAXFHI7N-BVBOl9s0.js.map → chunk-BAXFHI7N-BLTsN6tl.js.map} +1 -1
  121. package/lib/{circular-ByJI6Mci.js → circular-BWEIet3w.js} +4616 -5567
  122. package/lib/circular-BWEIet3w.js.map +1 -0
  123. package/lib/{createServer-IW7v5hWm.js → createServer-BQD3Eeqb.js} +1998 -1970
  124. package/lib/createServer-BQD3Eeqb.js.map +1 -0
  125. package/lib/{hook-CldJlP5c.js → hook-8GM2HXNM.js} +24 -24
  126. package/lib/{hook-CldJlP5c.js.map → hook-8GM2HXNM.js.map} +1 -1
  127. package/lib/index-CFf9AN-y.js +3208 -0
  128. package/lib/index-CFf9AN-y.js.map +1 -0
  129. package/lib/{index-DnQftvP4.js → index-DGNSSXgR.js} +77 -69
  130. package/lib/{index-DnQftvP4.js.map → index-DGNSSXgR.js.map} +1 -1
  131. package/lib/{mutation-DBQh7AOZ.js → mutation-Bq5bn7Hf.js} +2 -2
  132. package/lib/{mutation-DBQh7AOZ.js.map → mutation-Bq5bn7Hf.js.map} +1 -1
  133. package/lib/processors/traverse.js +9 -7
  134. package/lib/processors/traverse.js.map +1 -1
  135. package/lib/ui/SyntaxHighlight.js +1 -1
  136. package/lib/{useExposedProps-DbIZXspi.js → useExposedProps-DmTJxEXG.js} +2 -2
  137. package/lib/{useExposedProps-DbIZXspi.js.map → useExposedProps-DmTJxEXG.js.map} +1 -1
  138. package/lib/zudoku.auth-auth0.js +1 -1
  139. package/lib/zudoku.auth-clerk.js +2 -2
  140. package/lib/zudoku.auth-openid.js +3 -3
  141. package/lib/zudoku.components.js +6 -6
  142. package/lib/zudoku.hooks.js +1 -1
  143. package/lib/zudoku.plugin-api-catalog.js +5 -5
  144. package/lib/zudoku.plugin-api-keys.js +4 -4
  145. package/lib/zudoku.plugin-custom-pages.js +2 -2
  146. package/lib/zudoku.plugin-markdown.js +1 -1
  147. package/lib/zudoku.plugin-openapi.js +6 -5
  148. package/lib/zudoku.plugin-redirect.js +1 -1
  149. package/lib/zudoku.plugin-search-pagefind.js +3 -3
  150. package/package.json +4 -4
  151. package/src/app/entry.client.tsx +26 -0
  152. package/src/app/main.css +2 -2
  153. package/src/lib/components/Banner.tsx +1 -1
  154. package/src/lib/components/Heading.tsx +3 -3
  155. package/src/lib/components/Layout.tsx +1 -4
  156. package/src/lib/components/Main.tsx +4 -3
  157. package/src/lib/components/MobileTopNavigation.tsx +2 -2
  158. package/src/lib/components/Pagination.tsx +3 -3
  159. package/src/lib/components/Search.tsx +1 -1
  160. package/src/lib/components/TopNavigation.tsx +1 -1
  161. package/src/lib/components/navigation/PoweredByZudoku.tsx +6 -1
  162. package/src/lib/components/navigation/Sidebar.tsx +1 -1
  163. package/src/lib/components/navigation/SidebarCategory.tsx +9 -5
  164. package/src/lib/components/navigation/SidebarItem.tsx +2 -3
  165. package/src/lib/components/navigation/Toc.tsx +4 -4
  166. package/src/lib/core/ZudokuContext.ts +2 -1
  167. package/src/lib/oas/parser/upgrade/index.ts +97 -27
  168. package/src/lib/plugins/openapi/CollapsibleCode.tsx +2 -2
  169. package/src/lib/plugins/openapi/OperationList.tsx +1 -1
  170. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -6
  171. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  172. package/src/lib/plugins/openapi/SchemaList.tsx +1 -1
  173. package/src/lib/plugins/openapi/client/useCreateQuery.ts +23 -4
  174. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
  175. package/src/lib/plugins/openapi/index.tsx +8 -7
  176. package/src/lib/plugins/openapi/interfaces.ts +4 -3
  177. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +2 -2
  178. package/src/lib/plugins/openapi/playground/Playground.tsx +5 -5
  179. package/src/lib/plugins/openapi/playground/QueryParams.tsx +2 -2
  180. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +2 -2
  181. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +2 -2
  182. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +1 -1
  183. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  184. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +6 -3
  185. package/src/lib/plugins/openapi/schema/SchemaView.tsx +31 -15
  186. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +45 -0
  187. package/src/lib/plugins/openapi/util/getRoutes.tsx +67 -3
  188. package/src/lib/ui/SyntaxHighlight.tsx +2 -2
  189. package/src/lib/util/traverse.ts +8 -5
  190. package/lib/Markdown-mFpg_n9p.js.map +0 -1
  191. package/lib/Pagination-DLPL5z77.js +0 -48
  192. package/lib/Pagination-DLPL5z77.js.map +0 -1
  193. package/lib/SchemaView-DXjql-Bl.js +0 -356
  194. package/lib/SchemaView-DXjql-Bl.js.map +0 -1
  195. package/lib/SlotletProvider-CS_nO-XT.js.map +0 -1
  196. package/lib/Toc-D_tV8_Ri.js.map +0 -1
  197. package/lib/circular-ByJI6Mci.js.map +0 -1
  198. package/lib/context-Lrf2Y9bR.js +0 -22
  199. package/lib/context-Lrf2Y9bR.js.map +0 -1
  200. package/lib/createServer-IW7v5hWm.js.map +0 -1
  201. package/lib/index-Ckl3s_w-.js +0 -2184
  202. package/lib/index-Ckl3s_w-.js.map +0 -1
@@ -21,6 +21,27 @@ if (root.childElementCount > 0) {
21
21
  else {
22
22
  void render(routes);
23
23
  }
24
+ // eslint-disable-next-line no-console
25
+ console.log("%cZUDOKU%c by Zuplo v" + window.ZUDOKU_VERSION, [
26
+ "color: #FF00BD",
27
+ "line-height: 50px",
28
+ "font-weight: bolder",
29
+ "font-size: 30px",
30
+ "-webkit-text-stroke-width: 1px",
31
+ "-webkit-text-stroke-color: #FF00BD",
32
+ "text-transform: uppercase",
33
+ "text-align: center",
34
+ "letter-spacing: 5px",
35
+ ].join(" ;"), [
36
+ "color: #Df0097",
37
+ "line-height: 50px",
38
+ "font-weight: bolder",
39
+ "font-size: 15px",
40
+ "text-align: center",
41
+ "letter-spacing: 5px",
42
+ ].join(" ;"));
43
+ // eslint-disable-next-line no-console
44
+ console.log("» Learn more about Zudoku https://zudoku.dev");
24
45
  async function hydrateLazyRoutes(routes) {
25
46
  const path = window.location.pathname;
26
47
  const lazyMatches = matchRoutes(routes, path, config.basePath)?.filter((m) => m.route.lazy);
@@ -1 +1 @@
1
- {"version":3,"file":"entry.client.js","sourceRoot":"","sources":["../../src/app/entry.client.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry.client.js","sourceRoot":"","sources":["../../src/app/entry.client.tsx"],"names":[],"mappings":"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"}
@@ -2,20 +2,5 @@ import type { RollupOutput, RollupWatcher } from "rollup";
2
2
  import { type ConfigWithMeta } from "./common.js";
3
3
  import { type CommonConfig } from "./validators/common.js";
4
4
  export declare const fileExists: (path: string) => Promise<boolean>;
5
- export declare function findConfigFilePath(rootDir: string): Promise<{
6
- configPath: string;
7
- configType: "zudoku" | "dev-portal";
8
- } | {
9
- configPath: undefined;
10
- configType: undefined;
11
- }>;
12
- declare function loadZudokuCodeConfig<TConfig>(configPath: string): Promise<{
13
- dependencies: string[];
14
- config: TConfig;
15
- }>;
16
- export type ConfigLoaderOverrides = {
17
- loadZudokuCodeConfig?: typeof loadZudokuCodeConfig;
18
- };
19
- export declare function tryLoadZudokuConfig<TConfig extends CommonConfig>(rootDir: string, moduleDir: string, envVars: Record<string, string | undefined>, overrides?: ConfigLoaderOverrides): Promise<ConfigWithMeta<TConfig>>;
5
+ export declare function tryLoadZudokuConfig<TConfig extends CommonConfig>(rootDir: string, moduleDir: string): Promise<ConfigWithMeta<TConfig>>;
20
6
  export declare function findOutputPathOfServerConfig(output: RollupOutput | RollupOutput[] | RollupWatcher): string;
21
- export {};
@@ -1,7 +1,6 @@
1
- import { readFile, stat } from "node:fs/promises";
1
+ import { stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { runnerImport } from "vite";
4
- import { validateCommonConfig, } from "./validators/common.js";
5
4
  import { validateConfig } from "./validators/validate.js";
6
5
  const zudokuConfigFiles = [
7
6
  "zudoku.config.js",
@@ -10,43 +9,19 @@ const zudokuConfigFiles = [
10
9
  "zudoku.config.tsx",
11
10
  "zudoku.config.mjs",
12
11
  ];
13
- const devPortalConfigFile = "dev-portal.json";
14
12
  export const fileExists = (path) => stat(path)
15
13
  .then(() => true)
16
14
  .catch(() => false);
17
- let configPath;
18
- let configType;
19
- export async function findConfigFilePath(rootDir) {
20
- // Also check if file exists, so renaming the file will trigger a restart as well
21
- if (configPath && configType && (await fileExists(configPath))) {
22
- return { configPath, configType };
23
- }
24
- const devPortalConfigPath = path.join(rootDir, devPortalConfigFile);
25
- if (await fileExists(devPortalConfigPath)) {
26
- configPath = devPortalConfigPath;
27
- configType = "dev-portal";
28
- return { configPath, configType };
29
- }
15
+ async function getConfigFilePath(rootDir) {
30
16
  for (const fileName of zudokuConfigFiles) {
31
17
  const filepath = path.join(rootDir, fileName);
32
18
  if (await fileExists(filepath)) {
33
- configPath = filepath;
34
- configType = "zudoku";
35
- return { configPath, configType };
19
+ return filepath;
36
20
  }
37
21
  }
38
- configPath = undefined;
39
- configType = undefined;
40
- return { configPath, configType };
41
- }
42
- async function getConfigFilePath(rootDir) {
43
- const result = await findConfigFilePath(rootDir);
44
- if (result.configType) {
45
- return result;
46
- }
47
22
  throw new Error(`No zudoku config file found in project root.`);
48
23
  }
49
- async function loadZudokuCodeConfig(configPath) {
24
+ async function loadZudokuConfig(configPath) {
50
25
  const { module, dependencies } = await runnerImport(configPath, {
51
26
  server: {
52
27
  // this allows us to 'load' CSS files in the config
@@ -59,65 +34,10 @@ async function loadZudokuCodeConfig(configPath) {
59
34
  config: module.default,
60
35
  };
61
36
  }
62
- async function loadDevPortalConfig(configPath, envVars) {
63
- const json = await readFile(configPath, "utf-8");
64
- let config;
65
- try {
66
- config = JSON.parse(json);
67
- }
68
- catch {
69
- throw new Error("Failed to parse dev-portal.json. Check that the file is valid JSON.");
70
- }
71
- // 1. Validate the config
72
- validateCommonConfig(config);
73
- // 2. Replace $env() placeholders with actual environment
74
- config = replaceEnvVariables(config, envVars);
75
- return config;
76
- }
77
- /**
78
- * Replaces the $env() placeholders in the config with the actual environment
79
- */
80
- function replaceEnvVariables(
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- obj, envVars) {
83
- if (typeof obj === "string") {
84
- const envVarMatch = obj.match(/^\$env\(([^)]+)\)$/);
85
- if (envVarMatch) {
86
- const envVarName = envVarMatch[1];
87
- return envVars[envVarName];
88
- }
89
- return obj;
90
- }
91
- else if (Array.isArray(obj)) {
92
- return obj.map((o) => replaceEnvVariables(o, envVars));
93
- }
94
- else if (typeof obj === "object" && obj !== null) {
95
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
- const newObj = {};
97
- for (const key in obj) {
98
- if (Object.hasOwn(obj, key)) {
99
- newObj[key] = replaceEnvVariables(obj[key], envVars);
100
- }
101
- }
102
- return newObj;
103
- }
104
- return obj;
105
- }
106
- export async function tryLoadZudokuConfig(rootDir, moduleDir, envVars, overrides) {
107
- const { configPath, configType } = await getConfigFilePath(rootDir);
108
- let config;
109
- let dependencies;
110
- if (configType === "dev-portal") {
111
- config = await loadDevPortalConfig(configPath, envVars);
112
- dependencies = [];
113
- }
114
- else {
115
- const loadConfig = overrides?.loadZudokuCodeConfig ?? loadZudokuCodeConfig;
116
- ({ config, dependencies } = await loadConfig(configPath));
117
- // This is here instead of in the load function so that
118
- // it works even if we are overriding the load function
119
- validateConfig(config);
120
- }
37
+ export async function tryLoadZudokuConfig(rootDir, moduleDir) {
38
+ const configPath = await getConfigFilePath(rootDir);
39
+ const { config, dependencies } = await loadZudokuConfig(configPath);
40
+ validateConfig(config);
121
41
  const configWithMetadata = {
122
42
  ...config,
123
43
  __meta: {
@@ -130,13 +50,12 @@ export async function tryLoadZudokuConfig(rootDir, moduleDir, envVars, overrides
130
50
  };
131
51
  return configWithMetadata;
132
52
  }
133
- const outputFileNames = ["dev-portal.js", "zudoku.config.js"];
134
53
  export function findOutputPathOfServerConfig(output) {
135
54
  if (Array.isArray(output)) {
136
55
  throw new Error("Expected a single output, but got an array");
137
56
  }
138
57
  if ("output" in output) {
139
- const result = output.output.find((o) => "isEntry" in o && o.isEntry && outputFileNames.includes(o.fileName));
58
+ const result = output.output.find((o) => "isEntry" in o && o.isEntry && o.fileName === "zudoku.config.js");
140
59
  if (result) {
141
60
  return result.fileName;
142
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,IAAI,CAAC,IAAI,CAAC;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAExB,KAAK,UAAU,iBAAiB,CAAC,OAAe;IAC9C,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,UAAkB;IAElB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,YAAY,CACjD,UAAU,EACV;QACE,MAAM,EAAE;YACN,mDAAmD;YACnD,gDAAgD;YAChD,+BAA+B,EAAE,IAAI;SACtC;KACF,CACF,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,SAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,gBAAgB,CAAU,UAAU,CAAC,CAAC;IAC7E,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,kBAAkB,GAA4B;QAClD,GAAG,MAAM;QACT,MAAM,EAAE;YACN,OAAO;YACP,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YAC5B,YAAY;YACZ,UAAU;SACX;KACF,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAAqD;IAErD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CACxE,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC9D,CAAC"}