@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.
Files changed (323) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +24 -2
  3. package/dist/es/errors/forbiddenError.js +23 -0
  4. package/dist/es/errors/forbiddenError.js.map +1 -0
  5. package/dist/es/errors/tooManyRequestsError.js +25 -0
  6. package/dist/es/errors/tooManyRequestsError.js.map +1 -0
  7. package/dist/es/factories/mimeTypeProcessorFactory.js +9 -0
  8. package/dist/es/factories/mimeTypeProcessorFactory.js.map +1 -0
  9. package/dist/es/factories/restClientProcessorFactory.js +9 -0
  10. package/dist/es/factories/restClientProcessorFactory.js.map +1 -0
  11. package/dist/es/factories/restRouteProcessorFactory.js +9 -0
  12. package/dist/es/factories/restRouteProcessorFactory.js.map +1 -0
  13. package/dist/es/factories/socketRouteProcessorFactory.js +9 -0
  14. package/dist/es/factories/socketRouteProcessorFactory.js.map +1 -0
  15. package/dist/es/helpers/httpErrorHelper.js +75 -0
  16. package/dist/es/helpers/httpErrorHelper.js.map +1 -0
  17. package/dist/es/helpers/httpHeaderHelper.js +120 -0
  18. package/dist/es/helpers/httpHeaderHelper.js.map +1 -0
  19. package/dist/es/helpers/httpParameterHelper.js +41 -0
  20. package/dist/es/helpers/httpParameterHelper.js.map +1 -0
  21. package/dist/es/helpers/httpUrlHelper.js +156 -0
  22. package/dist/es/helpers/httpUrlHelper.js.map +1 -0
  23. package/dist/es/index.js +81 -0
  24. package/dist/es/index.js.map +1 -0
  25. package/dist/es/models/IHealth.js +2 -0
  26. package/dist/es/models/IHealth.js.map +1 -0
  27. package/dist/es/models/api/IServerFavIconResponse.js +2 -0
  28. package/dist/es/models/api/IServerFavIconResponse.js.map +1 -0
  29. package/dist/es/models/api/IServerHealthResponse.js +2 -0
  30. package/dist/es/models/api/IServerHealthResponse.js.map +1 -0
  31. package/dist/es/models/api/IServerInfoResponse.js +2 -0
  32. package/dist/es/models/api/IServerInfoResponse.js.map +1 -0
  33. package/dist/es/models/api/IServerLivezResponse.js +2 -0
  34. package/dist/es/models/api/IServerLivezResponse.js.map +1 -0
  35. package/dist/es/models/api/IServerReadyzResponse.js +2 -0
  36. package/dist/es/models/api/IServerReadyzResponse.js.map +1 -0
  37. package/dist/es/models/api/IServerRootResponse.js +2 -0
  38. package/dist/es/models/api/IServerRootResponse.js.map +1 -0
  39. package/dist/es/models/api/IServerSpecResponse.js +2 -0
  40. package/dist/es/models/api/IServerSpecResponse.js.map +1 -0
  41. package/dist/es/models/client/IRestClientProcessor.js +2 -0
  42. package/dist/es/models/client/IRestClientProcessor.js.map +1 -0
  43. package/dist/es/models/client/IRestClientProcessorContext.js +2 -0
  44. package/dist/es/models/client/IRestClientProcessorContext.js.map +1 -0
  45. package/dist/es/models/config/IBaseRestClientConfig.js +2 -0
  46. package/dist/es/models/config/IBaseRestClientConfig.js.map +1 -0
  47. package/dist/es/models/config/IBaseSocketClientConfig.js +2 -0
  48. package/dist/es/models/config/IBaseSocketClientConfig.js.map +1 -0
  49. package/dist/es/models/healthCategory.js +17 -0
  50. package/dist/es/models/healthCategory.js.map +1 -0
  51. package/dist/es/models/healthStatus.js +21 -0
  52. package/dist/es/models/healthStatus.js.map +1 -0
  53. package/dist/es/models/httpContextIdKeys.js +39 -0
  54. package/dist/es/models/httpContextIdKeys.js.map +1 -0
  55. package/dist/es/models/protocol/IHttpRequest.js +2 -0
  56. package/dist/es/models/protocol/IHttpRequest.js.map +1 -0
  57. package/dist/es/models/protocol/IHttpRequestContext.js +2 -0
  58. package/dist/es/models/protocol/IHttpRequestContext.js.map +1 -0
  59. package/dist/es/models/protocol/IHttpRequestPathParams.js +4 -0
  60. package/dist/es/models/protocol/IHttpRequestPathParams.js.map +1 -0
  61. package/dist/es/models/protocol/IHttpRequestQuery.js +4 -0
  62. package/dist/es/models/protocol/IHttpRequestQuery.js.map +1 -0
  63. package/dist/es/models/protocol/IHttpResponse.js +2 -0
  64. package/dist/es/models/protocol/IHttpResponse.js.map +1 -0
  65. package/dist/es/models/protocol/IHttpServerRequest.js +2 -0
  66. package/dist/es/models/protocol/IHttpServerRequest.js.map +1 -0
  67. package/dist/es/models/protocol/ISocketRequestContext.js +2 -0
  68. package/dist/es/models/protocol/ISocketRequestContext.js.map +1 -0
  69. package/dist/es/models/protocol/ISocketServerRequest.js +2 -0
  70. package/dist/es/models/protocol/ISocketServerRequest.js.map +1 -0
  71. package/dist/es/models/requests/INoContentRequest.js +2 -0
  72. package/dist/es/models/requests/INoContentRequest.js.map +1 -0
  73. package/dist/es/models/responses/errors/IBadRequestResponse.js +2 -0
  74. package/dist/es/models/responses/errors/IBadRequestResponse.js.map +1 -0
  75. package/dist/es/models/responses/errors/IConflictResponse.js +2 -0
  76. package/dist/es/models/responses/errors/IConflictResponse.js.map +1 -0
  77. package/dist/es/models/responses/errors/IForbiddenResponse.js +2 -0
  78. package/dist/es/models/responses/errors/IForbiddenResponse.js.map +1 -0
  79. package/dist/es/models/responses/errors/IInternalServerErrorResponse.js +2 -0
  80. package/dist/es/models/responses/errors/IInternalServerErrorResponse.js.map +1 -0
  81. package/dist/es/models/responses/errors/INotFoundResponse.js +2 -0
  82. package/dist/es/models/responses/errors/INotFoundResponse.js.map +1 -0
  83. package/dist/es/models/responses/errors/INotImplementedResponse.js +2 -0
  84. package/dist/es/models/responses/errors/INotImplementedResponse.js.map +1 -0
  85. package/dist/es/models/responses/errors/ITooManyRequestsResponse.js +2 -0
  86. package/dist/es/models/responses/errors/ITooManyRequestsResponse.js.map +1 -0
  87. package/dist/es/models/responses/errors/IUnauthorizedResponse.js +2 -0
  88. package/dist/es/models/responses/errors/IUnauthorizedResponse.js.map +1 -0
  89. package/dist/es/models/responses/errors/IUnprocessableEntityResponse.js +2 -0
  90. package/dist/es/models/responses/errors/IUnprocessableEntityResponse.js.map +1 -0
  91. package/dist/es/models/responses/success/IAcceptedResponse.js +2 -0
  92. package/dist/es/models/responses/success/IAcceptedResponse.js.map +1 -0
  93. package/dist/es/models/responses/success/ICreatedResponse.js +2 -0
  94. package/dist/es/models/responses/success/ICreatedResponse.js.map +1 -0
  95. package/dist/es/models/responses/success/INoContentResponse.js +2 -0
  96. package/dist/es/models/responses/success/INoContentResponse.js.map +1 -0
  97. package/dist/es/models/responses/success/IOkResponse.js +2 -0
  98. package/dist/es/models/responses/success/IOkResponse.js.map +1 -0
  99. package/dist/es/models/routes/IBaseRoute.js +2 -0
  100. package/dist/es/models/routes/IBaseRoute.js.map +1 -0
  101. package/dist/es/models/routes/IBaseRouteEntryPoint.js +2 -0
  102. package/dist/es/models/routes/IBaseRouteEntryPoint.js.map +1 -0
  103. package/dist/es/models/routes/IRestRoute.js +2 -0
  104. package/dist/es/models/routes/IRestRoute.js.map +1 -0
  105. package/dist/es/models/routes/IRestRouteEntryPoint.js +2 -0
  106. package/dist/es/models/routes/IRestRouteEntryPoint.js.map +1 -0
  107. package/dist/es/models/routes/IRestRouteExample.js +4 -0
  108. package/dist/es/models/routes/IRestRouteExample.js.map +1 -0
  109. package/dist/es/models/routes/IRestRouteRequestExample.js +2 -0
  110. package/dist/es/models/routes/IRestRouteRequestExample.js.map +1 -0
  111. package/dist/es/models/routes/IRestRouteResponseAttachmentOptions.js +4 -0
  112. package/dist/es/models/routes/IRestRouteResponseAttachmentOptions.js.map +1 -0
  113. package/dist/es/models/routes/IRestRouteResponseExample.js +2 -0
  114. package/dist/es/models/routes/IRestRouteResponseExample.js.map +1 -0
  115. package/dist/es/models/routes/IRestRouteResponseOptions.js +2 -0
  116. package/dist/es/models/routes/IRestRouteResponseOptions.js.map +1 -0
  117. package/dist/es/models/routes/IRouteAuthorization.js +4 -0
  118. package/dist/es/models/routes/IRouteAuthorization.js.map +1 -0
  119. package/dist/es/models/routes/ISocketRoute.js +2 -0
  120. package/dist/es/models/routes/ISocketRoute.js.map +1 -0
  121. package/dist/es/models/routes/ISocketRouteEntryPoint.js +2 -0
  122. package/dist/es/models/routes/ISocketRouteEntryPoint.js.map +1 -0
  123. package/dist/es/models/routes/ITag.js +4 -0
  124. package/dist/es/models/routes/ITag.js.map +1 -0
  125. package/dist/es/models/routes/httpBodyLimit.js +17 -0
  126. package/dist/es/models/routes/httpBodyLimit.js.map +1 -0
  127. package/dist/es/models/server/IBaseRouteProcessor.js +2 -0
  128. package/dist/es/models/server/IBaseRouteProcessor.js.map +1 -0
  129. package/dist/es/models/server/IMimeTypeProcessor.js +2 -0
  130. package/dist/es/models/server/IMimeTypeProcessor.js.map +1 -0
  131. package/dist/es/models/server/IRestRouteProcessor.js +2 -0
  132. package/dist/es/models/server/IRestRouteProcessor.js.map +1 -0
  133. package/dist/es/models/server/ISocketRouteProcessor.js +2 -0
  134. package/dist/es/models/server/ISocketRouteProcessor.js.map +1 -0
  135. package/dist/es/models/server/IWebServer.js +2 -0
  136. package/dist/es/models/server/IWebServer.js.map +1 -0
  137. package/dist/es/models/server/IWebServerOptions.js +2 -0
  138. package/dist/es/models/server/IWebServerOptions.js.map +1 -0
  139. package/dist/es/models/services/IHealthApplicationCallback.js +2 -0
  140. package/dist/es/models/services/IHealthApplicationCallback.js.map +1 -0
  141. package/dist/es/models/services/IHealthComponent.js +2 -0
  142. package/dist/es/models/services/IHealthComponent.js.map +1 -0
  143. package/dist/es/models/services/IHealthProviderComponent.js +2 -0
  144. package/dist/es/models/services/IHealthProviderComponent.js.map +1 -0
  145. package/dist/es/models/services/IInformationComponent.js +2 -0
  146. package/dist/es/models/services/IInformationComponent.js.map +1 -0
  147. package/dist/es/models/services/IPlatformComponent.js +2 -0
  148. package/dist/es/models/services/IPlatformComponent.js.map +1 -0
  149. package/dist/es/models/services/IServerInfo.js +4 -0
  150. package/dist/es/models/services/IServerInfo.js.map +1 -0
  151. package/dist/es/models/services/ITenant.js +4 -0
  152. package/dist/es/models/services/ITenant.js.map +1 -0
  153. package/dist/es/models/services/ITenantAdminComponent.js +2 -0
  154. package/dist/es/models/services/ITenantAdminComponent.js.map +1 -0
  155. package/dist/es/models/services/tenantEventCallback.js +2 -0
  156. package/dist/es/models/services/tenantEventCallback.js.map +1 -0
  157. package/dist/es/models/services/tenantEventType.js +21 -0
  158. package/dist/es/models/services/tenantEventType.js.map +1 -0
  159. package/dist/types/errors/forbiddenError.d.ts +20 -0
  160. package/dist/types/errors/tooManyRequestsError.d.ts +22 -0
  161. package/dist/types/factories/mimeTypeProcessorFactory.d.ts +6 -0
  162. package/dist/types/factories/restClientProcessorFactory.d.ts +6 -0
  163. package/dist/types/factories/restRouteProcessorFactory.d.ts +6 -0
  164. package/dist/types/factories/socketRouteProcessorFactory.d.ts +6 -0
  165. package/dist/types/helpers/httpErrorHelper.d.ts +32 -0
  166. package/dist/types/helpers/httpHeaderHelper.d.ts +62 -0
  167. package/dist/types/helpers/httpParameterHelper.d.ts +29 -0
  168. package/dist/types/helpers/httpUrlHelper.d.ts +73 -0
  169. package/dist/types/index.d.ts +77 -0
  170. package/dist/types/models/IHealth.d.ts +42 -0
  171. package/dist/types/models/api/IServerFavIconResponse.d.ts +23 -0
  172. package/dist/types/models/api/IServerHealthResponse.d.ts +14 -0
  173. package/dist/types/models/api/IServerInfoResponse.d.ts +10 -0
  174. package/dist/types/models/api/IServerLivezResponse.d.ts +16 -0
  175. package/dist/types/models/api/IServerReadyzResponse.d.ts +16 -0
  176. package/dist/types/models/api/IServerRootResponse.d.ts +16 -0
  177. package/dist/types/models/api/IServerSpecResponse.d.ts +14 -0
  178. package/dist/types/models/client/IRestClientProcessor.d.ts +22 -0
  179. package/dist/types/models/client/IRestClientProcessorContext.d.ts +42 -0
  180. package/dist/types/models/config/IBaseRestClientConfig.d.ts +46 -0
  181. package/dist/types/models/config/IBaseSocketClientConfig.d.ts +22 -0
  182. package/dist/types/models/healthCategory.d.ts +17 -0
  183. package/dist/types/models/healthStatus.d.ts +21 -0
  184. package/dist/types/models/httpContextIdKeys.d.ts +38 -0
  185. package/dist/types/models/protocol/IHttpRequest.d.ts +24 -0
  186. package/dist/types/models/protocol/IHttpRequestContext.d.ts +20 -0
  187. package/dist/types/models/protocol/IHttpRequestPathParams.d.ts +6 -0
  188. package/dist/types/models/protocol/IHttpRequestQuery.d.ts +6 -0
  189. package/dist/types/models/protocol/IHttpResponse.d.ts +18 -0
  190. package/dist/types/models/protocol/IHttpServerRequest.d.ts +15 -0
  191. package/dist/types/models/protocol/ISocketRequestContext.d.ts +10 -0
  192. package/dist/types/models/protocol/ISocketServerRequest.d.ts +10 -0
  193. package/dist/types/models/requests/INoContentRequest.d.ts +22 -0
  194. package/dist/types/models/responses/errors/IBadRequestResponse.d.ts +15 -0
  195. package/dist/types/models/responses/errors/IConflictResponse.d.ts +15 -0
  196. package/dist/types/models/responses/errors/IForbiddenResponse.d.ts +15 -0
  197. package/dist/types/models/responses/errors/IInternalServerErrorResponse.d.ts +15 -0
  198. package/dist/types/models/responses/errors/INotFoundResponse.d.ts +20 -0
  199. package/dist/types/models/responses/errors/INotImplementedResponse.d.ts +15 -0
  200. package/dist/types/models/responses/errors/ITooManyRequestsResponse.d.ts +15 -0
  201. package/dist/types/models/responses/errors/IUnauthorizedResponse.d.ts +15 -0
  202. package/dist/types/models/responses/errors/IUnprocessableEntityResponse.d.ts +15 -0
  203. package/dist/types/models/responses/success/IAcceptedResponse.d.ts +19 -0
  204. package/dist/types/models/responses/success/ICreatedResponse.d.ts +19 -0
  205. package/dist/types/models/responses/success/INoContentResponse.d.ts +10 -0
  206. package/dist/types/models/responses/success/IOkResponse.d.ts +10 -0
  207. package/dist/types/models/routes/IBaseRoute.d.ts +39 -0
  208. package/dist/types/models/routes/IBaseRouteEntryPoint.d.ts +22 -0
  209. package/dist/types/models/routes/IRestRoute.d.ts +80 -0
  210. package/dist/types/models/routes/IRestRouteEntryPoint.d.ts +6 -0
  211. package/dist/types/models/routes/IRestRouteExample.d.ts +13 -0
  212. package/dist/types/models/routes/IRestRouteRequestExample.d.ts +10 -0
  213. package/dist/types/models/routes/IRestRouteResponseAttachmentOptions.d.ts +17 -0
  214. package/dist/types/models/routes/IRestRouteResponseExample.d.ts +10 -0
  215. package/dist/types/models/routes/IRestRouteResponseOptions.d.ts +10 -0
  216. package/dist/types/models/routes/IRouteAuthorization.d.ts +17 -0
  217. package/dist/types/models/routes/ISocketRoute.d.ts +41 -0
  218. package/dist/types/models/routes/ISocketRouteEntryPoint.d.ts +6 -0
  219. package/dist/types/models/routes/ITag.d.ts +13 -0
  220. package/dist/types/models/routes/httpBodyLimit.d.ts +17 -0
  221. package/dist/types/models/server/IBaseRouteProcessor.d.ts +42 -0
  222. package/dist/types/models/server/IMimeTypeProcessor.d.ts +17 -0
  223. package/dist/types/models/server/IRestRouteProcessor.d.ts +24 -0
  224. package/dist/types/models/server/ISocketRouteProcessor.d.ts +38 -0
  225. package/dist/types/models/server/IWebServer.d.ts +36 -0
  226. package/dist/types/models/server/IWebServerOptions.d.ts +54 -0
  227. package/dist/types/models/services/IHealthApplicationCallback.d.ts +6 -0
  228. package/dist/types/models/services/IHealthComponent.d.ts +16 -0
  229. package/dist/types/models/services/IHealthProviderComponent.d.ts +31 -0
  230. package/dist/types/models/services/IInformationComponent.d.ts +41 -0
  231. package/dist/types/models/services/IPlatformComponent.d.ts +44 -0
  232. package/dist/types/models/services/IServerInfo.d.ts +13 -0
  233. package/dist/types/models/services/ITenant.d.ts +37 -0
  234. package/dist/types/models/services/ITenantAdminComponent.d.ts +70 -0
  235. package/dist/types/models/services/tenantEventCallback.d.ts +6 -0
  236. package/dist/types/models/services/tenantEventType.d.ts +21 -0
  237. package/docs/changelog.md +10 -0
  238. package/docs/examples.md +200 -0
  239. package/docs/reference/classes/ForbiddenError.md +57 -0
  240. package/docs/reference/classes/HttpErrorHelper.md +99 -0
  241. package/docs/reference/classes/HttpHeaderHelper.md +182 -0
  242. package/docs/reference/classes/HttpParameterHelper.md +125 -0
  243. package/docs/reference/classes/HttpUrlHelper.md +262 -0
  244. package/docs/reference/classes/TooManyRequestsError.md +69 -0
  245. package/docs/reference/index.md +95 -0
  246. package/docs/reference/interfaces/IAcceptedResponse.md +25 -0
  247. package/docs/reference/interfaces/IBadRequestResponse.md +19 -0
  248. package/docs/reference/interfaces/IBaseRestClientConfig.md +99 -0
  249. package/docs/reference/interfaces/IBaseRoute.md +89 -0
  250. package/docs/reference/interfaces/IBaseRouteEntryPoint.md +55 -0
  251. package/docs/reference/interfaces/IBaseRouteProcessor.md +134 -0
  252. package/docs/reference/interfaces/IBaseSocketClientConfig.md +35 -0
  253. package/docs/reference/interfaces/IConflictResponse.md +19 -0
  254. package/docs/reference/interfaces/ICreatedResponse.md +25 -0
  255. package/docs/reference/interfaces/IForbiddenResponse.md +19 -0
  256. package/docs/reference/interfaces/IHealth.md +71 -0
  257. package/docs/reference/interfaces/IHealthComponent.md +21 -0
  258. package/docs/reference/interfaces/IHealthProviderComponent.md +76 -0
  259. package/docs/reference/interfaces/IHttpRequest.md +46 -0
  260. package/docs/reference/interfaces/IHttpRequestContext.md +35 -0
  261. package/docs/reference/interfaces/IHttpRequestPathParams.md +7 -0
  262. package/docs/reference/interfaces/IHttpRequestQuery.md +7 -0
  263. package/docs/reference/interfaces/IHttpResponse.md +33 -0
  264. package/docs/reference/interfaces/IHttpServerRequest.md +81 -0
  265. package/docs/reference/interfaces/IInformationComponent.md +91 -0
  266. package/docs/reference/interfaces/IInternalServerErrorResponse.md +19 -0
  267. package/docs/reference/interfaces/IMimeTypeProcessor.md +43 -0
  268. package/docs/reference/interfaces/INoContentRequest.md +55 -0
  269. package/docs/reference/interfaces/INoContentResponse.md +11 -0
  270. package/docs/reference/interfaces/INotFoundResponse.md +27 -0
  271. package/docs/reference/interfaces/INotImplementedResponse.md +19 -0
  272. package/docs/reference/interfaces/IOkResponse.md +11 -0
  273. package/docs/reference/interfaces/IPlatformComponent.md +139 -0
  274. package/docs/reference/interfaces/IRestClientProcessor.md +69 -0
  275. package/docs/reference/interfaces/IRestClientProcessorContext.md +75 -0
  276. package/docs/reference/interfaces/IRestRoute.md +245 -0
  277. package/docs/reference/interfaces/IRestRouteExample.md +24 -0
  278. package/docs/reference/interfaces/IRestRouteProcessor.md +177 -0
  279. package/docs/reference/interfaces/IRestRouteRequestExample.md +45 -0
  280. package/docs/reference/interfaces/IRestRouteResponseAttachmentOptions.md +27 -0
  281. package/docs/reference/interfaces/IRestRouteResponseExample.md +45 -0
  282. package/docs/reference/interfaces/IRestRouteResponseOptions.md +11 -0
  283. package/docs/reference/interfaces/IRouteAuthorization.md +27 -0
  284. package/docs/reference/interfaces/IServerFavIconResponse.md +33 -0
  285. package/docs/reference/interfaces/IServerHealthResponse.md +19 -0
  286. package/docs/reference/interfaces/IServerInfo.md +19 -0
  287. package/docs/reference/interfaces/IServerInfoResponse.md +11 -0
  288. package/docs/reference/interfaces/IServerLivezResponse.md +23 -0
  289. package/docs/reference/interfaces/IServerReadyzResponse.md +23 -0
  290. package/docs/reference/interfaces/IServerRootResponse.md +23 -0
  291. package/docs/reference/interfaces/IServerSpecResponse.md +19 -0
  292. package/docs/reference/interfaces/ISocketRequestContext.md +55 -0
  293. package/docs/reference/interfaces/ISocketRoute.md +198 -0
  294. package/docs/reference/interfaces/ISocketRouteProcessor.md +247 -0
  295. package/docs/reference/interfaces/ISocketServerRequest.md +93 -0
  296. package/docs/reference/interfaces/ITag.md +19 -0
  297. package/docs/reference/interfaces/ITenant.md +67 -0
  298. package/docs/reference/interfaces/ITenantAdminComponent.md +227 -0
  299. package/docs/reference/interfaces/ITooManyRequestsResponse.md +19 -0
  300. package/docs/reference/interfaces/IUnauthorizedResponse.md +19 -0
  301. package/docs/reference/interfaces/IUnprocessableEntityResponse.md +19 -0
  302. package/docs/reference/interfaces/IWebServer.md +109 -0
  303. package/docs/reference/interfaces/IWebServerOptions.md +113 -0
  304. package/docs/reference/type-aliases/HealthApplicationCallback.md +16 -0
  305. package/docs/reference/type-aliases/HealthCategory.md +5 -0
  306. package/docs/reference/type-aliases/HealthStatus.md +5 -0
  307. package/docs/reference/type-aliases/HttpBodyLimit.md +5 -0
  308. package/docs/reference/type-aliases/HttpContextIdKeys.md +5 -0
  309. package/docs/reference/type-aliases/IRestRouteEntryPoint.md +5 -0
  310. package/docs/reference/type-aliases/ISocketRouteEntryPoint.md +5 -0
  311. package/docs/reference/type-aliases/TenantEventCallback.md +20 -0
  312. package/docs/reference/type-aliases/TenantEventType.md +5 -0
  313. package/docs/reference/variables/HealthCategory.md +19 -0
  314. package/docs/reference/variables/HealthStatus.md +25 -0
  315. package/docs/reference/variables/HttpBodyLimit.md +19 -0
  316. package/docs/reference/variables/HttpContextIdKeys.md +50 -0
  317. package/docs/reference/variables/MimeTypeProcessorFactory.md +5 -0
  318. package/docs/reference/variables/RestClientProcessorFactory.md +5 -0
  319. package/docs/reference/variables/RestRouteProcessorFactory.md +5 -0
  320. package/docs/reference/variables/SocketRouteProcessorFactory.md +5 -0
  321. package/docs/reference/variables/TenantEventType.md +25 -0
  322. package/locales/en.json +8 -0
  323. package/package.json +53 -5
