@chainingintention/pi-web-cn 1.202610.3 → 1.202610.4

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/README.md +1 -0
  2. package/dist/cli.js +129 -122
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/PiWebApp-CN3g7SqA.js +4362 -0
  5. package/dist/client/assets/external-DUGCSDhZ.js +2 -0
  6. package/dist/client/assets/index-JduZlbIF.js +2 -0
  7. package/dist/client/index.html +4 -4
  8. package/dist/client/manifest.webmanifest +2 -1
  9. package/dist/localization.js +24 -0
  10. package/dist/localization.js.map +1 -0
  11. package/dist/nativeServices/serviceDoctor.js +45 -44
  12. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  13. package/dist/pi-packages/captains-log/dist/browser/index.js +46 -45
  14. package/dist/pi-packages/captains-log/dist/browser/markdown.js +2 -1
  15. package/dist/pi-packages/captains-log/dist/browser/panel.js +56 -55
  16. package/dist/pi-packages/captains-log/i18n.js +7 -0
  17. package/dist/pi-packages/relays/i18n.js +7 -0
  18. package/dist/pi-packages/relays/markdownDocument.js +2 -1
  19. package/dist/pi-packages/relays/pi-web-plugin.js +8 -6
  20. package/dist/pi-packages/relays/relaysPanelElement.js +24 -23
  21. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +124 -124
  22. package/dist/pi-web-plugins/git/browser/git-contract.js +13 -12
  23. package/dist/pi-web-plugins/git/browser/git-panel.js +25 -24
  24. package/dist/pi-web-plugins/git/browser/i18n.js +7 -0
  25. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +7 -3
  26. package/dist/pi-web-plugins/git/git-backend.js +10 -9
  27. package/dist/pi-web-plugins/git/i18n.js +7 -0
  28. package/dist/pi-web-plugins/git/server-plugin.js +21 -19
  29. package/dist/pi-web-plugins/info/i18n.js +7 -0
  30. package/dist/pi-web-plugins/info/infoInternals.js +57 -62
  31. package/dist/pi-web-plugins/info/pi-web-plugin.js +34 -36
  32. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +3 -3
  33. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +55 -52
  34. package/dist/pi-web-plugins/terminal/i18n.js +7 -0
  35. package/dist/pi-web-plugins/terminal/server-plugin.js +23 -21
  36. package/dist/pi-web-plugins/terminal/terminalService.js +22 -21
  37. package/dist/pi-web-plugins/updates/i18n.js +7 -0
  38. package/dist/pi-web-plugins/updates/pi-web-plugin.js +58 -54
  39. package/dist/pi-web-plugins/updates/updatesLogic.js +21 -20
  40. package/dist/pi-web-plugins/workspace-tasks/config.js +12 -11
  41. package/dist/pi-web-plugins/workspace-tasks/i18n.js +7 -0
  42. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +8 -6
  43. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +20 -19
  44. package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +12 -11
  45. package/dist/pi-web-plugins/zh-cn/auth.json +9 -0
  46. package/dist/pi-web-plugins/zh-cn/bundled.json +176 -0
  47. package/dist/pi-web-plugins/zh-cn/cli.json +171 -0
  48. package/dist/pi-web-plugins/zh-cn/client.json +219 -0
  49. package/dist/pi-web-plugins/zh-cn/components.json +1002 -0
  50. package/dist/pi-web-plugins/zh-cn/config-errors.json +172 -0
  51. package/dist/pi-web-plugins/zh-cn/files.json +41 -0
  52. package/dist/pi-web-plugins/zh-cn/machines.json +28 -0
  53. package/dist/pi-web-plugins/zh-cn/main.json +459 -0
  54. package/dist/pi-web-plugins/zh-cn/management-errors.json +23 -0
  55. package/dist/pi-web-plugins/zh-cn/manifest.webmanifest +25 -0
  56. package/dist/pi-web-plugins/zh-cn/metadata.json +3 -0
  57. package/dist/pi-web-plugins/zh-cn/package.json +10 -0
  58. package/dist/pi-web-plugins/zh-cn/pi-web-plugin.js +16 -0
  59. package/dist/pi-web-plugins/zh-cn/projects.json +6 -0
  60. package/dist/pi-web-plugins/zh-cn/provider-auth.json +17 -0
  61. package/dist/pi-web-plugins/zh-cn/routing.json +68 -0
  62. package/dist/pi-web-plugins/zh-cn/server-main.json +99 -0
  63. package/dist/pi-web-plugins/zh-cn/server.json +174 -0
  64. package/dist/piWebVersionReport.js +17 -16
  65. package/dist/piWebVersionReport.js.map +1 -1
  66. package/dist/plugin-api.d.ts +4 -1
  67. package/dist/pluginRecoveryCli.js +25 -24
  68. package/dist/pluginRecoveryCli.js.map +1 -1
  69. package/dist/server/app.js +43 -28
  70. package/dist/server/app.js.map +1 -1
  71. package/dist/server/audit/normalToolAuditCli.js +45 -43
  72. package/dist/server/audit/normalToolAuditCli.js.map +1 -1
  73. package/dist/server/configRoutes.js +39 -30
  74. package/dist/server/configRoutes.js.map +1 -1
  75. package/dist/server/diagnostics/nodePtyNativeModule.js +7 -6
  76. package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -1
  77. package/dist/server/diagnostics/nodePtySpawnHelper.js +21 -20
  78. package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -1
  79. package/dist/server/knownAutoInstallPiPackages.js +2 -2
  80. package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
  81. package/dist/server/knownPiPackages.js +2 -2
  82. package/dist/server/knownPiPackages.js.map +1 -1
  83. package/dist/server/machines/machineClient.js +8 -6
  84. package/dist/server/machines/machineClient.js.map +1 -1
  85. package/dist/server/machines/machinePluginProxyRoutes.js +11 -10
  86. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  87. package/dist/server/machines/machineProxyRoutes.js +27 -29
  88. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  89. package/dist/server/machines/machineRoutes.js +10 -12
  90. package/dist/server/machines/machineRoutes.js.map +1 -1
  91. package/dist/server/machines/machineService.js +17 -18
  92. package/dist/server/machines/machineService.js.map +1 -1
  93. package/dist/server/managementEmbed.js +26 -25
  94. package/dist/server/managementEmbed.js.map +1 -1
  95. package/dist/server/normalAuth.js +29 -26
  96. package/dist/server/normalAuth.js.map +1 -1
  97. package/dist/server/passwordVerifier.js +2 -1
  98. package/dist/server/passwordVerifier.js.map +1 -1
  99. package/dist/server/piPackageService.js +7 -5
  100. package/dist/server/piPackageService.js.map +1 -1
  101. package/dist/server/piWebPluginService.js +27 -11
  102. package/dist/server/piWebPluginService.js.map +1 -1
  103. package/dist/server/piWebStatus.js +16 -14
  104. package/dist/server/piWebStatus.js.map +1 -1
  105. package/dist/server/plugins/serverPluginRuntime.js +4 -2
  106. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  107. package/dist/server/projects/projectService.js +4 -3
  108. package/dist/server/projects/projectService.js.map +1 -1
  109. package/dist/server/sessiond/projectMutationRoutes.js +5 -4
  110. package/dist/server/sessiond/projectMutationRoutes.js.map +1 -1
  111. package/dist/server/sessiond/sessionProxyRoutes.js +11 -8
  112. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  113. package/dist/server/sessiond/workspaceCatalogRoutes.js +5 -3
  114. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
  115. package/dist/server/sessiond.js +8 -3
  116. package/dist/server/sessiond.js.map +1 -1
  117. package/dist/server/sessions/authRoutes.js +20 -19
  118. package/dist/server/sessions/authRoutes.js.map +1 -1
  119. package/dist/server/sessions/authService.js +13 -10
  120. package/dist/server/sessions/authService.js.map +1 -1
  121. package/dist/server/sessions/builtinCommands.js +28 -21
  122. package/dist/server/sessions/builtinCommands.js.map +1 -1
  123. package/dist/server/sessions/oauthLoginFlowService.js +17 -15
  124. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  125. package/dist/server/sessions/piSessionService.js +229 -208
  126. package/dist/server/sessions/piSessionService.js.map +1 -1
  127. package/dist/server/sessions/projectAuthService.js +5 -3
  128. package/dist/server/sessions/projectAuthService.js.map +1 -1
  129. package/dist/server/sessions/sessionArchiveMapping.js +8 -7
  130. package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
  131. package/dist/server/sessions/sessionCleanup.js +4 -3
  132. package/dist/server/sessions/sessionCleanup.js.map +1 -1
  133. package/dist/server/sessions/sessionCommandService.js +70 -67
  134. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  135. package/dist/server/sessions/sessionNotificationStore.js +12 -11
  136. package/dist/server/sessions/sessionNotificationStore.js.map +1 -1
  137. package/dist/server/sessions/sessionRoutes.js +74 -72
  138. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  139. package/dist/server/sessions/sessionTreeProjection.js +50 -49
  140. package/dist/server/sessions/sessionTreeProjection.js.map +1 -1
  141. package/dist/server/sessions/sessionUnreadStore.js +25 -2
  142. package/dist/server/sessions/sessionUnreadStore.js.map +1 -1
  143. package/dist/server/terminals/managementCommandRunService.js +13 -12
  144. package/dist/server/terminals/managementCommandRunService.js.map +1 -1
  145. package/dist/server/workbench/accessStateStore.js +9 -7
  146. package/dist/server/workbench/accessStateStore.js.map +1 -1
  147. package/dist/server/workbench/capabilitySearch.js +3 -2
  148. package/dist/server/workbench/capabilitySearch.js.map +1 -1
  149. package/dist/server/workbench/knowledgeSearch.js +8 -7
  150. package/dist/server/workbench/knowledgeSearch.js.map +1 -1
  151. package/dist/server/workbench/mcpClient.js +6 -5
  152. package/dist/server/workbench/mcpClient.js.map +1 -1
  153. package/dist/server/workbench/skillSync.js +4 -2
  154. package/dist/server/workbench/skillSync.js.map +1 -1
  155. package/dist/server/workbench/workbenchClient.js +8 -7
  156. package/dist/server/workbench/workbenchClient.js.map +1 -1
  157. package/dist/server/workbench/workbenchTools.js +8 -6
  158. package/dist/server/workbench/workbenchTools.js.map +1 -1
  159. package/dist/server/workingDirectory.js +3 -2
  160. package/dist/server/workingDirectory.js.map +1 -1
  161. package/dist/server/workspaceExplorerRoutes.js +16 -13
  162. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  163. package/dist/server/workspaces/fileContentService.js +11 -10
  164. package/dist/server/workspaces/fileContentService.js.map +1 -1
  165. package/dist/server/workspaces/fileOperationService.js +7 -6
  166. package/dist/server/workspaces/fileOperationService.js.map +1 -1
  167. package/dist/server/workspaces/filePreviewService.js +5 -4
  168. package/dist/server/workspaces/filePreviewService.js.map +1 -1
  169. package/dist/server/workspaces/fileSuggestions.js +2 -1
  170. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  171. package/dist/server/workspaces/pathAccessPolicy.js +24 -18
  172. package/dist/server/workspaces/pathAccessPolicy.js.map +1 -1
  173. package/dist/server/workspaces/pathSafety.js +6 -5
  174. package/dist/server/workspaces/pathSafety.js.map +1 -1
  175. package/dist/server/workspaces/projectPiWebConfig.js +3 -2
  176. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  177. package/dist/server/workspaces/workspaceRemovalService.js +4 -3
  178. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  179. package/dist/server/workspaces/workspaceRouteErrors.js +4 -2
  180. package/dist/server/workspaces/workspaceRouteErrors.js.map +1 -1
  181. package/dist/server/workspaces/workspaceUserError.js +18 -0
  182. package/dist/server/workspaces/workspaceUserError.js.map +1 -0
  183. package/dist/server-plugin-api.d.ts +3 -1
  184. package/dist/server-plugin-api.js.map +1 -1
  185. package/dist/serverPluginRecovery.js +3 -2
  186. package/dist/serverPluginRecovery.js.map +1 -1
  187. package/dist/shared/apiTypes.js.map +1 -1
  188. package/dist/shared/i18n.js +41 -0
  189. package/dist/shared/i18n.js.map +1 -0
  190. package/dist/shared/piWebConfigParsing.js +52 -49
  191. package/dist/shared/piWebConfigParsing.js.map +1 -1
  192. package/dist/shared/pluginApiTypes.d.ts +7 -0
  193. package/dist/shared/requiredTerminalPlugin.js +1 -1
  194. package/dist/shared/requiredTerminalPlugin.js.map +1 -1
  195. package/dist/shared/sessionDefaults.js +7 -6
  196. package/dist/shared/sessionDefaults.js.map +1 -1
  197. package/dist/shared/thinkingLevels.js +17 -16
  198. package/dist/shared/thinkingLevels.js.map +1 -1
  199. package/docs/config.md +10 -1
  200. package/docs/plugins.md +8 -0
  201. package/package.json +1 -1
  202. package/dist/client/assets/index-CFhaGb5m.js +0 -4357
