@twin.org/api-models 0.0.3-next.5 → 0.0.3-next.51

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 (148) hide show
  1. package/README.md +1 -1
  2. package/dist/es/errors/forbiddenError.js +23 -0
  3. package/dist/es/errors/forbiddenError.js.map +1 -0
  4. package/dist/es/errors/tooManyRequestsError.js +25 -0
  5. package/dist/es/errors/tooManyRequestsError.js.map +1 -0
  6. package/dist/es/helpers/httpErrorHelper.js +34 -20
  7. package/dist/es/helpers/httpErrorHelper.js.map +1 -1
  8. package/dist/es/helpers/httpUrlHelper.js +141 -0
  9. package/dist/es/helpers/httpUrlHelper.js.map +1 -0
  10. package/dist/es/index.js +12 -4
  11. package/dist/es/index.js.map +1 -1
  12. package/dist/es/models/api/IServerHealthResponse.js.map +1 -1
  13. package/dist/es/models/api/IServerLivezResponse.js +2 -0
  14. package/dist/es/models/api/IServerLivezResponse.js.map +1 -0
  15. package/dist/es/models/api/IServerReadyzResponse.js +2 -0
  16. package/dist/es/models/api/IServerReadyzResponse.js.map +1 -0
  17. package/dist/es/models/api/IServerRootResponse.js +0 -2
  18. package/dist/es/models/api/IServerRootResponse.js.map +1 -1
  19. package/dist/es/models/config/IBaseRestClientConfig.js.map +1 -1
  20. package/dist/es/models/httpContextIdKeys.js +33 -0
  21. package/dist/es/models/httpContextIdKeys.js.map +1 -0
  22. package/dist/es/models/protocol/IHttpServerRequest.js.map +1 -1
  23. package/dist/es/models/responses/errors/IConflictResponse.js.map +1 -1
  24. package/dist/es/models/responses/errors/INotImplementedResponse.js +2 -0
  25. package/dist/es/models/responses/errors/INotImplementedResponse.js.map +1 -0
  26. package/dist/es/models/responses/errors/ITooManyRequestsResponse.js +2 -0
  27. package/dist/es/models/responses/errors/ITooManyRequestsResponse.js.map +1 -0
  28. package/dist/es/models/routes/IBaseRoute.js.map +1 -1
  29. package/dist/es/models/server/IBaseRouteProcessor.js.map +1 -1
  30. package/dist/es/models/server/IRestRouteProcessor.js.map +1 -1
  31. package/dist/es/models/server/ISocketRouteProcessor.js.map +1 -1
  32. package/dist/es/models/server/IWebServer.js.map +1 -1
  33. package/dist/es/models/server/IWebServerOptions.js.map +1 -1
  34. package/dist/es/models/services/IHealthComponent.js +2 -0
  35. package/dist/es/models/services/IHealthComponent.js.map +1 -0
  36. package/dist/es/models/services/IInformationComponent.js.map +1 -1
  37. package/dist/es/models/services/IPlatformComponent.js +2 -0
  38. package/dist/es/models/services/IPlatformComponent.js.map +1 -0
  39. package/dist/es/models/services/ITenant.js +4 -0
  40. package/dist/es/models/services/ITenant.js.map +1 -0
  41. package/dist/es/models/services/ITenantAdminComponent.js +2 -0
  42. package/dist/es/models/services/ITenantAdminComponent.js.map +1 -0
  43. package/dist/types/errors/forbiddenError.d.ts +20 -0
  44. package/dist/types/errors/tooManyRequestsError.d.ts +22 -0
  45. package/dist/types/helpers/httpErrorHelper.d.ts +6 -0
  46. package/dist/types/helpers/httpUrlHelper.d.ts +70 -0
  47. package/dist/types/index.d.ts +12 -4
  48. package/dist/types/models/api/IServerHealthResponse.d.ts +6 -3
  49. package/dist/types/models/api/IServerLivezResponse.d.ts +16 -0
  50. package/dist/types/models/api/IServerReadyzResponse.d.ts +16 -0
  51. package/dist/types/models/api/IServerRootResponse.d.ts +7 -0
  52. package/dist/types/models/config/IBaseRestClientConfig.d.ts +16 -0
  53. package/dist/types/models/httpContextIdKeys.d.ts +33 -0
  54. package/dist/types/models/protocol/IHttpServerRequest.d.ts +4 -4
  55. package/dist/types/models/responses/errors/IConflictResponse.d.ts +1 -6
  56. package/dist/types/models/responses/errors/INotImplementedResponse.d.ts +15 -0
  57. package/dist/types/models/responses/errors/ITooManyRequestsResponse.d.ts +15 -0
  58. package/dist/types/models/routes/IBaseRoute.d.ts +9 -1
  59. package/dist/types/models/server/IBaseRouteProcessor.d.ts +10 -4
  60. package/dist/types/models/server/IRestRouteProcessor.d.ts +5 -2
  61. package/dist/types/models/server/IWebServer.d.ts +10 -4
  62. package/dist/types/models/server/IWebServerOptions.d.ts +5 -0
  63. package/dist/types/models/services/IHealthComponent.d.ts +14 -0
  64. package/dist/types/models/services/IInformationComponent.d.ts +10 -17
  65. package/dist/types/models/services/IPlatformComponent.d.ts +24 -0
  66. package/dist/types/models/services/ITenant.d.ts +37 -0
  67. package/dist/types/models/services/ITenantAdminComponent.d.ts +70 -0
  68. package/docs/changelog.md +415 -74
  69. package/docs/examples.md +200 -1
  70. package/docs/reference/classes/ForbiddenError.md +55 -0
  71. package/docs/reference/classes/HttpErrorHelper.md +14 -2
  72. package/docs/reference/classes/HttpParameterHelper.md +4 -4
  73. package/docs/reference/classes/HttpUrlHelper.md +259 -0
  74. package/docs/reference/classes/TooManyRequestsError.md +67 -0
  75. package/docs/reference/index.md +13 -5
  76. package/docs/reference/interfaces/IAcceptedResponse.md +2 -2
  77. package/docs/reference/interfaces/IBadRequestResponse.md +2 -2
  78. package/docs/reference/interfaces/IBaseRestClientConfig.md +57 -9
  79. package/docs/reference/interfaces/IBaseRoute.md +25 -9
  80. package/docs/reference/interfaces/IBaseRouteEntryPoint.md +4 -4
  81. package/docs/reference/interfaces/IBaseRouteProcessor.md +21 -13
  82. package/docs/reference/interfaces/IBaseSocketClientConfig.md +7 -7
  83. package/docs/reference/interfaces/IConflictResponse.md +3 -11
  84. package/docs/reference/interfaces/ICreatedResponse.md +2 -2
  85. package/docs/reference/interfaces/IForbiddenResponse.md +2 -2
  86. package/docs/reference/interfaces/IHealthComponent.md +21 -0
  87. package/docs/reference/interfaces/IHttpRequest.md +8 -8
  88. package/docs/reference/interfaces/IHttpRequestContext.md +4 -4
  89. package/docs/reference/interfaces/IHttpRequestPathParams.md +1 -1
  90. package/docs/reference/interfaces/IHttpRequestQuery.md +1 -1
  91. package/docs/reference/interfaces/IHttpResponse.md +6 -6
  92. package/docs/reference/interfaces/IHttpServerRequest.md +14 -14
  93. package/docs/reference/interfaces/IInformationComponent.md +14 -56
  94. package/docs/reference/interfaces/IInternalServerErrorResponse.md +2 -2
  95. package/docs/reference/interfaces/IMimeTypeProcessor.md +2 -2
  96. package/docs/reference/interfaces/INoContentRequest.md +8 -8
  97. package/docs/reference/interfaces/INoContentResponse.md +1 -1
  98. package/docs/reference/interfaces/INotFoundResponse.md +3 -3
  99. package/docs/reference/interfaces/INotImplementedResponse.md +19 -0
  100. package/docs/reference/interfaces/IOkResponse.md +1 -1
  101. package/docs/reference/interfaces/IPlatformComponent.md +65 -0
  102. package/docs/reference/interfaces/IRestRoute.md +47 -23
  103. package/docs/reference/interfaces/IRestRouteExample.md +3 -3
  104. package/docs/reference/interfaces/IRestRouteProcessor.md +31 -19
  105. package/docs/reference/interfaces/IRestRouteRequestExample.md +4 -4
  106. package/docs/reference/interfaces/IRestRouteResponseAttachmentOptions.md +6 -6
  107. package/docs/reference/interfaces/IRestRouteResponseExample.md +4 -4
  108. package/docs/reference/interfaces/IRestRouteResponseOptions.md +2 -2
  109. package/docs/reference/interfaces/IServerFavIconResponse.md +7 -7
  110. package/docs/reference/interfaces/IServerHealthResponse.md +11 -3
  111. package/docs/reference/interfaces/IServerInfo.md +2 -2
  112. package/docs/reference/interfaces/IServerInfoResponse.md +1 -1
  113. package/docs/reference/interfaces/IServerLivezResponse.md +23 -0
  114. package/docs/reference/interfaces/IServerReadyzResponse.md +23 -0
  115. package/docs/reference/interfaces/IServerRootResponse.md +13 -1
  116. package/docs/reference/interfaces/IServerSpecResponse.md +4 -4
  117. package/docs/reference/interfaces/ISocketRequestContext.md +5 -5
  118. package/docs/reference/interfaces/ISocketRoute.md +38 -14
  119. package/docs/reference/interfaces/ISocketRouteProcessor.md +30 -22
  120. package/docs/reference/interfaces/ISocketServerRequest.md +17 -17
  121. package/docs/reference/interfaces/ITag.md +2 -2
  122. package/docs/reference/interfaces/ITenant.md +67 -0
  123. package/docs/reference/interfaces/ITenantAdminComponent.md +227 -0
  124. package/docs/reference/interfaces/ITooManyRequestsResponse.md +19 -0
  125. package/docs/reference/interfaces/IUnauthorizedResponse.md +2 -2
  126. package/docs/reference/interfaces/IUnprocessableEntityResponse.md +2 -2
  127. package/docs/reference/interfaces/IWebServer.md +37 -7
  128. package/docs/reference/interfaces/IWebServerOptions.md +21 -12
  129. package/docs/reference/type-aliases/HttpContextIdKeys.md +5 -0
  130. package/docs/reference/variables/HttpContextIdKeys.md +43 -0
  131. package/package.json +5 -4
  132. package/dist/es/factories/authenticationGeneratorFactory.js +0 -9
  133. package/dist/es/factories/authenticationGeneratorFactory.js.map +0 -1
  134. package/dist/es/models/client/IAuthenticationGenerator.js +0 -2
  135. package/dist/es/models/client/IAuthenticationGenerator.js.map +0 -1
  136. package/dist/es/models/services/IHealthInfo.js +0 -2
  137. package/dist/es/models/services/IHealthInfo.js.map +0 -1
  138. package/dist/es/models/services/healthStatus.js +0 -21
  139. package/dist/es/models/services/healthStatus.js.map +0 -1
  140. package/dist/types/factories/authenticationGeneratorFactory.d.ts +0 -6
  141. package/dist/types/models/client/IAuthenticationGenerator.d.ts +0 -14
  142. package/dist/types/models/services/IHealthInfo.d.ts +0 -27
  143. package/dist/types/models/services/healthStatus.d.ts +0 -21
  144. package/docs/reference/interfaces/IAuthenticationGenerator.md +0 -35
  145. package/docs/reference/interfaces/IHealthInfo.md +0 -37
  146. package/docs/reference/type-aliases/HealthStatus.md +0 -5
  147. package/docs/reference/variables/AuthenticationGeneratorFactory.md +0 -5
  148. package/docs/reference/variables/HealthStatus.md +0 -25
