@twin.org/node-core 0.0.2-next.26 → 0.0.2-next.27

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 (89) hide show
  1. package/README.md +6 -20
  2. package/dist/es/bootstrap.js +374 -0
  3. package/dist/es/bootstrap.js.map +1 -0
  4. package/dist/es/builders/engineEnvBuilder.js +1051 -0
  5. package/dist/es/builders/engineEnvBuilder.js.map +1 -0
  6. package/dist/es/builders/engineServerEnvBuilder.js +197 -0
  7. package/dist/es/builders/engineServerEnvBuilder.js.map +1 -0
  8. package/dist/es/builders/extensionsBuilder.js +100 -0
  9. package/dist/es/builders/extensionsBuilder.js.map +1 -0
  10. package/dist/es/defaults.js +9 -0
  11. package/dist/es/defaults.js.map +1 -0
  12. package/dist/es/identity.js +169 -0
  13. package/dist/es/identity.js.map +1 -0
  14. package/dist/es/index.js +23 -0
  15. package/dist/es/index.js.map +1 -0
  16. package/dist/es/models/ICacheMetadata.js +4 -0
  17. package/dist/es/models/ICacheMetadata.js.map +1 -0
  18. package/dist/es/models/IEngineEnvironmentVariables.js +4 -0
  19. package/dist/es/models/IEngineEnvironmentVariables.js.map +1 -0
  20. package/dist/es/models/IEngineServerEnvironmentVariables.js +2 -0
  21. package/dist/es/models/IEngineServerEnvironmentVariables.js.map +1 -0
  22. package/dist/es/models/IModuleProtocol.js +2 -0
  23. package/dist/es/models/IModuleProtocol.js.map +1 -0
  24. package/dist/es/models/INodeEngineConfig.js +2 -0
  25. package/dist/es/models/INodeEngineConfig.js.map +1 -0
  26. package/dist/es/models/INodeEngineState.js +2 -0
  27. package/dist/es/models/INodeEngineState.js.map +1 -0
  28. package/dist/es/models/INodeEnvironmentVariables.js +2 -0
  29. package/dist/es/models/INodeEnvironmentVariables.js.map +1 -0
  30. package/dist/es/models/INodeOptions.js +2 -0
  31. package/dist/es/models/INodeOptions.js.map +1 -0
  32. package/dist/es/models/IProtocolHandlerResult.js +4 -0
  33. package/dist/es/models/IProtocolHandlerResult.js.map +1 -0
  34. package/dist/es/models/moduleProtocol.js +29 -0
  35. package/dist/es/models/moduleProtocol.js.map +1 -0
  36. package/dist/es/models/nodeExtensionMethods.js +2 -0
  37. package/dist/es/models/nodeExtensionMethods.js.map +1 -0
  38. package/dist/es/models/nodeFeatures.js +21 -0
  39. package/dist/es/models/nodeFeatures.js.map +1 -0
  40. package/dist/es/node.js +265 -0
  41. package/dist/es/node.js.map +1 -0
  42. package/dist/es/server.js +74 -0
  43. package/dist/es/server.js.map +1 -0
  44. package/dist/es/utils.js +418 -0
  45. package/dist/es/utils.js.map +1 -0
  46. package/dist/types/bootstrap.d.ts +27 -10
  47. package/dist/types/builders/engineEnvBuilder.d.ts +3 -2
  48. package/dist/types/builders/engineServerEnvBuilder.d.ts +3 -2
  49. package/dist/types/builders/extensionsBuilder.d.ts +2 -2
  50. package/dist/types/identity.d.ts +14 -0
  51. package/dist/types/index.d.ts +20 -19
  52. package/dist/types/models/IEngineEnvironmentVariables.d.ts +12 -5
  53. package/dist/types/models/IEngineServerEnvironmentVariables.d.ts +1 -1
  54. package/dist/types/models/IModuleProtocol.d.ts +1 -1
  55. package/dist/types/models/INodeEngineState.d.ts +22 -0
  56. package/dist/types/models/INodeEnvironmentVariables.d.ts +24 -8
  57. package/dist/types/models/INodeOptions.d.ts +13 -3
  58. package/dist/types/models/nodeExtensionMethods.d.ts +2 -2
  59. package/dist/types/models/nodeFeatures.d.ts +5 -5
  60. package/dist/types/node.d.ts +14 -5
  61. package/dist/types/server.d.ts +7 -6
  62. package/dist/types/utils.d.ts +5 -5
  63. package/docs/detailed-guide.md +14 -14
  64. package/docs/reference/functions/bootstrap.md +1 -1
  65. package/docs/reference/functions/bootstrapAuth.md +1 -1
  66. package/docs/reference/functions/bootstrapBlobEncryption.md +1 -1
  67. package/docs/reference/functions/bootstrapContextIdHandlers.md +35 -0
  68. package/docs/reference/functions/bootstrapImmutableProofMethod.md +1 -1
  69. package/docs/reference/functions/{bootstrapNodeUser.md → bootstrapNodeAdminUser.md} +3 -3
  70. package/docs/reference/functions/{bootstrapNodeIdentity.md → bootstrapNodeId.md} +3 -3
  71. package/docs/reference/functions/bootstrapSynchronisedStorage.md +1 -1
  72. package/docs/reference/functions/bootstrapTenantId.md +35 -0
  73. package/docs/reference/functions/buildConfiguration.md +2 -2
  74. package/docs/reference/functions/buildEngineConfiguration.md +7 -1
  75. package/docs/reference/functions/buildEngineServerConfiguration.md +7 -1
  76. package/docs/reference/functions/run.md +3 -3
  77. package/docs/reference/functions/start.md +8 -2
  78. package/docs/reference/index.md +5 -2
  79. package/docs/reference/interfaces/IEngineEnvironmentVariables.md +24 -9
  80. package/docs/reference/interfaces/IEngineServerEnvironmentVariables.md +36 -13
  81. package/docs/reference/interfaces/INodeEngineConfig.md +430 -0
  82. package/docs/reference/interfaces/INodeEngineState.md +39 -0
  83. package/docs/reference/interfaces/INodeEnvironmentVariables.md +79 -24
  84. package/docs/reference/interfaces/INodeOptions.md +21 -1
  85. package/docs/reference/variables/NodeFeatures.md +7 -7
  86. package/locales/en.json +10 -7
  87. package/package.json +40 -8
  88. package/dist/cjs/index.cjs +0 -2570
  89. package/dist/esm/index.mjs +0 -2508