@@ -1 +1 @@
1
- {"version":3,"file":"server-plugin-api.js","sourceRoot":"","sources":["../src/server-plugin-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-plugin-api.js","sourceRoot":"","sources":["../src/server-plugin-api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { loadNodeTranslator } from "./localization.js";
1
2
  import { chmodSync, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
2
3
  import { randomUUID } from "node:crypto";
3
4
  import { basename, dirname, join, resolve } from "node:path";
@@ -22,11 +23,11 @@ export function loadServerPluginRecoveryConfig(options = {}) {
22
23
  };
23
24
  }
24
25
  /** Offline recovery mutation that preserves settings and unrelated config. */
25
- export function disableServerPlugin(pluginId, options = {}) {
26
+ export function disableServerPlugin(pluginId, options = {}, t = loadNodeTranslator("server")) {
26
27
  if (!isPiWebPluginId(pluginId))
27
28
  throw new Error(`Invalid PI WEB plugin id: ${pluginId}`);
28
29
  if (pluginId === REQUIRED_TERMINAL_PLUGIN_ID) {
29
- throw new Error(`不能禁用必需的 Terminal 插件。${REQUIRED_TERMINAL_RECOVERY_GUIDANCE}`);
30
+ throw new Error(t("server.main.441e39d0647e", "Terminal is a required bundled plugin and cannot be disabled. {arg0}", { arg0: REQUIRED_TERMINAL_RECOVERY_GUIDANCE }));
30
31
  }
31
32
  return mutateRecoveryConfig(options, (root, path) => {
32
33
  const configuredPlugins = root["plugins"];
@@ -1 +1 @@
1
- {"version":3,"file":"serverPluginRecovery.js","sourceRoot":"","sources":["../src/serverPluginRecovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverPluginRecovery.js","sourceRoot":"","sources":["../src/serverPluginRecovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAoEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;CAC5B,CAAC;AAsIX,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AA4RjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAqCzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC;AAsM3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AA8GpD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,iGAAiG;AACjG,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AACtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAoavD,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC;AA0TlE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAoEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;CAC5B,CAAC;AAsIX,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AA4RjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAuCzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC;AAsM3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AA8GpD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,iGAAiG;AACjG,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AACtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAoavD,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC;AA4TlE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,41 @@
1
+ /** Preserve internal error text for status handling; localize only at the UI boundary. */
2
+ export class UserFacingError extends Error {
3
+ constructor(messageKey, fallback, parameters) {
4
+ super(createTranslator("en", {})(messageKey, fallback, parameters));
5
+ this.messageKey = messageKey;
6
+ this.fallback = fallback;
7
+ this.parameters = parameters;
8
+ this.name = "UserFacingError";
9
+ }
10
+ }
11
+ export function userFacingErrorMessage(error, translate) {
12
+ return error instanceof UserFacingError
13
+ ? translate(error.messageKey, error.fallback, error.parameters)
14
+ : error instanceof Error ? error.message : String(error);
15
+ }
16
+ const parameterPattern = /\{([a-zA-Z][a-zA-Z0-9_]*)\}/gu;
17
+ function parametersIn(message) {
18
+ return [...new Set([...message.matchAll(parameterPattern)].map((match) => match[1] ?? ""))].sort();
19
+ }
20
+ /** Only catalog text is interpolated; values are never recursively translated. */
21
+ export function createTranslator(locale, messages) {
22
+ return (key, fallback, parameters = {}) => {
23
+ const translation = locale === "en" || !Object.hasOwn(messages, key) ? undefined : messages[key];
24
+ const template = translation !== undefined && parametersIn(translation).join(",") === parametersIn(fallback).join(",")
25
+ ? translation
26
+ : fallback;
27
+ return template.replace(parameterPattern, (placeholder, name) => Object.hasOwn(parameters, name) ? String(parameters[name]) : placeholder);
28
+ };
29
+ }
30
+ export function parseTranslationMessages(value) {
31
+ if (typeof value !== "object" || value === null || Array.isArray(value))
32
+ throw new Error("Invalid translation catalog");
33
+ const entries = [];
34
+ for (const [key, message] of Object.entries(value)) {
35
+ if (key === "" || typeof message !== "string")
36
+ throw new Error("Invalid translation catalog");
37
+ entries.push([key, message]);
38
+ }
39
+ return Object.fromEntries(entries);
40
+ }
41
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/shared/i18n.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { UserFacingError } from "./i18n.js";
1
2
  import { isPiWebPluginId, piWebPluginIdPattern } from "./pluginIds.js";
2
3
  export function piWebConfigRecord(config) {
3
4
  return {
@@ -23,19 +24,19 @@ export function parsePiWebConfig(value, path) {
23
24
  }
24
25
  export function parsePiWebConfigRequest(value) {
25
26
  if (!isRecord(value))
26
- throw new Error("PI WEB config update must include a config object");
27
+ throw new UserFacingError("configError.pi.web.config.update.must.include.a.config.object.ec8277", "PI WEB config update must include a config object");
27
28
  return parsePiWebConfigFields(value, { format: "request" });
28
29
  }
29
30
  export function parsePort(value, key, path = "environment") {
30
31
  const port = typeof value === "number" ? value : typeof value === "string" && value !== "" ? Number(value) : NaN;
31
32
  if (!Number.isInteger(port) || port < 1 || port > 65535)
32
- throw new Error(`PI WEB config ${key} must be an integer from 1 to 65535: ${path}`);
33
+ throw new UserFacingError("configError.pi.web.config.field.must.be.an.integer.from.1.to.65535.field.2efa42", "PI WEB config {value1} must be an integer from 1 to 65535: {value2}", { value1: key, value2: path });
33
34
  return port;
34
35
  }
35
36
  export function parseMaxUploadBytes(value, key, path = "environment") {
36
37
  const bytes = typeof value === "number" ? value : typeof value === "string" && value !== "" ? Number(value) : NaN;
37
38
  if (!Number.isInteger(bytes) || bytes < 1)
38
- throw new Error(`PI WEB config ${key} must be a positive integer: ${path}`);
39
+ throw new UserFacingError("configError.pi.web.config.field.must.be.a.positive.integer.field.e8c08b", "PI WEB config {value1} must be a positive integer: {value2}", { value1: key, value2: path });
39
40
  return bytes;
40
41
  }
41
42
  export function isRecord(value) {
@@ -65,10 +66,10 @@ const NORMAL_MODE_AUDIT_KEYS = new Set(["enabled", "retentionDays", "maxRows"]);
65
66
  const MANAGEMENT_MODE_AUDIT_KEYS = new Set(["enabled", "baseUrl", "indexPrefix", "retentionDays"]);
66
67
  function parseAuditLog(value, context) {
67
68
  if (!isRecord(value) || Array.isArray(value))
68
- throw new Error(error(context, "auditLog must be an object"));
69
+ throw error(context, "configError.pi.web.config.auditlog.must.be.an.object.b64d0a", "PI WEB config auditLog must be an object");
69
70
  const unknownKey = Object.keys(value).find((key) => !AUDIT_LOG_KEYS.has(key));
70
71
  if (unknownKey !== undefined)
71
- throw new Error(error(context, `auditLog contains unknown key ${JSON.stringify(unknownKey)}`));
72
+ throw error(context, "configError.pi.web.config.auditlog.contains.unknown.key.field.148797", "PI WEB config auditLog contains unknown key {value1}", { value1: JSON.stringify(unknownKey) });
72
73
  const normalMode = optionalAuditSection(value, "normalMode", NORMAL_MODE_AUDIT_KEYS, context);
73
74
  const managementMode = optionalAuditSection(value, "managementMode", MANAGEMENT_MODE_AUDIT_KEYS, context);
74
75
  return {
@@ -90,16 +91,16 @@ function optionalAuditSection(value, key, keys, context) {
90
91
  if (section === undefined)
91
92
  return undefined;
92
93
  if (!isRecord(section) || Array.isArray(section))
93
- throw new Error(error(context, `auditLog.${key} must be an object`));
94
+ throw error(context, "configError.pi.web.config.auditlog.field.must.be.an.object.6247aa", "PI WEB config auditLog.{value1} must be an object", { value1: key });
94
95
  const unknownKey = Object.keys(section).find((candidate) => !keys.has(candidate));
95
96
  if (unknownKey !== undefined)
96
- throw new Error(error(context, `auditLog.${key} contains unknown key ${JSON.stringify(unknownKey)}`));
97
+ throw error(context, "configError.pi.web.config.auditlog.field.contains.unknown.key.field.8aeda4", "PI WEB config auditLog.{value1} contains unknown key {value2}", { value1: key, value2: JSON.stringify(unknownKey) });
97
98
  return section;
98
99
  }
99
100
  function parseElasticsearchIndexPrefix(value, context) {
100
101
  const prefix = parseString(value, "auditLog.managementMode.indexPrefix", context);
101
102
  if (!/^[a-z0-9][a-z0-9._-]*$/.test(prefix) || prefix === "." || prefix === "..") {
102
- throw new Error(error(context, "auditLog.managementMode.indexPrefix must be a lowercase Elasticsearch index prefix"));
103
+ throw error(context, "configError.pi.web.config.auditlog.managementmode.indexprefix.must.be.a.lowercase.elasticsearch.index..1ed4c8", "PI WEB config auditLog.managementMode.indexPrefix must be a lowercase Elasticsearch index prefix");
103
104
  }
104
105
  return prefix;
105
106
  }
@@ -114,10 +115,10 @@ const WORKBENCH_INTEGRATION_KEYS = new Set([
114
115
  ]);
115
116
  function parseWorkbenchIntegration(value, context) {
116
117
  if (!isRecord(value) || Array.isArray(value))
117
- throw new Error(error(context, "workbenchIntegration must be an object"));
118
+ throw error(context, "configError.pi.web.config.workbenchintegration.must.be.an.object.4449e0", "PI WEB config workbenchIntegration must be an object");
118
119
  const unknownKey = Object.keys(value).find((key) => !WORKBENCH_INTEGRATION_KEYS.has(key));
119
120
  if (unknownKey !== undefined)
120
- throw new Error(error(context, `workbenchIntegration contains unknown key ${JSON.stringify(unknownKey)}`));
121
+ throw error(context, "configError.pi.web.config.workbenchintegration.contains.unknown.key.field.05f9a2", "PI WEB config workbenchIntegration contains unknown key {value1}", { value1: JSON.stringify(unknownKey) });
121
122
  return {
122
123
  baseUrl: parseHttpUrl(value["baseUrl"], "workbenchIntegration.baseUrl", context),
123
124
  mcpUrl: parseHttpUrl(value["mcpUrl"], "workbenchIntegration.mcpUrl", context),
@@ -135,10 +136,10 @@ function parseHttpUrl(value, key, context) {
135
136
  url = new URL(text);
136
137
  }
137
138
  catch {
138
- throw new Error(error(context, `${key} must be an absolute HTTP URL`));
139
+ throw error(context, "configError.pi.web.config.field.must.be.an.absolute.http.url.b28922", "PI WEB config {value1} must be an absolute HTTP URL", { value1: key });
139
140
  }
140
141
  if ((url.protocol !== "http:" && url.protocol !== "https:") || url.username !== "" || url.password !== "") {
141
- throw new Error(error(context, `${key} must be an absolute HTTP URL without credentials`));
142
+ throw error(context, "configError.pi.web.config.field.must.be.an.absolute.http.url.without.credentials.6b63c3", "PI WEB config {value1} must be an absolute HTTP URL without credentials", { value1: key });
142
143
  }
143
144
  return url.toString();
144
145
  }
@@ -147,32 +148,32 @@ function optionalPositiveInteger(value, field, key, context) {
147
148
  if (candidate === undefined)
148
149
  return {};
149
150
  if (typeof candidate !== "number" || !Number.isInteger(candidate) || candidate < 1)
150
- throw new Error(error(context, `${key} must be a positive integer`));
151
+ throw error(context, "configError.pi.web.config.field.must.be.a.positive.integer.1b5503", "PI WEB config {value1} must be a positive integer", { value1: key });
151
152
  return { [field]: candidate };
152
153
  }
153
154
  function parseRequestPort(value) {
154
155
  if (typeof value !== "number")
155
- throw new Error("PI WEB config port must be a number");
156
+ throw new UserFacingError("configError.pi.web.config.port.must.be.a.number.8ac8cd", "PI WEB config port must be a number");
156
157
  return value;
157
158
  }
158
159
  function parseString(value, key, context) {
159
160
  if (context.format === "request") {
160
161
  if (key === "host") {
161
162
  if (typeof value !== "string")
162
- throw new Error("PI WEB config host must be a string");
163
+ throw new UserFacingError("configError.pi.web.config.host.must.be.a.string.c8d259", "PI WEB config host must be a string");
163
164
  return value;
164
165
  }
165
166
  if (typeof value !== "string" || value === "")
166
- throw new Error(`PI WEB config ${key} must be a non-empty string`);
167
+ throw new UserFacingError("configError.pi.web.config.field.must.be.a.non.empty.string.528b5a", "PI WEB config {value1} must be a non-empty string", { value1: key });
167
168
  return value;
168
169
  }
169
170
  if (typeof value !== "string" || value === "")
170
- throw new Error(`PI WEB config ${key} must be a non-empty string: ${context.path}`);
171
+ throw new UserFacingError("configError.pi.web.config.field.must.be.a.non.empty.string.field.b7df01", "PI WEB config {value1} must be a non-empty string: {value2}", { value1: key, value2: context.path });
171
172
  return value;
172
173
  }
173
174
  function parseBoolean(value, key, context) {
174
175
  if (typeof value !== "boolean")
175
- throw new Error(context.format === "request" ? `PI WEB config ${key} must be a boolean` : `PI WEB config ${key} must be a boolean: ${context.path}`);
176
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.field.must.be.a.boolean.1aa5d4", "PI WEB config {value1} must be a boolean", { value1: key }) : new UserFacingError("configError.pi.web.config.field.must.be.a.boolean.field.2352b1", "PI WEB config {value1} must be a boolean: {value2}", { value1: key, value2: context.path }));
176
177
  return value;
177
178
  }
178
179
  function parseAllowedHosts(value, context) {
@@ -180,52 +181,52 @@ function parseAllowedHosts(value, context) {
180
181
  return true;
181
182
  if (context.format === "request") {
182
183
  if (!Array.isArray(value) || !value.every((item) => typeof item === "string")) {
183
- throw new Error("PI WEB config allowedHosts must be true or an array of strings");
184
+ throw new UserFacingError("configError.pi.web.config.allowedhosts.must.be.true.or.an.array.of.strings.4d8d83", "PI WEB config allowedHosts must be true or an array of strings");
184
185
  }
185
186
  return value;
186
187
  }
187
188
  if (!isNonEmptyStringArray(value)) {
188
- throw new Error(`PI WEB config allowedHosts must be true or an array of non-empty strings: ${context.path}`);
189
+ throw new UserFacingError("configError.pi.web.config.allowedhosts.must.be.true.or.an.array.of.non.empty.strings.field.2c3c10", "PI WEB config allowedHosts must be true or an array of non-empty strings: {value1}", { value1: context.path });
189
190
  }
190
191
  return value;
191
192
  }
192
193
  function parseShortcuts(value, context) {
193
194
  if (!isRecord(value))
194
- throw new Error(context.format === "request" ? "PI WEB config shortcuts must be an object" : `PI WEB config shortcuts must be an object: ${context.path}`);
195
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.shortcuts.must.be.an.object.146099", "PI WEB config shortcuts must be an object") : new UserFacingError("configError.pi.web.config.shortcuts.must.be.an.object.field.2896e2", "PI WEB config shortcuts must be an object: {value1}", { value1: context.path }));
195
196
  return Object.fromEntries(Object.entries(value).map(([actionId, shortcut]) => {
196
197
  if (shortcut !== null && (typeof shortcut !== "string" || shortcut === "")) {
197
- throw new Error(context.format === "request" ? "PI WEB config shortcut values must be non-empty strings or null" : `PI WEB config shortcut values must be non-empty strings or null: ${context.path}`);
198
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.shortcut.values.must.be.non.empty.strings.or.null.2025e9", "PI WEB config shortcut values must be non-empty strings or null") : new UserFacingError("configError.pi.web.config.shortcut.values.must.be.non.empty.strings.or.null.field.907fe7", "PI WEB config shortcut values must be non-empty strings or null: {value1}", { value1: context.path }));
198
199
  }
199
200
  return [actionId, shortcut];
200
201
  }));
201
202
  }
202
203
  function parsePlugins(value, context) {
203
204
  if (!isRecord(value) || Array.isArray(value))
204
- throw new Error(context.format === "request" ? "PI WEB config plugins must be an object" : `PI WEB config plugins must be an object: ${context.path}`);
205
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.plugins.must.be.an.object.2d870f", "PI WEB config plugins must be an object") : new UserFacingError("configError.pi.web.config.plugins.must.be.an.object.field.5b8b9c", "PI WEB config plugins must be an object: {value1}", { value1: context.path }));
205
206
  return Object.fromEntries(Object.entries(value).map(([pluginId, config]) => {
206
207
  if (!isPiWebPluginId(pluginId))
207
- throw new Error(context.format === "request" ? "PI WEB config plugin ids are invalid" : `PI WEB config plugin ids must match ${piWebPluginIdPattern.source}: ${context.path}`);
208
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.plugin.ids.are.invalid.674ddc", "PI WEB config plugin ids are invalid") : new UserFacingError("configError.pi.web.config.plugin.ids.must.match.field.field.26310e", "PI WEB config plugin ids must match {value1}: {value2}", { value1: piWebPluginIdPattern.source, value2: context.path }));
208
209
  if (!isRecord(config) || Array.isArray(config))
209
- throw new Error(context.format === "request" ? "PI WEB config plugin entries must be objects" : `PI WEB config plugin entries must be objects: ${context.path}`);
210
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.plugin.entries.must.be.objects.45e442", "PI WEB config plugin entries must be objects") : new UserFacingError("configError.pi.web.config.plugin.entries.must.be.objects.field.0c5cad", "PI WEB config plugin entries must be objects: {value1}", { value1: context.path }));
210
211
  const enabled = config["enabled"];
211
212
  if (enabled !== undefined && typeof enabled !== "boolean")
212
- throw new Error(context.format === "request" ? "PI WEB config plugin enabled values must be booleans" : `PI WEB config plugin enabled values must be booleans: ${context.path}`);
213
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.plugin.enabled.values.must.be.booleans.ab8416", "PI WEB config plugin enabled values must be booleans") : new UserFacingError("configError.pi.web.config.plugin.enabled.values.must.be.booleans.field.55c1ea", "PI WEB config plugin enabled values must be booleans: {value1}", { value1: context.path }));
213
214
  const settings = config["settings"];
214
215
  if (settings !== undefined && (!isRecord(settings) || Array.isArray(settings)))
215
- throw new Error(context.format === "request" ? "PI WEB config plugin settings must be objects" : `PI WEB config plugin settings must be objects: ${context.path}`);
216
+ throw (context.format === "request" ? new UserFacingError("configError.pi.web.config.plugin.settings.must.be.objects.efc582", "PI WEB config plugin settings must be objects") : new UserFacingError("configError.pi.web.config.plugin.settings.must.be.objects.field.2abb70", "PI WEB config plugin settings must be objects: {value1}", { value1: context.path }));
216
217
  return [pluginId, config];
217
218
  }));
218
219
  }
219
220
  function parseNormalAuth(value, context) {
220
221
  if (!isRecord(value) || Array.isArray(value))
221
- throw new Error(error(context, "normalAuth must be an object"));
222
+ throw error(context, "configError.pi.web.config.normalauth.must.be.an.object.7d1093", "PI WEB config normalAuth must be an object");
222
223
  return {
223
224
  ...(value["passwordHash"] === undefined ? {} : { passwordHash: parseNormalAuthPasswordHash(value["passwordHash"], context) }),
224
225
  };
225
226
  }
226
227
  function parseNormalAuthPasswordHash(value, context) {
227
228
  if (typeof value !== "string")
228
- throw new Error(error(context, "normalAuth.passwordHash must use pbkdf2-sha256 format"));
229
+ throw error(context, "configError.pi.web.config.normalauth.passwordhash.must.use.pbkdf2.sha256.format.711f8e", "PI WEB config normalAuth.passwordHash must use pbkdf2-sha256 format");
229
230
  const [algorithm, iterationsValue, saltValue, hashValue, extra] = value.split("$");
230
231
  const iterations = Number(iterationsValue);
231
232
  if (algorithm !== "pbkdf2-sha256"
@@ -236,7 +237,7 @@ function parseNormalAuthPasswordHash(value, context) {
236
237
  || hashValue === undefined
237
238
  || !isBase64Url(saltValue)
238
239
  || !isBase64Url(hashValue)) {
239
- throw new Error(error(context, "normalAuth.passwordHash must use pbkdf2-sha256 format"));
240
+ throw error(context, "configError.pi.web.config.normalauth.passwordhash.must.use.pbkdf2.sha256.format.711f8e", "PI WEB config normalAuth.passwordHash must use pbkdf2-sha256 format");
240
241
  }
241
242
  return value;
242
243
  }
@@ -245,7 +246,7 @@ function isBase64Url(value) {
245
246
  }
246
247
  function parseManagementEmbed(value, context) {
247
248
  if (!isRecord(value) || Array.isArray(value))
248
- throw new Error(error(context, "managementEmbed must be an object"));
249
+ throw error(context, "configError.pi.web.config.managementembed.must.be.an.object.d4e00b", "PI WEB config managementEmbed must be an object");
249
250
  const enabled = value["enabled"];
250
251
  const projectRoot = value["projectRoot"];
251
252
  const auth = value["auth"];
@@ -263,9 +264,9 @@ function parseManagementEmbed(value, context) {
263
264
  }
264
265
  function parseManagementEmbedAuth(value, context) {
265
266
  if (!isRecord(value) || Array.isArray(value))
266
- throw new Error(error(context, "managementEmbed.auth must be an object"));
267
+ throw error(context, "configError.pi.web.config.managementembed.auth.must.be.an.object.91b8b1", "PI WEB config managementEmbed.auth must be an object");
267
268
  if (value["introspectionUrl"] !== undefined || value["serviceSecretEnv"] !== undefined)
268
- throw new Error(error(context, "managementEmbed.auth only supports local signed tokens"));
269
+ throw error(context, "configError.pi.web.config.managementembed.auth.only.supports.local.signed.tokens.26661d", "PI WEB config managementEmbed.auth only supports local signed tokens");
269
270
  return {
270
271
  ...(value["sharedSecretEnv"] === undefined ? {} : { sharedSecretEnv: parseString(value["sharedSecretEnv"], "managementEmbed.auth.sharedSecretEnv", context) }),
271
272
  ...(value["issuer"] === undefined ? {} : { issuer: parseString(value["issuer"], "managementEmbed.auth.issuer", context) }),
@@ -274,7 +275,7 @@ function parseManagementEmbedAuth(value, context) {
274
275
  }
275
276
  function parseManagementEmbedSandbox(value, context) {
276
277
  if (!isRecord(value) || Array.isArray(value))
277
- throw new Error(error(context, "managementEmbed.sandbox must be an object"));
278
+ throw error(context, "configError.pi.web.config.managementembed.sandbox.must.be.an.object.c37d2b", "PI WEB config managementEmbed.sandbox must be an object");
278
279
  return {
279
280
  ...(value["pythonExecutable"] === undefined ? {} : { pythonExecutable: parseString(value["pythonExecutable"], "managementEmbed.sandbox.pythonExecutable", context) }),
280
281
  ...(value["env"] === undefined ? {} : { env: parseStringRecord(value["env"], "managementEmbed.sandbox.env", context) }),
@@ -282,7 +283,7 @@ function parseManagementEmbedSandbox(value, context) {
282
283
  }
283
284
  function parseManagementEmbedTools(value, context) {
284
285
  if (!isRecord(value) || Array.isArray(value))
285
- throw new Error(error(context, "managementEmbed.tools must be an object"));
286
+ throw error(context, "configError.pi.web.config.managementembed.tools.must.be.an.object.ae99af", "PI WEB config managementEmbed.tools must be an object");
286
287
  return {
287
288
  ...(value["allow"] === undefined ? {} : { allow: parseStringArray(value["allow"], "managementEmbed.tools.allow", context) }),
288
289
  ...(value["deny"] === undefined ? {} : { deny: parseStringArray(value["deny"], "managementEmbed.tools.deny", context) }),
@@ -291,30 +292,30 @@ function parseManagementEmbedTools(value, context) {
291
292
  }
292
293
  function parseStringRecord(value, key, context) {
293
294
  if (!isRecord(value) || Array.isArray(value))
294
- throw new Error(error(context, `${key} must be an object`));
295
+ throw error(context, "configError.pi.web.config.field.must.be.an.object.c80b6e", "PI WEB config {value1} must be an object", { value1: key });
295
296
  return Object.fromEntries(Object.entries(value).map(([recordKey, recordValue]) => {
296
297
  if (typeof recordValue !== "string")
297
- throw new Error(error(context, `${key} values must be strings`));
298
+ throw error(context, "configError.pi.web.config.field.values.must.be.strings.a88a9e", "PI WEB config {value1} values must be strings", { value1: key });
298
299
  return [recordKey, recordValue];
299
300
  }));
300
301
  }
301
302
  function parseBooleanRecord(value, key, context) {
302
303
  if (!isRecord(value) || Array.isArray(value))
303
- throw new Error(error(context, `${key} must be an object`));
304
+ throw error(context, "configError.pi.web.config.field.must.be.an.object.c80b6e", "PI WEB config {value1} must be an object", { value1: key });
304
305
  return Object.fromEntries(Object.entries(value).map(([recordKey, recordValue]) => {
305
306
  if (typeof recordValue !== "boolean")
306
- throw new Error(error(context, `${key} values must be booleans`));
307
+ throw error(context, "configError.pi.web.config.field.values.must.be.booleans.76c1fc", "PI WEB config {value1} values must be booleans", { value1: key });
307
308
  return [recordKey, recordValue];
308
309
  }));
309
310
  }
310
311
  function parseStringArray(value, key, context) {
311
312
  if (!isNonEmptyStringArray(value))
312
- throw new Error(error(context, `${key} must be an array of non-empty strings`));
313
+ throw error(context, "configError.pi.web.config.field.must.be.an.array.of.non.empty.strings.4284cb", "PI WEB config {value1} must be an array of non-empty strings", { value1: key });
313
314
  return value;
314
315
  }
315
316
  export function parsePathAccessConfig(value, path) {
316
317
  if (!isRecord(value))
317
- throw new Error(`PI WEB config pathAccess must be an object: ${path}`);
318
+ throw new UserFacingError("configError.pi.web.config.pathaccess.must.be.an.object.field.2f49ab", "PI WEB config pathAccess must be an object: {value1}", { value1: path });
318
319
  const allowedPaths = value["allowedPaths"];
319
320
  return {
320
321
  ...(allowedPaths !== undefined ? { allowedPaths: parseAllowedPaths(allowedPaths, path) } : {}),
@@ -322,12 +323,12 @@ export function parsePathAccessConfig(value, path) {
322
323
  }
323
324
  function parseAllowedPaths(value, path) {
324
325
  if (!isNonEmptyStringArray(value))
325
- throw new Error(`PI WEB config pathAccess.allowedPaths must be an array of non-empty strings: ${path}`);
326
+ throw new UserFacingError("configError.pi.web.config.pathaccess.allowedpaths.must.be.an.array.of.non.empty.strings.field.2ed16e", "PI WEB config pathAccess.allowedPaths must be an array of non-empty strings: {value1}", { value1: path });
326
327
  return value;
327
328
  }
328
329
  export function parseUploadsConfig(value, path) {
329
330
  if (!isRecord(value))
330
- throw new Error(`PI WEB config uploads must be an object: ${path}`);
331
+ throw new UserFacingError("configError.pi.web.config.uploads.must.be.an.object.field.a050be", "PI WEB config uploads must be an object: {value1}", { value1: path });
331
332
  const defaultFolder = value["defaultFolder"];
332
333
  return {
333
334
  ...(defaultFolder !== undefined ? { defaultFolder: parseWorkspaceRelativeFolder(defaultFolder, "uploads.defaultFolder", path) } : {}),
@@ -343,22 +344,24 @@ export function parseAttachmentsConfig(value, path) {
343
344
  }
344
345
  function parseWorkspaceRelativeFolder(value, key, path) {
345
346
  if (typeof value !== "string" || value.trim() === "")
346
- throw new Error(`PI WEB config ${key} must be a non-empty workspace-relative path: ${path}`);
347
+ throw new UserFacingError("configError.pi.web.config.field.must.be.a.non.empty.workspace.relative.path.field.81526e", "PI WEB config {value1} must be a non-empty workspace-relative path: {value2}", { value1: key, value2: path });
347
348
  if (isAbsoluteLike(value))
348
- throw new Error(`PI WEB config ${key} must be workspace-relative: ${path}`);
349
+ throw new UserFacingError("configError.pi.web.config.field.must.be.workspace.relative.field.57e29b", "PI WEB config {value1} must be workspace-relative: {value2}", { value1: key, value2: path });
349
350
  const parts = value.split(/[\\/]+/).filter((part) => part !== "" && part !== ".");
350
351
  if (parts.length === 0)
351
- throw new Error(`PI WEB config ${key} must be a non-empty workspace-relative path: ${path}`);
352
+ throw new UserFacingError("configError.pi.web.config.field.must.be.a.non.empty.workspace.relative.path.field.81526e", "PI WEB config {value1} must be a non-empty workspace-relative path: {value2}", { value1: key, value2: path });
352
353
  if (parts.some((part) => part === ".."))
353
- throw new Error(`PI WEB config ${key} must not contain path traversal: ${path}`);
354
+ throw new UserFacingError("configError.pi.web.config.field.must.not.contain.path.traversal.field.cb1d61", "PI WEB config {value1} must not contain path traversal: {value2}", { value1: key, value2: path });
354
355
  return parts.join("/");
355
356
  }
356
357
  function isAbsoluteLike(value) {
357
358
  const withForwardSlashes = value.replace(/\\/g, "/");
358
359
  return withForwardSlashes.startsWith("/") || /^[A-Za-z]:\//.test(withForwardSlashes);
359
360
  }
360
- function error(context, message) {
361
- return context.format === "request" ? `PI WEB config ${message}` : `PI WEB config ${message}: ${context.path}`;
361
+ function error(context, key, fallback, parameters = {}) {
362
+ return context.format === "request"
363
+ ? new UserFacingError(key, fallback, parameters)
364
+ : new UserFacingError(`${key}.file`, `${fallback}: {configPath}`, { ...parameters, configPath: context.path });
362
365
  }
363
366
  function isNonEmptyStringArray(value) {
364
367
  return Array.isArray(value) && value.every((item) => typeof item === "string" && item !== "");