@@ -0,0 +1,24 @@
1
+ import type { IContextIds } from "@twin.org/context";
2
+ import type { IComponent } from "@twin.org/core";
3
+ /**
4
+ * Interface for the platform component.
5
+ */
6
+ export interface IPlatformComponent extends IComponent {
7
+ /**
8
+ * Indicates whether the component is running in a multi-tenant environment.
9
+ * @returns True if the component is running in a multi-tenant environment, false otherwise.
10
+ */
11
+ isMultiTenant(): boolean;
12
+ /**
13
+ * Execute a method, if single tenant will run once, if multi-tenant will run for each tenant.
14
+ * @param method The method to run for each tenant.
15
+ * @returns A promise that resolves when the method has been executed for all applicable tenants.
16
+ */
17
+ execute(method: () => Promise<void>): Promise<void>;
18
+ /**
19
+ * Get the local origin context IDs for the given URL.
20
+ * @param url The URL to check.
21
+ * @returns A promise that resolves to the context IDs if the URL is a local origin, undefined otherwise.
22
+ */
23
+ getLocalOriginContext(url: string): Promise<IContextIds | undefined>;
24
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Model defining the tenant.
3
+ */
4
+ export interface ITenant {
5
+ /**
6
+ * The unique identifier for the tenant.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The api key for the tenant.
11
+ */
12
+ apiKey: string;
13
+ /**
14
+ * The label of the tenant.
15
+ */
16
+ label: string;
17
+ /**
18
+ * The date the tenant was created.
19
+ */
20
+ dateCreated: string;
21
+ /**
22
+ * The date the tenant was modified.
23
+ */
24
+ dateModified: string;
25
+ /**
26
+ * The public origin available to the public for accessing the API.
27
+ */
28
+ publicOrigin?: string;
29
+ /**
30
+ * The organization id for the tenant.
31
+ */
32
+ organizationId: string;
33
+ /**
34
+ * Optional list of organization aliases that can are used for legacy lookups.
35
+ */
36
+ organizationIdLegacy?: string[];
37
+ }
@@ -0,0 +1,70 @@
1
+ import type { IComponent } from "@twin.org/core";
2
+ import type { EntityCondition } from "@twin.org/entity";
3
+ import type { ITenant } from "./ITenant.js";
4
+ /**
5
+ * Configuration for the tenant admin component
6
+ */
7
+ export interface ITenantAdminComponent extends IComponent {
8
+ /**
9
+ * Create a tenant.
10
+ * @param tenant The tenant to store.
11
+ * @returns The tenant id.
12
+ */
13
+ create(tenant: Omit<ITenant, "id" | "dateCreated" | "dateModified"> & {
14
+ id?: string;
15
+ }): Promise<string>;
16
+ /**
17
+ * Update a tenant.
18
+ * @param tenant The tenant to update.
19
+ * @returns A promise that resolves when the tenant has been updated.
20
+ */
21
+ update(tenant: Partial<Omit<ITenant, "dateCreated" | "dateModified">>): Promise<void>;
22
+ /**
23
+ * Get a tenant by its id.
24
+ * @param tenantId The id of the tenant.
25
+ * @returns The tenant.
26
+ * @throws Error if the tenant is not found.
27
+ */
28
+ get(tenantId: string): Promise<ITenant>;
29
+ /**
30
+ * Get a tenant by its api key.
31
+ * @param apiKey The api key of the tenant.
32
+ * @returns The tenant.
33
+ * @throws Error if the tenant is not found.
34
+ */
35
+ getByApiKey(apiKey: string): Promise<ITenant>;
36
+ /**
37
+ * Get a tenant by its public origin.
38
+ * @param publicOrigin The origin of the tenant.
39
+ * @returns The tenant.
40
+ * @throws Error if the tenant is not found.
41
+ */
42
+ getByPublicOrigin(publicOrigin: string): Promise<ITenant>;
43
+ /**
44
+ * Remove a tenant by its id.
45
+ * @param tenantId The id of the tenant.
46
+ * @returns A promise that resolves when the tenant has been removed.
47
+ * @throws Error if the tenant is not found.
48
+ */
49
+ remove(tenantId: string): Promise<void>;
50
+ /**
51
+ * Get a tenant by its organization id, optionally searching legacy ids.
52
+ * @param organizationId The organization id of the tenant.
53
+ * @param includeLegacy Whether to also search the legacy organization id array.
54
+ * @returns The tenant.
55
+ * @throws Error if the tenant is not found.
56
+ */
57
+ getTenantByOrganizationId(organizationId: string, includeLegacy?: boolean): Promise<ITenant>;
58
+ /**
59
+ * Query tenants with pagination.
60
+ * @param conditions The conditions to filter the tenants.
61
+ * @param properties The properties to include in the returned tenants.
62
+ * @param cursor The cursor to start from.
63
+ * @param limit The maximum number of tenants to return.
64
+ * @returns The tenants and the next cursor if more tenants are available.
65
+ */
66
+ query(conditions?: EntityCondition<ITenant>, properties?: (keyof ITenant)[], cursor?: string, limit?: number): Promise<{
67
+ tenants: ITenant[];
68
+ cursor?: string;
69
+ }>;
70
+ }