@3sixty/api-models 0.0.0-stage → 0.20.0-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.
- package/LICENSE +201 -0
- package/README.md +24 -2
- package/dist/es/errors/forbiddenError.js +23 -0
- package/dist/es/errors/forbiddenError.js.map +1 -0
- package/dist/es/errors/tooManyRequestsError.js +25 -0
- package/dist/es/errors/tooManyRequestsError.js.map +1 -0
- package/dist/es/factories/mimeTypeProcessorFactory.js +9 -0
- package/dist/es/factories/mimeTypeProcessorFactory.js.map +1 -0
- package/dist/es/factories/restClientProcessorFactory.js +9 -0
- package/dist/es/factories/restClientProcessorFactory.js.map +1 -0
- package/dist/es/factories/restRouteProcessorFactory.js +9 -0
- package/dist/es/factories/restRouteProcessorFactory.js.map +1 -0
- package/dist/es/factories/socketRouteProcessorFactory.js +9 -0
- package/dist/es/factories/socketRouteProcessorFactory.js.map +1 -0
- package/dist/es/helpers/httpErrorHelper.js +75 -0
- package/dist/es/helpers/httpErrorHelper.js.map +1 -0
- package/dist/es/helpers/httpHeaderHelper.js +120 -0
- package/dist/es/helpers/httpHeaderHelper.js.map +1 -0
- package/dist/es/helpers/httpParameterHelper.js +41 -0
- package/dist/es/helpers/httpParameterHelper.js.map +1 -0
- package/dist/es/helpers/httpUrlHelper.js +156 -0
- package/dist/es/helpers/httpUrlHelper.js.map +1 -0
- package/dist/es/index.js +81 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/models/IHealth.js +2 -0
- package/dist/es/models/IHealth.js.map +1 -0
- package/dist/es/models/api/IServerFavIconResponse.js +2 -0
- package/dist/es/models/api/IServerFavIconResponse.js.map +1 -0
- package/dist/es/models/api/IServerHealthResponse.js +2 -0
- package/dist/es/models/api/IServerHealthResponse.js.map +1 -0
- package/dist/es/models/api/IServerInfoResponse.js +2 -0
- package/dist/es/models/api/IServerInfoResponse.js.map +1 -0
- package/dist/es/models/api/IServerLivezResponse.js +2 -0
- package/dist/es/models/api/IServerLivezResponse.js.map +1 -0
- package/dist/es/models/api/IServerReadyzResponse.js +2 -0
- package/dist/es/models/api/IServerReadyzResponse.js.map +1 -0
- package/dist/es/models/api/IServerRootResponse.js +2 -0
- package/dist/es/models/api/IServerRootResponse.js.map +1 -0
- package/dist/es/models/api/IServerSpecResponse.js +2 -0
- package/dist/es/models/api/IServerSpecResponse.js.map +1 -0
- package/dist/es/models/client/IRestClientProcessor.js +2 -0
- package/dist/es/models/client/IRestClientProcessor.js.map +1 -0
- package/dist/es/models/client/IRestClientProcessorContext.js +2 -0
- package/dist/es/models/client/IRestClientProcessorContext.js.map +1 -0
- package/dist/es/models/config/IBaseRestClientConfig.js +2 -0
- package/dist/es/models/config/IBaseRestClientConfig.js.map +1 -0
- package/dist/es/models/config/IBaseSocketClientConfig.js +2 -0
- package/dist/es/models/config/IBaseSocketClientConfig.js.map +1 -0
- package/dist/es/models/healthCategory.js +17 -0
- package/dist/es/models/healthCategory.js.map +1 -0
- package/dist/es/models/healthStatus.js +21 -0
- package/dist/es/models/healthStatus.js.map +1 -0
- package/dist/es/models/httpContextIdKeys.js +39 -0
- package/dist/es/models/httpContextIdKeys.js.map +1 -0
- package/dist/es/models/protocol/IHttpRequest.js +2 -0
- package/dist/es/models/protocol/IHttpRequest.js.map +1 -0
- package/dist/es/models/protocol/IHttpRequestContext.js +2 -0
- package/dist/es/models/protocol/IHttpRequestContext.js.map +1 -0
- package/dist/es/models/protocol/IHttpRequestPathParams.js +4 -0
- package/dist/es/models/protocol/IHttpRequestPathParams.js.map +1 -0
- package/dist/es/models/protocol/IHttpRequestQuery.js +4 -0
- package/dist/es/models/protocol/IHttpRequestQuery.js.map +1 -0
- package/dist/es/models/protocol/IHttpResponse.js +2 -0
- package/dist/es/models/protocol/IHttpResponse.js.map +1 -0
- package/dist/es/models/protocol/IHttpServerRequest.js +2 -0
- package/dist/es/models/protocol/IHttpServerRequest.js.map +1 -0
- package/dist/es/models/protocol/ISocketRequestContext.js +2 -0
- package/dist/es/models/protocol/ISocketRequestContext.js.map +1 -0
- package/dist/es/models/protocol/ISocketServerRequest.js +2 -0
- package/dist/es/models/protocol/ISocketServerRequest.js.map +1 -0
- package/dist/es/models/requests/INoContentRequest.js +2 -0
- package/dist/es/models/requests/INoContentRequest.js.map +1 -0
- package/dist/es/models/responses/errors/IBadRequestResponse.js +2 -0
- package/dist/es/models/responses/errors/IBadRequestResponse.js.map +1 -0
- package/dist/es/models/responses/errors/IConflictResponse.js +2 -0
- package/dist/es/models/responses/errors/IConflictResponse.js.map +1 -0
- package/dist/es/models/responses/errors/IForbiddenResponse.js +2 -0
- package/dist/es/models/responses/errors/IForbiddenResponse.js.map +1 -0
- package/dist/es/models/responses/errors/IInternalServerErrorResponse.js +2 -0
- package/dist/es/models/responses/errors/IInternalServerErrorResponse.js.map +1 -0
- package/dist/es/models/responses/errors/INotFoundResponse.js +2 -0
- package/dist/es/models/responses/errors/INotFoundResponse.js.map +1 -0
- package/dist/es/models/responses/errors/INotImplementedResponse.js +2 -0
- package/dist/es/models/responses/errors/INotImplementedResponse.js.map +1 -0
- package/dist/es/models/responses/errors/ITooManyRequestsResponse.js +2 -0
- package/dist/es/models/responses/errors/ITooManyRequestsResponse.js.map +1 -0
- package/dist/es/models/responses/errors/IUnauthorizedResponse.js +2 -0
- package/dist/es/models/responses/errors/IUnauthorizedResponse.js.map +1 -0
- package/dist/es/models/responses/errors/IUnprocessableEntityResponse.js +2 -0
- package/dist/es/models/responses/errors/IUnprocessableEntityResponse.js.map +1 -0
- package/dist/es/models/responses/success/IAcceptedResponse.js +2 -0
- package/dist/es/models/responses/success/IAcceptedResponse.js.map +1 -0
- package/dist/es/models/responses/success/ICreatedResponse.js +2 -0
- package/dist/es/models/responses/success/ICreatedResponse.js.map +1 -0
- package/dist/es/models/responses/success/INoContentResponse.js +2 -0
- package/dist/es/models/responses/success/INoContentResponse.js.map +1 -0
- package/dist/es/models/responses/success/IOkResponse.js +2 -0
- package/dist/es/models/responses/success/IOkResponse.js.map +1 -0
- package/dist/es/models/routes/IBaseRoute.js +2 -0
- package/dist/es/models/routes/IBaseRoute.js.map +1 -0
- package/dist/es/models/routes/IBaseRouteEntryPoint.js +2 -0
- package/dist/es/models/routes/IBaseRouteEntryPoint.js.map +1 -0
- package/dist/es/models/routes/IRestRoute.js +2 -0
- package/dist/es/models/routes/IRestRoute.js.map +1 -0
- package/dist/es/models/routes/IRestRouteEntryPoint.js +2 -0
- package/dist/es/models/routes/IRestRouteEntryPoint.js.map +1 -0
- package/dist/es/models/routes/IRestRouteExample.js +4 -0
- package/dist/es/models/routes/IRestRouteExample.js.map +1 -0
- package/dist/es/models/routes/IRestRouteRequestExample.js +2 -0
- package/dist/es/models/routes/IRestRouteRequestExample.js.map +1 -0
- package/dist/es/models/routes/IRestRouteResponseAttachmentOptions.js +4 -0
- package/dist/es/models/routes/IRestRouteResponseAttachmentOptions.js.map +1 -0
- package/dist/es/models/routes/IRestRouteResponseExample.js +2 -0
- package/dist/es/models/routes/IRestRouteResponseExample.js.map +1 -0
- package/dist/es/models/routes/IRestRouteResponseOptions.js +2 -0
- package/dist/es/models/routes/IRestRouteResponseOptions.js.map +1 -0
- package/dist/es/models/routes/IRouteAuthorization.js +4 -0
- package/dist/es/models/routes/IRouteAuthorization.js.map +1 -0
- package/dist/es/models/routes/ISocketRoute.js +2 -0
- package/dist/es/models/routes/ISocketRoute.js.map +1 -0
- package/dist/es/models/routes/ISocketRouteEntryPoint.js +2 -0
- package/dist/es/models/routes/ISocketRouteEntryPoint.js.map +1 -0
- package/dist/es/models/routes/ITag.js +4 -0
- package/dist/es/models/routes/ITag.js.map +1 -0
- package/dist/es/models/routes/httpBodyLimit.js +17 -0
- package/dist/es/models/routes/httpBodyLimit.js.map +1 -0
- package/dist/es/models/server/IBaseRouteProcessor.js +2 -0
- package/dist/es/models/server/IBaseRouteProcessor.js.map +1 -0
- package/dist/es/models/server/IMimeTypeProcessor.js +2 -0
- package/dist/es/models/server/IMimeTypeProcessor.js.map +1 -0
- package/dist/es/models/server/IRestRouteProcessor.js +2 -0
- package/dist/es/models/server/IRestRouteProcessor.js.map +1 -0
- package/dist/es/models/server/ISocketRouteProcessor.js +2 -0
- package/dist/es/models/server/ISocketRouteProcessor.js.map +1 -0
- package/dist/es/models/server/IWebServer.js +2 -0
- package/dist/es/models/server/IWebServer.js.map +1 -0
- package/dist/es/models/server/IWebServerOptions.js +2 -0
- package/dist/es/models/server/IWebServerOptions.js.map +1 -0
- package/dist/es/models/services/IHealthApplicationCallback.js +2 -0
- package/dist/es/models/services/IHealthApplicationCallback.js.map +1 -0
- package/dist/es/models/services/IHealthComponent.js +2 -0
- package/dist/es/models/services/IHealthComponent.js.map +1 -0
- package/dist/es/models/services/IHealthProviderComponent.js +2 -0
- package/dist/es/models/services/IHealthProviderComponent.js.map +1 -0
- package/dist/es/models/services/IInformationComponent.js +2 -0
- package/dist/es/models/services/IInformationComponent.js.map +1 -0
- package/dist/es/models/services/IPlatformComponent.js +2 -0
- package/dist/es/models/services/IPlatformComponent.js.map +1 -0
- package/dist/es/models/services/IServerInfo.js +4 -0
- package/dist/es/models/services/IServerInfo.js.map +1 -0
- package/dist/es/models/services/ITenant.js +4 -0
- package/dist/es/models/services/ITenant.js.map +1 -0
- package/dist/es/models/services/ITenantAdminComponent.js +2 -0
- package/dist/es/models/services/ITenantAdminComponent.js.map +1 -0
- package/dist/es/models/services/tenantEventCallback.js +2 -0
- package/dist/es/models/services/tenantEventCallback.js.map +1 -0
- package/dist/es/models/services/tenantEventType.js +21 -0
- package/dist/es/models/services/tenantEventType.js.map +1 -0
- package/dist/types/errors/forbiddenError.d.ts +20 -0
- package/dist/types/errors/tooManyRequestsError.d.ts +22 -0
- package/dist/types/factories/mimeTypeProcessorFactory.d.ts +6 -0
- package/dist/types/factories/restClientProcessorFactory.d.ts +6 -0
- package/dist/types/factories/restRouteProcessorFactory.d.ts +6 -0
- package/dist/types/factories/socketRouteProcessorFactory.d.ts +6 -0
- package/dist/types/helpers/httpErrorHelper.d.ts +32 -0
- package/dist/types/helpers/httpHeaderHelper.d.ts +62 -0
- package/dist/types/helpers/httpParameterHelper.d.ts +29 -0
- package/dist/types/helpers/httpUrlHelper.d.ts +73 -0
- package/dist/types/index.d.ts +77 -0
- package/dist/types/models/IHealth.d.ts +42 -0
- package/dist/types/models/api/IServerFavIconResponse.d.ts +23 -0
- package/dist/types/models/api/IServerHealthResponse.d.ts +14 -0
- package/dist/types/models/api/IServerInfoResponse.d.ts +10 -0
- package/dist/types/models/api/IServerLivezResponse.d.ts +16 -0
- package/dist/types/models/api/IServerReadyzResponse.d.ts +16 -0
- package/dist/types/models/api/IServerRootResponse.d.ts +16 -0
- package/dist/types/models/api/IServerSpecResponse.d.ts +14 -0
- package/dist/types/models/client/IRestClientProcessor.d.ts +22 -0
- package/dist/types/models/client/IRestClientProcessorContext.d.ts +42 -0
- package/dist/types/models/config/IBaseRestClientConfig.d.ts +46 -0
- package/dist/types/models/config/IBaseSocketClientConfig.d.ts +22 -0
- package/dist/types/models/healthCategory.d.ts +17 -0
- package/dist/types/models/healthStatus.d.ts +21 -0
- package/dist/types/models/httpContextIdKeys.d.ts +38 -0
- package/dist/types/models/protocol/IHttpRequest.d.ts +24 -0
- package/dist/types/models/protocol/IHttpRequestContext.d.ts +20 -0
- package/dist/types/models/protocol/IHttpRequestPathParams.d.ts +6 -0
- package/dist/types/models/protocol/IHttpRequestQuery.d.ts +6 -0
- package/dist/types/models/protocol/IHttpResponse.d.ts +18 -0
- package/dist/types/models/protocol/IHttpServerRequest.d.ts +15 -0
- package/dist/types/models/protocol/ISocketRequestContext.d.ts +10 -0
- package/dist/types/models/protocol/ISocketServerRequest.d.ts +10 -0
- package/dist/types/models/requests/INoContentRequest.d.ts +22 -0
- package/dist/types/models/responses/errors/IBadRequestResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/IConflictResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/IForbiddenResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/IInternalServerErrorResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/INotFoundResponse.d.ts +20 -0
- package/dist/types/models/responses/errors/INotImplementedResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/ITooManyRequestsResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/IUnauthorizedResponse.d.ts +15 -0
- package/dist/types/models/responses/errors/IUnprocessableEntityResponse.d.ts +15 -0
- package/dist/types/models/responses/success/IAcceptedResponse.d.ts +19 -0
- package/dist/types/models/responses/success/ICreatedResponse.d.ts +19 -0
- package/dist/types/models/responses/success/INoContentResponse.d.ts +10 -0
- package/dist/types/models/responses/success/IOkResponse.d.ts +10 -0
- package/dist/types/models/routes/IBaseRoute.d.ts +39 -0
- package/dist/types/models/routes/IBaseRouteEntryPoint.d.ts +22 -0
- package/dist/types/models/routes/IRestRoute.d.ts +80 -0
- package/dist/types/models/routes/IRestRouteEntryPoint.d.ts +6 -0
- package/dist/types/models/routes/IRestRouteExample.d.ts +13 -0
- package/dist/types/models/routes/IRestRouteRequestExample.d.ts +10 -0
- package/dist/types/models/routes/IRestRouteResponseAttachmentOptions.d.ts +17 -0
- package/dist/types/models/routes/IRestRouteResponseExample.d.ts +10 -0
- package/dist/types/models/routes/IRestRouteResponseOptions.d.ts +10 -0
- package/dist/types/models/routes/IRouteAuthorization.d.ts +17 -0
- package/dist/types/models/routes/ISocketRoute.d.ts +41 -0
- package/dist/types/models/routes/ISocketRouteEntryPoint.d.ts +6 -0
- package/dist/types/models/routes/ITag.d.ts +13 -0
- package/dist/types/models/routes/httpBodyLimit.d.ts +17 -0
- package/dist/types/models/server/IBaseRouteProcessor.d.ts +42 -0
- package/dist/types/models/server/IMimeTypeProcessor.d.ts +17 -0
- package/dist/types/models/server/IRestRouteProcessor.d.ts +24 -0
- package/dist/types/models/server/ISocketRouteProcessor.d.ts +38 -0
- package/dist/types/models/server/IWebServer.d.ts +36 -0
- package/dist/types/models/server/IWebServerOptions.d.ts +54 -0
- package/dist/types/models/services/IHealthApplicationCallback.d.ts +6 -0
- package/dist/types/models/services/IHealthComponent.d.ts +16 -0
- package/dist/types/models/services/IHealthProviderComponent.d.ts +31 -0
- package/dist/types/models/services/IInformationComponent.d.ts +41 -0
- package/dist/types/models/services/IPlatformComponent.d.ts +44 -0
- package/dist/types/models/services/IServerInfo.d.ts +13 -0
- package/dist/types/models/services/ITenant.d.ts +37 -0
- package/dist/types/models/services/ITenantAdminComponent.d.ts +70 -0
- package/dist/types/models/services/tenantEventCallback.d.ts +6 -0
- package/dist/types/models/services/tenantEventType.d.ts +21 -0
- package/docs/changelog.md +10 -0
- package/docs/examples.md +200 -0
- package/docs/reference/classes/ForbiddenError.md +57 -0
- package/docs/reference/classes/HttpErrorHelper.md +99 -0
- package/docs/reference/classes/HttpHeaderHelper.md +182 -0
- package/docs/reference/classes/HttpParameterHelper.md +125 -0
- package/docs/reference/classes/HttpUrlHelper.md +262 -0
- package/docs/reference/classes/TooManyRequestsError.md +69 -0
- package/docs/reference/index.md +95 -0
- package/docs/reference/interfaces/IAcceptedResponse.md +25 -0
- package/docs/reference/interfaces/IBadRequestResponse.md +19 -0
- package/docs/reference/interfaces/IBaseRestClientConfig.md +99 -0
- package/docs/reference/interfaces/IBaseRoute.md +89 -0
- package/docs/reference/interfaces/IBaseRouteEntryPoint.md +55 -0
- package/docs/reference/interfaces/IBaseRouteProcessor.md +134 -0
- package/docs/reference/interfaces/IBaseSocketClientConfig.md +35 -0
- package/docs/reference/interfaces/IConflictResponse.md +19 -0
- package/docs/reference/interfaces/ICreatedResponse.md +25 -0
- package/docs/reference/interfaces/IForbiddenResponse.md +19 -0
- package/docs/reference/interfaces/IHealth.md +71 -0
- package/docs/reference/interfaces/IHealthComponent.md +21 -0
- package/docs/reference/interfaces/IHealthProviderComponent.md +76 -0
- package/docs/reference/interfaces/IHttpRequest.md +46 -0
- package/docs/reference/interfaces/IHttpRequestContext.md +35 -0
- package/docs/reference/interfaces/IHttpRequestPathParams.md +7 -0
- package/docs/reference/interfaces/IHttpRequestQuery.md +7 -0
- package/docs/reference/interfaces/IHttpResponse.md +33 -0
- package/docs/reference/interfaces/IHttpServerRequest.md +81 -0
- package/docs/reference/interfaces/IInformationComponent.md +91 -0
- package/docs/reference/interfaces/IInternalServerErrorResponse.md +19 -0
- package/docs/reference/interfaces/IMimeTypeProcessor.md +43 -0
- package/docs/reference/interfaces/INoContentRequest.md +55 -0
- package/docs/reference/interfaces/INoContentResponse.md +11 -0
- package/docs/reference/interfaces/INotFoundResponse.md +27 -0
- package/docs/reference/interfaces/INotImplementedResponse.md +19 -0
- package/docs/reference/interfaces/IOkResponse.md +11 -0
- package/docs/reference/interfaces/IPlatformComponent.md +139 -0
- package/docs/reference/interfaces/IRestClientProcessor.md +69 -0
- package/docs/reference/interfaces/IRestClientProcessorContext.md +75 -0
- package/docs/reference/interfaces/IRestRoute.md +245 -0
- package/docs/reference/interfaces/IRestRouteExample.md +24 -0
- package/docs/reference/interfaces/IRestRouteProcessor.md +177 -0
- package/docs/reference/interfaces/IRestRouteRequestExample.md +45 -0
- package/docs/reference/interfaces/IRestRouteResponseAttachmentOptions.md +27 -0
- package/docs/reference/interfaces/IRestRouteResponseExample.md +45 -0
- package/docs/reference/interfaces/IRestRouteResponseOptions.md +11 -0
- package/docs/reference/interfaces/IRouteAuthorization.md +27 -0
- package/docs/reference/interfaces/IServerFavIconResponse.md +33 -0
- package/docs/reference/interfaces/IServerHealthResponse.md +19 -0
- package/docs/reference/interfaces/IServerInfo.md +19 -0
- package/docs/reference/interfaces/IServerInfoResponse.md +11 -0
- package/docs/reference/interfaces/IServerLivezResponse.md +23 -0
- package/docs/reference/interfaces/IServerReadyzResponse.md +23 -0
- package/docs/reference/interfaces/IServerRootResponse.md +23 -0
- package/docs/reference/interfaces/IServerSpecResponse.md +19 -0
- package/docs/reference/interfaces/ISocketRequestContext.md +55 -0
- package/docs/reference/interfaces/ISocketRoute.md +198 -0
- package/docs/reference/interfaces/ISocketRouteProcessor.md +247 -0
- package/docs/reference/interfaces/ISocketServerRequest.md +93 -0
- package/docs/reference/interfaces/ITag.md +19 -0
- package/docs/reference/interfaces/ITenant.md +67 -0
- package/docs/reference/interfaces/ITenantAdminComponent.md +227 -0
- package/docs/reference/interfaces/ITooManyRequestsResponse.md +19 -0
- package/docs/reference/interfaces/IUnauthorizedResponse.md +19 -0
- package/docs/reference/interfaces/IUnprocessableEntityResponse.md +19 -0
- package/docs/reference/interfaces/IWebServer.md +109 -0
- package/docs/reference/interfaces/IWebServerOptions.md +113 -0
- package/docs/reference/type-aliases/HealthApplicationCallback.md +16 -0
- package/docs/reference/type-aliases/HealthCategory.md +5 -0
- package/docs/reference/type-aliases/HealthStatus.md +5 -0
- package/docs/reference/type-aliases/HttpBodyLimit.md +5 -0
- package/docs/reference/type-aliases/HttpContextIdKeys.md +5 -0
- package/docs/reference/type-aliases/IRestRouteEntryPoint.md +5 -0
- package/docs/reference/type-aliases/ISocketRouteEntryPoint.md +5 -0
- package/docs/reference/type-aliases/TenantEventCallback.md +20 -0
- package/docs/reference/type-aliases/TenantEventType.md +5 -0
- package/docs/reference/variables/HealthCategory.md +19 -0
- package/docs/reference/variables/HealthStatus.md +25 -0
- package/docs/reference/variables/HttpBodyLimit.md +19 -0
- package/docs/reference/variables/HttpContextIdKeys.md +50 -0
- package/docs/reference/variables/MimeTypeProcessorFactory.md +5 -0
- package/docs/reference/variables/RestClientProcessorFactory.md +5 -0
- package/docs/reference/variables/RestRouteProcessorFactory.md +5 -0
- package/docs/reference/variables/SocketRouteProcessorFactory.md +5 -0
- package/docs/reference/variables/TenantEventType.md +25 -0
- package/locales/en.json +8 -0
- package/package.json +53 -5
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { IContextIds } from "@3sixty/context";
|
|
2
|
+
import type { IComponent } from "@3sixty/core";
|
|
3
|
+
import type { IHttpResponse } from "../protocol/IHttpResponse.js";
|
|
4
|
+
import type { IHttpServerRequest } from "../protocol/IHttpServerRequest.js";
|
|
5
|
+
import type { IBaseRoute } from "../routes/IBaseRoute.js";
|
|
6
|
+
/**
|
|
7
|
+
* The definition for a base processor for handling REST routes.
|
|
8
|
+
*/
|
|
9
|
+
export interface IBaseRouteProcessor<T = IBaseRoute, R = IHttpServerRequest> extends IComponent {
|
|
10
|
+
/**
|
|
11
|
+
* Pre process the REST request for the specified route.
|
|
12
|
+
* @param request The request to handle.
|
|
13
|
+
* @param response The response data to send if any.
|
|
14
|
+
* @param route The route being requested, if a matching one was found.
|
|
15
|
+
* @param contextIds The context IDs of the request.
|
|
16
|
+
* @param processorState The state handed through the processors.
|
|
17
|
+
* @param componentTypes The component types for the request.
|
|
18
|
+
* @param componentTypes.loggingComponentType The logging component type.
|
|
19
|
+
* @returns Promise that resolves when the request is processed.
|
|
20
|
+
*/
|
|
21
|
+
pre?(request: R, response: IHttpResponse, route: T | undefined, contextIds: IContextIds, processorState: {
|
|
22
|
+
[id: string]: unknown;
|
|
23
|
+
}, componentTypes?: {
|
|
24
|
+
loggingComponentType?: string;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Post process the REST request for the specified route.
|
|
28
|
+
* @param request The request to handle.
|
|
29
|
+
* @param response The response data to send if any.
|
|
30
|
+
* @param route The route being requested, if a matching one was found.
|
|
31
|
+
* @param contextIds The context IDs of the request.
|
|
32
|
+
* @param processorState The state handed through the processors.
|
|
33
|
+
* @param componentTypes The component types for the request.
|
|
34
|
+
* @param componentTypes.loggingComponentType The logging component type.
|
|
35
|
+
* @returns Promise that resolves when the request is processed.
|
|
36
|
+
*/
|
|
37
|
+
post?(request: R, response: IHttpResponse, route: T | undefined, contextIds: IContextIds, processorState: {
|
|
38
|
+
[id: string]: unknown;
|
|
39
|
+
}, componentTypes?: {
|
|
40
|
+
loggingComponentType?: string;
|
|
41
|
+
}): Promise<void>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IComponent } from "@3sixty/core";
|
|
2
|
+
/**
|
|
3
|
+
* The definition for a handler for a specific MIME type.
|
|
4
|
+
*/
|
|
5
|
+
export interface IMimeTypeProcessor extends IComponent {
|
|
6
|
+
/**
|
|
7
|
+
* Get the MIME types that this handler can handle.
|
|
8
|
+
* @returns The MIME types that this handler can handle.
|
|
9
|
+
*/
|
|
10
|
+
getTypes(): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Handle content.
|
|
13
|
+
* @param body The body to process.
|
|
14
|
+
* @returns The processed body.
|
|
15
|
+
*/
|
|
16
|
+
handle(body: Uint8Array): Promise<unknown>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { IBaseRouteProcessor } from "./IBaseRouteProcessor.js";
|
|
2
|
+
import type { IHttpResponse } from "../protocol/IHttpResponse.js";
|
|
3
|
+
import type { IHttpServerRequest } from "../protocol/IHttpServerRequest.js";
|
|
4
|
+
import type { IRestRoute } from "../routes/IRestRoute.js";
|
|
5
|
+
/**
|
|
6
|
+
* The definition for a processor for handling REST routes.
|
|
7
|
+
*/
|
|
8
|
+
export interface IRestRouteProcessor extends IBaseRouteProcessor<IRestRoute> {
|
|
9
|
+
/**
|
|
10
|
+
* Process the REST request for the specified route.
|
|
11
|
+
* @param request The request to handle.
|
|
12
|
+
* @param response The response data to send if any.
|
|
13
|
+
* @param route The route being requested, if a matching one was found.
|
|
14
|
+
* @param processorState The state handed through the processors.
|
|
15
|
+
* @param componentTypes The component types for the request.
|
|
16
|
+
* @param componentTypes.loggingComponentType The logging component type.
|
|
17
|
+
* @returns Promise that resolves when the request is processed.
|
|
18
|
+
*/
|
|
19
|
+
process?(request: IHttpServerRequest, response: IHttpResponse, route: IRestRoute | undefined, processorState: {
|
|
20
|
+
[id: string]: unknown;
|
|
21
|
+
}, componentTypes?: {
|
|
22
|
+
loggingComponentType?: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { IBaseRouteProcessor } from "./IBaseRouteProcessor.js";
|
|
2
|
+
import type { IHttpResponse } from "../protocol/IHttpResponse.js";
|
|
3
|
+
import type { ISocketServerRequest } from "../protocol/ISocketServerRequest.js";
|
|
4
|
+
import type { ISocketRoute } from "../routes/ISocketRoute.js";
|
|
5
|
+
/**
|
|
6
|
+
* The definition for a processor for handling socket routes.
|
|
7
|
+
*/
|
|
8
|
+
export interface ISocketRouteProcessor extends IBaseRouteProcessor<ISocketRoute, ISocketServerRequest> {
|
|
9
|
+
/**
|
|
10
|
+
* Process the connected event.
|
|
11
|
+
* @param request The server request object containing the socket id and other parameters.
|
|
12
|
+
* @param route The route being requested, if a matching one was found.
|
|
13
|
+
* @param loggingComponentType The logging component type for the request.
|
|
14
|
+
* @returns Promise that resolves when the request is processed.
|
|
15
|
+
*/
|
|
16
|
+
connected?(request: ISocketServerRequest, route: ISocketRoute | undefined, loggingComponentType?: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Process the disconnected event.
|
|
19
|
+
* @param request The server request object containing the socket id and other parameters.
|
|
20
|
+
* @param route The route being requested, if a matching one was found.
|
|
21
|
+
* @param loggingComponentType The logging component type for the request.
|
|
22
|
+
* @returns Promise that resolves when the request is processed.
|
|
23
|
+
*/
|
|
24
|
+
disconnected?(request: ISocketServerRequest, route: ISocketRoute | undefined, loggingComponentType?: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Process the REST request for the specified route.
|
|
27
|
+
* @param request The server request object containing the socket id and other parameters.
|
|
28
|
+
* @param response The response data to send if any.
|
|
29
|
+
* @param route The route being requested, if a matching one was found.
|
|
30
|
+
* @param processorState The state handed through the processors.
|
|
31
|
+
* @param responseEmitter The function to emit a response.
|
|
32
|
+
* @param loggingComponentType The logging component type for the request.
|
|
33
|
+
* @returns Promise that resolves when the request is processed.
|
|
34
|
+
*/
|
|
35
|
+
process?(request: ISocketServerRequest, response: IHttpResponse, route: ISocketRoute | undefined, processorState: {
|
|
36
|
+
[id: string]: unknown;
|
|
37
|
+
}, responseEmitter: (topic: string, response: IHttpResponse) => Promise<void>, loggingComponentType?: string): Promise<void>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { IComponent } from "@3sixty/core";
|
|
2
|
+
import type { IRestRouteProcessor } from "./IRestRouteProcessor.js";
|
|
3
|
+
import type { ISocketRouteProcessor } from "./ISocketRouteProcessor.js";
|
|
4
|
+
import type { IWebServerOptions } from "./IWebServerOptions.js";
|
|
5
|
+
import type { IRestRoute } from "../routes/IRestRoute.js";
|
|
6
|
+
import type { ISocketRoute } from "../routes/ISocketRoute.js";
|
|
7
|
+
/**
|
|
8
|
+
* Interface describing a web server.
|
|
9
|
+
*/
|
|
10
|
+
export interface IWebServer<T> extends IComponent {
|
|
11
|
+
/**
|
|
12
|
+
* Get the web server instance.
|
|
13
|
+
* @returns The web server instance.
|
|
14
|
+
*/
|
|
15
|
+
getInstance(): T;
|
|
16
|
+
/**
|
|
17
|
+
* Build the server.
|
|
18
|
+
* @param restRouteProcessors The processors for incoming requests over REST.
|
|
19
|
+
* @param restRoutes The REST routes.
|
|
20
|
+
* @param socketRouteProcessors The processors for incoming requests over Sockets.
|
|
21
|
+
* @param socketRoutes The socket routes.
|
|
22
|
+
* @param options Options for building the server.
|
|
23
|
+
* @returns A promise that resolves when the server is fully built and ready to start.
|
|
24
|
+
*/
|
|
25
|
+
build(restRouteProcessors?: IRestRouteProcessor[], restRoutes?: IRestRoute[], socketRouteProcessors?: ISocketRouteProcessor[], socketRoutes?: ISocketRoute[], options?: IWebServerOptions): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Start the server.
|
|
28
|
+
* @returns A promise that resolves when the server is listening for connections.
|
|
29
|
+
*/
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Stop the server.
|
|
33
|
+
* @returns A promise that resolves when the server has shut down all connections.
|
|
34
|
+
*/
|
|
35
|
+
stop(): Promise<void>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { HttpMethod } from "@3sixty/web";
|
|
2
|
+
/**
|
|
3
|
+
* Options for the web server.
|
|
4
|
+
*/
|
|
5
|
+
export interface IWebServerOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The port to bind the web server to.
|
|
8
|
+
* @default 3000
|
|
9
|
+
*/
|
|
10
|
+
port?: number;
|
|
11
|
+
/**
|
|
12
|
+
* The address to bind the web server to.
|
|
13
|
+
* @default localhost
|
|
14
|
+
*/
|
|
15
|
+
host?: string;
|
|
16
|
+
/**
|
|
17
|
+
* The methods that the server accepts.
|
|
18
|
+
* @default ["GET", "PUT", "POST", "PATCH", "DELETE", "OPTIONS"]
|
|
19
|
+
*/
|
|
20
|
+
methods?: HttpMethod[];
|
|
21
|
+
/**
|
|
22
|
+
* Any additional allowed headers.
|
|
23
|
+
*/
|
|
24
|
+
allowedHeaders?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* And additional exposed headers.
|
|
27
|
+
*/
|
|
28
|
+
exposedHeaders?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* The allowed CORS domains.
|
|
31
|
+
* @default ["*"]
|
|
32
|
+
*/
|
|
33
|
+
corsOrigins?: string | string[];
|
|
34
|
+
/**
|
|
35
|
+
* The public origin of the server, used for constructing the request URL.
|
|
36
|
+
* If not provided, it will be determined from the incoming request.
|
|
37
|
+
*/
|
|
38
|
+
publicOrigin?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Named body size limits in bytes for REST routes, referenced by a route's bodyLimit name.
|
|
41
|
+
* Merged over the server's built-in limits; the "default" entry applies to routes with no bodyLimit name.
|
|
42
|
+
*/
|
|
43
|
+
bodyLimits?: {
|
|
44
|
+
[name: string]: number;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Custom configuration for the web server.
|
|
48
|
+
*/
|
|
49
|
+
customWebConfig?: unknown;
|
|
50
|
+
/**
|
|
51
|
+
* Custom configuration for the socket server.
|
|
52
|
+
*/
|
|
53
|
+
customSocketConfig?: unknown;
|
|
54
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IHealth } from "../IHealth.js";
|
|
2
|
+
/**
|
|
3
|
+
* Callback invoked by a component to supply a deferred application health result.
|
|
4
|
+
* Only called when healthApplication returns undefined.
|
|
5
|
+
*/
|
|
6
|
+
export type HealthApplicationCallback = (result: IHealth[]) => Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IComponent } from "@3sixty/core";
|
|
2
|
+
import type { HealthStatus } from "../healthStatus.js";
|
|
3
|
+
import type { IHealth } from "../IHealth.js";
|
|
4
|
+
/**
|
|
5
|
+
* The health component for the server.
|
|
6
|
+
*/
|
|
7
|
+
export interface IHealthComponent extends IComponent {
|
|
8
|
+
/**
|
|
9
|
+
* Get the server health.
|
|
10
|
+
* @returns The service health.
|
|
11
|
+
*/
|
|
12
|
+
healthStatus(): Promise<{
|
|
13
|
+
status: HealthStatus;
|
|
14
|
+
components: IHealth[];
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { IContextIds } from "@3sixty/context";
|
|
2
|
+
import type { IHealth } from "../IHealth.js";
|
|
3
|
+
import type { HealthApplicationCallback } from "./IHealthApplicationCallback.js";
|
|
4
|
+
/**
|
|
5
|
+
* The health provider component for the server.
|
|
6
|
+
*/
|
|
7
|
+
export interface IHealthProviderComponent {
|
|
8
|
+
/**
|
|
9
|
+
* Returns the health status of the component.
|
|
10
|
+
* @returns The health status of the component, can return multiple entries for elements within the component.
|
|
11
|
+
*/
|
|
12
|
+
health?(): Promise<IHealth[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the application health processing for a component.
|
|
15
|
+
* @param contextIds The context IDs provisioned during the init pass.
|
|
16
|
+
* @returns A promise that resolves when the initialization is complete.
|
|
17
|
+
*/
|
|
18
|
+
healthApplicationInit?(contextIds: IContextIds): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the application health status of the component, context IDs from init are set in the current context.
|
|
21
|
+
* Returns undefined when the result will be provided asynchronously via the callback.
|
|
22
|
+
* @param callback The callback to invoke when a deferred health result is ready.
|
|
23
|
+
* @returns The health status, or undefined if the result will be provided via the callback.
|
|
24
|
+
*/
|
|
25
|
+
healthApplication?(callback: HealthApplicationCallback): Promise<IHealth[] | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Teardown the application health processing for a component.
|
|
28
|
+
* @returns A promise that resolves when the teardown is complete.
|
|
29
|
+
*/
|
|
30
|
+
healthApplicationTeardown?(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { IComponent } from "@3sixty/core";
|
|
2
|
+
import type { IServerInfo } from "./IServerInfo.js";
|
|
3
|
+
/**
|
|
4
|
+
* The information component for the server.
|
|
5
|
+
*/
|
|
6
|
+
export interface IInformationComponent extends IComponent {
|
|
7
|
+
/**
|
|
8
|
+
* Get the root information.
|
|
9
|
+
* @returns The root information.
|
|
10
|
+
*/
|
|
11
|
+
root(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the server information.
|
|
14
|
+
* @returns The service information.
|
|
15
|
+
*/
|
|
16
|
+
info(): Promise<IServerInfo>;
|
|
17
|
+
/**
|
|
18
|
+
* Get the favicon.
|
|
19
|
+
* @returns The favicon.
|
|
20
|
+
*/
|
|
21
|
+
favicon(): Promise<Uint8Array | undefined>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the OpenAPI spec.
|
|
24
|
+
* @returns The OpenAPI spec.
|
|
25
|
+
*/
|
|
26
|
+
spec(): Promise<unknown>;
|
|
27
|
+
/**
|
|
28
|
+
* Is the server live.
|
|
29
|
+
* @returns The livez status of the server.
|
|
30
|
+
*/
|
|
31
|
+
livez(): Promise<{
|
|
32
|
+
status: "alive" | "dead";
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Is the server ready.
|
|
36
|
+
* @returns The readyz status of the server.
|
|
37
|
+
*/
|
|
38
|
+
readyz(): Promise<{
|
|
39
|
+
status: "ready" | "not ready";
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { IContextIds } from "@3sixty/context";
|
|
2
|
+
import type { IComponent } from "@3sixty/core";
|
|
3
|
+
import type { TenantEventCallback } from "./tenantEventCallback.js";
|
|
4
|
+
import type { TenantEventType } from "./tenantEventType.js";
|
|
5
|
+
/**
|
|
6
|
+
* Interface for the platform component.
|
|
7
|
+
*/
|
|
8
|
+
export interface IPlatformComponent extends IComponent {
|
|
9
|
+
/**
|
|
10
|
+
* Indicates whether the component is running in a multi-tenant environment.
|
|
11
|
+
* @returns True if the component is running in a multi-tenant environment, false otherwise.
|
|
12
|
+
*/
|
|
13
|
+
isMultiTenant(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Execute a method, if single tenant will run once, if multi-tenant will run for each tenant.
|
|
16
|
+
* @param method The method to run for each tenant, returning false will stop any further iterations.
|
|
17
|
+
* @returns A promise that resolves when the method has been executed for all applicable tenants.
|
|
18
|
+
*/
|
|
19
|
+
execute(method: () => Promise<undefined | boolean> | Promise<void>): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Get the local origin context IDs for the given URL.
|
|
22
|
+
* @param url The URL to check.
|
|
23
|
+
* @returns A promise that resolves to the context IDs if the URL is a local origin, undefined otherwise.
|
|
24
|
+
*/
|
|
25
|
+
getLocalOriginContext(url: string): Promise<IContextIds | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Registers a callback to be invoked when a tenant event occurs.
|
|
28
|
+
* @param callbackId A unique identifier for the callback.
|
|
29
|
+
* @param callback The callback to invoke when a tenant event occurs.
|
|
30
|
+
*/
|
|
31
|
+
registerTenantEventCallback(callbackId: string, callback: TenantEventCallback): void;
|
|
32
|
+
/**
|
|
33
|
+
* Unregisters a previously registered tenant event callback.
|
|
34
|
+
* @param callbackId The identifier of the callback to unregister.
|
|
35
|
+
*/
|
|
36
|
+
unregisterTenantEventCallback(callbackId: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Fires all registered tenant event callbacks.
|
|
39
|
+
* @param tenantId The ID of the tenant for which the event occurred.
|
|
40
|
+
* @param eventType The type of event that occurred.
|
|
41
|
+
* @returns A promise that resolves when all callbacks have been invoked.
|
|
42
|
+
*/
|
|
43
|
+
fireTenantEvent(tenantId: string, eventType: TenantEventType): Promise<void>;
|
|
44
|
+
}
|
|
@@ -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 "@3sixty/core";
|
|
2
|
+
import type { EntityCondition } from "@3sixty/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
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TenantEventType } from "./tenantEventType.js";
|
|
2
|
+
/**
|
|
3
|
+
* Callback invoked when a tenant event occurs.
|
|
4
|
+
* Failures in the callback will be logged but will not prevent other callbacks from being invoked.
|
|
5
|
+
*/
|
|
6
|
+
export type TenantEventCallback = (tenantId: string, eventType: TenantEventType) => Promise<void>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type of event that occurred for a tenant.
|
|
3
|
+
*/
|
|
4
|
+
export declare const TenantEventType: {
|
|
5
|
+
/**
|
|
6
|
+
* The tenant was created.
|
|
7
|
+
*/
|
|
8
|
+
readonly Created: "created";
|
|
9
|
+
/**
|
|
10
|
+
* The tenant was updated.
|
|
11
|
+
*/
|
|
12
|
+
readonly Updated: "updated";
|
|
13
|
+
/**
|
|
14
|
+
* The tenant was deleted.
|
|
15
|
+
*/
|
|
16
|
+
readonly Deleted: "deleted";
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The type of event that occurred for a tenant.
|
|
20
|
+
*/
|
|
21
|
+
export type TenantEventType = (typeof TenantEventType)[keyof typeof TenantEventType];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.20.0-next.1](https://github.com/3sixtyglobal/api/compare/api-models-v0.20.0-next.0...api-models-v0.20.0-next.1) (2026-10-23)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* authorization ([#51](https://github.com/3sixtyglobal/api/issues/51)) ([023ef94](https://github.com/3sixtyglobal/api/commit/023ef94925114e88522cbe6f703d9b05a202bc6d))
|
|
9
|
+
* publish packages under the [@3sixty](https://github.com/3sixty) namespace ([91b1822](https://github.com/3sixtyglobal/api/commit/91b1822dba38f70692087ad4643572531d6634dc))
|
|
10
|
+
* updated ts compile ([d9a5c86](https://github.com/3sixtyglobal/api/commit/d9a5c86ec7dd1faf3045b5cd1e0d38a4b331313d))
|