libmodulor 0.17.0 → 0.18.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 (151) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/dist/esm/app/workers/AppSrcFilePathBuilder.js +1 -1
  4. package/dist/esm/apps/Helper/src/lib/project.js +53 -8
  5. package/dist/esm/apps/Helper/src/ucds/CreateProjectUCD.js +1 -1
  6. package/dist/esm/dt/DataType.d.ts +9 -9
  7. package/dist/esm/dt/base/TBase.d.ts +1 -1
  8. package/dist/esm/dt/base/TBoolean.d.ts +1 -1
  9. package/dist/esm/dt/base/TInt.d.ts +1 -1
  10. package/dist/esm/dt/base/TNumber.d.ts +1 -1
  11. package/dist/esm/dt/final/TDateISO8601.d.ts +1 -1
  12. package/dist/esm/dt/final/TEmail.js +1 -1
  13. package/dist/esm/dt/final/TFile.d.ts +1 -1
  14. package/dist/esm/dt/final/TGeolocation.d.ts +1 -1
  15. package/dist/esm/dt/final/TJSONString.d.ts +1 -1
  16. package/dist/esm/dt/final/TJSONString.js +1 -1
  17. package/dist/esm/dt/final/TJWT.d.ts +1 -1
  18. package/dist/esm/dt/final/TJWT.js +1 -1
  19. package/dist/esm/dt/final/TURL.d.ts +1 -1
  20. package/dist/esm/dt/final/TURL.js +1 -1
  21. package/dist/esm/dt/index.d.ts +16 -16
  22. package/dist/esm/dt/index.js +8 -8
  23. package/dist/esm/i18n/locales/en.js +2 -2
  24. package/dist/esm/i18n/locales/fr.js +3 -3
  25. package/dist/esm/index.d.ts +2 -2
  26. package/dist/esm/index.js +2 -2
  27. package/dist/esm/index.react.d.ts +3 -3
  28. package/dist/esm/index.web.d.ts +1 -1
  29. package/dist/esm/index.web.js +1 -1
  30. package/dist/esm/std/HTTPAPICallExecutor.d.ts +2 -5
  31. package/dist/esm/std/HTTPAPICaller.d.ts +6 -0
  32. package/dist/esm/std/consts.d.ts +1 -1
  33. package/dist/esm/std/impl/JoseJWTManager.js +1 -1
  34. package/dist/esm/std/impl/MistralAILLMManager.js +2 -2
  35. package/dist/esm/std/impl/NodeCryptoManager.d.ts +1 -1
  36. package/dist/esm/std/impl/NodeEnvironmentManager.js +1 -1
  37. package/dist/esm/std/impl/NodeFSManager.js +1 -1
  38. package/dist/esm/std/impl/OllamaLLMManager.js +1 -1
  39. package/dist/esm/std/impl/OpenAILLMManager.js +2 -2
  40. package/dist/esm/std/impl/SimpleHTTPAPICaller.js +2 -2
  41. package/dist/esm/std/impl/WebCryptoManager.d.ts +1 -1
  42. package/dist/esm/std/index.d.ts +3 -3
  43. package/dist/esm/std/index.js +3 -3
  44. package/dist/esm/target/lib/cli/CommandExecutor.js +2 -2
  45. package/dist/esm/target/lib/react/DIContextProvider.d.ts +2 -2
  46. package/dist/esm/target/lib/react/DIContextProvider.js +4 -3
  47. package/dist/esm/target/lib/react/StyleContextProvider.d.ts +2 -2
  48. package/dist/esm/target/lib/react/StyleContextProvider.js +3 -2
  49. package/dist/esm/target/lib/react/UCContainer.js +4 -3
  50. package/dist/esm/target/lib/react/UCEntrypoint.d.ts +1 -1
  51. package/dist/esm/target/lib/react/UCEntrypoint.js +2 -2
  52. package/dist/esm/target/lib/react/UCOutputFieldValueFragment.d.ts +1 -1
  53. package/dist/esm/target/lib/react/UCOutputFieldValueFragment.js +2 -2
  54. package/dist/esm/target/lib/react/UCPanel.js +12 -15
  55. package/dist/esm/target/lib/server/RequestChecker.js +1 -1
  56. package/dist/esm/target/lib/server/ServerRequestHandler.js +3 -3
  57. package/dist/esm/target/node-core-cli/NodeCoreCLIManager.js +1 -1
  58. package/dist/esm/target/node-core-cli/commands.js +1 -1
  59. package/dist/esm/target/node-express-server/NodeExpressServerManager.js +1 -1
  60. package/dist/esm/target/node-hono-server/NodeHonoServerManager.js +1 -1
  61. package/dist/esm/target/node-mcp-server/NodeLocalStdioMCPServerManager.js +2 -2
  62. package/dist/esm/target/node-mcp-server/funcs.js +1 -1
  63. package/dist/esm/target/react-native-pure/UCAutoExecLoader.d.ts +1 -1
  64. package/dist/esm/target/react-native-pure/UCAutoExecLoader.js +2 -2
  65. package/dist/esm/target/react-native-pure/UCEntrypointTouchable.d.ts +1 -1
  66. package/dist/esm/target/react-native-pure/UCEntrypointTouchable.js +2 -3
  67. package/dist/esm/target/react-native-pure/UCExecTouchable.d.ts +1 -1
  68. package/dist/esm/target/react-native-pure/UCExecTouchable.js +2 -3
  69. package/dist/esm/target/react-native-pure/UCForm.d.ts +1 -1
  70. package/dist/esm/target/react-native-pure/UCForm.js +2 -4
  71. package/dist/esm/target/react-native-pure/UCFormField.js +4 -7
  72. package/dist/esm/target/react-native-pure/UCFormFieldControl.js +12 -12
  73. package/dist/esm/target/react-native-pure/UCFormFieldDesc.d.ts +1 -1
  74. package/dist/esm/target/react-native-pure/UCFormFieldDesc.js +2 -2
  75. package/dist/esm/target/react-native-pure/UCFormFieldErr.d.ts +1 -1
  76. package/dist/esm/target/react-native-pure/UCFormFieldErr.js +2 -2
  77. package/dist/esm/target/react-native-pure/UCFormFieldLabel.d.ts +1 -1
  78. package/dist/esm/target/react-native-pure/UCFormFieldLabel.js +2 -4
  79. package/dist/esm/target/react-native-pure/UCFormSubmitControl.d.ts +1 -1
  80. package/dist/esm/target/react-native-pure/UCFormSubmitControl.js +2 -3
  81. package/dist/esm/target/react-native-pure/UCOutputFieldValue.d.ts +1 -1
  82. package/dist/esm/target/react-native-pure/UCOutputFieldValue.js +2 -3
  83. package/dist/esm/target/react-web-pure/UCAutoExecLoader.d.ts +1 -1
  84. package/dist/esm/target/react-web-pure/UCAutoExecLoader.js +2 -2
  85. package/dist/esm/target/react-web-pure/UCEntrypointTouchable.d.ts +1 -1
  86. package/dist/esm/target/react-web-pure/UCEntrypointTouchable.js +2 -2
  87. package/dist/esm/target/react-web-pure/UCExecTouchable.d.ts +1 -1
  88. package/dist/esm/target/react-web-pure/UCExecTouchable.js +2 -2
  89. package/dist/esm/target/react-web-pure/UCForm.js +3 -4
  90. package/dist/esm/target/react-web-pure/UCFormField.js +4 -7
  91. package/dist/esm/target/react-web-pure/UCFormFieldControl.d.ts +1 -1
  92. package/dist/esm/target/react-web-pure/UCFormFieldControl.js +5 -7
  93. package/dist/esm/target/react-web-pure/UCFormFieldDesc.d.ts +1 -1
  94. package/dist/esm/target/react-web-pure/UCFormFieldDesc.js +2 -2
  95. package/dist/esm/target/react-web-pure/UCFormFieldErr.d.ts +1 -1
  96. package/dist/esm/target/react-web-pure/UCFormFieldErr.js +2 -2
  97. package/dist/esm/target/react-web-pure/UCFormFieldLabel.d.ts +1 -1
  98. package/dist/esm/target/react-web-pure/UCFormFieldLabel.js +2 -4
  99. package/dist/esm/target/react-web-pure/UCFormSubmitControl.d.ts +1 -1
  100. package/dist/esm/target/react-web-pure/UCFormSubmitControl.js +2 -2
  101. package/dist/esm/target/react-web-pure/UCOutputFieldValue.d.ts +1 -1
  102. package/dist/esm/target/react-web-pure/UCOutputFieldValue.js +2 -3
  103. package/dist/esm/testing/AppTester.d.ts +2 -2
  104. package/dist/esm/testing/AppTester.js +2 -2
  105. package/dist/esm/testing/UCDefASTParser.js +1 -1
  106. package/dist/esm/testing/impl/SimpleAppDocsEmitter.js +1 -1
  107. package/dist/esm/testing/impl/TypeScriptLibUCDefASTParser.d.ts +1 -1
  108. package/dist/esm/testing/impl/TypeScriptLibUCDefASTParser.js +2 -3
  109. package/dist/esm/testing/index.d.ts +6 -6
  110. package/dist/esm/testing/index.js +2 -2
  111. package/dist/esm/testing/uc-auth.js +1 -1
  112. package/dist/esm/testing/workers/AppTesterCtxInitializer.js +1 -1
  113. package/dist/esm/testing/workers/UCExecutor.js +1 -1
  114. package/dist/esm/testing/workers/checkers/UCDefSourcesChecker.d.ts +1 -1
  115. package/dist/esm/testing/workers/checkers/UCDefSourcesChecker.js +3 -3
  116. package/dist/esm/uc/UC.d.ts +2 -2
  117. package/dist/esm/uc/UC.js +2 -2
  118. package/dist/esm/uc/UCInputField.d.ts +1 -1
  119. package/dist/esm/uc/helpers/UCOutputReader.d.ts +3 -3
  120. package/dist/esm/uc/impl/HTTPUCTransporter.d.ts +1 -1
  121. package/dist/esm/uc/impl/HTTPUCTransporter.js +3 -4
  122. package/dist/esm/uc/impl/InMemoryUCDataStore.d.ts +1 -1
  123. package/dist/esm/uc/impl/KnexUCDataStore.d.ts +1 -1
  124. package/dist/esm/uc/impl/SimpleUCManager.d.ts +2 -2
  125. package/dist/esm/uc/index.d.ts +30 -30
  126. package/dist/esm/uc/index.js +30 -30
  127. package/dist/esm/uc/io/input/AggregateInput.d.ts +1 -1
  128. package/dist/esm/uc/io/input/ListInput.d.ts +1 -1
  129. package/dist/esm/uc/main.d.ts +1 -1
  130. package/dist/esm/uc/manager.d.ts +2 -2
  131. package/dist/esm/uc/output-part.d.ts +1 -1
  132. package/dist/esm/uc/policy.d.ts +1 -1
  133. package/dist/esm/uc/transporter.d.ts +1 -1
  134. package/dist/esm/uc/utils/appendUCInputToURL.d.ts +1 -1
  135. package/dist/esm/uc/utils/fmtVal.d.ts +1 -1
  136. package/dist/esm/uc/utils/rInput.d.ts +1 -1
  137. package/dist/esm/uc/utils/recIs.d.ts +1 -1
  138. package/dist/esm/uc/utils/ucHTTPContract.d.ts +1 -1
  139. package/dist/esm/uc/utils/ucMountingPoint.d.ts +1 -1
  140. package/dist/esm/uc/workers/SimpleAggregateFinder.d.ts +1 -1
  141. package/dist/esm/uc/workers/SimpleAggregateOwnershipChecker.d.ts +2 -2
  142. package/dist/esm/uc/workers/UCBuilder.d.ts +1 -1
  143. package/dist/esm/uc/workers/UCExecChecker.d.ts +1 -1
  144. package/dist/esm/uc/workers/UCInputFilesProcessor.d.ts +1 -1
  145. package/dist/esm/uc/workers/UCInputValidator.d.ts +1 -1
  146. package/dist/esm/utils/index.d.ts +1 -1
  147. package/dist/esm/utils/ioc/bindNodeCore.js +1 -1
  148. package/dist/esm/utils/numbers/fmt.js +1 -1
  149. package/package.json +8 -8
  150. package/pnpm-workspace.yaml +5 -4
  151. package/tsconfig.json +36 -0