@@ -44,6 +44,42 @@ The name of the state file.
44
44
 
45
45
  ***
46
46
 
47
+ ### tenantEnabled?
48
+
49
+ > `optional` **tenantEnabled**: `string`
50
+
51
+ Is multi-tenant support enabled, defaults to false.
52
+
53
+ #### Inherited from
54
+
55
+ [`IEngineServerEnvironmentVariables`](IEngineServerEnvironmentVariables.md).[`tenantEnabled`](IEngineServerEnvironmentVariables.md#tenantenabled)
56
+
57
+ ***
58
+
59
+ ### tenantId?
60
+
61
+ > `optional` **tenantId**: `string`
62
+
63
+ A tenant id to use as a default for the node.
64
+
65
+ #### Inherited from
66
+
67
+ [`IEngineServerEnvironmentVariables`](IEngineServerEnvironmentVariables.md).[`tenantId`](IEngineServerEnvironmentVariables.md#tenantid)
68
+
69
+ ***
70
+
71
+ ### tenantApiKey?
72
+
73
+ > `optional` **tenantApiKey**: `string`
74
+
75
+ A tenant api key to use as a default for the node.
76
+
77
+ #### Inherited from
78
+
79
+ [`IEngineServerEnvironmentVariables`](IEngineServerEnvironmentVariables.md).[`tenantApiKey`](IEngineServerEnvironmentVariables.md#tenantapikey)
80
+
81
+ ***
82
+
47
83
  ### entityStorageConnectorType?
48
84
 
49
85
  > `optional` **entityStorageConnectorType**: `string`
@@ -851,19 +887,6 @@ Are the messaging components enabled, defaults to false.
851
887
 
852
888
  ***
853
889
 
854
- ### messagingTemplates?
855
-
856
- > `optional` **messagingTemplates**: `string`
857
-
858
- An initial set of templates for the messages.
859
- Use the @json: prefix to specify the path to the JSON file.
860
-
861
- #### Inherited from
862
-
863
- [`IEngineServerEnvironmentVariables`](IEngineServerEnvironmentVariables.md).[`messagingTemplates`](IEngineServerEnvironmentVariables.md#messagingtemplates)
864
-
865
- ***
866
-
867
890
  ### awsSesRegion?
868
891
 
869
892
  > `optional` **awsSesRegion**: `string`
@@ -1821,32 +1844,64 @@ The features that are enabled on the node.
1821
1844
  #### Default
1822
1845
 
1823
1846
  ```ts
1824
- [NodeFeatures.NodeIdentity]
1847
+ []
1825
1848
  ```
1826
1849
 
1827
1850
  ***
1828
1851
 
1829
- ### identity?
1852
+ ### nodeIdentity?
1830
1853
 
1831
- > `optional` **identity**: `string`
1854
+ > `optional` **nodeIdentity**: `string`
1832
1855
 
1833
1856
  The identity of the node which, if empty and node-identity feature is enabled it will be generated.
1834
1857
 
1835
1858
  ***
1836
1859
 
1837
- ### mnemonic?
1860
+ ### nodeMnemonic?
1838
1861
 
1839
- > `optional` **mnemonic**: `string`
1862
+ > `optional` **nodeMnemonic**: `string`
1840
1863
 
1841
1864
  The mnemonic for the identity, if empty and node-identity feature is enabled it will be randomly generated.
1842
1865
 
1843
1866
  ***
1844
1867
 
1845
- ### username?
1868
+ ### organizationIdentity?
1869
+
1870
+ > `optional` **organizationIdentity**: `string`
1871
+
1872
+ If the node-admin-user feature is enabled, this will be the organization of the user, if one is not provided it will be generated
1873
+
1874
+ ***
1875
+
1876
+ ### organizationMnemonic?
1877
+
1878
+ > `optional` **organizationMnemonic**: `string`
1879
+
1880
+ The mnemonic for the organization, if empty and node-admin-user feature is enabled it will be randomly generated.
1881
+
1882
+ ***
1883
+
1884
+ ### adminUserIdentity?
1885
+
1886
+ > `optional` **adminUserIdentity**: `string`
1887
+
1888
+ If the node-admin-user feature is enabled, this will be the identity of the user, if one is not provided it will be generated
1889
+
1890
+ ***
1891
+
1892
+ ### adminUserMnemonic?
1893
+
1894
+ > `optional` **adminUserMnemonic**: `string`
1895
+
1896
+ The mnemonic for the admin user, if empty and node-admin-user feature is enabled it will be randomly generated.
1897
+
1898
+ ***
1899
+
1900
+ ### adminUserName?
1846
1901
 
1847
- > `optional` **username**: `string`
1902
+ > `optional` **adminUserName**: `string`
1848
1903
 
1849
- If the node-user feature is enabled, this will be the name of the user.
1904
+ If the node-admin-user feature is enabled, this will be the name of the user.
1850
1905
 
1851
1906
  #### Default
1852
1907
 
@@ -1856,11 +1911,11 @@ admin@node
1856
1911
 
1857
1912
  ***
1858
1913
 
1859
- ### password?
1914
+ ### adminUserPassword?
1860
1915
 
1861
- > `optional` **password**: `string`
1916
+ > `optional` **adminUserPassword**: `string`
1862
1917
 
1863
- If the node-user feature is enabled, this will be the password of the user, if empty it will be randomly generated.
1918
+ If the node-admin-user feature is enabled, this will be the password of the user, if empty it will be randomly generated.
1864
1919
 
1865
1920
  ***
1866
1921
 
@@ -26,6 +26,18 @@ The version of the server, defaults to the current version.
26
26
 
27
27
  ***
28
28
 
29
+ ### envVars?
30
+
31
+ > `optional` **envVars**: `object`
32
+
33
+ Additional environment variables to set.
34
+
35
+ #### Index Signature
36
+
37
+ \[`key`: `string`\]: `string`
38
+
39
+ ***
40
+
29
41
  ### envFilenames?
30
42
 
31
43
  > `optional` **envFilenames**: `string`[]
@@ -38,7 +50,7 @@ Additional environment variable filenames to load, defaults to .env.
38
50
 
39
51
  > `optional` **envPrefix**: `string`
40
52
 
41
- The prefix for environment variables, defaults to "TWIN_NODE_".
53
+ The prefix for environment variables, defaults to "TWIN_".
42
54
 
43
55
  ***
44
56
 
@@ -175,3 +187,11 @@ Method to extend the engine server with any additional options.
175
187
 
176
188
  The state storage to use for the engine.
177
189
  If not provided, a default file-based state storage will be used.
190
+
191
+ ***
192
+
193
+ ### disableProcessExitOnFailure?
194
+
195
+ > `optional` **disableProcessExitOnFailure**: `boolean`
196
+
197
+ Disables process.exit calls on fatal errors and throws instead.
@@ -6,20 +6,20 @@ The features that can be enabled on the node.
6
6
 
7
7
  ## Type Declaration
8
8
 
9
- ### NodeIdentity
9
+ ### NodeId
10
10
 
11
- > `readonly` **NodeIdentity**: `"node-identity"` = `"node-identity"`
11
+ > `readonly` **NodeId**: `"node-identity"` = `"node-identity"`
12
12
 
13
- NodeIdentity - generates an identity for the node if not provided in config.
13
+ NodeId - generates an identity for the node if not provided in config.
14
14
 
15
- ### NodeUser
15
+ ### NodeAdminUser
16
16
 
17
- > `readonly` **NodeUser**: `"node-user"` = `"node-user"`
17
+ > `readonly` **NodeAdminUser**: `"node-admin-user"` = `"node-admin-user"`
18
18
 
19
- NodeUser - generates a user for the node if not provided in config.
19
+ NodeAdminUser - generates an admin user for the node if not provided in config.
20
20
 
21
21
  ### NodeWallet
22
22
 
23
23
  > `readonly` **NodeWallet**: `"node-wallet"` = `"node-wallet"`
24
24
 
25
- NodeWallet - generates a wallet for the node and funds it when there is a faucet available.
25
+ NodeWallet - generates wallets for any identities that need them.
package/locales/en.json CHANGED
@@ -15,12 +15,13 @@
15
15
  "existingMnemonic": "Mnemonic already exists",
16
16
  "fundingWallet": "Funding wallet \"{address}\"",
17
17
  "fundedWallet": "Wallet already funded",
18
- "generatingNodeIdentity": "Generating node identity",
19
- "existingNodeIdentity": "Node identity already exists \"{identity}\"",
20
- "createdNodeIdentity": "Node identity created \"{identity}\"",
18
+ "processingIdentity": "Processing identity of type \"{identityType}\"",
19
+ "generatingIdentity": "Generating identity of type \"{identityType}\"",
20
+ "existingIdentity": "Identity already exists \"{identity}\"",
21
+ "createdIdentity": "Identity created \"{identity}\"",
21
22
  "identityExplorer": "Identity explorer \"{url}\"",
22
- "creatingNodeUser": "Creating node user \"{email}\"",
23
- "existingNodeUser": "Node user already exists \"{email}\"",
23
+ "creatingUser": "Creating user \"{email}\"",
24
+ "existingUser": "User already exists \"{email}\"",
24
25
  "creatingAuthKey": "Creating authentication key \"{keyName}\"",
25
26
  "existingAuthKey": "Authentication key already exists \"{keyName}\"",
26
27
  "addingVerificationMethod": "Adding {title} verification method \"{methodId}\"",
@@ -33,7 +34,7 @@
33
34
  "existingSynchronisedStorageBlobEncryptionKey": "Synchronised storage blob encryption key already exists \"{keyName}\"",
34
35
  "creatingUserProfile": "Creating user profile \"{identity}\"",
35
36
  "existingUserProfile": "User profile already exists \"{identity}\"",
36
- "nodeIdentity": "Node identity \"{identity}\"",
37
+ "nodeId": "Node identity \"{identity}\"",
37
38
  "nodeAdminUserEmail": "Node Admin User Email \"{email}\"",
38
39
  "nodeAdminUserPassword": "Node Admin User Password \"{password}\"",
39
40
  "extensionLoading": "Loading Extension",
@@ -46,6 +47,8 @@
46
47
  "extensionNpmInstalling": "Installing npm extension",
47
48
  "extensionHttpsDownloading": "Downloading HTTPS extension",
48
49
  "extensionCacheExpired": "Cache expired for extension: {url}",
49
- "extensionForceRefresh": "Force refresh enabled for extension: {url}"
50
+ "extensionForceRefresh": "Force refresh enabled for extension: {url}",
51
+ "createdTenantId": "Created tenant id \"{identity}\" with api key \"{apiKey}\"",
52
+ "existingTenantId": "Existing tenant id \"{identity}\""
50
53
  }
51
54
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/node-core",
3
- "version": "0.0.2-next.26",
3
+ "version": "0.0.2-next.27",
4
4
  "description": "TWIN Node Core for serving APIs using the specified configuration",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,10 +13,27 @@
13
13
  "engines": {
14
14
  "node": ">=20.0.0"
15
15
  },
16
+ "scripts": {
17
+ "clean": "rimraf dist coverage docs/reference",
18
+ "build": "tspc",
19
+ "dev": "nodemon --watch src --ext ts --exec \"npm run build\"",
20
+ "merge-locales": "merge-locales",
21
+ "test": "vitest --run --config ./vitest.config.ts --no-cache",
22
+ "test:build": "tspc -p ./tests/tsconfig.json --noEmit",
23
+ "validate-locales": "validate-locales",
24
+ "test:coverage": "vitest --run --coverage --config ./vitest.config.ts --no-cache",
25
+ "docs:clean": "rimraf docs/reference",
26
+ "docs:generate": "typedoc",
27
+ "docs": "npm run docs:clean && npm run docs:generate",
28
+ "dist": "npm run clean && npm run build && npm run merge-locales && npm run validate-locales && npm run test:build && npm run test && npm run docs",
29
+ "dist:no-test": "npm run clean && npm run build && npm run merge-locales && npm run docs"
30
+ },
16
31
  "dependencies": {
17
32
  "@twin.org/api-auth-entity-storage-service": "next",
18
- "@twin.org/cli-core": "next",
33
+ "@twin.org/api-tenant-processor": "next",
34
+ "@twin.org/context": "next",
19
35
  "@twin.org/core": "next",
36
+ "@twin.org/cli-core": "next",
20
37
  "@twin.org/crypto": "next",
21
38
  "@twin.org/data-space-connector-models": "next",
22
39
  "@twin.org/engine": "next",
@@ -36,20 +53,35 @@
36
53
  "dotenv": "17.2.3",
37
54
  "schema-dts": "1.1.5"
38
55
  },
39
- "main": "./dist/cjs/index.cjs",
40
- "module": "./dist/esm/index.mjs",
56
+ "devDependencies": {
57
+ "@twin.org/entity-storage-connector-memory": "next",
58
+ "@twin.org/merge-locales": "next",
59
+ "@twin.org/nameof-transformer": "next",
60
+ "@twin.org/nameof-vitest-plugin": "next",
61
+ "@twin.org/validate-locales": "next",
62
+ "@twin.org/ts-to-openapi": "next",
63
+ "@vitest/coverage-v8": "3.2.4",
64
+ "copyfiles": "2.4.1",
65
+ "nodemon": "3.1.10",
66
+ "rimraf": "6.0.1",
67
+ "ts-patch": "3.3.0",
68
+ "typedoc": "0.28.13",
69
+ "typedoc-plugin-markdown": "4.9.0",
70
+ "typescript": "5.9.3",
71
+ "vitest": "3.2.4"
72
+ },
73
+ "main": "./dist/es/index.js",
41
74
  "types": "./dist/types/index.d.ts",
42
75
  "exports": {
43
76
  ".": {
44
77
  "types": "./dist/types/index.d.ts",
45
- "require": "./dist/cjs/index.cjs",
46
- "import": "./dist/esm/index.mjs"
78
+ "import": "./dist/es/index.js",
79
+ "default": "./dist/es/index.js"
47
80
  },
48
81
  "./locales/*.json": "./locales/*.json"
49
82
  },
50
83
  "files": [
51
- "dist/cjs",
52
- "dist/esm",
84
+ "dist/es",
53
85
  "dist/types",
54
86
  "locales",
55
87
  "docs"