@twin.org/api-models 0.0.1-next.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 (89) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +21 -0
  3. package/dist/cjs/index.cjs +90 -0
  4. package/dist/esm/index.mjs +87 -0
  5. package/dist/types/helpers/httpErrorHelper.d.ts +25 -0
  6. package/dist/types/index.d.ts +39 -0
  7. package/dist/types/models/api/IServerHealthResponse.d.ts +10 -0
  8. package/dist/types/models/api/IServerInfoResponse.d.ts +10 -0
  9. package/dist/types/models/api/IServerSpecResponse.d.ts +14 -0
  10. package/dist/types/models/config/IBaseRestClientConfig.d.ts +26 -0
  11. package/dist/types/models/config/IBaseSocketClientConfig.d.ts +18 -0
  12. package/dist/types/models/protocol/IHttpRequest.d.ts +24 -0
  13. package/dist/types/models/protocol/IHttpRequestContext.d.ts +17 -0
  14. package/dist/types/models/protocol/IHttpRequestIdentity.d.ts +13 -0
  15. package/dist/types/models/protocol/IHttpRequestPathParams.d.ts +6 -0
  16. package/dist/types/models/protocol/IHttpRequestQuery.d.ts +6 -0
  17. package/dist/types/models/protocol/IHttpResponse.d.ts +18 -0
  18. package/dist/types/models/protocol/IHttpServerRequest.d.ts +15 -0
  19. package/dist/types/models/requests/INoContentRequest.d.ts +22 -0
  20. package/dist/types/models/responses/errors/IBadRequestResponse.d.ts +15 -0
  21. package/dist/types/models/responses/errors/IConflictResponse.d.ts +20 -0
  22. package/dist/types/models/responses/errors/IForbiddenResponse.d.ts +15 -0
  23. package/dist/types/models/responses/errors/IInternalServerErrorResponse.d.ts +15 -0
  24. package/dist/types/models/responses/errors/INotFoundResponse.d.ts +20 -0
  25. package/dist/types/models/responses/errors/IUnauthorizedResponse.d.ts +15 -0
  26. package/dist/types/models/responses/errors/IUnprocessableEntityResponse.d.ts +15 -0
  27. package/dist/types/models/responses/success/IAcceptedResponse.d.ts +19 -0
  28. package/dist/types/models/responses/success/ICreatedResponse.d.ts +19 -0
  29. package/dist/types/models/responses/success/INoContentResponse.d.ts +10 -0
  30. package/dist/types/models/responses/success/IOkResponse.d.ts +10 -0
  31. package/dist/types/models/routes/IBaseRoute.d.ts +17 -0
  32. package/dist/types/models/routes/IRestRoute.d.ts +81 -0
  33. package/dist/types/models/routes/IRestRouteEntryPoint.d.ts +23 -0
  34. package/dist/types/models/routes/IRestRouteResponseAttachmentOptions.d.ts +17 -0
  35. package/dist/types/models/routes/IRestRouteResponseOptions.d.ts +10 -0
  36. package/dist/types/models/routes/ISocketRoute.d.ts +27 -0
  37. package/dist/types/models/routes/ITag.d.ts +13 -0
  38. package/dist/types/models/server/IHttpRestRouteProcessor.d.ts +46 -0
  39. package/dist/types/models/server/IWebServer.d.ts +31 -0
  40. package/dist/types/models/server/IWebServerOptions.d.ts +34 -0
  41. package/dist/types/models/services/IHealthInfo.d.ts +27 -0
  42. package/dist/types/models/services/IInformationComponent.d.ts +38 -0
  43. package/dist/types/models/services/IServerInfo.d.ts +13 -0
  44. package/dist/types/models/services/healthStatus.d.ts +21 -0
  45. package/docs/changelog.md +5 -0
  46. package/docs/examples.md +1 -0
  47. package/docs/reference/classes/HttpErrorHelper.md +71 -0
  48. package/docs/reference/index.md +53 -0
  49. package/docs/reference/interfaces/IAcceptedResponse.md +25 -0
  50. package/docs/reference/interfaces/IBadRequestResponse.md +19 -0
  51. package/docs/reference/interfaces/IBaseRestClientConfig.md +43 -0
  52. package/docs/reference/interfaces/IBaseRoute.md +32 -0
  53. package/docs/reference/interfaces/IBaseSocketClientConfig.md +27 -0
  54. package/docs/reference/interfaces/IConflictResponse.md +27 -0
  55. package/docs/reference/interfaces/ICreatedResponse.md +25 -0
  56. package/docs/reference/interfaces/IForbiddenResponse.md +19 -0
  57. package/docs/reference/interfaces/IHealthInfo.md +19 -0
  58. package/docs/reference/interfaces/IHttpRequest.md +44 -0
  59. package/docs/reference/interfaces/IHttpRequestContext.md +51 -0
  60. package/docs/reference/interfaces/IHttpRequestIdentity.md +23 -0
  61. package/docs/reference/interfaces/IHttpRequestPathParams.md +7 -0
  62. package/docs/reference/interfaces/IHttpRequestQuery.md +7 -0
  63. package/docs/reference/interfaces/IHttpResponse.md +31 -0
  64. package/docs/reference/interfaces/IHttpRestRouteProcessor.md +115 -0
  65. package/docs/reference/interfaces/IHttpServerRequest.md +75 -0
  66. package/docs/reference/interfaces/IInformationComponent.md +97 -0
  67. package/docs/reference/interfaces/IInternalServerErrorResponse.md +19 -0
  68. package/docs/reference/interfaces/INoContentRequest.md +55 -0
  69. package/docs/reference/interfaces/INoContentResponse.md +11 -0
  70. package/docs/reference/interfaces/INotFoundResponse.md +27 -0
  71. package/docs/reference/interfaces/IOkResponse.md +11 -0
  72. package/docs/reference/interfaces/IRestRoute.md +137 -0
  73. package/docs/reference/interfaces/IRestRouteEntryPoint.md +45 -0
  74. package/docs/reference/interfaces/IRestRouteResponseAttachmentOptions.md +27 -0
  75. package/docs/reference/interfaces/IRestRouteResponseOptions.md +11 -0
  76. package/docs/reference/interfaces/IServerHealthResponse.md +11 -0
  77. package/docs/reference/interfaces/IServerInfo.md +19 -0
  78. package/docs/reference/interfaces/IServerInfoResponse.md +11 -0
  79. package/docs/reference/interfaces/IServerSpecResponse.md +19 -0
  80. package/docs/reference/interfaces/ISocketRoute.md +73 -0
  81. package/docs/reference/interfaces/ITag.md +19 -0
  82. package/docs/reference/interfaces/IUnauthorizedResponse.md +19 -0
  83. package/docs/reference/interfaces/IUnprocessableEntityResponse.md +19 -0
  84. package/docs/reference/interfaces/IWebServer.md +77 -0
  85. package/docs/reference/interfaces/IWebServerOptions.md +75 -0
  86. package/docs/reference/type-aliases/HealthStatus.md +5 -0
  87. package/docs/reference/variables/HealthStatus.md +25 -0
  88. package/locales/en.json +9 -0
  89. package/package.json +65 -0