@@ -12,8 +12,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { inject, injectable } from 'inversify';
14
14
  import { APP_SRC_DIR_NAME, APP_SRC_UCDS_DIR_NAME, UC_DEF_FILE_NAME_SUFFIX, UC_DEF_SUFFIX, UC_INPUT_FIELD_PATTERN, UC_INPUT_SUFFIX, UC_OPI_SUFFIX, UC_POLICY_SUFFIX_FULL, } from '../../../convention.js';
15
- import { initOutputItem, } from '../../UCDefASTParser.js';
16
15
  import { optsAllSet } from '../../opts.js';
16
+ import { initOutputItem, } from '../../UCDefASTParser.js';
17
17
  const ERR_UCD_CONST_NAME = (name) => `The UCD const name '${name}' must follow the convention`;
18
18
  const ERR_UCD_FILE_SUFFIX = (fileName) => `The file '${fileName}' must end with ${UC_DEF_FILE_NAME_SUFFIX}`;
19
19
  const ERR_UCD_IMPORTS_EXTERNAL_ALLOWED = (aliasPrefix, allowed, text) => `External imports must be an alias '${aliasPrefix}*' or be one of ${allowed} (Got ${text})`;
@@ -39,7 +39,7 @@ let UCDefSourcesChecker = class UCDefSourcesChecker {
39
39
  async exec({ ctx }) {
40
40
  const { appPath, opts } = ctx;
41
41
  // TODO : Consider removing this and using profiling when needed
42
- const startTime = new Date().getTime();
42
+ const startTime = Date.now();
43
43
  this.logger.debug('UCDefSourceChecker starting', {
44
44
  appPath,
45
45
  startTime,
@@ -52,7 +52,7 @@ let UCDefSourcesChecker = class UCDefSourcesChecker {
52
52
  await this.ucDefASTParser.transpile();
53
53
  this.logger.debug('UCDefSourceChecker processing files');
54
54
  this.output.items = await this.processFiles(appPath, ucdsPaths);
55
- const duration = new Date().getTime() - startTime;
55
+ const duration = Date.now() - startTime;
56
56
  this.logger.debug('UCDefSourceChecker done', {
57
57
  appPath,
58
58
  duration: `${duration} ms`,
@@ -1,11 +1,11 @@
1
1
  import type { AppManifest } from '../app/index.js';
2
2
  import { type DataType, Validation } from '../dt/index.js';
3
- import { UCInputField } from './UCInputField.js';
4
3
  import type { UCAuth } from './auth.js';
5
4
  import type { UCDef, UCFieldKey } from './def.js';
6
5
  import type { UCInput } from './input.js';
7
6
  import type { UCOPIBase } from './opi.js';
8
- import type { rVal0, rValArr, reqVal0 } from './utils/rVal.js';
7
+ import { UCInputField } from './UCInputField.js';
8
+ import type { reqVal0, rVal0, rValArr } from './utils/rVal.js';
9
9
  export type ArgsTuple<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> = ConstructorParameters<typeof UC<I, OPI0, OPI1>>;
10
10
  export type ArgsRecord<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> = {
11
11
  appManifest: ArgsTuple<I, OPI0, OPI1>[0];
package/dist/esm/uc/UC.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { TFile, Validation } from '../dt/index.js';
2
2
  import { isBlank } from '../utils/index.js';
3
- import { UCInputField } from './UCInputField.js';
4
3
  import { UCInputFieldChangeOperator, ucifIsMandatory, ucifIsSensitive, ucifMustBeFilledManually, } from './input-field.js';
5
4
  import { AggregateInputDef } from './io/input/AggregateInput.js';
6
5
  import { ListInputDef } from './io/input/ListInput.js';
6
+ import { UCInputField } from './UCInputField.js';
7
7
  export class UC {
8
8
  appManifest;
9
9
  def;
@@ -126,7 +126,7 @@ export class UC {
126
126
  }
127
127
  operatesOnAggregate() {
128
128
  const fields = this.inputFields;
129
- const aggregateIdField = fields.find((f) => f.key === Object.keys(AggregateInputDef['fields'])[0]);
129
+ const aggregateIdField = fields.find((f) => f.key === Object.keys(AggregateInputDef.fields)[0]);
130
130
  return !!aggregateIdField && ucifIsMandatory(aggregateIdField.def);
131
131
  }
132
132
  rVal0(key) {
@@ -1,7 +1,7 @@
1
1
  import { type DataType, Validation } from '../dt/index.js';
2
2
  import type { UCFieldKey, UCWording } from './def.js';
3
3
  import { UCInputFieldChangeOperator, type UCInputFieldDef, type UCInputFieldValue } from './input-field.js';
4
- import { rVal0, rValArr, type reqVal0 } from './utils/rVal.js';
4
+ import { type reqVal0, rVal0, rValArr } from './utils/rVal.js';
5
5
  export declare class UCInputField<T extends DataType> {
6
6
  key: UCFieldKey;
7
7
  def: UCInputFieldDef<T>;
@@ -1,12 +1,12 @@
1
1
  import { type DataType } from '../../dt/index.js';
2
2
  import type { StringKeys } from '../../utils/index.js';
3
- import type { UC } from '../UC.js';
4
- import { UCOutputField } from '../UCOutputField.js';
5
3
  import type { UCDef } from '../def.js';
6
4
  import type { UCInput } from '../input.js';
7
5
  import type { UCOPIBase } from '../opi.js';
8
- import type { UCOutputPart, UCOutputPartDef } from '../output-part.js';
9
6
  import type { UCOutput, UCOutputPartIdx, UCOutputPartKey } from '../output.js';
7
+ import type { UCOutputPart, UCOutputPartDef } from '../output-part.js';
8
+ import type { UC } from '../UC.js';
9
+ import { UCOutputField } from '../UCOutputField.js';
10
10
  export interface UCOutputReaderPart<OPI extends UCOPIBase> {
11
11
  fields: UCOutputField<OPI, any>[];
12
12
  idx: UCOutputPartIdx;
@@ -1,10 +1,10 @@
1
1
  import type { Configurable, HTTPAPICaller, SettingsManager } from '../../std/index.js';
2
2
  import type { ServerClientManager, ServerClientManagerSettings } from '../../target/lib/client/ServerClientManager.js';
3
- import type { UC } from '../UC.js';
4
3
  import type { UCInput } from '../input.js';
5
4
  import type { UCOPIBase } from '../opi.js';
6
5
  import type { UCOutputOrNothing } from '../output.js';
7
6
  import type { UCTransporter } from '../transporter.js';
7
+ import type { UC } from '../UC.js';
8
8
  type S = Pick<ServerClientManagerSettings, 'server_cookies_name_auth' | 'server_public_api_key_header_name'>;
9
9
  export declare class HTTPUCTransporter implements Configurable<S>, UCTransporter {
10
10
  private httpAPICaller;
@@ -34,8 +34,8 @@ let HTTPUCTransporter = class HTTPUCTransporter {
34
34
  const baseURL = await this.serverClientManager.baseURL({ auth });
35
35
  const { contentType, envelope, method, path } = ucHTTPContract(uc);
36
36
  const additionalHeaders = {};
37
- let authorizationHeader = undefined;
38
- let basicAuth = undefined;
37
+ let authorizationHeader;
38
+ let basicAuth;
39
39
  const authType = sec?.authType ?? DEFAULT_UC_SEC_AT;
40
40
  const publicApiKeyCheckType = sec?.publicApiKeyCheckType ?? DEFAULT_UC_SEC_PAKCT;
41
41
  switch (publicApiKeyCheckType) {
@@ -81,8 +81,7 @@ let HTTPUCTransporter = class HTTPUCTransporter {
81
81
  auth,
82
82
  });
83
83
  if (jwt) {
84
- additionalHeaders['Cookie'] =
85
- `${this.s().server_cookies_name_auth}=${jwt}`;
84
+ additionalHeaders.Cookie = `${this.s().server_cookies_name_auth}=${jwt}`;
86
85
  }
87
86
  break;
88
87
  }
@@ -1,5 +1,5 @@
1
- import type { UCDataStore, UCDataStoreReadOpts, UCDataStoreReadResponse, UCDataStoreRecord, UCDataStoreTx, UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
2
1
  import type { UCData } from '../data.js';
2
+ import type { UCDataStore, UCDataStoreReadOpts, UCDataStoreReadResponse, UCDataStoreRecord, UCDataStoreTx, UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
3
3
  import type { UCInput } from '../input.js';
4
4
  type TxState = 'committed' | 'pending' | 'rollbacked';
5
5
  export declare class InMemoryUCDataStore implements UCDataStore {
@@ -1,8 +1,8 @@
1
1
  import { type Knex } from 'knex';
2
2
  import type { FilePath, UIntQuantity } from '../../dt/index.js';
3
3
  import type { Configurable, Settings, SettingsManager } from '../../std/index.js';
4
- import type { UCDataStore, UCDataStoreReadOpts, UCDataStoreReadProjectionOpts, UCDataStoreReadResponse, UCDataStoreRecord, UCDataStoreTx, UCDataStoreWriteOpts, UCDataStoreWriteProjectionOpts, UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
5
4
  import type { UCData } from '../data.js';
5
+ import type { UCDataStore, UCDataStoreReadOpts, UCDataStoreReadProjectionOpts, UCDataStoreReadResponse, UCDataStoreRecord, UCDataStoreTx, UCDataStoreWriteOpts, UCDataStoreWriteProjectionOpts, UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
6
6
  import type { UCInput } from '../input.js';
7
7
  import type { UCSettings } from '../settings.js';
8
8
  /**
@@ -1,9 +1,8 @@
1
1
  import { type Provider } from 'inversify';
2
2
  import type { ClockManager, CryptoManager, Logger } from '../../std/index.js';
3
- import type { UC } from '../UC.js';
4
3
  import type { UCClientConfirmManager } from '../client.js';
5
- import type { UCDataStore, UCDataStoreRecord } from '../data-store.js';
6
4
  import type { UCData } from '../data.js';
5
+ import type { UCDataStore, UCDataStoreRecord } from '../data-store.js';
7
6
  import { UCOutputReader } from '../helpers/UCOutputReader.js';
8
7
  import type { UCInit } from '../init.js';
9
8
  import type { UCInput } from '../input.js';
@@ -11,6 +10,7 @@ import type { UCMain } from '../main.js';
11
10
  import type { UCManager, UCManagerPersistOpts } from '../manager.js';
12
11
  import type { UCOPIBase } from '../opi.js';
13
12
  import type { UCOutputOrNothing } from '../output.js';
13
+ import type { UC } from '../UC.js';
14
14
  import { UCExecChecker } from '../workers/UCExecChecker.js';
15
15
  import { UCInputFilesProcessor } from '../workers/UCInputFilesProcessor.js';
16
16
  import { UCInputValidator } from '../workers/UCInputValidator.js';
@@ -1,20 +1,48 @@
1
1
  export * from './auth/consts.js';
2
+ export * from './auth.js';
3
+ export * from './client.js';
4
+ export * from './data.js';
5
+ export * from './data-store.js';
6
+ export * from './def.js';
7
+ export * from './exec.js';
8
+ export * from './ext.js';
9
+ export * from './file.js';
2
10
  export * from './helpers/UCOutputBuilder.js';
3
11
  export * from './helpers/UCOutputReader.js';
12
+ export * from './init.js';
13
+ export * from './input.js';
14
+ export * from './input-field.js';
4
15
  export * from './io/input/AggregateInput.js';
5
16
  export * from './io/input/ListInput.js';
6
17
  export * from './io/output/AggregateOutput.js';
7
18
  export * from './lifecycle/client/IdleClientMain.js';
8
19
  export * from './lifecycle/client/SendClientMain.js';
9
20
  export * from './lifecycle/server/IdleServerMain.js';
21
+ export * from './main.js';
22
+ export * from './manager.js';
23
+ export * from './metadata.js';
24
+ export * from './opi.js';
25
+ export * from './opi-layout.js';
26
+ export * from './output.js';
27
+ export * from './output-field.js';
28
+ export * from './output-part.js';
10
29
  export * from './policies/AnonymousUCPolicy.js';
11
30
  export * from './policies/AuthenticatedUCPolicy.js';
12
31
  export * from './policies/EverybodyUCPolicy.js';
13
32
  export * from './policies/NobodyUCPolicy.js';
14
33
  export * from './policies/RoleAdminUCPolicy.js';
15
34
  export * from './policies/RoleRegularUCPolicy.js';
35
+ export * from './policy.js';
16
36
  export * from './sec/consts.js';
37
+ export * from './sec.js';
38
+ export * from './server.js';
17
39
  export * from './settings/consts.js';
40
+ export * from './settings.js';
41
+ export * from './side-effect.js';
42
+ export * from './transporter.js';
43
+ export * from './UC.js';
44
+ export * from './UCInputField.js';
45
+ export * from './UCOutputField.js';
18
46
  export * from './utils/appendUCInputToURL.js';
19
47
  export * from './utils/fmtVal.js';
20
48
  export * from './utils/recIs.js';
@@ -22,8 +50,9 @@ export * from './utils/rInput.js';
22
50
  export * from './utils/rVal.js';
23
51
  export * from './utils/stripUCDLifecycleServer.js';
24
52
  export * from './utils/ucHTTPContract.js';
25
- export * from './utils/ucMountingPoint.js';
26
53
  export * from './utils/ucifcoIsForArray.js';
54
+ export * from './utils/ucMountingPoint.js';
55
+ export * from './value.js';
27
56
  export * from './workers/SimpleAggregateFinder.js';
28
57
  export * from './workers/SimpleAggregateOwnershipChecker.js';
29
58
  export * from './workers/UCBuilder.js';
@@ -31,32 +60,3 @@ export * from './workers/UCExecChecker.js';
31
60
  export * from './workers/UCInputFilesProcessor.js';
32
61
  export * from './workers/UCInputValidator.js';
33
62
  export * from './workers/UCOutputFilesProcessor.js';
34
- export * from './auth.js';
35
- export * from './client.js';
36
- export * from './data.js';
37
- export * from './data-store.js';
38
- export * from './def.js';
39
- export * from './exec.js';
40
- export * from './ext.js';
41
- export * from './file.js';
42
- export * from './init.js';
43
- export * from './input.js';
44
- export * from './input-field.js';
45
- export * from './main.js';
46
- export * from './manager.js';
47
- export * from './metadata.js';
48
- export * from './opi.js';
49
- export * from './opi-layout.js';
50
- export * from './output.js';
51
- export * from './output-field.js';
52
- export * from './output-part.js';
53
- export * from './side-effect.js';
54
- export * from './policy.js';
55
- export * from './sec.js';
56
- export * from './server.js';
57
- export * from './settings.js';
58
- export * from './transporter.js';
59
- export * from './UC.js';
60
- export * from './UCInputField.js';
61
- export * from './UCOutputField.js';
62
- export * from './value.js';
@@ -1,20 +1,48 @@
1
1
  export * from './auth/consts.js';
2
+ export * from './auth.js';
3
+ export * from './client.js';
4
+ export * from './data.js';
5
+ export * from './data-store.js';
6
+ export * from './def.js';
7
+ export * from './exec.js';
8
+ export * from './ext.js';
9
+ export * from './file.js';
2
10
  export * from './helpers/UCOutputBuilder.js';
3
11
  export * from './helpers/UCOutputReader.js';
12
+ export * from './init.js';
13
+ export * from './input.js';
14
+ export * from './input-field.js';
4
15
  export * from './io/input/AggregateInput.js';
5
16
  export * from './io/input/ListInput.js';
6
17
  export * from './io/output/AggregateOutput.js';
7
18
  export * from './lifecycle/client/IdleClientMain.js';
8
19
  export * from './lifecycle/client/SendClientMain.js';
9
20
  export * from './lifecycle/server/IdleServerMain.js';
21
+ export * from './main.js';
22
+ export * from './manager.js';
23
+ export * from './metadata.js';
24
+ export * from './opi.js';
25
+ export * from './opi-layout.js';
26
+ export * from './output.js';
27
+ export * from './output-field.js';
28
+ export * from './output-part.js';
10
29
  export * from './policies/AnonymousUCPolicy.js';
11
30
  export * from './policies/AuthenticatedUCPolicy.js';
12
31
  export * from './policies/EverybodyUCPolicy.js';
13
32
  export * from './policies/NobodyUCPolicy.js';
14
33
  export * from './policies/RoleAdminUCPolicy.js';
15
34
  export * from './policies/RoleRegularUCPolicy.js';
35
+ export * from './policy.js';
16
36
  export * from './sec/consts.js';
37
+ export * from './sec.js';
38
+ export * from './server.js';
17
39
  export * from './settings/consts.js';
40
+ export * from './settings.js';
41
+ export * from './side-effect.js';
42
+ export * from './transporter.js';
43
+ export * from './UC.js';
44
+ export * from './UCInputField.js';
45
+ export * from './UCOutputField.js';
18
46
  export * from './utils/appendUCInputToURL.js';
19
47
  export * from './utils/fmtVal.js';
20
48
  export * from './utils/recIs.js';
@@ -22,8 +50,9 @@ export * from './utils/rInput.js';
22
50
  export * from './utils/rVal.js';
23
51
  export * from './utils/stripUCDLifecycleServer.js';
24
52
  export * from './utils/ucHTTPContract.js';
25
- export * from './utils/ucMountingPoint.js';
26
53
  export * from './utils/ucifcoIsForArray.js';
54
+ export * from './utils/ucMountingPoint.js';
55
+ export * from './value.js';
27
56
  export * from './workers/SimpleAggregateFinder.js';
28
57
  export * from './workers/SimpleAggregateOwnershipChecker.js';
29
58
  export * from './workers/UCBuilder.js';
@@ -31,32 +60,3 @@ export * from './workers/UCExecChecker.js';
31
60
  export * from './workers/UCInputFilesProcessor.js';
32
61
  export * from './workers/UCInputValidator.js';
33
62
  export * from './workers/UCOutputFilesProcessor.js';
34
- export * from './auth.js';
35
- export * from './client.js';
36
- export * from './data.js';
37
- export * from './data-store.js';
38
- export * from './def.js';
39
- export * from './exec.js';
40
- export * from './ext.js';
41
- export * from './file.js';
42
- export * from './init.js';
43
- export * from './input.js';
44
- export * from './input-field.js';
45
- export * from './main.js';
46
- export * from './manager.js';
47
- export * from './metadata.js';
48
- export * from './opi.js';
49
- export * from './opi-layout.js';
50
- export * from './output.js';
51
- export * from './output-field.js';
52
- export * from './output-part.js';
53
- export * from './side-effect.js';
54
- export * from './policy.js';
55
- export * from './sec.js';
56
- export * from './server.js';
57
- export * from './settings.js';
58
- export * from './transporter.js';
59
- export * from './UC.js';
60
- export * from './UCInputField.js';
61
- export * from './UCOutputField.js';
62
- export * from './value.js';
@@ -1,6 +1,6 @@
1
1
  import { type UUID } from '../../../dt/index.js';
2
- import { type UCInputFieldValue } from '../../input-field.js';
3
2
  import type { UCInput, UCInputDef } from '../../input.js';
3
+ import { type UCInputFieldValue } from '../../input-field.js';
4
4
  export interface AggregateInput extends UCInput {
5
5
  id: UCInputFieldValue<UUID>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { type NumIndex, type SearchQuery, type UIntQuantity, type UUID } from '../../../dt/index.js';
2
- import type { UCInputFieldValue } from '../../input-field.js';
3
2
  import type { UCInput, UCInputDef } from '../../input.js';
3
+ import type { UCInputFieldValue } from '../../input-field.js';
4
4
  export interface ListInput extends UCInput {
5
5
  id: UCInputFieldValue<UUID>;
6
6
  limit: UCInputFieldValue<UIntQuantity>;
@@ -1,8 +1,8 @@
1
1
  import type { Worker } from '../std/index.js';
2
- import type { UC } from './UC.js';
3
2
  import type { UCInput } from './input.js';
4
3
  import type { UCOPIBase } from './opi.js';
5
4
  import type { UCOutputOrNothing } from './output.js';
5
+ import type { UC } from './UC.js';
6
6
  export interface UCMainInput<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> {
7
7
  uc: UC<I, OPI0, OPI1>;
8
8
  }
@@ -1,12 +1,12 @@
1
1
  import type { UUID } from '../dt/index.js';
2
- import type { UC } from './UC.js';
3
- import type { UCDataStoreRecord } from './data-store.js';
4
2
  import type { UCData } from './data.js';
3
+ import type { UCDataStoreRecord } from './data-store.js';
5
4
  import type { UCExecMode } from './exec.js';
6
5
  import type { UCOutputReader } from './helpers/UCOutputReader.js';
7
6
  import type { UCInput } from './input.js';
8
7
  import type { UCOPIBase } from './opi.js';
9
8
  import type { UCOutputOrNothing } from './output.js';
9
+ import type { UC } from './UC.js';
10
10
  export interface UCManagerPersistOpts {
11
11
  /**
12
12
  * In case the use case relates to an existing aggregate, pass its `aggregateId` in this field.
@@ -2,8 +2,8 @@ import type { UIntQuantity } from '../dt/index.js';
2
2
  import type { StringKeys } from '../utils/index.js';
3
3
  import type { UCDef } from './def.js';
4
4
  import type { ListInput } from './io/input/ListInput.js';
5
- import type { UCOPILayout } from './opi-layout.js';
6
5
  import type { UCOPIBase } from './opi.js';
6
+ import type { UCOPILayout } from './opi-layout.js';
7
7
  import type { UCOutputFieldDef } from './output-field.js';
8
8
  export interface UCOutputPart<OPI extends UCOPIBase> {
9
9
  /**
@@ -1,7 +1,7 @@
1
1
  import type { Worker } from '../std/index.js';
2
- import type { UC } from './UC.js';
3
2
  import type { UCInput } from './input.js';
4
3
  import type { UCOPIBase } from './opi.js';
4
+ import type { UC } from './UC.js';
5
5
  export interface UCPolicyInput<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> {
6
6
  uc: UC<I, OPI0, OPI1>;
7
7
  }
@@ -1,7 +1,7 @@
1
- import type { UC } from './UC.js';
2
1
  import type { UCInput } from './input.js';
3
2
  import type { UCOPIBase } from './opi.js';
4
3
  import type { UCOutputOrNothing } from './output.js';
4
+ import type { UC } from './UC.js';
5
5
  export interface UCTransporter {
6
6
  send<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(uc: UC<I, OPI0, OPI1>): Promise<UCOutputOrNothing<OPI0, OPI1>>;
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { UC } from '../UC.js';
2
1
  import type { UCInput } from '../input.js';
3
2
  import type { UCOPIBase } from '../opi.js';
3
+ import type { UC } from '../UC.js';
4
4
  export declare function appendUCInputToURL<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(uc: UC<I, OPI0, OPI1>, url: URL): void;
@@ -1,7 +1,7 @@
1
1
  import type { DataType } from '../../dt/index.js';
2
2
  import type { WordingManager } from '../../i18n/index.js';
3
+ import type { UCOPIBase } from '../opi.js';
3
4
  import type { UCInputField } from '../UCInputField.js';
4
5
  import type { UCOutputField } from '../UCOutputField.js';
5
- import type { UCOPIBase } from '../opi.js';
6
6
  export declare function fmtInputVal<T extends DataType>(wordingManager: WordingManager, field: UCInputField<T>, ifNullOrUndefined?: string | undefined): [string, string | null, string];
7
7
  export declare function fmtOPIVal<OPI extends UCOPIBase, T extends DataType>(wordingManager: WordingManager, field: UCOutputField<OPI, T>, item: OPI | null, ifNullOrUndefined?: string | undefined): [string, string | null, string];
@@ -1,6 +1,6 @@
1
- import type { UC } from '../UC.js';
2
1
  import type { UCInput } from '../input.js';
3
2
  import type { UCOPIBase } from '../opi.js';
3
+ import type { UC } from '../UC.js';
4
4
  interface Opts {
5
5
  /**
6
6
  * @defaultValue false
@@ -1,5 +1,5 @@
1
- import type { UCDataStoreRecord } from '../data-store.js';
2
1
  import type { UCData } from '../data.js';
2
+ import type { UCDataStoreRecord } from '../data-store.js';
3
3
  import type { UCInput } from '../input.js';
4
4
  import type { UCName } from '../metadata.js';
5
5
  /**
@@ -1,8 +1,8 @@
1
1
  import type { HTTPContentType, HTTPMethod, URLPath } from '../../dt/index.js';
2
2
  import type { HTTPDataEnvelope } from '../../utils/index.js';
3
- import type { UC } from '../UC.js';
4
3
  import type { UCInput } from '../input.js';
5
4
  import type { UCOPIBase } from '../opi.js';
5
+ import type { UC } from '../UC.js';
6
6
  import { type UCMountingPoint } from './ucMountingPoint.js';
7
7
  export interface UCHTTPContract {
8
8
  contentType: HTTPContentType;
@@ -1,7 +1,7 @@
1
- import type { UC } from '../UC.js';
2
1
  import type { UCInput } from '../input.js';
3
2
  import { type FQUCName, parseFQUCName } from '../metadata.js';
4
3
  import type { UCOPIBase } from '../opi.js';
4
+ import type { UC } from '../UC.js';
5
5
  export type UCMountingPoint = FQUCName | (string & {});
6
6
  export declare function ucMountingPoint<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(uc: UC<I, OPI0, OPI1>): UCMountingPoint;
7
7
  export declare function parseUCMountingPoint(value: string): ReturnType<typeof parseFQUCName>;
@@ -1,7 +1,7 @@
1
1
  import type { UUID } from '../../dt/index.js';
2
2
  import type { Worker } from '../../std/index.js';
3
- import type { UCDataStore, UCDataStoreRecord } from '../data-store.js';
4
3
  import type { UCData } from '../data.js';
4
+ import type { UCDataStore, UCDataStoreRecord } from '../data-store.js';
5
5
  import type { UCInput } from '../input.js';
6
6
  import type { UCMetadata } from '../metadata.js';
7
7
  interface Input {
@@ -1,8 +1,8 @@
1
1
  import type { Worker } from '../../std/index.js';
2
- import type { UC } from '../UC.js';
3
- import type { UCDataStoreRecord } from '../data-store.js';
4
2
  import type { UCData } from '../data.js';
3
+ import type { UCDataStoreRecord } from '../data-store.js';
5
4
  import type { UCInput } from '../input.js';
5
+ import type { UC } from '../UC.js';
6
6
  type OwnershipScope = 'organization' | 'user';
7
7
  interface Input<I extends UCInput | undefined = undefined, D extends UCData | null = null> {
8
8
  record: UCDataStoreRecord<I, D>;
@@ -1,7 +1,7 @@
1
1
  import type { Worker } from '../../std/index.js';
2
- import { type ArgsRecord, UC } from '../UC.js';
3
2
  import type { UCInput } from '../input.js';
4
3
  import type { UCOPIBase } from '../opi.js';
4
+ import { type ArgsRecord, UC } from '../UC.js';
5
5
  type Input<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> = ArgsRecord<I, OPI0, OPI1>;
6
6
  type Output<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> = UC<I, OPI0, OPI1>;
7
7
  /**
@@ -1,12 +1,12 @@
1
1
  import { type Provider } from 'inversify';
2
2
  import type { ProductManifest } from '../../product/index.js';
3
3
  import type { Configurable, SettingsManager, Worker } from '../../std/index.js';
4
- import type { UC } from '../UC.js';
5
4
  import type { UCDefLifecycle } from '../def.js';
6
5
  import type { UCInput } from '../input.js';
7
6
  import type { UCOPIBase } from '../opi.js';
8
7
  import type { UCPolicy, UCPolicyOutput } from '../policy.js';
9
8
  import type { UCSettings } from '../settings.js';
9
+ import type { UC } from '../UC.js';
10
10
  interface Input<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> {
11
11
  lifecycle: UCDefLifecycle;
12
12
  uc: UC<I, OPI0, OPI1>;
@@ -1,8 +1,8 @@
1
1
  import type { ClockManager, Configurable, CryptoManager, FSManager, SettingsManager, Worker } from '../../std/index.js';
2
- import type { UC } from '../UC.js';
3
2
  import type { UCInput } from '../input.js';
4
3
  import type { UCOPIBase } from '../opi.js';
5
4
  import type { UCSettings } from '../settings.js';
5
+ import type { UC } from '../UC.js';
6
6
  interface Input<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> {
7
7
  uc: UC<I, OPI0, OPI1>;
8
8
  }
@@ -1,8 +1,8 @@
1
1
  import { WordingManager } from '../../i18n/index.js';
2
2
  import type { I18nManager, Worker } from '../../std/index.js';
3
- import type { UC } from '../UC.js';
4
3
  import type { UCInput } from '../input.js';
5
4
  import type { UCOPIBase } from '../opi.js';
5
+ import type { UC } from '../UC.js';
6
6
  interface Input<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined> {
7
7
  uc: UC<I, OPI0, OPI1>;
8
8
  }
@@ -11,7 +11,7 @@ export { bindProvider } from './ioc/bindProvider.js';
11
11
  export { CONTAINER_OPTS } from './ioc/container.js';
12
12
  export type { Class } from './ioc/types.js';
13
13
  export { fmt as fmtNumber } from './numbers/fmt.js';
14
- export { type CoreUnit, type SquareUnit, type SquareableUnit, type Unit, baseFromSquareUnit, isSquareUnit, } from './numbers/units.js';
14
+ export { baseFromSquareUnit, type CoreUnit, isSquareUnit, type SquareableUnit, type SquareUnit, type Unit, } from './numbers/units.js';
15
15
  export { capitalize, isCapitalized } from './strings/capitalize.js';
16
16
  export { humanize } from './strings/humanize.js';
17
17
  export { truncate } from './strings/truncate.js';
@@ -1,8 +1,8 @@
1
1
  import { NodeBufferManager } from '../../std/impl/NodeBufferManager.js';
2
2
  import { NodeCryptoManager } from '../../std/impl/NodeCryptoManager.js';
3
3
  import { NodeEnvironmentManager } from '../../std/impl/NodeEnvironmentManager.js';
4
- import { NodeFSManager } from '../../std/impl/NodeFSManager.js';
5
4
  import { NodeFormDataBuilder } from '../../std/impl/NodeFormDataBuilder.js';
5
+ import { NodeFSManager } from '../../std/impl/NodeFSManager.js';
6
6
  export function bindNodeCore(container) {
7
7
  // std
8
8
  container.bind('BufferManager').to(NodeBufferManager);
@@ -5,7 +5,7 @@ export function fmt(value, unit, decimalsCount) {
5
5
  maximumFractionDigits: decimalsCount,
6
6
  }).format(value);
7
7
  }
8
- let formatterUnit = undefined;
8
+ let formatterUnit;
9
9
  let unitSuffix = '';
10
10
  if (isSquareUnit(unit)) {
11
11
  formatterUnit = baseFromSquareUnit(unit);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "libmodulor",
3
3
  "description": "A TypeScript library to create platform-agnostic applications",
4
- "version": "0.17.0",
4
+ "version": "0.18.1",
5
5
  "license": "LGPL-3.0",
6
6
  "author": "Chafik H'nini <chafik.hnini@gmail.com>",
7
7
  "homepage": "https://libmodulor.c100k.eu",
@@ -78,11 +78,11 @@
78
78
  "lint:ci": "biome check"
79
79
  },
80
80
  "devDependencies": {
81
- "@biomejs/biome": "^1.9.4"
81
+ "@biomejs/biome": "^2.0.0-beta.6"
82
82
  },
83
83
  "peerDependencies": {
84
- "@hono/node-server": "^1.14.2",
85
- "@modelcontextprotocol/sdk": "^1.12.0",
84
+ "@hono/node-server": "^1.14.3",
85
+ "@modelcontextprotocol/sdk": "^1.12.1",
86
86
  "@stricli/core": "^1.1.2",
87
87
  "buffer": "^6.0.3",
88
88
  "cookie-parser": "^1.4.7",
@@ -90,11 +90,11 @@
90
90
  "express-fileupload": "^1.5.1",
91
91
  "fast-check": "^4.1.1",
92
92
  "helmet": "^8.1.0",
93
- "hono": "^4.7.10",
94
- "inversify": "^7.5.1",
93
+ "hono": "^4.7.11",
94
+ "inversify": "^7.5.2",
95
95
  "jose": "^6.0.11",
96
96
  "knex": "^3.1.0",
97
- "next": "^15.3.2",
97
+ "next": "^15.3.3",
98
98
  "pg": "^8.16.0",
99
99
  "react": "^19.1.0",
100
100
  "react-dom": "^19.1.0",
@@ -103,7 +103,7 @@
103
103
  "sqlite3": "^5.1.7",
104
104
  "typescript": "^5.8.3",
105
105
  "vite": "^6.3.5",
106
- "vitest": "^3.1.4"
106
+ "vitest": "^3.2.0"
107
107
  },
108
108
  "peerDependenciesMeta": {
109
109
  "@hono/node-server": {