libmodulor 0.27.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +2 -2
  3. package/dist/esm/apps/Helper/src/i18n.js +4 -4
  4. package/dist/esm/apps/Helper/src/lib/layers/project.js +6 -6
  5. package/dist/esm/apps/Helper/src/ucds/CreateAppUCD.js +5 -10
  6. package/dist/esm/apps/Helper/src/ucds/CreateProductUCD.js +5 -10
  7. package/dist/esm/apps/Helper/src/ucds/CreateTargetUCD.js +6 -11
  8. package/dist/esm/apps/Helper/src/ucds/TestAppUCD.js +5 -8
  9. package/dist/esm/dt/DataType.d.ts +2 -1
  10. package/dist/esm/dt/DataTypes.d.ts +1 -1
  11. package/dist/esm/dt/DataTypes.js +1 -0
  12. package/dist/esm/dt/base/TBase.d.ts +2 -0
  13. package/dist/esm/dt/base/TBase.js +5 -0
  14. package/dist/esm/dt/base/TBoolean.d.ts +2 -0
  15. package/dist/esm/dt/base/TBoolean.js +3 -0
  16. package/dist/esm/dt/base/TInt.d.ts +2 -0
  17. package/dist/esm/dt/base/TInt.js +3 -0
  18. package/dist/esm/dt/base/TNumber.d.ts +2 -0
  19. package/dist/esm/dt/base/TNumber.js +3 -0
  20. package/dist/esm/dt/base/TObject.d.ts +2 -0
  21. package/dist/esm/dt/base/TObject.js +29 -0
  22. package/dist/esm/dt/final/TApiKey.d.ts +2 -0
  23. package/dist/esm/dt/final/TApiKey.js +3 -0
  24. package/dist/esm/dt/final/TDateISO8601.d.ts +2 -0
  25. package/dist/esm/dt/final/TDateISO8601.js +3 -0
  26. package/dist/esm/dt/final/TDomainName.d.ts +2 -0
  27. package/dist/esm/dt/final/TDomainName.js +3 -0
  28. package/dist/esm/dt/final/TEmail.d.ts +2 -0
  29. package/dist/esm/dt/final/TEmail.js +3 -0
  30. package/dist/esm/dt/final/TEncryptionKey.d.ts +2 -0
  31. package/dist/esm/dt/final/TEncryptionKey.js +3 -0
  32. package/dist/esm/dt/final/TErrorCode.d.ts +7 -0
  33. package/dist/esm/dt/final/TErrorCode.js +9 -0
  34. package/dist/esm/dt/final/TFile.d.ts +2 -0
  35. package/dist/esm/dt/final/TFile.js +3 -0
  36. package/dist/esm/dt/final/TIPv4.d.ts +2 -0
  37. package/dist/esm/dt/final/TIPv4.js +3 -0
  38. package/dist/esm/dt/final/TIPv6.d.ts +2 -0
  39. package/dist/esm/dt/final/TIPv6.js +3 -0
  40. package/dist/esm/dt/final/TJWT.d.ts +2 -0
  41. package/dist/esm/dt/final/TJWT.js +3 -0
  42. package/dist/esm/dt/final/TPassword.d.ts +2 -0
  43. package/dist/esm/dt/final/TPassword.js +3 -0
  44. package/dist/esm/dt/final/TSSHPrivateKey.d.ts +2 -0
  45. package/dist/esm/dt/final/TSSHPrivateKey.js +3 -0
  46. package/dist/esm/dt/final/TTime.d.ts +2 -0
  47. package/dist/esm/dt/final/TTime.js +3 -0
  48. package/dist/esm/dt/final/TURL.d.ts +2 -0
  49. package/dist/esm/dt/final/TURL.js +3 -0
  50. package/dist/esm/dt/index.d.ts +2 -0
  51. package/dist/esm/dt/index.js +1 -0
  52. package/dist/esm/dt/targets/json-schema.d.ts +24 -0
  53. package/dist/esm/error/CustomError.d.ts +1 -1
  54. package/dist/esm/error/CustomError.js +2 -2
  55. package/dist/esm/error/ForbiddenAsNotFoundError.js +1 -1
  56. package/dist/esm/error/ForbiddenError.js +1 -1
  57. package/dist/esm/error/IllegalArgumentError.js +2 -2
  58. package/dist/esm/error/InternalServerError.js +1 -1
  59. package/dist/esm/error/NotFoundError.js +1 -1
  60. package/dist/esm/error/UnauthorizedError.js +1 -1
  61. package/dist/esm/error/UnavailableError.d.ts +6 -0
  62. package/dist/esm/error/UnavailableError.js +9 -0
  63. package/dist/esm/error/funcs.d.ts +3 -0
  64. package/dist/esm/error/funcs.js +3 -1
  65. package/dist/esm/error/index.d.ts +2 -1
  66. package/dist/esm/error/index.js +2 -1
  67. package/dist/esm/i18n/locales/de.js +8 -0
  68. package/dist/esm/i18n/locales/en.js +8 -0
  69. package/dist/esm/i18n/locales/es.js +8 -0
  70. package/dist/esm/i18n/locales/fr.js +8 -0
  71. package/dist/esm/i18n/types.d.ts +1 -1
  72. package/dist/esm/product/manifest.d.ts +2 -0
  73. package/dist/esm/products/Helper/i18n.d.ts +8 -0
  74. package/dist/esm/std/impl/SimpleHTTPAPICaller.js +1 -1
  75. package/dist/esm/std/impl/SimpleMapI18nManager.d.ts +1 -1
  76. package/dist/esm/std/impl/SimpleMapI18nManager.js +4 -2
  77. package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.d.ts +6 -2
  78. package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.js +17 -9
  79. package/dist/esm/target/index.d.ts +1 -0
  80. package/dist/esm/target/lib/cli/CommandExecutor.js +2 -2
  81. package/dist/esm/target/lib/cli/renderer.d.ts +2 -1
  82. package/dist/esm/target/lib/cli/renderer.js +10 -11
  83. package/dist/esm/target/lib/openapi/OpenAPISpecBuilder.d.ts +25 -0
  84. package/dist/esm/target/lib/openapi/OpenAPISpecBuilder.js +131 -0
  85. package/dist/esm/target/lib/openapi/consts.d.ts +2 -0
  86. package/dist/esm/target/lib/openapi/consts.js +1 -0
  87. package/dist/esm/target/lib/openapi/funcs.d.ts +16 -0
  88. package/dist/esm/target/lib/openapi/funcs.js +249 -0
  89. package/dist/esm/target/lib/openapi/input.d.ts +16 -0
  90. package/dist/esm/target/lib/openapi/input.js +33 -0
  91. package/dist/esm/target/lib/openapi/types.d.ts +109 -0
  92. package/dist/esm/target/lib/rn/input.d.ts +3 -0
  93. package/dist/esm/target/lib/server/AuthCookieCreator.d.ts +2 -1
  94. package/dist/esm/target/lib/server/AuthenticationChecker.d.ts +3 -3
  95. package/dist/esm/target/lib/server/AuthenticationChecker.js +5 -5
  96. package/dist/esm/target/lib/server/ServerBooter.d.ts +4 -2
  97. package/dist/esm/target/lib/server/ServerBooter.js +34 -11
  98. package/dist/esm/target/lib/server/ServerManager.d.ts +19 -9
  99. package/dist/esm/target/lib/server/ServerRequestHandler.d.ts +0 -1
  100. package/dist/esm/target/lib/server/ServerRequestHandler.js +2 -2
  101. package/dist/esm/target/lib/server/consts.d.ts +4 -0
  102. package/dist/esm/target/lib/server/consts.js +22 -0
  103. package/dist/esm/target/lib/server-express/CORSMiddlewareBuilder.d.ts +15 -0
  104. package/dist/esm/target/lib/server-express/CORSMiddlewareBuilder.js +55 -0
  105. package/dist/esm/target/lib/server-express/funcs.d.ts +2 -1
  106. package/dist/esm/target/lib/server-express/funcs.js +7 -2
  107. package/dist/esm/target/lib/server-hono/CORSMiddlewareBuilder.d.ts +14 -0
  108. package/dist/esm/target/{node-express-server/middlewares/PublicApiKeyCheckerMiddlewareBuilder.js → lib/server-hono/CORSMiddlewareBuilder.js} +22 -20
  109. package/dist/esm/target/lib/server-hono/funcs.d.ts +2 -1
  110. package/dist/esm/target/lib/server-hono/funcs.js +2 -1
  111. package/dist/esm/target/lib/shared.d.ts +4 -0
  112. package/dist/esm/target/lib/shared.js +2 -1
  113. package/dist/esm/target/nextjs-server/NextJSServerManager.d.ts +3 -1
  114. package/dist/esm/target/nextjs-server/NextJSServerManager.js +3 -0
  115. package/dist/esm/target/node-core-cli/NodeCoreCLIManager.js +1 -1
  116. package/dist/esm/target/node-express-server/NodeExpressServerManager.d.ts +7 -3
  117. package/dist/esm/target/node-express-server/NodeExpressServerManager.js +24 -14
  118. package/dist/esm/target/node-hono-server/NodeHonoServerManager.d.ts +6 -2
  119. package/dist/esm/target/node-hono-server/NodeHonoServerManager.js +21 -11
  120. package/dist/esm/target/node-mcp-server/NodeLocalStdioMCPServerManager.d.ts +3 -1
  121. package/dist/esm/target/node-mcp-server/NodeLocalStdioMCPServerManager.js +19 -14
  122. package/dist/esm/target/node-mcp-server/types.d.ts +0 -4
  123. package/dist/esm/target/react-web-pure/UCForm.d.ts +1 -1
  124. package/dist/esm/target/react-web-pure/UCForm.js +3 -2
  125. package/dist/esm/testing/workers/checkers/AppI18nChecker.js +4 -2
  126. package/dist/esm/uc/UC.d.ts +2 -0
  127. package/dist/esm/uc/UC.js +16 -1
  128. package/dist/esm/uc/data-store.d.ts +9 -1
  129. package/dist/esm/uc/data-store.js +33 -1
  130. package/dist/esm/uc/impl/CloudflareD1UCDataStore.d.ts +2 -2
  131. package/dist/esm/uc/impl/CloudflareD1UCDataStore.js +7 -0
  132. package/dist/esm/uc/impl/InMemoryUCDataStore.d.ts +8 -3
  133. package/dist/esm/uc/impl/InMemoryUCDataStore.js +19 -3
  134. package/dist/esm/uc/impl/KnexUCDataStore.d.ts +2 -2
  135. package/dist/esm/uc/impl/KnexUCDataStore.js +10 -2
  136. package/dist/esm/uc/impl/SimpleUCManager.d.ts +4 -4
  137. package/dist/esm/uc/impl/SimpleUCManager.js +10 -10
  138. package/dist/esm/uc/metadata.d.ts +7 -0
  139. package/dist/esm/uc/metadata.js +10 -0
  140. package/dist/esm/uc/output-field.d.ts +1 -0
  141. package/dist/esm/uc/output-field.js +13 -1
  142. package/dist/esm/uc/settings/consts.js +1 -0
  143. package/dist/esm/uc/settings.d.ts +8 -1
  144. package/dist/esm/uc/utils/ucHTTPContract.js +1 -1
  145. package/dist/esm/uc/workers/UCExecChecker.d.ts +3 -3
  146. package/dist/esm/uc/workers/UCExecChecker.js +5 -5
  147. package/dist/esm/utils/http/types.d.ts +5 -0
  148. package/dist/esm/utils/index.d.ts +2 -2
  149. package/dist/esm/utils/index.js +1 -1
  150. package/dist/esm/utils/ioc/bindCommon.js +4 -4
  151. package/dist/esm/utils/ioc/bindFactory.d.ts +2 -0
  152. package/dist/esm/utils/ioc/bindFactory.js +9 -0
  153. package/package.json +21 -20
  154. package/dist/esm/apps/Helper/src/lib/app.d.ts +0 -6
  155. package/dist/esm/apps/Helper/src/lib/app.js +0 -12
  156. package/dist/esm/apps/Helper/src/lib/project.d.ts +0 -3
  157. package/dist/esm/apps/Helper/src/lib/project.js +0 -163
  158. package/dist/esm/bundlers/vite/StripUCDLifecycleServerPlugin.d.ts +0 -2
  159. package/dist/esm/bundlers/vite/StripUCDLifecycleServerPlugin.js +0 -18
  160. package/dist/esm/products/Helper/cli-node-core/container.d.ts +0 -3
  161. package/dist/esm/products/Helper/cli-node-core/container.js +0 -26
  162. package/dist/esm/products/Helper/cli-node-core/index.js +0 -9
  163. package/dist/esm/products/Helper/container.d.ts +0 -3
  164. package/dist/esm/products/Helper/container.js +0 -26
  165. package/dist/esm/products/Helper/index.js +0 -16
  166. package/dist/esm/target/lib/react/common.d.ts +0 -6
  167. package/dist/esm/target/lib/react/common.js +0 -1
  168. package/dist/esm/target/lib/server/RequestHandler.d.ts +0 -14
  169. package/dist/esm/target/lib/server/RequestHandler.js +0 -1
  170. package/dist/esm/target/lib/server-node/stop.d.ts +0 -2
  171. package/dist/esm/target/lib/server-node/stop.js +0 -18
  172. package/dist/esm/target/node-express-server/lib/AuthCookieCreator.d.ts +0 -21
  173. package/dist/esm/target/node-express-server/lib/AuthCookieCreator.js +0 -50
  174. package/dist/esm/target/node-express-server/middlewares/AuthenticationCheckerMiddlewareBuilder.d.ts +0 -21
  175. package/dist/esm/target/node-express-server/middlewares/AuthenticationCheckerMiddlewareBuilder.js +0 -61
  176. package/dist/esm/target/node-express-server/middlewares/ErrorMiddlewareBuilder.d.ts +0 -12
  177. package/dist/esm/target/node-express-server/middlewares/ErrorMiddlewareBuilder.js +0 -35
  178. package/dist/esm/target/node-express-server/middlewares/HelmetMiddlewareBuilder.d.ts +0 -12
  179. package/dist/esm/target/node-express-server/middlewares/HelmetMiddlewareBuilder.js +0 -39
  180. package/dist/esm/target/node-express-server/middlewares/PublicApiKeyCheckerMiddlewareBuilder.d.ts +0 -18
  181. package/dist/esm/target/node-express-server/middlewares/RequestCheckerMiddlewareBuilder.d.ts +0 -12
  182. package/dist/esm/target/node-express-server/middlewares/RequestCheckerMiddlewareBuilder.js +0 -36
  183. package/dist/esm/target/node-express-server/middlewares/RequestHandlerMiddlewareBuilder.d.ts +0 -23
  184. package/dist/esm/target/node-express-server/middlewares/RequestHandlerMiddlewareBuilder.js +0 -154
  185. package/dist/esm/target/node-express-server/middlewares/RequestLoggerMiddlewareBuilder.d.ts +0 -13
  186. package/dist/esm/target/node-express-server/middlewares/RequestLoggerMiddlewareBuilder.js +0 -46
  187. package/dist/esm/testing/impl/SimpleAppDocsEmitter.d.ts +0 -7
  188. package/dist/esm/testing/impl/SimpleAppDocsEmitter.js +0 -180
  189. package/dist/esm/testing/impl/SimpleAppTesterConfigurator.d.ts +0 -14
  190. package/dist/esm/testing/impl/SimpleAppTesterConfigurator.js +0 -35
  191. package/dist/esm/uc/utils/stripUCDLifecycleServer.d.ts +0 -15
  192. package/dist/esm/uc/utils/stripUCDLifecycleServer.js +0 -77
  193. package/dist/esm/uc/utils/ucifcoIsForArray.d.ts +0 -8
  194. package/dist/esm/uc/utils/ucifcoIsForArray.js +0 -13
  195. package/dist/esm/utils/bundling/vite/StripUCDLifecycleServerPlugin.d.ts +0 -2
  196. package/dist/esm/utils/bundling/vite/StripUCDLifecycleServerPlugin.js +0 -18
  197. package/dist/esm/utils/http/toFormData.d.ts +0 -3
  198. package/dist/esm/utils/http/toFormData.js +0 -4
  199. package/dist/esm/utils/http/toJSON.d.ts +0 -3
  200. package/dist/esm/utils/http/toJSON.js +0 -3
  201. package/dist/esm/utils/http/toQueryParams.d.ts +0 -2
  202. package/dist/esm/utils/http/toQueryParams.js +0 -4
  203. package/dist/esm/utils/ioc/ContainerPrinter.d.ts +0 -15
  204. package/dist/esm/utils/ioc/ContainerPrinter.js +0 -58
  205. package/dist/esm/utils/ioc/bindProvider.d.ts +0 -2
  206. package/dist/esm/utils/ioc/bindProvider.js +0 -9
  207. /package/dist/esm/{products/Helper/cli-node-core/index.d.ts → dt/targets/json-schema.js} +0 -0
  208. /package/dist/esm/{products/Helper/index.d.ts → target/lib/openapi/types.js} +0 -0
