@venizia/ignis 0.2.0-9 → 0.2.0

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 (369) hide show
  1. package/LICENSE.md +0 -1
  2. package/README.md +118 -158
  3. package/dist/base/applications/base.d.ts +19 -13
  4. package/dist/base/applications/base.d.ts.map +1 -1
  5. package/dist/base/applications/base.js +95 -74
  6. package/dist/base/applications/base.js.map +1 -1
  7. package/dist/base/applications/boot-steps.d.ts +13 -0
  8. package/dist/base/applications/boot-steps.d.ts.map +1 -0
  9. package/dist/base/applications/boot-steps.js +23 -0
  10. package/dist/base/applications/boot-steps.js.map +1 -0
  11. package/dist/base/applications/common/index.d.ts +2 -0
  12. package/dist/base/applications/common/index.d.ts.map +1 -0
  13. package/dist/base/applications/common/index.js +18 -0
  14. package/dist/base/applications/common/index.js.map +1 -0
  15. package/dist/base/applications/{types.d.ts → common/types.d.ts} +11 -0
  16. package/dist/base/applications/common/types.d.ts.map +1 -0
  17. package/dist/base/applications/common/types.js.map +1 -0
  18. package/dist/base/applications/index.d.ts +2 -1
  19. package/dist/base/applications/index.d.ts.map +1 -1
  20. package/dist/base/applications/index.js +2 -1
  21. package/dist/base/applications/index.js.map +1 -1
  22. package/dist/base/applications/server.d.ts +6 -2
  23. package/dist/base/applications/server.d.ts.map +1 -1
  24. package/dist/base/applications/server.js +34 -2
  25. package/dist/base/applications/server.js.map +1 -1
  26. package/dist/base/controllers/grpc/adapter.js +2 -2
  27. package/dist/base/controllers/grpc/adapter.js.map +1 -1
  28. package/dist/base/middlewares/app-error/app-error.middleware.d.ts +3 -2
  29. package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
  30. package/dist/base/middlewares/app-error/app-error.middleware.js +4 -3
  31. package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  32. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts +1 -1
  33. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
  34. package/dist/base/middlewares/request-spy/request-spy.middleware.js +13 -4
  35. package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
  36. package/dist/common/constants.d.ts.map +1 -1
  37. package/dist/common/constants.js +2 -1
  38. package/dist/common/constants.js.map +1 -1
  39. package/dist/common/environments.d.ts +31 -10
  40. package/dist/common/environments.d.ts.map +1 -1
  41. package/dist/common/environments.js +33 -10
  42. package/dist/common/environments.js.map +1 -1
  43. package/dist/components/api-reference/component.d.ts.map +1 -1
  44. package/dist/components/api-reference/component.js +4 -3
  45. package/dist/components/api-reference/component.js.map +1 -1
  46. package/dist/components/api-reference/index.d.ts +1 -1
  47. package/dist/components/api-reference/index.d.ts.map +1 -1
  48. package/dist/components/api-reference/index.js +1 -1
  49. package/dist/components/api-reference/index.js.map +1 -1
  50. package/dist/components/api-reference/ui/factory.d.ts +14 -0
  51. package/dist/components/api-reference/ui/factory.d.ts.map +1 -0
  52. package/dist/components/api-reference/ui/factory.js +54 -0
  53. package/dist/components/api-reference/ui/factory.js.map +1 -0
  54. package/dist/components/api-reference/ui/index.d.ts +4 -0
  55. package/dist/components/api-reference/ui/index.d.ts.map +1 -0
  56. package/dist/components/api-reference/ui/index.js +20 -0
  57. package/dist/components/api-reference/ui/index.js.map +1 -0
  58. package/dist/components/api-reference/ui/scalar.d.ts +8 -0
  59. package/dist/components/api-reference/ui/scalar.d.ts.map +1 -0
  60. package/dist/components/api-reference/ui/scalar.js +28 -0
  61. package/dist/components/api-reference/ui/scalar.js.map +1 -0
  62. package/dist/components/api-reference/ui/swagger.d.ts +8 -0
  63. package/dist/components/api-reference/ui/swagger.d.ts.map +1 -0
  64. package/dist/components/api-reference/ui/swagger.js +28 -0
  65. package/dist/components/api-reference/ui/swagger.js.map +1 -0
  66. package/dist/components/auth/authenticate/component.d.ts +5 -0
  67. package/dist/components/auth/authenticate/component.d.ts.map +1 -1
  68. package/dist/components/auth/authenticate/component.js +23 -0
  69. package/dist/components/auth/authenticate/component.js.map +1 -1
  70. package/dist/components/auth/authenticate/controllers/factory.d.ts +35 -3
  71. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
  72. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +40 -20
  73. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +1 -1
  74. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts +40 -20
  75. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts.map +1 -1
  76. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts +2 -2
  77. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts.map +1 -1
  78. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js +12 -8
  79. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js.map +1 -1
  80. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts +1 -1
  81. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts.map +1 -1
  82. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js +5 -3
  83. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js.map +1 -1
  84. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts +1 -2
  85. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts.map +1 -1
  86. package/dist/components/auth/authenticate/services/bearer/jws.service.js +5 -3
  87. package/dist/components/auth/authenticate/services/bearer/jws.service.js.map +1 -1
  88. package/dist/components/auth/authenticate/services/jose-loader.d.ts +16 -0
  89. package/dist/components/auth/authenticate/services/jose-loader.d.ts.map +1 -0
  90. package/dist/components/auth/authenticate/services/jose-loader.js +25 -0
  91. package/dist/components/auth/authenticate/services/jose-loader.js.map +1 -0
  92. package/dist/components/auth/authenticate/services/service/signer.service.d.ts.map +1 -1
  93. package/dist/components/auth/authenticate/services/service/signer.service.js +8 -5
  94. package/dist/components/auth/authenticate/services/service/signer.service.js.map +1 -1
  95. package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +1 -1
  96. package/dist/components/auth/authenticate/services/service/verifier.service.js +10 -9
  97. package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
  98. package/dist/components/auth/authenticate/strategies/index.d.ts +1 -1
  99. package/dist/components/auth/authenticate/strategies/index.d.ts.map +1 -1
  100. package/dist/components/auth/authenticate/strategies/index.js +1 -1
  101. package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
  102. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts +3 -0
  103. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts.map +1 -0
  104. package/dist/components/auth/authenticate/strategies/jwks/index.js +19 -0
  105. package/dist/components/auth/authenticate/strategies/jwks/index.js.map +1 -0
  106. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts +13 -0
  107. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts.map +1 -0
  108. package/dist/components/auth/authenticate/strategies/{jwks.strategy.js → jwks/issuer.js} +4 -27
  109. package/dist/components/auth/authenticate/strategies/jwks/issuer.js.map +1 -0
  110. package/dist/components/auth/authenticate/strategies/{jwks.strategy.d.ts → jwks/verifier.d.ts} +2 -10
  111. package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts.map +1 -0
  112. package/dist/components/auth/authenticate/strategies/jwks/verifier.js +45 -0
  113. package/dist/components/auth/authenticate/strategies/jwks/verifier.js.map +1 -0
  114. package/dist/components/auth/authorize/adapters/base-filtered.d.ts +1 -1
  115. package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
  116. package/dist/components/auth/authorize/adapters/common/index.d.ts +2 -0
  117. package/dist/components/auth/authorize/adapters/common/index.d.ts.map +1 -0
  118. package/dist/components/auth/authorize/adapters/common/index.js +18 -0
  119. package/dist/components/auth/authorize/adapters/common/index.js.map +1 -0
  120. package/dist/components/auth/authorize/adapters/{types.d.ts → common/types.d.ts} +1 -1
  121. package/dist/components/auth/authorize/adapters/common/types.d.ts.map +1 -0
  122. package/dist/components/auth/authorize/adapters/common/types.js.map +1 -0
  123. package/dist/components/auth/authorize/adapters/connector.d.ts +1 -1
  124. package/dist/components/auth/authorize/adapters/connector.d.ts.map +1 -1
  125. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +1 -1
  126. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -1
  127. package/dist/components/auth/authorize/adapters/index.d.ts +2 -2
  128. package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
  129. package/dist/components/auth/authorize/adapters/index.js +2 -2
  130. package/dist/components/auth/authorize/adapters/index.js.map +1 -1
  131. package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.d.ts → scoped-casbin/adapter.d.ts} +11 -55
  132. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts.map +1 -0
  133. package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.js → scoped-casbin/adapter.js} +27 -22
  134. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.js.map +1 -0
  135. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts +2 -0
  136. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts.map +1 -0
  137. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js +5 -0
  138. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js.map +1 -0
  139. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts +3 -0
  140. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts.map +1 -0
  141. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js +19 -0
  142. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js.map +1 -0
  143. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts +50 -0
  144. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts.map +1 -0
  145. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js +3 -0
  146. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js.map +1 -0
  147. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts +4 -0
  148. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts.map +1 -0
  149. package/dist/components/auth/authorize/adapters/scoped-casbin/index.js +19 -0
  150. package/dist/components/auth/authorize/adapters/scoped-casbin/index.js.map +1 -0
  151. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts +17 -0
  152. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts.map +1 -0
  153. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js +11 -0
  154. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js.map +1 -0
  155. package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts.map +1 -1
  156. package/dist/components/auth/authorize/enforcers/policy-line-codec.js +4 -2
  157. package/dist/components/auth/authorize/enforcers/policy-line-codec.js.map +1 -1
  158. package/dist/components/auth/authorize/role-managers/base.d.ts.map +1 -1
  159. package/dist/components/auth/authorize/role-managers/base.js +2 -1
  160. package/dist/components/auth/authorize/role-managers/base.js.map +1 -1
  161. package/dist/components/auth/models/entities/policy-definition.model.d.ts +30 -9
  162. package/dist/components/auth/models/entities/policy-definition.model.d.ts.map +1 -1
  163. package/dist/components/auth/models/entities/policy-definition.model.js +36 -10
  164. package/dist/components/auth/models/entities/policy-definition.model.js.map +1 -1
  165. package/dist/components/auth/models/entities/user.model.d.ts +2 -2
  166. package/dist/components/controller/grpc/grpc.component.d.ts.map +1 -1
  167. package/dist/components/controller/grpc/grpc.component.js +1 -5
  168. package/dist/components/controller/grpc/grpc.component.js.map +1 -1
  169. package/dist/components/health-check/common/constants.d.ts +5 -0
  170. package/dist/components/health-check/common/constants.d.ts.map +1 -0
  171. package/dist/components/health-check/common/constants.js +9 -0
  172. package/dist/components/health-check/common/constants.js.map +1 -0
  173. package/dist/components/health-check/common/index.d.ts +1 -0
  174. package/dist/components/health-check/common/index.d.ts.map +1 -1
  175. package/dist/components/health-check/common/index.js +1 -0
  176. package/dist/components/health-check/common/index.js.map +1 -1
  177. package/dist/components/health-check/common/keys.d.ts +2 -0
  178. package/dist/components/health-check/common/keys.d.ts.map +1 -1
  179. package/dist/components/health-check/common/keys.js +2 -0
  180. package/dist/components/health-check/common/keys.js.map +1 -1
  181. package/dist/components/health-check/common/rest-paths.d.ts +1 -0
  182. package/dist/components/health-check/common/rest-paths.d.ts.map +1 -1
  183. package/dist/components/health-check/common/rest-paths.js +1 -0
  184. package/dist/components/health-check/common/rest-paths.js.map +1 -1
  185. package/dist/components/health-check/common/types.d.ts +22 -0
  186. package/dist/components/health-check/common/types.d.ts.map +1 -1
  187. package/dist/components/health-check/component.d.ts +9 -3
  188. package/dist/components/health-check/component.d.ts.map +1 -1
  189. package/dist/components/health-check/component.js +38 -1
  190. package/dist/components/health-check/component.js.map +1 -1
  191. package/dist/components/health-check/controller.d.ts +10 -2
  192. package/dist/components/health-check/controller.d.ts.map +1 -1
  193. package/dist/components/health-check/controller.js +79 -13
  194. package/dist/components/health-check/controller.js.map +1 -1
  195. package/dist/components/health-check/index.d.ts +1 -0
  196. package/dist/components/health-check/index.d.ts.map +1 -1
  197. package/dist/components/health-check/index.js +1 -0
  198. package/dist/components/health-check/index.js.map +1 -1
  199. package/dist/components/health-check/reporter.d.ts +98 -0
  200. package/dist/components/health-check/reporter.d.ts.map +1 -0
  201. package/dist/components/health-check/reporter.js +138 -0
  202. package/dist/components/health-check/reporter.js.map +1 -0
  203. package/dist/components/mail/common/constants.d.ts +8 -0
  204. package/dist/components/mail/common/constants.d.ts.map +1 -1
  205. package/dist/components/mail/common/constants.js +9 -1
  206. package/dist/components/mail/common/constants.js.map +1 -1
  207. package/dist/components/mail/common/types/index.d.ts +6 -0
  208. package/dist/components/mail/common/types/index.d.ts.map +1 -0
  209. package/dist/components/mail/common/types/index.js +22 -0
  210. package/dist/components/mail/common/types/index.js.map +1 -0
  211. package/dist/components/mail/common/types/message.d.ts +49 -0
  212. package/dist/components/mail/common/types/message.d.ts.map +1 -0
  213. package/dist/components/mail/common/types/message.js +3 -0
  214. package/dist/components/mail/common/types/message.js.map +1 -0
  215. package/dist/components/mail/common/types/options.d.ts +65 -0
  216. package/dist/components/mail/common/types/options.d.ts.map +1 -0
  217. package/dist/components/mail/common/types/options.js +3 -0
  218. package/dist/components/mail/common/types/options.js.map +1 -0
  219. package/dist/components/mail/common/types/queue.d.ts +56 -0
  220. package/dist/components/mail/common/types/queue.d.ts.map +1 -0
  221. package/dist/components/mail/common/types/queue.js +3 -0
  222. package/dist/components/mail/common/types/queue.js.map +1 -0
  223. package/dist/components/mail/common/types/template.d.ts +33 -0
  224. package/dist/components/mail/common/types/template.d.ts.map +1 -0
  225. package/dist/components/mail/common/types/template.js +3 -0
  226. package/dist/components/mail/common/types/template.js.map +1 -0
  227. package/dist/components/mail/common/types/verification.d.ts +26 -0
  228. package/dist/components/mail/common/types/verification.d.ts.map +1 -0
  229. package/dist/components/mail/common/types/verification.js +3 -0
  230. package/dist/components/mail/common/types/verification.js.map +1 -0
  231. package/dist/components/mail/component.d.ts +4 -1
  232. package/dist/components/mail/component.d.ts.map +1 -1
  233. package/dist/components/mail/component.js +12 -0
  234. package/dist/components/mail/component.js.map +1 -1
  235. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts +1 -0
  236. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts.map +1 -1
  237. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js +3 -0
  238. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js.map +1 -1
  239. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -1
  240. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +2 -1
  241. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
  242. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts +19 -0
  243. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts.map +1 -0
  244. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js +112 -0
  245. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js.map +1 -0
  246. package/dist/components/mail/helpers/transporters/index.d.ts +2 -1
  247. package/dist/components/mail/helpers/transporters/index.d.ts.map +1 -1
  248. package/dist/components/mail/helpers/transporters/index.js +2 -1
  249. package/dist/components/mail/helpers/transporters/index.js.map +1 -1
  250. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +1 -1
  251. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js +4 -3
  252. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
  253. package/dist/components/mail/providers/mail-transporter.provider.d.ts +2 -0
  254. package/dist/components/mail/providers/mail-transporter.provider.d.ts.map +1 -1
  255. package/dist/components/mail/providers/mail-transporter.provider.js +35 -17
  256. package/dist/components/mail/providers/mail-transporter.provider.js.map +1 -1
  257. package/dist/components/mail/services/generators/index.d.ts +4 -0
  258. package/dist/components/mail/services/generators/index.d.ts.map +1 -0
  259. package/dist/components/mail/services/generators/index.js +20 -0
  260. package/dist/components/mail/services/generators/index.js.map +1 -0
  261. package/dist/components/mail/services/generators/numeric-code.d.ts +7 -0
  262. package/dist/components/mail/services/generators/numeric-code.d.ts.map +1 -0
  263. package/dist/components/mail/services/generators/numeric-code.js +20 -0
  264. package/dist/components/mail/services/generators/numeric-code.js.map +1 -0
  265. package/dist/components/mail/services/generators/random-token.d.ts +7 -0
  266. package/dist/components/mail/services/generators/random-token.d.ts.map +1 -0
  267. package/dist/components/mail/services/generators/random-token.js +18 -0
  268. package/dist/components/mail/services/generators/random-token.js.map +1 -0
  269. package/dist/components/mail/services/{generator.service.d.ts → generators/verification-data.d.ts} +2 -10
  270. package/dist/components/mail/services/generators/verification-data.d.ts.map +1 -0
  271. package/dist/components/mail/services/{generator.service.js → generators/verification-data.js} +5 -29
  272. package/dist/components/mail/services/generators/verification-data.js.map +1 -0
  273. package/dist/components/mail/services/index.d.ts +1 -1
  274. package/dist/components/mail/services/index.d.ts.map +1 -1
  275. package/dist/components/mail/services/index.js +1 -1
  276. package/dist/components/mail/services/index.js.map +1 -1
  277. package/dist/components/mail/services/mail.service.d.ts.map +1 -1
  278. package/dist/components/mail/services/mail.service.js +18 -17
  279. package/dist/components/mail/services/mail.service.js.map +1 -1
  280. package/dist/components/mail/utilities/address.utility.d.ts +9 -0
  281. package/dist/components/mail/utilities/address.utility.d.ts.map +1 -0
  282. package/dist/components/mail/utilities/address.utility.js +36 -0
  283. package/dist/components/mail/utilities/address.utility.js.map +1 -0
  284. package/dist/components/mail/utilities/index.d.ts +2 -0
  285. package/dist/components/mail/utilities/index.d.ts.map +1 -1
  286. package/dist/components/mail/utilities/index.js +2 -0
  287. package/dist/components/mail/utilities/index.js.map +1 -1
  288. package/dist/components/mail/utilities/mime.utility.d.ts +19 -0
  289. package/dist/components/mail/utilities/mime.utility.d.ts.map +1 -0
  290. package/dist/components/mail/utilities/mime.utility.js +414 -0
  291. package/dist/components/mail/utilities/mime.utility.js.map +1 -0
  292. package/dist/components/static-asset/common/commit-token.d.ts +23 -0
  293. package/dist/components/static-asset/common/commit-token.d.ts.map +1 -0
  294. package/dist/components/static-asset/common/commit-token.js +40 -0
  295. package/dist/components/static-asset/common/commit-token.js.map +1 -0
  296. package/dist/components/static-asset/common/constants.d.ts +13 -1
  297. package/dist/components/static-asset/common/constants.d.ts.map +1 -1
  298. package/dist/components/static-asset/common/constants.js +29 -2
  299. package/dist/components/static-asset/common/constants.js.map +1 -1
  300. package/dist/components/static-asset/common/errors.d.ts +43 -0
  301. package/dist/components/static-asset/common/errors.d.ts.map +1 -1
  302. package/dist/components/static-asset/common/errors.js +37 -0
  303. package/dist/components/static-asset/common/errors.js.map +1 -1
  304. package/dist/components/static-asset/common/index.d.ts +1 -0
  305. package/dist/components/static-asset/common/index.d.ts.map +1 -1
  306. package/dist/components/static-asset/common/index.js +1 -0
  307. package/dist/components/static-asset/common/index.js.map +1 -1
  308. package/dist/components/static-asset/common/keys.d.ts +1 -0
  309. package/dist/components/static-asset/common/keys.d.ts.map +1 -1
  310. package/dist/components/static-asset/common/keys.js +1 -0
  311. package/dist/components/static-asset/common/keys.js.map +1 -1
  312. package/dist/components/static-asset/common/types.d.ts +87 -30
  313. package/dist/components/static-asset/common/types.d.ts.map +1 -1
  314. package/dist/components/static-asset/component.d.ts +4 -1
  315. package/dist/components/static-asset/component.d.ts.map +1 -1
  316. package/dist/components/static-asset/component.js +21 -10
  317. package/dist/components/static-asset/component.js.map +1 -1
  318. package/dist/components/static-asset/controller/base.definition.d.ts +27 -554
  319. package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
  320. package/dist/components/static-asset/controller/base.definition.js +250 -286
  321. package/dist/components/static-asset/controller/base.definition.js.map +1 -1
  322. package/dist/components/static-asset/controller/factory.d.ts +76 -7
  323. package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
  324. package/dist/components/static-asset/controller/factory.js +565 -138
  325. package/dist/components/static-asset/controller/factory.js.map +1 -1
  326. package/dist/components/static-asset/index.d.ts +1 -0
  327. package/dist/components/static-asset/index.d.ts.map +1 -1
  328. package/dist/components/static-asset/index.js +1 -0
  329. package/dist/components/static-asset/index.js.map +1 -1
  330. package/dist/components/static-asset/ingest.d.ts +58 -0
  331. package/dist/components/static-asset/ingest.d.ts.map +1 -0
  332. package/dist/components/static-asset/ingest.js +82 -0
  333. package/dist/components/static-asset/ingest.js.map +1 -0
  334. package/dist/components/static-asset/models/base.model.d.ts +44 -6
  335. package/dist/components/static-asset/models/base.model.d.ts.map +1 -1
  336. package/dist/components/static-asset/models/base.model.js +7 -1
  337. package/dist/components/static-asset/models/base.model.js.map +1 -1
  338. package/dist/components/websocket/handlers/bun.handler.d.ts.map +1 -1
  339. package/dist/components/websocket/handlers/bun.handler.js +2 -1
  340. package/dist/components/websocket/handlers/bun.handler.js.map +1 -1
  341. package/dist/connectors/postgres/drivers/postgres-js.d.mts +3 -0
  342. package/dist/connectors/postgres/drivers/postgres-js.d.mts.map +1 -0
  343. package/dist/connectors/postgres/drivers/postgres-js.mjs +3 -0
  344. package/dist/connectors/postgres/drivers/postgres-js.mjs.map +1 -0
  345. package/dist/helpers/index.d.ts.map +1 -1
  346. package/dist/helpers/index.js.map +1 -1
  347. package/dist/index.d.ts +1 -1
  348. package/dist/index.d.ts.map +1 -1
  349. package/package.json +29 -26
  350. package/dist/base/applications/types.d.ts.map +0 -1
  351. package/dist/base/applications/types.js.map +0 -1
  352. package/dist/components/api-reference/ui-factory.d.ts +0 -24
  353. package/dist/components/api-reference/ui-factory.d.ts.map +0 -1
  354. package/dist/components/api-reference/ui-factory.js +0 -97
  355. package/dist/components/api-reference/ui-factory.js.map +0 -1
  356. package/dist/components/auth/authenticate/strategies/jwks.strategy.d.ts.map +0 -1
  357. package/dist/components/auth/authenticate/strategies/jwks.strategy.js.map +0 -1
  358. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +0 -1
  359. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +0 -1
  360. package/dist/components/auth/authorize/adapters/types.d.ts.map +0 -1
  361. package/dist/components/auth/authorize/adapters/types.js.map +0 -1
  362. package/dist/components/mail/common/types.d.ts +0 -201
  363. package/dist/components/mail/common/types.d.ts.map +0 -1
  364. package/dist/components/mail/common/types.js +0 -10
  365. package/dist/components/mail/common/types.js.map +0 -1
  366. package/dist/components/mail/services/generator.service.d.ts.map +0 -1
  367. package/dist/components/mail/services/generator.service.js.map +0 -1
  368. /package/dist/base/applications/{types.js → common/types.js} +0 -0
  369. /package/dist/components/auth/authorize/adapters/{types.js → common/types.js} +0 -0