@@ -0,0 +1,19 @@
1
+ # Interface: IUnprocessableEntityResponse
2
+
3
+ The server cannot process the request, see the content for more details.
4
+
5
+ ## Properties
6
+
7
+ ### statusCode
8
+
9
+ > **statusCode**: `422`
10
+
11
+ Response status code.
12
+
13
+ ***
14
+
15
+ ### body
16
+
17
+ > **body**: `IError`
18
+
19
+ The body which contains the error.
@@ -0,0 +1,77 @@
1
+ # Interface: IWebServer\<T\>
2
+
3
+ Interface describing a web server.
4
+
5
+ ## Type Parameters
6
+
7
+ • **T**
8
+
9
+ ## Methods
10
+
11
+ ### getInstance()
12
+
13
+ > **getInstance**(): `T`
14
+
15
+ Get the web server instance.
16
+
17
+ #### Returns
18
+
19
+ `T`
20
+
21
+ The web server instance.
22
+
23
+ ***
24
+
25
+ ### build()
26
+
27
+ > **build**(`restRouteProcessors`, `restRoutes`, `options`?): `Promise`\<`void`\>
28
+
29
+ Build the server.
30
+
31
+ #### Parameters
32
+
33
+ • **restRouteProcessors**: [`IHttpRestRouteProcessor`](IHttpRestRouteProcessor.md)[]
34
+
35
+ The hooks to process the incoming requests.
36
+
37
+ • **restRoutes**: [`IRestRoute`](IRestRoute.md)\<`any`, `any`\>[]
38
+
39
+ The REST routes.
40
+
41
+ • **options?**: [`IWebServerOptions`](IWebServerOptions.md)
42
+
43
+ Options for building the server.
44
+
45
+ #### Returns
46
+
47
+ `Promise`\<`void`\>
48
+
49
+ Nothing.
50
+
51
+ ***
52
+
53
+ ### start()
54
+
55
+ > **start**(): `Promise`\<`void`\>
56
+
57
+ Start the server.
58
+
59
+ #### Returns
60
+
61
+ `Promise`\<`void`\>
62
+
63
+ Nothing.
64
+
65
+ ***
66
+
67
+ ### stop()
68
+
69
+ > **stop**(): `Promise`\<`void`\>
70
+
71
+ Stop the server.
72
+
73
+ #### Returns
74
+
75
+ `Promise`\<`void`\>
76
+
77
+ Nothing.
@@ -0,0 +1,75 @@
1
+ # Interface: IWebServerOptions
2
+
3
+ Options for the web server.
4
+
5
+ ## Properties
6
+
7
+ ### port?
8
+
9
+ > `optional` **port**: `number`
10
+
11
+ The port to bind the web server to.
12
+
13
+ #### Default
14
+
15
+ ```ts
16
+ 3000
17
+ ```
18
+
19
+ ***
20
+
21
+ ### host?
22
+
23
+ > `optional` **host**: `string`
24
+
25
+ The address to bind the web server to.
26
+
27
+ #### Default
28
+
29
+ ```ts
30
+ localhost
31
+ ```
32
+
33
+ ***
34
+
35
+ ### methods?
36
+
37
+ > `optional` **methods**: `HttpMethod`[]
38
+
39
+ The methods that the server accepts.
40
+
41
+ #### Default
42
+
43
+ ```ts
44
+ ["GET", "PUT", "POST", "DELETE", "OPTIONS"]
45
+ ```
46
+
47
+ ***
48
+
49
+ ### allowedHeaders?
50
+
51
+ > `optional` **allowedHeaders**: `string`[]
52
+
53
+ Any additional allowed headers.
54
+
55
+ ***
56
+
57
+ ### exposedHeaders?
58
+
59
+ > `optional` **exposedHeaders**: `string`[]
60
+
61
+ And additional exposed headers.
62
+
63
+ ***
64
+
65
+ ### corsOrigins?
66
+
67
+ > `optional` **corsOrigins**: `string` \| `string`[]
68
+
69
+ The allowed CORS domains.
70
+
71
+ #### Default
72
+
73
+ ```ts
74
+ ["*"]
75
+ ```
@@ -0,0 +1,5 @@
1
+ # Type Alias: HealthStatus
2
+
3
+ > **HealthStatus**: *typeof* [`HealthStatus`](../variables/HealthStatus.md)\[keyof *typeof* [`HealthStatus`](../variables/HealthStatus.md)\]
4
+
5
+ The health status of the component.
@@ -0,0 +1,25 @@
1
+ # Variable: HealthStatus
2
+
3
+ > `const` **HealthStatus**: `object`
4
+
5
+ The health status of the component.
6
+
7
+ ## Type declaration
8
+
9
+ ### Ok
10
+
11
+ > `readonly` **Ok**: `"ok"` = `"ok"`
12
+
13
+ OK.
14
+
15
+ ### Warning
16
+
17
+ > `readonly` **Warning**: `"warning"` = `"warning"`
18
+
19
+ Warning.
20
+
21
+ ### Error
22
+
23
+ > `readonly` **Error**: `"error"` = `"error"`
24
+
25
+ Error.
@@ -0,0 +1,9 @@
1
+ {
2
+ "error": {
3
+ "baseRestClient": {
4
+ "missingRouteProp": "Missing route parameter in data \"{routeProp}\" for route \"{route}\"",
5
+ "decodingFailed": "Decoding JSON failed for route \"{route}\"",
6
+ "failureStatusText": "The request to the API failed: \"{statusText}\""
7
+ }
8
+ }
9
+ }
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@twin.org/api-models",
3
+ "version": "0.0.1-next.1",
4
+ "description": "Contains models and classes for use with APIs",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/twinfoundation/api.git",
8
+ "directory": "packages/api-models"
9
+ },
10
+ "author": "martyn.janes@iota.org",
11
+ "license": "Apache-2.0",
12
+ "type": "module",
13
+ "engines": {
14
+ "node": ">=20.0.0"
15
+ },
16
+ "scripts": {
17
+ "clean": "rimraf dist coverage",
18
+ "build": "tspc",
19
+ "test": "vitest --run --config ./vitest.config.ts --no-cache",
20
+ "coverage": "vitest --run --coverage --config ./vitest.config.ts --no-cache",
21
+ "bundle:esm": "rollup --config rollup.config.mjs --environment MODULE:esm",
22
+ "bundle:cjs": "rollup --config rollup.config.mjs --environment MODULE:cjs",
23
+ "bundle": "npm run bundle:esm && npm run bundle:cjs",
24
+ "docs:clean": "rimraf docs/reference",
25
+ "docs:generate": "typedoc",
26
+ "docs": "npm run docs:clean && npm run docs:generate",
27
+ "dist": "npm run clean && npm run build && npm run test && npm run bundle && npm run docs"
28
+ },
29
+ "dependencies": {
30
+ "@twin.org/core": "next",
31
+ "@twin.org/nameof": "next",
32
+ "@twin.org/web": "next"
33
+ },
34
+ "devDependencies": {
35
+ "@twin.org/nameof-transformer": "next",
36
+ "@vitest/coverage-v8": "2.1.1",
37
+ "@types/node": "22.5.5",
38
+ "copyfiles": "2.4.1",
39
+ "rimraf": "6.0.1",
40
+ "rollup": "4.21.3",
41
+ "rollup-plugin-typescript2": "0.36.0",
42
+ "ts-patch": "3.2.1",
43
+ "typedoc": "0.26.7",
44
+ "typedoc-plugin-markdown": "4.2.7",
45
+ "typescript": "5.6.2",
46
+ "vitest": "2.1.1"
47
+ },
48
+ "main": "./dist/cjs/index.cjs",
49
+ "module": "./dist/esm/index.mjs",
50
+ "types": "./dist/types/index.d.ts",
51
+ "exports": {
52
+ ".": {
53
+ "require": "./dist/cjs/index.cjs",
54
+ "import": "./dist/esm/index.mjs",
55
+ "types": "./dist/types/index.d.ts"
56
+ }
57
+ },
58
+ "files": [
59
+ "dist/cjs",
60
+ "dist/esm",
61
+ "dist/types",
62
+ "locales",
63
+ "docs"
64
+ ]
65
+ }