@@ -1,9 +1,11 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString, type TStringConstraints } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  export type IPv4 = `${number}.${number}.${number}.${number}`;
4
5
  export declare class TIPv4 extends TString<IPv4> {
5
6
  static readonly FORMAT: RegExp;
6
7
  constructor(constraints?: TStringConstraints);
7
8
  tName(): TName;
8
9
  example(): IPv4;
10
+ jsonSchemaType(): JSONSchemaType;
9
11
  }
@@ -13,4 +13,7 @@ export class TIPv4 extends TString {
13
13
  example() {
14
14
  return '255.255.255.255';
15
15
  }
16
+ jsonSchemaType() {
17
+ return { format: 'ipv4', type: 'string' };
18
+ }
16
19
  }
@@ -1,9 +1,11 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString, type TStringConstraints } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  export type IPv6 = `${string}:${string}:${string}:${string}:${string}:${string}:${string}:${string}`;
4
5
  export declare class TIPv6 extends TString<IPv6> {
5
6
  static readonly FORMAT: RegExp;
6
7
  constructor(constraints?: TStringConstraints);
7
8
  tName(): TName;
8
9
  example(): IPv6;
10
+ jsonSchemaType(): JSONSchemaType;
9
11
  }
@@ -14,4 +14,7 @@ export class TIPv6 extends TString {
14
14
  example() {
15
15
  return '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
16
16
  }
17
+ jsonSchemaType() {
18
+ return { format: 'ipv6', type: 'string' };
19
+ }
17
20
  }