package/LICENSE.md CHANGED
@@ -72,7 +72,6 @@ Ignis uses the following open-source libraries. We are grateful to the authors a
72
72
 
73
73
  | Library | License | Description |
74
74
  |---------|---------|-------------|
75
- | [Lodash](https://github.com/lodash/lodash) | MIT | Utility library |
76
75
  | [reflect-metadata](https://github.com/rbuckton/reflect-metadata) | Apache-2.0 | Metadata reflection API |
77
76
  | [glob](https://github.com/isaacs/node-glob) | ISC | File pattern matching (used by boot) |
78
77
 
package/README.md CHANGED
@@ -1,64 +1,52 @@
1
- <div align="center">
1
+ # @venizia/ignis
2
2
 
3
- # :fire: @venizia/ignis
3
+ The IGNIS server framework for Bun and Node.js. Install this package to build a REST API: it brings
4
+ the application class, controllers, repositories, the built-in components, and the Bun or Node server
5
+ that runs them.
4
6
 
5
- **The IGNIS framework core - LoopBack 4's architecture on Hono's speed.**
6
-
7
- [![npm](https://img.shields.io/npm/v/@venizia/ignis.svg?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@venizia/ignis)
8
- [![Docs](https://img.shields.io/badge/Docs-ignis.venizia.ai-2563EB.svg?style=flat-square)](https://ignis.venizia.ai)
9
- [![License: MIT](https://img.shields.io/badge/License-MIT-3DA639.svg?style=flat-square)](LICENSE.md)
10
- [![TypeScript](https://img.shields.io/badge/TypeScript-6.x-3178C6.svg?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
11
-
12
- [Documentation](https://ignis.venizia.ai) &#8226;
13
- [Quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart) &#8226;
14
- [API Reference](https://ignis.venizia.ai/references/)
15
-
16
- </div>
17
-
18
- ---
19
-
20
- This is the framework itself: the application class, controllers, repositories, models, datasources,
21
- the decorator set, and the component system. You extend the base classes; IGNIS wires them through
22
- its IoC container, validates every request against Zod, and generates the OpenAPI spec from the same
23
- schemas.
24
-
25
- Reach for it when you are building a structured API - real auth, several models, more than a handful
26
- of endpoints - and you want that structure to survive team growth. For a 3-endpoint service, plain
27
- Hono is lighter.
7
+ IGNIS takes its application model from LoopBack 4 - an IoC container with binding keys, components,
8
+ and the controller, service, repository, datasource layering - and runs it on Hono. Drizzle ORM builds
9
+ the SQL. Zod schemas, through `@hono/zod-openapi`, validate each request and generate the OpenAPI
10
+ document.
28
11
 
29
12
  ## Install
30
13
 
31
14
  ```bash
32
- bun add @venizia/ignis @venizia/ignis-helpers hono @hono/zod-openapi drizzle-orm pg
33
- bun add -d typescript tsc-alias @venizia/dev-configs @types/bun
15
+ bun add @venizia/ignis hono @hono/zod-openapi @asteasolutions/zod-to-openapi drizzle-orm drizzle-zod jose
16
+ bun add @scalar/hono-api-reference # the API explorer UI in the example
34
17
  ```
35
18
 
36
- `@venizia/ignis-boot`, `@venizia/ignis-helpers` and `@venizia/ignis-inversion` come along as
37
- dependencies. `hono`, `@hono/zod-openapi`, `@asteasolutions/zod-to-openapi`, `drizzle-orm` and
38
- `drizzle-zod` are required peers. Everything else in `peerDependencies` is optional - install only
39
- what the components and connectors you actually use need.
19
+ The first line is the package and its required peers. Every other peer is optional - install the
20
+ one a component or a database driver needs (see [Entry points](#entry-points)). On Node.js, add
21
+ `@hono/node-server`.
22
+
23
+ In your `tsconfig.json`, set these two flags directly in `compilerOptions`:
24
+
25
+ ```json
26
+ { "compilerOptions": { "experimentalDecorators": true, "emitDecoratorMetadata": true } }
27
+ ```
40
28
 
41
- > [!IMPORTANT]
42
- > `experimentalDecorators` and `emitDecoratorMetadata` must be `true` in your `tsconfig.json`,
43
- > declared **inline**. Bun does not resolve them through `extends`, and `@inject` metadata is
44
- > silently dropped without them - bindings then fail at boot with no obvious cause. Copy them from
45
- > `@venizia/dev-configs/tsconfig.common.json`.
29
+ Bun ignores them when they only arrive through an `extends` of a package path, and then drops
30
+ `@inject` parameter decorators without an error.
46
31
 
47
- ## Minimal application
32
+ ## Example
48
33
 
49
34
  ```typescript
50
35
  import { z } from '@hono/zod-openapi';
51
36
  import {
52
- ApiReferenceComponent, BaseApplication, BaseRestController,
53
- controller, get, IApplicationInfo, jsonContent,
37
+ ApiReferenceComponent,
38
+ BaseApplication,
39
+ BaseRestController,
40
+ controller,
41
+ get,
42
+ jsonResponse,
54
43
  } from '@venizia/ignis';
55
- import { HTTP } from '@venizia/ignis-helpers';
56
- import { Context } from 'hono';
44
+ import type { Context } from 'hono';
57
45
 
58
46
  @controller({ path: '/hello' })
59
47
  class HelloController extends BaseRestController {
60
48
  constructor() {
61
- super({ scope: 'HelloController', path: '/hello' });
49
+ super({ scope: HelloController.name });
62
50
  }
63
51
 
64
52
  override binding() {}
@@ -66,150 +54,122 @@ class HelloController extends BaseRestController {
66
54
  @get({
67
55
  configs: {
68
56
  path: '/',
69
- responses: {
70
- [HTTP.ResultCodes.RS_2.Ok]: jsonContent({
71
- description: 'Says hello',
72
- schema: z.object({ message: z.string() }),
73
- }),
74
- },
57
+ responses: jsonResponse({ schema: z.object({ message: z.string() }) }),
75
58
  },
76
59
  })
77
- sayHello(c: Context) {
78
- return c.json({ message: 'Hello from IGNIS!' }, HTTP.ResultCodes.RS_2.Ok);
60
+ sayHello(context: Context) {
61
+ return context.json({ message: 'Hello from IGNIS' });
79
62
  }
80
63
  }
81
64
 
82
- class App extends BaseApplication {
83
- getAppInfo(): IApplicationInfo {
84
- return { name: 'my-app', version: '1.0.0', description: 'My first IGNIS app' };
65
+ class Application extends BaseApplication {
66
+ getAppInfo() {
67
+ return { name: 'hello', version: '1.0.0', description: 'The smallest IGNIS application' };
85
68
  }
86
69
 
87
70
  staticConfigure() {}
88
- postConfigure() {}
89
71
  setupMiddlewares() {}
72
+ postConfigure() {}
90
73
 
91
74
  preConfigure() {
92
- this.component(ApiReferenceComponent); // interactive docs at /doc/explorer
75
+ this.component(ApiReferenceComponent);
93
76
  this.controller(HelloController);
94
77
  }
95
78
  }
96
79
 
97
- new App({
98
- scope: 'App',
80
+ const application = new Application({
81
+ scope: Application.name,
99
82
  config: { host: '0.0.0.0', port: 3000, path: { base: '/api', isStrict: false } },
100
- })
101
- .start()
102
- .catch((error: unknown) => {
103
- console.error('[main] Application start failed | Error:', error);
104
- process.exit(1);
105
- });
83
+ });
84
+
85
+ application.init();
86
+ await application.start();
106
87
  ```
107
88
 
108
89
  ```bash
109
90
  bun run src/index.ts
110
- curl http://localhost:3000/api/hello # {"message":"Hello from IGNIS!"}
91
+ curl http://localhost:3000/api/hello # {"message":"Hello from IGNIS"}
111
92
  ```
112
93
 
113
- `getAppInfo`, `preConfigure`, `postConfigure`, `staticConfigure` and `setupMiddlewares` are abstract -
114
- implement all five, even when empty.
115
-
116
- ## The surface
117
-
118
- | Layer | Extend / use | Docs |
119
- | :--- | :--- | :--- |
120
- | Application | `BaseApplication` - lifecycle, config, `component()`, `controller()`, `start()` | [Application](https://ignis.venizia.ai/references/base/application) |
121
- | REST controller | `BaseRestController` - decorated routes, or `bindRoute` / `defineRoute` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
122
- | gRPC controller | `BaseGrpcController` with `@rpc` - pair it with `GrpcComponent` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
123
- | CRUD controller | `ControllerFactory.defineCrudController({ controller, entity, routes })` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
124
- | Service | `BaseService` | [References](https://ignis.venizia.ai/references/) |
125
- | Repository | `DefaultRelationalRepository`, or the readable / persistable / soft-deletable variants | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
126
- | Model | `BaseRelationalEntity` over a Drizzle `pgTable` | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
127
- | DataSource | `BaseRelationalDataSource` | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
128
- | Component | `BaseComponent` - bundle bindings, controllers and middlewares as one unit | [Components](https://ignis.venizia.ai/extensions/components/) |
129
- | Provider | `BaseProvider<T>` - a lazily resolved binding value | [DI](https://ignis.venizia.ai/references/base/dependency-injection) |
94
+ The OpenAPI document is at `/api/doc/openapi.json` and the explorer at `/api/doc/explorer`.
130
95
 
131
- Decorators, all from the root barrel:
96
+ Three things to notice:
132
97
 
133
- | Decorator | Target | Purpose |
134
- | :--- | :--- | :--- |
135
- | `@controller({ path })` | class | Register a controller under a base path |
136
- | `@get` `@post` `@put` `@patch` `@del` `@api` | method | Declare a REST route from a Zod-typed config |
137
- | `@rpc` | method | Declare a gRPC method |
138
- | `@model` `@datasource` `@repository` | class | Register persistence classes for boot discovery |
139
- | `@inject({ key, isOptional })` | constructor parameter | Resolve a binding by namespaced key |
98
+ - `getAppInfo`, `staticConfigure`, `preConfigure`, `postConfigure` and `setupMiddlewares` are
99
+ abstract. Implement all five, even when empty.
100
+ - `application.init()` registers the application's own bindings. Call it before `start()`, or the
101
+ first component that injects the application fails the boot.
102
+ - `preConfigure()` is where you register components, controllers, services, repositories and
103
+ datasources by hand. The `ignis-artifacts` generator in `@venizia/ignis-boot` can write that list
104
+ for you at build time.
140
105
 
141
- > [!WARNING]
142
- > **Every** constructor parameter of a container-instantiated class must carry `@inject`. Mixing
143
- > decorated and undecorated parameters is refused at boot - the container has no channel to supply an
144
- > undecorated one. Options a controller needs belong in `super({ scope })`.
106
+ ## Built-in components
145
107
 
146
- `BaseRelationalEntity`, `DefaultRelationalRepository` and `BaseRelationalDataSource` are the
147
- canonical, paradigm-family names. `BasePostgresEntity`, `DefaultCRUDRepository`,
148
- `BasePostgresDataSource`, `BaseEntity` and `BaseDataSource` still resolve to the same classes as
149
- back-compat aliases - prefer the family names in new code.
150
-
151
- ## Components
152
-
153
- Register with `this.component(X)` in `preConfigure()`.
108
+ Register a component with `this.component(...)` in `preConfigure()`.
154
109
 
155
110
  | Component | Import from | What it adds |
156
- | :--- | :--- | :--- |
157
- | `ApiReferenceComponent` | `@venizia/ignis` | OpenAPI spec plus a Scalar or Swagger UI explorer |
158
- | `AuthenticateComponent` | `@venizia/ignis` | JWT and Basic authentication strategies |
159
- | `AuthorizeComponent` | `@venizia/ignis` | Casbin-backed authorization enforcement |
160
- | `HealthCheckComponent` | `@venizia/ignis` | Liveness and readiness endpoints |
161
- | `RequestTrackerComponent` | `@venizia/ignis` | Request IDs and body parsing - registered automatically |
162
- | `RestComponent` | `@venizia/ignis` | Binds discovered REST controllers - internal, registered automatically |
163
- | `GrpcComponent` | `@venizia/ignis/grpc` | ConnectRPC transport for `@rpc` controllers |
164
- | `MailComponent` | `@venizia/ignis/mail` | Nodemailer and Mailgun senders |
165
- | `SocketIOComponent` | `@venizia/ignis/socket-io` | Socket.IO server with an optional Redis adapter |
166
- | `WebSocketComponent` | `@venizia/ignis/websocket` | Native WebSocket transport |
167
- | `StaticAssetComponent` | `@venizia/ignis/static-asset` | Static file serving and asset controllers |
168
-
169
-
170
- Full configuration for each: [Components](https://ignis.venizia.ai/extensions/components/).
171
-
172
- ## Sub-path exports
173
-
174
- The root barrel deliberately excludes optional transports and connectors, so a bundler never pulls in
175
- a peer you did not install.
176
-
177
- | Sub-path | Contents |
178
- | :--- | :--- |
179
- | `@venizia/ignis/postgres` | Relational models, datasources, repositories, dialect |
180
- | `@venizia/ignis/postgres/node-postgres` | `pg` driver (the supported default) |
181
- | `@venizia/ignis/postgres/postgres-js` | `postgres` driver |
182
- | `@venizia/ignis/postgres/supabase` | Supabase driver and RLS auth context |
183
- | `@venizia/ignis/search` (+ `/controllers`) | Engine-agnostic search connector |
184
- | `@venizia/ignis/typesense` (+ `/controllers`) | Typesense engine |
185
- | `@venizia/ignis/meilisearch` | Meilisearch engine |
186
- | `@venizia/ignis/grpc`, `/socket-io`, `/websocket`, `/mail`, `/static-asset` | Optional components |
187
-
188
- Note that `@venizia/ignis/postgres` is also re-exported from the root barrel; the other sub-paths are
189
- not.
190
-
191
- ## Things that will burn you
192
-
193
- - **Errors**: always `getError()` / `ApplicationError` from `@venizia/ignis-helpers`, never raw
194
- `new Error`. The error shape is one object - `{ text, code, args }`. Across package boundaries use
195
- `isApplicationError()`, never `instanceof`.
196
- - **Logging**: type your loggers as `ILogger`. Get one from `BaseHelper.logger`,
197
- `LoggerFactory.getLogger(['A','B'])` or `ApplicationLogger.get('Scope')`, and `.for('method')` for a
198
- method-scoped child. Five levels only: `debug`, `info`, `warn`, `error`, `emerg`.
199
- - **Runtime**: Bun >= 1.3 first-class. Node.js works through the optional `@hono/node-server` peer.
200
- - **Version**: 0.x - minor versions can break. Pin exact versions and read the
201
- [changelog](https://ignis.venizia.ai/changelogs/) before upgrading.
111
+ |---|---|---|
112
+ | `ApiReferenceComponent` | `@venizia/ignis` | The OpenAPI document and a Scalar or Swagger UI explorer (`@scalar/hono-api-reference` or `@hono/swagger-ui`) |
113
+ | `HealthCheckComponent` | `@venizia/ignis` | `GET /health`, `POST /health/ping`, and `GET /health/stats` (closed outside development unless you enable it) |
114
+ | `AuthenticateComponent` | `@venizia/ignis` | JWT, Basic, and service-to-service authentication strategies |
115
+ | `AuthorizeComponent` | `@venizia/ignis` | Casbin-based authorization (`casbin`) |
116
+ | `RequestTrackerComponent` | `@venizia/ignis` | Logs each request and response - registered for you by `BaseApplication` |
117
+ | `GrpcComponent` | `@venizia/ignis/grpc` | ConnectRPC transport for `@rpc` controllers (`@connectrpc/connect`) |
118
+ | `MailComponent` | `@venizia/ignis/mail` | Mail through Nodemailer, Mailgun or Amazon SES, with an optional BullMQ queue |
119
+ | `SocketIOComponent` | `@venizia/ignis/socket-io` | A Socket.IO server with the Redis adapter |
120
+ | `WebSocketComponent` | `@venizia/ignis/websocket` | Bun's native WebSocket server |
121
+ | `StaticAssetComponent` | `@venizia/ignis/static-asset` | Upload and download controllers over object storage, with a file-record table |
122
+
123
+ To serve files from disk, you need no component. Call `this.static({ restPath: '/public/*', folderPath: '.' })`
124
+ in `staticConfigure()`: the request path is resolved under `folderPath`, so `/public/logo.png` serves
125
+ `./public/logo.png`.
126
+
127
+ ## Entry points
128
+
129
+ The root barrel leaves out the optional transports and engines, so a bundle only pulls in the peers
130
+ you use.
131
+
132
+ | Import | What it gives | Extra peers |
133
+ |---|---|---|
134
+ | `@venizia/ignis` | `BaseApplication`, the kernel in full, the root components, and everything in `/postgres` | none |
135
+ | `/postgres` | Postgres datasources, entities, repositories, `ModelFactory` | none |
136
+ | `/postgres/node-postgres` | `NodePostgresDriver` | `pg` |
137
+ | `/postgres/postgres-js` | `PostgresJsDriver` | `postgres` |
138
+ | `/postgres/pglite` | `PGliteDriver` | `@electric-sql/pglite` |
139
+ | `/postgres/supabase` | Supabase auth context and pooler helpers | none |
140
+ | `/relational` | The engine-neutral SQL tier (`DefaultRelationalRepository`, `BaseRelationalDataSource`) | none |
141
+ | `/sqlite` | SQLite datasources and repositories | none |
142
+ | `/sqlite/libsql` | `LibSqlDriver` | `@libsql/client` |
143
+ | `/search`, `/search/controllers` | The engine-neutral search tier and its controllers | none |
144
+ | `/typesense`, `/typesense/controllers` | The Typesense engine, and the search controllers | `typesense` for `/typesense` |
145
+ | `/meilisearch` | The Meilisearch engine | `meilisearch` |
146
+ | `/grpc` | `GrpcComponent` (`BaseGrpcController` and `@rpc` come from the root) | none to load |
147
+ | `/mail` | `MailComponent` | none to load |
148
+ | `/socket-io` | `SocketIOComponent` | `socket.io`, `@socket.io/redis-adapter`, `@socket.io/redis-emitter` |
149
+ | `/websocket` | `WebSocketComponent` | none |
150
+ | `/static-asset` | `StaticAssetComponent` | none |
151
+
152
+ "None to load" means the entry imports cleanly; the component loads its client library (for example
153
+ `nodemailer` or `@connectrpc/connect`) when you configure it.
154
+
155
+ The connector entries re-export `@venizia/ignis-connectors` under the same names. The kernel is
156
+ re-exported in full from the root.
157
+
158
+ ## Where it sits
159
+
160
+ Top of the chain. Depends on `@venizia/ignis-kernel`, `@venizia/ignis-connectors`,
161
+ `@venizia/ignis-filter`, `@venizia/ignis-helpers` and `@venizia/ignis-inversion`.
162
+ `@venizia/ignis-boot` is separate - add it as a dev dependency for the artifact generator.
202
163
 
203
164
  ## Links
204
165
 
205
- [Quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart) &#8226;
206
- [API reference](https://ignis.venizia.ai/references/) &#8226;
207
- [Bootstrapping](https://ignis.venizia.ai/references/base/bootstrapping) &#8226;
208
- [Dependency injection](https://ignis.venizia.ai/references/base/dependency-injection) &#8226;
209
- [Extensions](https://ignis.venizia.ai/extensions/) &#8226;
210
- [Helpers](https://ignis.venizia.ai/extensions/helpers/) &#8226;
211
- [Best practices](https://ignis.venizia.ai/best-practices/) &#8226;
212
- [Changelog](https://ignis.venizia.ai/changelogs/)
213
-
214
- MIT licensed - see [LICENSE.md](LICENSE.md).
215
- Questions: [GitHub Issues](https://github.com/VENIZIA-AI/ignis/issues) &#8226; developer@venizia.ai
166
+ - [5-minute quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart)
167
+ - [Philosophy](https://ignis.venizia.ai/guides/get-started/philosophy)
168
+ - [Application](https://ignis.venizia.ai/references/base/application)
169
+ - [Bootstrapping](https://ignis.venizia.ai/references/base/bootstrapping)
170
+ - [Components](https://ignis.venizia.ai/extensions/components/)
171
+ - [All changelogs](https://ignis.venizia.ai/changelogs/)
172
+
173
+ IGNIS is 0.x: a minor version can break. Pin exact versions and read the changelog before upgrading.
174
+
175
+ MIT licensed - see [LICENSE.md](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/LICENSE.md).
@@ -1,21 +1,15 @@
1
- import type { Binding } from '@venizia/ignis-kernel';
2
- import type { IBootableApplication, IBooter, IBootReport } from '@venizia/ignis-boot';
3
1
  import type { ILogger } from '@venizia/ignis-helpers/core';
4
- import type { AnyObject, TClass, ValueOrPromise } from '@venizia/ignis-helpers/common';
2
+ import type { ValueOrPromise } from '@venizia/ignis-helpers/common';
5
3
  import type { ISecretHydrateEntry, ISecretsHelper, ISecretsRegistration } from '@venizia/ignis-helpers';
6
- import type { TMixinOpts } from '@venizia/ignis-kernel';
7
4
  import { AppErrorMiddleware } from '../middlewares';
8
5
  import { ServerApplication } from './server';
9
6
  import type { IRestApplication } from '@venizia/ignis-kernel';
10
- export declare abstract class BaseApplication extends ServerApplication implements IRestApplication, IBootableApplication {
7
+ import type { IBootSequenceStep } from '@venizia/ignis-kernel';
8
+ export declare abstract class BaseApplication extends ServerApplication implements IRestApplication {
11
9
  protected secretsProvider?: ISecretsHelper;
12
10
  protected secretsRegistration?: ISecretsRegistration;
13
11
  protected normalizePath(...segments: string[]): string;
14
- /**
15
- * Extends the inherited REST registration (`RestApplication.registerControllers()`, kernel) with
16
- * the gRPC branch, which the kernel cannot own: `GrpcComponent` needs `AbstractGrpcController`
17
- * from `@/base/controllers/grpc`, core-only code that reaches `node:module`.
18
- */
12
+ /** Adds the gRPC branch the kernel cannot own: `GrpcComponent` needs `AbstractGrpcController`, core-only code that reaches `node:module`. */
19
13
  registerControllers(): Promise<void>;
20
14
  registerSecrets(): ValueOrPromise<ISecretsRegistration>;
21
15
  hydrateSecrets(): Promise<void>;
@@ -35,12 +29,15 @@ export declare abstract class BaseApplication extends ServerApplication implemen
35
29
  entry: ISecretHydrateEntry;
36
30
  }): boolean;
37
31
  wireSecretRotatables(): Promise<void>;
38
- booter<Base extends IBooter, Args extends AnyObject = any>(ctor: TClass<Base>, opts?: TMixinOpts<Args>): Binding<Base>;
39
- registerBooters(): Promise<void>;
40
32
  static(opts: {
41
33
  restPath?: string;
42
34
  folderPath: string;
43
35
  }): this;
36
+ /**
37
+ * Every value is read HERE, not destructured at module load: an application that loads its
38
+ * `.env` in its own entrypoint does so after this module is imported, and a module-load snapshot
39
+ * would print the defaults for a host that configured everything correctly.
40
+ */
44
41
  protected printStartUpInfo(opts: {
45
42
  scope: string;
46
43
  }): void;
@@ -48,9 +45,18 @@ export declare abstract class BaseApplication extends ServerApplication implemen
48
45
  protected buildErrorMiddleware(): AppErrorMiddleware;
49
46
  /** Adds what only a listening server has, on top of the kernel's three - which stay in `RestApplication` so a browser Worker answers with the same envelope. */
50
47
  protected registerDefaultMiddlewares(): Promise<void>;
51
- boot(): Promise<IBootReport>;
52
48
  /** Lives here rather than on `AbstractApplication` - `applicationEnvironment` reads `process.env` at module load, so a kernel-pure ancestor cannot carry it; this is the layer that already depends on it. */
53
49
  protected validateEnvs(): void;
50
+ /**
51
+ * Version tripwire, body identical to `RestApplication.initialize()`: a stale kernel without
52
+ * `getBootSequence()`/`runBootSequence()` throws here before any socket binds.
53
+ */
54
54
  initialize(): Promise<void>;
55
+ protected getBootSequence(): IBootSequenceStep[];
56
+ /**
57
+ * Refuses to start when a model's `settings.scopeFilter` cannot take effect. Both failures are
58
+ * silent at runtime and opposite: a search-backed model returns too many rows, a context-less one none.
59
+ */
60
+ protected validateScopeFilterSupport(): void;
55
61
  }
56
62
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base/applications/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAahC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA2C9D,8BAAsB,eACpB,SAAQ,iBACR,YAAW,gBAAgB,EAAE,oBAAoB;IAEjD,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAErD,SAAS,CAAC,aAAa,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAKtD;;;;OAIG;IACY,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDnD,eAAe,IAAI,cAAc,CAAC,oBAAoB,CAAC;IAIjD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAuErC,4KAA4K;cAC5J,oBAAoB,CAAC,IAAI,EAAE;QACzC,QAAQ,EAAE,cAAc,CAAC;QACzB,YAAY,EAAE,oBAAoB,CAAC;QACnC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjB,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,EAAE,mBAAmB,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAW1B,gMAAgM;IAChM,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO;IAQlF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3C,MAAM,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,GAAG,GAAG,EACvD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC;IAUV,eAAe;IAiBrB,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAwCtD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IA+BlD,kGAAkG;cAC/E,oBAAoB,IAAI,kBAAkB;IAO7D,gKAAgK;cACvI,0BAA0B;IA8B7C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAMlC,8MAA8M;IAC9M,SAAS,CAAC,YAAY;IA4BP,UAAU;CAuB1B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base/applications/base.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAgC/D,8BAAsB,eAAgB,SAAQ,iBAAkB,YAAW,gBAAgB;IACzF,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAErD,SAAS,CAAC,aAAa,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAKtD,6IAA6I;IAC9H,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDnD,eAAe,IAAI,cAAc,CAAC,oBAAoB,CAAC;IAIjD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwErC,4KAA4K;cAC5J,oBAAoB,CAAC,IAAI,EAAE;QACzC,QAAQ,EAAE,cAAc,CAAC;QACzB,YAAY,EAAE,oBAAoB,CAAC;QACnC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjB,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,EAAE,mBAAmB,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAY1B,gMAAgM;IAChM,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO;IAQlF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3C,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAwCtD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAgClD,kGAAkG;cAC/E,oBAAoB,IAAI,kBAAkB;IAO7D,gKAAgK;cACvI,0BAA0B;IA4BnD,8MAA8M;IAC9M,SAAS,CAAC,YAAY;IAmDtB;;;OAGG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;cAIvB,eAAe,IAAI,iBAAiB,EAAE;IAyCzD;;;OAGG;IACH,SAAS,CAAC,0BAA0B,IAAI,IAAI;CAG7C"}