@@ -0,0 +1,200 @@
1
+ # Models Examples
2
+
3
+ These snippets show practical helpers for URL manipulation, request parameter conversion, consistent error responses, and secure parameter encryption.
4
+
5
+ ## HttpUrlHelper
6
+
7
+ ```typescript
8
+ import { HttpUrlHelper } from '@3sixty/api-models';
9
+
10
+ const fullUrl = 'https://tenant.example.org/orders?page=2';
11
+
12
+ console.log(HttpUrlHelper.extractOrigin(fullUrl)); // https://tenant.example.org
13
+ console.log(HttpUrlHelper.extractPath(fullUrl)); // /orders
14
+ console.log(HttpUrlHelper.extractSearch(fullUrl)); // ?page=2
15
+ console.log(HttpUrlHelper.extractPathAndSearch(fullUrl)); // /orders?page=2
16
+ ```
17
+
18
+ ```typescript
19
+ import { HttpUrlHelper } from '@3sixty/api-models';
20
+
21
+ const combined = HttpUrlHelper.combineParts('https://tenant.example.org/', '/api/v1/orders');
22
+ const replaced = HttpUrlHelper.replaceOrigin(combined ?? '', 'https://edge.example.org');
23
+
24
+ console.log(combined); // https://tenant.example.org/api/v1/orders
25
+ console.log(replaced); // https://edge.example.org/api/v1/orders
26
+ ```
27
+
28
+ ## HttpParameterHelper
29
+
30
+ ```typescript
31
+ import { HttpParameterHelper } from '@3sixty/api-models';
32
+
33
+ const ids = HttpParameterHelper.arrayFromString('id-1,id-2,id-3');
34
+ const idsAsString = HttpParameterHelper.arrayToString(ids);
35
+
36
+ const filterObject = HttpParameterHelper.objectFromString('{"status":"active"}');
37
+ const filterString = HttpParameterHelper.objectToString(filterObject);
38
+
39
+ console.log(ids.length); // 3
40
+ console.log(idsAsString); // id-1,id-2,id-3
41
+ console.log(filterString); // {"status":"active"}
42
+ ```
43
+
44
+ ## HttpErrorHelper
45
+
46
+ ```typescript
47
+ import { HttpErrorHelper } from '@3sixty/api-models';
48
+
49
+ try {
50
+ throw new Error('Invalid request');
51
+ } catch (err) {
52
+ const mapped = HttpErrorHelper.processError(err, false);
53
+ const response: {
54
+ body?: unknown;
55
+ statusCode?: number;
56
+ headers?: { [id: string]: string };
57
+ } = {};
58
+ HttpErrorHelper.buildResponse(response, mapped.error, mapped.httpStatusCode);
59
+
60
+ console.log(response.statusCode); // 500
61
+ console.log(mapped.error.message); // Error: Invalid request
62
+ }
63
+ ```
64
+
65
+ ## IHostingComponent
66
+
67
+ When working with the hosting component, you can encrypt and decrypt query parameters for secure transmission. The encryption mechanism automatically handles salt generation to prevent rainbow table attacks.
68
+
69
+ ```typescript
70
+ import type { IComponent, IHttpRequestQuery } from '@3sixty/api-models';
71
+ import { ComponentFactory } from '@3sixty/core';
72
+
73
+ interface IHostingComponent extends IComponent {
74
+ addEncryptedParamsToUrl(url: string, params: IHttpRequestQuery): Promise<string>;
75
+ getDecryptedParamsFromQueryParams(
76
+ queryParams: IHttpRequestQuery | undefined,
77
+ keys: string[]
78
+ ): Promise<IHttpRequestQuery>;
79
+ encryptParam(paramValue: string): Promise<string>;
80
+ decryptParam(encryptedValue: string): Promise<string>;
81
+ }
82
+
83
+ // Get the hosting component from the component factory
84
+ const hosting = ComponentFactory.get<IHostingComponent>('hosting');
85
+
86
+ // Encrypt parameters and add them to a URL
87
+ const baseUrl = 'https://api.example.com/callback';
88
+ const encrypted = await hosting.addEncryptedParamsToUrl(baseUrl, {
89
+ token: 'secret-token-123',
90
+ userId: 'user-456'
91
+ });
92
+ console.log(encrypted); // https://api.example.com/callback?x-enc-token=...&x-enc-userId=...
93
+ ```
94
+
95
+ ```typescript
96
+ import type { IHttpRequestQuery } from '@3sixty/api-models';
97
+ import { ComponentFactory } from '@3sixty/core';
98
+
99
+ interface IHostingComponent {
100
+ addEncryptedParamsToUrl(url: string, params: IHttpRequestQuery): Promise<string>;
101
+ getDecryptedParamsFromQueryParams(
102
+ queryParams: IHttpRequestQuery | undefined,
103
+ keys: string[]
104
+ ): Promise<IHttpRequestQuery>;
105
+ encryptQueryParams(
106
+ httpRequestQuery: IHttpRequestQuery | undefined,
107
+ keys: string[]
108
+ ): Promise<void>;
109
+ decryptQueryParams(
110
+ httpRequestQuery: IHttpRequestQuery | undefined,
111
+ keys: string[]
112
+ ): Promise<void>;
113
+ }
114
+
115
+ const hosting = ComponentFactory.get<IHostingComponent>('hosting');
116
+
117
+ // Decrypt specific parameters from a query object
118
+ const queryParams: IHttpRequestQuery = {
119
+ 'x-enc-token': 'CngBAgMEBQYH...',
120
+ 'x-enc-userId': 'CxgICSoLDAwN...',
121
+ status: 'active'
122
+ };
123
+
124
+ const decrypted = await hosting.getDecryptedParamsFromQueryParams(queryParams, ['token', 'userId']);
125
+ console.log(decrypted); // { token: 'secret-token-123', userId: 'user-456' }
126
+ ```
127
+
128
+ ```typescript
129
+ import type { IHttpRequestQuery } from '@3sixty/api-models';
130
+ import { ComponentFactory } from '@3sixty/core';
131
+
132
+ interface IHostingComponent {
133
+ addTenantTokenToUrl(url: string, tenantId: string): Promise<string>;
134
+ getTenantTokenFromQueryParams(
135
+ queryParams: IHttpRequestQuery | undefined
136
+ ): Promise<string | undefined>;
137
+ }
138
+
139
+ const hosting = ComponentFactory.get<IHostingComponent>('hosting');
140
+
141
+ // Add encrypted tenant token to a URL
142
+ const redirectUrl = 'https://tenant.example.com/dashboard';
143
+ const urlWithTenant = await hosting.addTenantTokenToUrl(
144
+ redirectUrl,
145
+ 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6'
146
+ );
147
+ console.log(urlWithTenant); // https://tenant.example.com/dashboard?x-enc-tenant-token=...
148
+ ```
149
+
150
+ ```typescript
151
+ import type { IHttpRequestQuery } from '@3sixty/api-models';
152
+ import { ComponentFactory } from '@3sixty/core';
153
+
154
+ interface IHostingComponent {
155
+ encryptQueryParams(
156
+ httpRequestQuery: IHttpRequestQuery | undefined,
157
+ keys: string[]
158
+ ): Promise<void>;
159
+ decryptQueryParams(
160
+ httpRequestQuery: IHttpRequestQuery | undefined,
161
+ keys: string[]
162
+ ): Promise<void>;
163
+ }
164
+
165
+ const hosting = ComponentFactory.get<IHostingComponent>('hosting');
166
+
167
+ // Encrypt specific query parameters in place
168
+ const query: IHttpRequestQuery = {
169
+ token: 'secret-123',
170
+ apiKey: 'key-456',
171
+ status: 'active'
172
+ };
173
+
174
+ await hosting.encryptQueryParams(query, ['token', 'apiKey']);
175
+ console.log(query); // { 'x-enc-token': '...', 'x-enc-apiKey': '...', status: 'active' }
176
+
177
+ // Decrypt the parameters back to their original keys
178
+ await hosting.decryptQueryParams(query, ['token', 'apiKey']);
179
+ console.log(query); // { token: 'secret-123', apiKey: 'key-456', status: 'active' }
180
+ ```
181
+
182
+ ```typescript
183
+ import { ComponentFactory } from '@3sixty/core';
184
+
185
+ interface IHostingComponent {
186
+ encryptParam(paramValue: string): Promise<string>;
187
+ decryptParam(encryptedValue: string): Promise<string>;
188
+ }
189
+
190
+ const hosting = ComponentFactory.get<IHostingComponent>('hosting');
191
+
192
+ // Encrypt a single parameter value
193
+ const plainText = 'confidential-data';
194
+ const encrypted = await hosting.encryptParam(plainText);
195
+ console.log(encrypted); // CngBAgMEBQYHCAkKCwwNDg8QERAh...
196
+
197
+ // Decrypt the parameter value
198
+ const decrypted = await hosting.decryptParam(encrypted);
199
+ console.log(decrypted); // confidential-data
200
+ ```
@@ -0,0 +1,57 @@
1
+ # Class: ForbiddenError
2
+
3
+ Class to handle errors which are triggered by forbidden actions.
4
+
5
+ ## Extends
6
+
7
+ - `BaseError`
8
+
9
+ ## Constructors
10
+
11
+ ### Constructor
12
+
13
+ > **new ForbiddenError**(`source`, `message`, `properties?`, `cause?`): `ForbiddenError`
14
+
15
+ Create a new instance of ForbiddenError.
16
+
17
+ #### Parameters
18
+
19
+ ##### source
20
+
21
+ `string`
22
+
23
+ The source of the error.
24
+
25
+ ##### message
26
+
27
+ `string`
28
+
29
+ The message as a code.
30
+
31
+ ##### properties?
32
+
33
+ \{\[`id`: `string`\]: `unknown`; \}
34
+
35
+ Any additional information for the error.
36
+
37
+ ##### cause?
38
+
39
+ `unknown`
40
+
41
+ The cause of the error if we have wrapped another error.
42
+
43
+ #### Returns
44
+
45
+ `ForbiddenError`
46
+
47
+ #### Overrides
48
+
49
+ `BaseError.constructor`
50
+
51
+ ## Properties
52
+
53
+ ### CLASS\_NAME {#class_name}
54
+
55
+ > `readonly` `static` **CLASS\_NAME**: `string`
56
+
57
+ Runtime name for the class.
@@ -0,0 +1,99 @@
1
+ # Class: HttpErrorHelper
2
+
3
+ Class to help with processing http errors.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new HttpErrorHelper**(): `HttpErrorHelper`
10
+
11
+ #### Returns
12
+
13
+ `HttpErrorHelper`
14
+
15
+ ## Properties
16
+
17
+ ### ERROR\_TYPE\_MAP {#error_type_map}
18
+
19
+ > `readonly` `static` **ERROR\_TYPE\_MAP**: `object`
20
+
21
+ Mapping of error types to status codes.
22
+
23
+ #### Index Signature
24
+
25
+ \[`id`: `string`\]: `HttpStatusCode`
26
+
27
+ ## Methods
28
+
29
+ ### processError() {#processerror}
30
+
31
+ > `static` **processError**(`err`, `includeStack?`): `object`
32
+
33
+ Process the errors from the routes.
34
+
35
+ #### Parameters
36
+
37
+ ##### err
38
+
39
+ `unknown`
40
+
41
+ The error to process.
42
+
43
+ ##### includeStack?
44
+
45
+ `boolean`
46
+
47
+ Should the stack be included in the error.
48
+
49
+ #### Returns
50
+
51
+ `object`
52
+
53
+ The status code and additional error data.
54
+
55
+ ##### error
56
+
57
+ > **error**: `IError`
58
+
59
+ ##### httpStatusCode
60
+
61
+ > **httpStatusCode**: `HttpStatusCode`
62
+
63
+ ***
64
+
65
+ ### buildResponse() {#buildresponse}
66
+
67
+ > `static` **buildResponse**(`response`, `error`, `statusCode`, `includeStack`): `void`
68
+
69
+ Build an error response.
70
+
71
+ #### Parameters
72
+
73
+ ##### response
74
+
75
+ [`IHttpResponse`](../interfaces/IHttpResponse.md)
76
+
77
+ The response to build the error into.
78
+
79
+ ##### error
80
+
81
+ `IError`
82
+
83
+ The error to build the response for.
84
+
85
+ ##### statusCode
86
+
87
+ `HttpStatusCode`
88
+
89
+ The status code to use for the error.
90
+
91
+ ##### includeStack
92
+
93
+ `boolean`
94
+
95
+ Should the stack be included in the error.
96
+
97
+ #### Returns
98
+
99
+ `void`
@@ -0,0 +1,182 @@
1
+ # Class: HttpHeaderHelper
2
+
3
+ Class to help with handling http headers.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new HttpHeaderHelper**(): `HttpHeaderHelper`
10
+
11
+ #### Returns
12
+
13
+ `HttpHeaderHelper`
14
+
15
+ ## Properties
16
+
17
+ ### CLASS\_NAME {#class_name}
18
+
19
+ > `readonly` `static` **CLASS\_NAME**: `string`
20
+
21
+ Runtime name for the class.
22
+
23
+ ## Methods
24
+
25
+ ### buildCursor() {#buildcursor}
26
+
27
+ > `static` **buildCursor**(`headers`, `url`, `publicOrigin`, `cursor`): asserts headers is IHttpHeaders & \{ link: string \| undefined \}
28
+
29
+ Set the Link header with a next cursor relation when a cursor is present.
30
+
31
+ #### Parameters
32
+
33
+ ##### headers
34
+
35
+ `IHttpHeaders`
36
+
37
+ The response headers to mutate.
38
+
39
+ ##### url
40
+
41
+ `string`
42
+
43
+ The request URL used as the base for the link.
44
+
45
+ ##### publicOrigin
46
+
47
+ `string` \| `undefined`
48
+
49
+ The public origin to substitute into the URL, if any.
50
+
51
+ ##### cursor
52
+
53
+ `string` \| `undefined`
54
+
55
+ The cursor value; when undefined or empty the header is not set.
56
+
57
+ #### Returns
58
+
59
+ asserts headers is IHttpHeaders & \{ link: string \| undefined \}
60
+
61
+ ***
62
+
63
+ ### buildId() {#buildid}
64
+
65
+ > `static` **buildId**(`headers`, `id`, `urlTemplate?`): `asserts headers is IHttpHeaders & { location: string }`
66
+
67
+ Set the Location header to the encoded ID, optionally placed within a URL template.
68
+ When the template contains `:id` (e.g. "/path1/:id/path2" or "/path?p=:id") the
69
+ encoded ID is substituted at that position; otherwise it is appended.
70
+ When no template is provided the bare encoded ID is used.
71
+ Callers that need to combine a public origin with a path should use
72
+ HttpUrlHelper.combineOriginPath to build the template before calling this method.
73
+
74
+ #### Parameters
75
+
76
+ ##### headers
77
+
78
+ `IHttpHeaders`
79
+
80
+ The response headers to mutate.
81
+
82
+ ##### id
83
+
84
+ `string`
85
+
86
+ The resource ID to encode and place.
87
+
88
+ ##### urlTemplate?
89
+
90
+ `string`
91
+
92
+ The optional URL template (absolute or relative).
93
+
94
+ #### Returns
95
+
96
+ `asserts headers is IHttpHeaders & { location: string }`
97
+
98
+ ***
99
+
100
+ ### buildJsonContentType() {#buildjsoncontenttype}
101
+
102
+ > `static` **buildJsonContentType**(`headers`, `requestHeaders?`): asserts headers is IHttpHeaders & \{ content-type: "application/json" \| "application/ld+json" \}
103
+
104
+ Set the Content-Type header to JSON-LD or JSON depending on the request Accept header.
105
+ Uses HeaderHelper.extractAccept which parses the Accept header per RFC 7231 and returns
106
+ entries ordered by quality descending, preserving original order for equal q-values.
107
+
108
+ #### Parameters
109
+
110
+ ##### headers
111
+
112
+ `IHttpHeaders`
113
+
114
+ The response headers to mutate.
115
+
116
+ ##### requestHeaders?
117
+
118
+ `IHttpHeaders`
119
+
120
+ The request headers to inspect for the Accept value.
121
+
122
+ #### Returns
123
+
124
+ asserts headers is IHttpHeaders & \{ content-type: "application/json" \| "application/ld+json" \}
125
+
126
+ ***
127
+
128
+ ### extractCursor() {#extractcursor}
129
+
130
+ > `static` **extractCursor**(`headers?`): `string` \| `undefined`
131
+
132
+ Extract the cursor from the Link header's next relation.
133
+
134
+ #### Parameters
135
+
136
+ ##### headers?
137
+
138
+ `IHttpHeaders`
139
+
140
+ The response headers to extract the cursor from.
141
+
142
+ #### Returns
143
+
144
+ `string` \| `undefined`
145
+
146
+ The cursor value or undefined if not present.
147
+
148
+ ***
149
+
150
+ ### extractId() {#extractid}
151
+
152
+ > `static` **extractId**(`headers?`, `templateUrl?`): `string`
153
+
154
+ Extract the resource ID from the Location response header.
155
+ Handles absolute URLs, relative paths, and bare ID values.
156
+ When a templateUrl containing ':id' is supplied (e.g. "/path1/:id/path2" or
157
+ "https://host/path/:id") the ID is extracted via pattern matching at the ':id'
158
+ position. Without a matching template the last path segment is returned.
159
+
160
+ #### Parameters
161
+
162
+ ##### headers?
163
+
164
+ `IHttpHeaders`
165
+
166
+ The response headers containing the Location header.
167
+
168
+ ##### templateUrl?
169
+
170
+ `string`
171
+
172
+ Optional URL template containing the ':id' placeholder, e.g. "/path1/:id/path2".
173
+
174
+ #### Returns
175
+
176
+ `string`
177
+
178
+ The extracted ID string.
179
+
180
+ #### Throws
181
+
182
+ GeneralError If the Location header is missing or the ID cannot be extracted.
@@ -0,0 +1,125 @@
1
+ # Class: HttpParameterHelper
2
+
3
+ Class to help with handling http parameters.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new HttpParameterHelper**(): `HttpParameterHelper`
10
+
11
+ #### Returns
12
+
13
+ `HttpParameterHelper`
14
+
15
+ ## Methods
16
+
17
+ ### arrayFromString() {#arrayfromstring}
18
+
19
+ > `static` **arrayFromString**\<`T`\>(`values?`): `T`[] \| `undefined`
20
+
21
+ Convert list query to array.
22
+
23
+ #### Type Parameters
24
+
25
+ ##### T {#t}
26
+
27
+ `T` = `string`
28
+
29
+ #### Parameters
30
+
31
+ ##### values?
32
+
33
+ `string`
34
+
35
+ The values query string.
36
+
37
+ #### Returns
38
+
39
+ `T`[] \| `undefined`
40
+
41
+ The array of values.
42
+
43
+ ***
44
+
45
+ ### arrayToString() {#arraytostring}
46
+
47
+ > `static` **arrayToString**\<`T`\>(`values?`): `string` \| `undefined`
48
+
49
+ Convert array of values to query string.
50
+
51
+ #### Type Parameters
52
+
53
+ ##### T {#t-1}
54
+
55
+ `T` = `string`
56
+
57
+ #### Parameters
58
+
59
+ ##### values?
60
+
61
+ `T`[]
62
+
63
+ The values to combine string.
64
+
65
+ #### Returns
66
+
67
+ `string` \| `undefined`
68
+
69
+ The combined.
70
+
71
+ ***
72
+
73
+ ### objectFromString() {#objectfromstring}
74
+
75
+ > `static` **objectFromString**\<`T`\>(`value?`): `T` \| `undefined`
76
+
77
+ Convert object string to object.
78
+
79
+ #### Type Parameters
80
+
81
+ ##### T {#t-2}
82
+
83
+ `T` = `unknown`
84
+
85
+ #### Parameters
86
+
87
+ ##### value?
88
+
89
+ `string`
90
+
91
+ The value query string.
92
+
93
+ #### Returns
94
+
95
+ `T` \| `undefined`
96
+
97
+ The object.
98
+
99
+ ***
100
+
101
+ ### objectToString() {#objecttostring}
102
+
103
+ > `static` **objectToString**\<`T`\>(`value?`): `string` \| `undefined`
104
+
105
+ Convert object to query string.
106
+
107
+ #### Type Parameters
108
+
109
+ ##### T {#t-3}
110
+
111
+ `T` = `unknown`
112
+
113
+ #### Parameters
114
+
115
+ ##### value?
116
+
117
+ `T`
118
+
119
+ The value to convert to a string.
120
+
121
+ #### Returns
122
+
123
+ `string` \| `undefined`
124
+
125
+ The converted object.