@@ -1,5 +1,6 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  import type { HTMLInputType } from '../targets/web.js';
4
5
  import type { Validation } from '../Validation.js';
5
6
  export type JWT = string;
@@ -7,6 +8,7 @@ export declare class TJWT extends TString<JWT> {
7
8
  tName(): TName;
8
9
  example(): JWT;
9
10
  htmlInputType(): HTMLInputType;
11
+ jsonSchemaType(): JSONSchemaType;
10
12
  isSensitive(): boolean;
11
13
  validate(): Validation;
12
14
  }
@@ -9,6 +9,9 @@ export class TJWT extends TString {
9
9
  htmlInputType() {
10
10
  return 'password';
11
11
  }
12
+ jsonSchemaType() {
13
+ return { format: 'password', type: 'string' };
14
+ }
12
15
  isSensitive() {
13
16
  return true;
14
17
  }
@@ -1,10 +1,12 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  import type { HTMLInputType } from '../targets/web.js';
4
5
  export type Password = string;
5
6
  export declare class TPassword extends TString<Password> {
6
7
  tName(): TName;
7
8
  example(): Password;
8
9
  htmlInputType(): HTMLInputType;
10
+ jsonSchemaType(): JSONSchemaType;
9
11
  isSensitive(): boolean;
10
12
  }
@@ -9,6 +9,9 @@ export class TPassword extends TString {
9
9
  htmlInputType() {
10
10
  return 'password';
11
11
  }
12
+ jsonSchemaType() {
13
+ return { format: 'password', type: 'string' };
14
+ }
12
15
  isSensitive() {
13
16
  return true;
14
17
  }
@@ -1,5 +1,6 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString, type TStringConstraints } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  import type { HTMLInputType } from '../targets/web.js';
4
5
  type Type = 'OPENSSH' | 'RSA';
5
6
  export declare const SSHPrivatekKeyTypes: Type[];
@@ -10,6 +11,7 @@ export declare class TSSHPrivateKey extends TString<SSHPrivateKey> {
10
11
  tName(): TName;
11
12
  example(): SSHPrivateKey;
12
13
  htmlInputType(): HTMLInputType;
14
+ jsonSchemaType(): JSONSchemaType;
13
15
  isPotentiallyLong(): boolean;
14
16
  isSensitive(): boolean;
15
17
  }
@@ -17,6 +17,9 @@ export class TSSHPrivateKey extends TString {
17
17
  htmlInputType() {
18
18
  return 'password';
19
19
  }
20
+ jsonSchemaType() {
21
+ return { format: 'password', type: 'string' };
22
+ }
20
23
  isPotentiallyLong() {
21
24
  return true;
22
25
  }
@@ -1,5 +1,6 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString, type TStringConstraints } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  import type { RNInputMode } from '../targets/rn.js';
4
5
  import type { HTMLInputType } from '../targets/web.js';
5
6
  export type Time = `${number}${number}:${number}${number}` | `${number}${number}:${number}${number}:${number}${number}`;
@@ -9,5 +10,6 @@ export declare class TTime extends TString<Time> {
9
10
  tName(): TName;
10
11
  example(): Time;
11
12
  htmlInputType(): HTMLInputType;
13
+ jsonSchemaType(): JSONSchemaType;
12
14
  rnInputMode(): RNInputMode;
13
15
  }
@@ -16,6 +16,9 @@ export class TTime extends TString {
16
16
  htmlInputType() {
17
17
  return 'time';
18
18
  }
19
+ jsonSchemaType() {
20
+ return { format: 'time', type: 'string' };
21
+ }
19
22
  rnInputMode() {
20
23
  return 'numeric';
21
24
  }
@@ -1,5 +1,6 @@
1
1
  import type { TName } from '../base/TBase.js';
2
2
  import { TString, type TStringConstraints } from '../base/TString.js';
3
+ import type { JSONSchemaType } from '../targets/json-schema.js';
3
4
  import type { RNInputMode } from '../targets/rn.js';
4
5
  import type { HTMLInputType } from '../targets/web.js';
5
6
  import type { Validation } from '../Validation.js';
@@ -10,6 +11,7 @@ export declare class TURL extends TString<URL> {
10
11
  tName(): TName;
11
12
  example(): URL;
12
13
  htmlInputType(): HTMLInputType;
14
+ jsonSchemaType(): JSONSchemaType;
13
15
  rnInputMode(): RNInputMode;
14
16
  validate(): Validation;
15
17
  private isLocalhost;
@@ -17,6 +17,9 @@ export class TURL extends TString {
17
17
  htmlInputType() {
18
18
  return 'url';
19
19
  }
20
+ jsonSchemaType() {
21
+ return { format: 'uri', type: 'string' };
22
+ }
20
23
  rnInputMode() {
21
24
  return 'url';
22
25
  }
@@ -25,6 +25,7 @@ export { type Email, TEmail } from './final/TEmail.js';
25
25
  export { type EmbeddedObject, TEmbeddedObject, } from './final/TEmbeddedObject.js';
26
26
  export { type Emoji, TEmoji } from './final/TEmoji.js';
27
27
  export { type EncryptionKey, TEncryptionKey } from './final/TEncryptionKey.js';
28
+ export { type ErrorCode, TErrorCode } from './final/TErrorCode.js';
28
29
  export { type ErrorMessage, TErrorMessage } from './final/TErrorMessage.js';
29
30
  export { type ExternalServiceId, TExternalServiceId, } from './final/TExternalServiceId.js';
30
31
  export { type File, TFile, type TFileConstraints } from './final/TFile.js';
@@ -75,6 +76,7 @@ export { TUsername, type Username } from './final/TUsername.js';
75
76
  export { TUUID, type UUID } from './final/TUUID.js';
76
77
  export { TYear, type Year } from './final/TYear.js';
77
78
  export { TYesNo, type YesNo } from './final/TYesNo.js';
79
+ export type { JSONSchemaNumberFormat, JSONSchemaObjectProperties, JSONSchemaStringFormat, JSONSchemaType, } from './targets/json-schema.js';
78
80
  export type { RNInputMode } from './targets/rn.js';
79
81
  export type { HTMLInputType } from './targets/web.js';
80
82
  export { Validation, type Violation, type ViolationFormat, type ViolationI18n, type ViolationI18nable, type ViolationType, } from './Validation.js';
@@ -24,6 +24,7 @@ export { TEmail } from './final/TEmail.js';
24
24
  export { TEmbeddedObject, } from './final/TEmbeddedObject.js';
25
25
  export { TEmoji } from './final/TEmoji.js';
26
26
  export { TEncryptionKey } from './final/TEncryptionKey.js';
27
+ export { TErrorCode } from './final/TErrorCode.js';
27
28
  export { TErrorMessage } from './final/TErrorMessage.js';
28
29
  export { TExternalServiceId, } from './final/TExternalServiceId.js';
29
30
  export { TFile } from './final/TFile.js';
@@ -0,0 +1,24 @@
1
+ export type JSONSchemaNumberFormat = 'double' | 'float' | 'int32' | 'int64';
2
+ export type JSONSchemaStringFormat = 'binary' | 'byte' | 'date' | 'date-time' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'password' | 'time' | 'uuid' | 'uri';
3
+ export type JSONSchemaObjectProperties = Record<string, JSONSchemaType>;
4
+ export type JSONSchemaType = {
5
+ type: 'array';
6
+ items: JSONSchemaType;
7
+ maxItems?: number | undefined;
8
+ minItems?: number | undefined;
9
+ uniqueItems?: boolean | undefined;
10
+ } | {
11
+ type: 'boolean';
12
+ } | {
13
+ type: 'integer';
14
+ } | {
15
+ type: 'number';
16
+ format?: JSONSchemaNumberFormat;
17
+ } | {
18
+ type: 'object';
19
+ properties?: JSONSchemaObjectProperties;
20
+ required?: string[];
21
+ } | {
22
+ type: 'string';
23
+ format?: JSONSchemaStringFormat;
24
+ };
@@ -3,7 +3,7 @@ export interface ServerError {
3
3
  message: ErrorMessage;
4
4
  }
5
5
  export declare abstract class CustomError extends Error {
6
- static readonly ERROR_UNKNOWN: ErrorMessage;
6
+ static readonly UNEXPECTED: ErrorMessage;
7
7
  abstract httpStatus: HTTPStatusNumber;
8
8
  constructor(message?: ErrorMessage);
9
9
  toObj(): ServerError;
@@ -1,7 +1,7 @@
1
1
  export class CustomError extends Error {
2
- static ERROR_UNKNOWN = 'An unexpected error occurred';
2
+ static UNEXPECTED = 'err_unexpected';
3
3
  constructor(message) {
4
- super(message ?? CustomError.ERROR_UNKNOWN);
4
+ super(message ?? CustomError.UNEXPECTED);
5
5
  this.name = 'CustomError';
6
6
  Object.setPrototypeOf(this, CustomError.prototype);
7
7
  }
@@ -2,7 +2,7 @@ import { CustomError } from './CustomError.js';
2
2
  export class ForbiddenAsNotFoundError extends CustomError {
3
3
  httpStatus = 404;
4
4
  constructor(message) {
5
- super(message ?? 'Not found');
5
+ super(message ?? 'err_not_found');
6
6
  this.name = 'ForbiddenAsNotFoundError';
7
7
  Object.setPrototypeOf(this, ForbiddenAsNotFoundError.prototype);
8
8
  }
@@ -2,7 +2,7 @@ import { CustomError } from './CustomError.js';
2
2
  export class ForbiddenError extends CustomError {
3
3
  httpStatus = 403;
4
4
  constructor(message) {
5
- super(message ?? 'Forbidden');
5
+ super(message ?? 'err_forbidden');
6
6
  this.name = 'ForbiddenError';
7
7
  Object.setPrototypeOf(this, ForbiddenError.prototype);
8
8
  }
@@ -1,8 +1,8 @@
1
1
  import { CustomError } from './CustomError.js';
2
2
  export class IllegalArgumentError extends CustomError {
3
- httpStatus = 400;
3
+ httpStatus = 400; // 422 instead ?
4
4
  constructor(message) {
5
- super(message ?? 'Bad request');
5
+ super(message ?? 'err_illegal_argument');
6
6
  this.name = 'IllegalArgumentError';
7
7
  Object.setPrototypeOf(this, IllegalArgumentError.prototype);
8
8
  }
@@ -2,7 +2,7 @@ import { CustomError } from './CustomError.js';
2
2
  export class InternalServerError extends CustomError {
3
3
  httpStatus = 500;
4
4
  constructor(message) {
5
- super(message ?? CustomError.ERROR_UNKNOWN);
5
+ super(message);
6
6
  this.name = 'InternalServerError';
7
7
  Object.setPrototypeOf(this, InternalServerError.prototype);
8
8
  }
@@ -2,7 +2,7 @@ import { CustomError } from './CustomError.js';
2
2
  export class NotFoundError extends CustomError {
3
3
  httpStatus = 404;
4
4
  constructor(message) {
5
- super(message ?? 'Not found');
5
+ super(message ?? 'err_not_found');
6
6
  this.name = 'NotFoundError';
7
7
  Object.setPrototypeOf(this, NotFoundError.prototype);
8
8
  }
@@ -2,7 +2,7 @@ import { CustomError } from './CustomError.js';
2
2
  export class UnauthorizedError extends CustomError {
3
3
  httpStatus = 401;
4
4
  constructor(message) {
5
- super(message ?? 'Invalid credentials');
5
+ super(message ?? 'err_unauthorized');
6
6
  this.name = 'UnauthorizedError';
7
7
  Object.setPrototypeOf(this, UnauthorizedError.prototype);
8
8
  }
@@ -0,0 +1,6 @@
1
+ import type { ErrorMessage, HTTPStatusNumber } from '../dt/index.js';
2
+ import { CustomError } from './CustomError.js';
3
+ export declare class UnavailableError extends CustomError {
4
+ httpStatus: HTTPStatusNumber;
5
+ constructor(message?: ErrorMessage);
6
+ }
@@ -0,0 +1,9 @@
1
+ import { CustomError } from './CustomError.js';
2
+ export class UnavailableError extends CustomError {
3
+ httpStatus = 503;
4
+ constructor(message) {
5
+ super(message ?? 'err_unavailable');
6
+ this.name = 'UnavailableError';
7
+ Object.setPrototypeOf(this, UnavailableError.prototype);
8
+ }
9
+ }
@@ -1,4 +1,7 @@
1
1
  import type { ErrorMessage, HTTPStatusNumber } from '../dt/index.js';
2
+ import type { Class } from '../utils/index.js';
3
+ import type { CustomError } from './CustomError.js';
4
+ export declare const ERROR_HTTP_STATUS_MAP: Map<HTTPStatusNumber, Class<CustomError>>;
2
5
  export declare function isEmptyJSON(err: unknown): boolean;
3
6
  export declare function isInvalidJSON(err: unknown): boolean;
4
7
  export declare function throwCustomError(message: ErrorMessage, status: HTTPStatusNumber): never;
@@ -3,12 +3,14 @@ import { IllegalArgumentError } from './IllegalArgumentError.js';
3
3
  import { InternalServerError } from './InternalServerError.js';
4
4
  import { NotFoundError } from './NotFoundError.js';
5
5
  import { UnauthorizedError } from './UnauthorizedError.js';
6
- const ERROR_HTTP_STATUS_MAP = new Map([
6
+ import { UnavailableError } from './UnavailableError.js';
7
+ export const ERROR_HTTP_STATUS_MAP = new Map([
7
8
  [400, IllegalArgumentError],
8
9
  [401, UnauthorizedError],
9
10
  [403, ForbiddenError],
10
11
  [404, NotFoundError],
11
12
  [500, InternalServerError],
13
+ [503, UnavailableError],
12
14
  ]);
13
15
  export function isEmptyJSON(err) {
14
16
  return (err instanceof Error &&
@@ -1,7 +1,7 @@
1
1
  export { CustomError, type ServerError } from './CustomError.js';
2
2
  export { ForbiddenAsNotFoundError } from './ForbiddenAsNotFoundError.js';
3
3
  export { ForbiddenError } from './ForbiddenError.js';
4
- export { isEmptyJSON, isInvalidJSON, throwCustomError } from './funcs.js';
4
+ export { ERROR_HTTP_STATUS_MAP, isEmptyJSON, isInvalidJSON, throwCustomError, } from './funcs.js';
5
5
  export { IllegalArgumentError } from './IllegalArgumentError.js';
6
6
  export { InternalServerError } from './InternalServerError.js';
7
7
  export { NotAvailableError } from './internal/NotAvailableError.js';
@@ -9,3 +9,4 @@ export { NotCallableError, type NotCallableErrorReason, } from './internal/NotCa
9
9
  export { NotImplementedError } from './internal/NotImplementedError.js';
10
10
  export { NotFoundError } from './NotFoundError.js';
11
11
  export { UnauthorizedError } from './UnauthorizedError.js';
12
+ export { UnavailableError } from './UnavailableError.js';
@@ -1,7 +1,7 @@
1
1
  export { CustomError } from './CustomError.js';
2
2
  export { ForbiddenAsNotFoundError } from './ForbiddenAsNotFoundError.js';
3
3
  export { ForbiddenError } from './ForbiddenError.js';
4
- export { isEmptyJSON, isInvalidJSON, throwCustomError } from './funcs.js';
4
+ export { ERROR_HTTP_STATUS_MAP, isEmptyJSON, isInvalidJSON, throwCustomError, } from './funcs.js';
5
5
  export { IllegalArgumentError } from './IllegalArgumentError.js';
6
6
  export { InternalServerError } from './InternalServerError.js';
7
7
  export { NotAvailableError } from './internal/NotAvailableError.js';
@@ -9,3 +9,4 @@ export { NotCallableError, } from './internal/NotCallableError.js';
9
9
  export { NotImplementedError } from './internal/NotImplementedError.js';
10
10
  export { NotFoundError } from './NotFoundError.js';
11
11
  export { UnauthorizedError } from './UnauthorizedError.js';
12
+ export { UnavailableError } from './UnavailableError.js';
@@ -9,6 +9,14 @@ export const I18nDE = {
9
9
  dt_YesNo_N_label: 'Nein',
10
10
  dt_YesNo_Y_desc: '',
11
11
  dt_YesNo_Y_label: 'Ja',
12
+ err_forbidden: 'Verboten',
13
+ err_illegal_argument: 'Ungültig',
14
+ err_not_found: 'Nicht gefunden',
15
+ err_uc_data_store_not_readable: 'Die Daten sind nicht lesbar',
16
+ err_uc_data_store_not_writable: 'Die Daten sind nicht beschreibbar',
17
+ err_unauthorized: 'Nicht autorisiert',
18
+ err_unavailable: 'Nicht verfügbar',
19
+ err_unexpected: 'Unerwarteter Fehler',
12
20
  uc_client_confirm_cancel: 'Abbrechen',
13
21
  uc_client_confirm_confirm: 'Ja',
14
22
  uc_client_confirm_message: '',
@@ -9,6 +9,14 @@ export const I18nEN = {
9
9
  dt_YesNo_N_label: 'No',
10
10
  dt_YesNo_Y_desc: '',
11
11
  dt_YesNo_Y_label: 'Yes',
12
+ err_forbidden: 'Forbidden',
13
+ err_illegal_argument: 'Invalid',
14
+ err_not_found: 'Not found',
15
+ err_uc_data_store_not_readable: 'Data is not readable',
16
+ err_uc_data_store_not_writable: 'Data is not writable',
17
+ err_unauthorized: 'Unauthorized',
18
+ err_unavailable: 'Unavailable',
19
+ err_unexpected: 'Unexpected error',
12
20
  uc_client_confirm_cancel: 'Cancel',
13
21
  uc_client_confirm_confirm: 'Yes',
14
22
  uc_client_confirm_message: '',
@@ -9,6 +9,14 @@ export const I18nES = {
9
9
  dt_YesNo_N_label: 'No',
10
10
  dt_YesNo_Y_desc: '',
11
11
  dt_YesNo_Y_label: 'Sí',
12
+ err_forbidden: 'Prohibido',
13
+ err_illegal_argument: 'Inválido',
14
+ err_not_found: 'No encontrado',
15
+ err_uc_data_store_not_readable: 'Los datos no son legibles',
16
+ err_uc_data_store_not_writable: 'Los datos no son escribibles',
17
+ err_unauthorized: 'No autorizado',
18
+ err_unavailable: 'No disponible',
19
+ err_unexpected: 'Error inesperado',
12
20
  uc_client_confirm_cancel: 'Cancelar',
13
21
  uc_client_confirm_confirm: 'Sí',
14
22
  uc_client_confirm_message: '',
@@ -9,6 +9,14 @@ export const I18nFR = {
9
9
  dt_YesNo_N_label: 'Non',
10
10
  dt_YesNo_Y_desc: '',
11
11
  dt_YesNo_Y_label: 'Oui',
12
+ err_forbidden: 'Interdit',
13
+ err_illegal_argument: 'Invalide',
14
+ err_not_found: 'Introuvable',
15
+ err_uc_data_store_not_readable: 'Les données ne sont pas lisibles',
16
+ err_uc_data_store_not_writable: 'Les données ne sont pas écrivables',
17
+ err_unauthorized: 'Non autorisé',
18
+ err_unavailable: 'Non disponible',
19
+ err_unexpected: 'Erreur inattendue',
12
20
  uc_client_confirm_cancel: 'Annuler',
13
21
  uc_client_confirm_confirm: 'Oui',
14
22
  uc_client_confirm_message: '',
@@ -8,7 +8,7 @@ export type I18nLanguageCode = 'de' | 'en' | 'es' | 'fr';
8
8
  */
9
9
  export type I18nTranslation = string;
10
10
  export type I18nTranslationKey = string;
11
- export type I18nCoreKey = ViolationI18nable | `dt_FreeTextShort_constr_${keyof TStringConstraints}` | `dt_File_constr_${keyof TFileConstraints}` | `dt_YesNo_${YesNo}_${keyof UCWording}` | `uc_client_confirm_${keyof UCClientConfirmConfig}` | `uc_i_submit_${UCExecState}`;
11
+ export type I18nCoreKey = ViolationI18nable | `dt_FreeTextShort_constr_${keyof TStringConstraints}` | `dt_File_constr_${keyof TFileConstraints}` | `dt_YesNo_${YesNo}_${keyof UCWording}` | 'err_forbidden' | 'err_illegal_argument' | 'err_not_found' | 'err_uc_data_store_not_readable' | 'err_uc_data_store_not_writable' | 'err_unauthorized' | 'err_unavailable' | 'err_unexpected' | `uc_client_confirm_${keyof UCClientConfirmConfig}` | `uc_i_submit_${UCExecState}`;
12
12
  export type I18nCoreTranslations = Record<I18nCoreKey, I18nTranslation>;
13
13
  export type I18nSource = any;
14
14
  export type I18nSourceSafe = {
@@ -1,4 +1,5 @@
1
1
  import type { AppName } from '../app/index.js';
2
+ import type { SemVerVersion } from '../dt/index.js';
2
3
  import type { UCName } from '../uc/index.js';
3
4
  export interface ProductAppReg {
4
5
  /**
@@ -25,6 +26,7 @@ export type ProductName = string;
25
26
  export interface ProductManifest {
26
27
  appReg: ProductAppReg[];
27
28
  name: ProductName;
29
+ version?: SemVerVersion;
28
30
  }
29
31
  export interface ProductWording {
30
32
  desc: string | null;
@@ -37,6 +37,12 @@ export declare const I18n: {
37
37
  ucif_serverPortRangeStart_desc: string;
38
38
  ucif_skipCoverage_desc: string;
39
39
  ucif_updateSnapshots_desc: string;
40
+ err_unexpected: string;
41
+ err_not_found: string;
42
+ err_forbidden: string;
43
+ err_illegal_argument: string;
44
+ err_unauthorized: string;
45
+ err_unavailable: string;
40
46
  validation_max: string;
41
47
  validation_min: string;
42
48
  validation_fieldsOr: string;
@@ -79,6 +85,8 @@ export declare const I18n: {
79
85
  validation_type_array: string;
80
86
  validation_type_int: string;
81
87
  validation_type_scalar: string;
88
+ err_uc_data_store_not_readable: string;
89
+ err_uc_data_store_not_writable: string;
82
90
  dt_FreeTextShort_constr_format: string;
83
91
  dt_FreeTextShort_constr_maxLength: string;
84
92
  dt_FreeTextShort_constr_minLength: string;
@@ -33,7 +33,7 @@ let SimpleHTTPAPICaller = class SimpleHTTPAPICaller {
33
33
  this.sseStreamManager = sseStreamManager;
34
34
  this.xmlManager = xmlManager;
35
35
  }
36
- async exec({ additionalHeadersBuilder, authorizationHeader, basicAuth, contentType = 'application/json', errBuilder, method, opts, outputBuilder, registerAbort, req, stream, urlBuilder, unknownErrorMessage = CustomError.ERROR_UNKNOWN, }) {
36
+ async exec({ additionalHeadersBuilder, authorizationHeader, basicAuth, contentType = 'application/json', errBuilder, method, opts, outputBuilder, registerAbort, req, stream, urlBuilder, unknownErrorMessage = CustomError.UNEXPECTED, }) {
37
37
  const baseURL = await urlBuilder();
38
38
  const data = (await req?.builder?.()) || {};
39
39
  const { body, url } = await this.httpRequestBuilder.exec({
@@ -1,4 +1,4 @@
1
- import type { I18n, I18nLanguageCode, I18nTranslationKey } from '../../i18n/index.js';
1
+ import { type I18n, type I18nLanguageCode, type I18nTranslationKey } from '../../i18n/index.js';
2
2
  import type { I18nManager, I18nManagerTOpts } from '../I18nManager.js';
3
3
  import type { Logger } from '../Logger.js';
4
4
  export declare class SimpleMapI18nManager implements I18nManager {
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  var SimpleMapI18nManager_1;
14
14
  import { inject, injectable } from 'inversify';
15
+ import { I18N_DEFAULT_LANG, } from '../../i18n/index.js';
15
16
  let SimpleMapI18nManager = class SimpleMapI18nManager {
16
17
  static { SimpleMapI18nManager_1 = this; }
17
18
  i18n;
@@ -28,8 +29,9 @@ let SimpleMapI18nManager = class SimpleMapI18nManager {
28
29
  throw new Error('I18n must define at least one lang');
29
30
  }
30
31
  this.entries = new Map();
31
- // biome-ignore lint/style/noNonNullAssertion: we want it
32
- this.currentLang = this.langs[0];
32
+ this.currentLang =
33
+ // biome-ignore lint/style/noNonNullAssertion: we want it
34
+ this.langs.find((l) => l === I18N_DEFAULT_LANG) ?? this.langs[0];
33
35
  }
34
36
  async add(key, value) {
35
37
  this.current().set(key, value);
@@ -1,23 +1,26 @@
1
1
  import type { Hono } from 'hono';
2
2
  import type { AppManifest } from '../../app/index.js';
3
- import type { DirPath } from '../../dt/index.js';
3
+ import type { DirPath, URLPath } from '../../dt/index.js';
4
4
  import type { Configurable, SettingsManager } from '../../std/index.js';
5
5
  import type { UCDataStore, UCDef, UCHTTPContract, UCInput, UCManager, UCOPIBase } from '../../uc/index.js';
6
+ import type { OpenAPISpec } from '../lib/openapi/types.js';
6
7
  import { CustomerFacingErrorBuilder } from '../lib/server/CustomerFacingErrorBuilder.js';
7
8
  import type { ServerManager } from '../lib/server/ServerManager.js';
8
9
  import { ServerRequestHandler } from '../lib/server/ServerRequestHandler.js';
10
+ import { CORSMiddlewareBuilder } from '../lib/server-hono/CORSMiddlewareBuilder.js';
9
11
  export interface SyncEdgeWorkerHonoServerManagerSettings {
10
12
  sewhsm_bindings_uc_data_store: string | null;
11
13
  }
12
14
  type S = SyncEdgeWorkerHonoServerManagerSettings;
13
15
  export declare class SyncEdgeWorkerHonoServerManager implements Configurable<S>, ServerManager {
16
+ private corsMiddlewareBuilder;
14
17
  private customerFacingErrorBuilder;
15
18
  private serverRequestHandler;
16
19
  private settingsManager;
17
20
  private ucDataStore;
18
21
  private ucManager;
19
22
  protected runtime: Hono;
20
- constructor(customerFacingErrorBuilder: CustomerFacingErrorBuilder, serverRequestHandler: ServerRequestHandler, settingsManager: SettingsManager<S>, ucDataStore: UCDataStore, ucManager: UCManager);
23
+ constructor(corsMiddlewareBuilder: CORSMiddlewareBuilder, customerFacingErrorBuilder: CustomerFacingErrorBuilder, serverRequestHandler: ServerRequestHandler, settingsManager: SettingsManager<S>, ucDataStore: UCDataStore, ucManager: UCManager);
21
24
  s(): SyncEdgeWorkerHonoServerManagerSettings;
22
25
  getRuntime(): Hono;
23
26
  overrideUCManager(ucManager: UCManager): void;
@@ -25,6 +28,7 @@ export declare class SyncEdgeWorkerHonoServerManager implements Configurable<S>,
25
28
  initSync(): void;
26
29
  mount<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(_appManifest: AppManifest, _ucd: UCDef<I, OPI0, OPI1>, _contract: UCHTTPContract): Promise<void>;
27
30
  mountSync<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(appManifest: AppManifest, ucd: UCDef<I, OPI0, OPI1>, contract: UCHTTPContract): void;
31
+ mountOpenAPISpec(_spec: OpenAPISpec, _at: URLPath): Promise<void>;
28
32
  mountStaticDir(_dirPath: DirPath): Promise<void>;
29
33
  start(): Promise<void>;
30
34
  stop(): Promise<void>;