@rvoh/psychic 0.24.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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/dist/cjs/src/bin/helpers/enumsAndTheirValues.js +17 -0
  4. package/dist/cjs/src/bin/helpers/enumsFileStr.js +21 -0
  5. package/dist/cjs/src/bin/helpers/generateRouteTypes.js +16 -0
  6. package/dist/cjs/src/bin/helpers/printRoutes.js +54 -0
  7. package/dist/cjs/src/bin/index.js +79 -0
  8. package/dist/cjs/src/cli/helpers/TypesBuilder.js +26 -0
  9. package/dist/cjs/src/cli/index.js +76 -0
  10. package/dist/cjs/src/controller/decorators.js +85 -0
  11. package/dist/cjs/src/controller/hooks.js +29 -0
  12. package/dist/cjs/src/controller/index.js +571 -0
  13. package/dist/cjs/src/encrypt/internal-encrypt.js +43 -0
  14. package/dist/cjs/src/env/Loader.js +26 -0
  15. package/dist/cjs/src/error/db/failed-to-connect.js +17 -0
  16. package/dist/cjs/src/error/db/index.js +16 -0
  17. package/dist/cjs/src/error/db/missing-options.js +17 -0
  18. package/dist/cjs/src/error/encrypt/missing-cookie-encryption-options.js +27 -0
  19. package/dist/cjs/src/error/http/BadGateway.js +9 -0
  20. package/dist/cjs/src/error/http/BadRequest.js +9 -0
  21. package/dist/cjs/src/error/http/Conflict.js +9 -0
  22. package/dist/cjs/src/error/http/ContentTooLarge.js +9 -0
  23. package/dist/cjs/src/error/http/ExpectationFailed.js +9 -0
  24. package/dist/cjs/src/error/http/FailedDependency.js +9 -0
  25. package/dist/cjs/src/error/http/Forbidden.js +9 -0
  26. package/dist/cjs/src/error/http/GatewayTimeout.js +9 -0
  27. package/dist/cjs/src/error/http/Gone.js +9 -0
  28. package/dist/cjs/src/error/http/ImATeapot.js +9 -0
  29. package/dist/cjs/src/error/http/InsufficientStorage.js +9 -0
  30. package/dist/cjs/src/error/http/InternalServerError.js +9 -0
  31. package/dist/cjs/src/error/http/Locked.js +9 -0
  32. package/dist/cjs/src/error/http/MethodNotAllowed.js +9 -0
  33. package/dist/cjs/src/error/http/MisdirectedRequest.js +9 -0
  34. package/dist/cjs/src/error/http/NotAcceptable.js +9 -0
  35. package/dist/cjs/src/error/http/NotExtended.js +9 -0
  36. package/dist/cjs/src/error/http/NotFound.js +9 -0
  37. package/dist/cjs/src/error/http/NotImplemented.js +9 -0
  38. package/dist/cjs/src/error/http/PaymentRequired.js +9 -0
  39. package/dist/cjs/src/error/http/PreconditionFailed.js +9 -0
  40. package/dist/cjs/src/error/http/PreconditionRequired.js +9 -0
  41. package/dist/cjs/src/error/http/ProxyAuthenticationRequired.js +9 -0
  42. package/dist/cjs/src/error/http/RequestHeaderFieldsTooLarge.js +9 -0
  43. package/dist/cjs/src/error/http/ServiceUnavailable.js +9 -0
  44. package/dist/cjs/src/error/http/TooManyRequests.js +9 -0
  45. package/dist/cjs/src/error/http/Unauthorized.js +9 -0
  46. package/dist/cjs/src/error/http/UnavailableForLegalReasons.js +9 -0
  47. package/dist/cjs/src/error/http/UnprocessableContent.js +9 -0
  48. package/dist/cjs/src/error/http/UnsupportedMediaType.js +9 -0
  49. package/dist/cjs/src/error/http/index.js +22 -0
  50. package/dist/cjs/src/error/http/router/index.js +18 -0
  51. package/dist/cjs/src/error/http/router/missing-controller-method.js +20 -0
  52. package/dist/cjs/src/error/http/router/missing-controller.js +17 -0
  53. package/dist/cjs/src/error/http/status-codes.js +311 -0
  54. package/dist/cjs/src/error/model/index.js +5 -0
  55. package/dist/cjs/src/error/openapi/CannotFlattenMultiplePolymorphicRendersOneAssociations.js +22 -0
  56. package/dist/cjs/src/error/psychic-application/init-missing-api-root.js +21 -0
  57. package/dist/cjs/src/error/psychic-application/init-missing-call-to-load-controllers.js +21 -0
  58. package/dist/cjs/src/error/psychic-application/init-missing-routes-callback.js +23 -0
  59. package/dist/cjs/src/error/psychic-application/invalid-encryption-key.js +20 -0
  60. package/dist/cjs/src/error/router/cannot-find-inferred-controller-from-provided-namespace.js +42 -0
  61. package/dist/cjs/src/error/router/cannot-infer-controller-from-top-level-route.js +39 -0
  62. package/dist/cjs/src/error/ws/MissingWsRedisConnection.js +32 -0
  63. package/dist/cjs/src/generate/controller.js +107 -0
  64. package/dist/cjs/src/generate/helpers/addResourceToRoutes.js +64 -0
  65. package/dist/cjs/src/generate/helpers/generateControllerContent.js +191 -0
  66. package/dist/cjs/src/generate/helpers/generateControllerSpecContent.js +9 -0
  67. package/dist/cjs/src/generate/helpers/generateResourceControllerSpecContent.js +199 -0
  68. package/dist/cjs/src/generate/helpers/migrationTimestamp.js +6 -0
  69. package/dist/cjs/src/generate/resource.js +19 -0
  70. package/dist/cjs/src/helpers/EnvInternal.js +5 -0
  71. package/dist/cjs/src/helpers/autogeneratedFileDisclaimer.js +71 -0
  72. package/dist/cjs/src/helpers/cookieMaxAgeFromCookieOpts.js +20 -0
  73. package/dist/cjs/src/helpers/error/errorIsRescuableHttpError.js +8 -0
  74. package/dist/cjs/src/helpers/error/httpErrorClasses.js +76 -0
  75. package/dist/cjs/src/helpers/importFileWithDefault.js +14 -0
  76. package/dist/cjs/src/helpers/importFileWithNamedExport.js +12 -0
  77. package/dist/cjs/src/helpers/isOpenapiError.js +6 -0
  78. package/dist/cjs/src/helpers/isUuid.js +8 -0
  79. package/dist/cjs/src/helpers/loadEnv.js +5 -0
  80. package/dist/cjs/src/helpers/openapiJsonPath.js +9 -0
  81. package/dist/cjs/src/helpers/pascalizeFileName.js +10 -0
  82. package/dist/cjs/src/helpers/path/psychicFileAndDirPaths.js +16 -0
  83. package/dist/cjs/src/helpers/path/psychicPath.js +18 -0
  84. package/dist/cjs/src/helpers/path/relativePsychicPath.js +43 -0
  85. package/dist/cjs/src/helpers/path/updirsFromPath.js +11 -0
  86. package/dist/cjs/src/helpers/path.js +11 -0
  87. package/dist/cjs/src/helpers/pathifyNestedObject.js +14 -0
  88. package/dist/cjs/src/helpers/sspawn.js +26 -0
  89. package/dist/cjs/src/helpers/typeHelpers.js +2 -0
  90. package/dist/cjs/src/helpers/typechecks.js +20 -0
  91. package/dist/cjs/src/i18n/conf/I18nDefaultLocales.js +31 -0
  92. package/dist/cjs/src/i18n/conf/types.js +2 -0
  93. package/dist/cjs/src/i18n/provider.js +96 -0
  94. package/dist/cjs/src/index.js +104 -0
  95. package/dist/cjs/src/openapi-renderer/app.js +153 -0
  96. package/dist/cjs/src/openapi-renderer/body-segment.js +514 -0
  97. package/dist/cjs/src/openapi-renderer/defaults.js +84 -0
  98. package/dist/cjs/src/openapi-renderer/endpoint.js +930 -0
  99. package/dist/cjs/src/openapi-renderer/helpers/isBlankDescription.js +13 -0
  100. package/dist/cjs/src/openapi-renderer/helpers/openapiRoute.js +7 -0
  101. package/dist/cjs/src/openapi-renderer/serializer.js +321 -0
  102. package/dist/cjs/src/psychic-application/cache.js +17 -0
  103. package/dist/cjs/src/psychic-application/helpers/PsychicImporter.js +15 -0
  104. package/dist/cjs/src/psychic-application/helpers/globalControllerKeyFromPath.js +11 -0
  105. package/dist/cjs/src/psychic-application/helpers/import/importControllers.js +56 -0
  106. package/dist/cjs/src/psychic-application/helpers/loadAppEnv.js +5 -0
  107. package/dist/cjs/src/psychic-application/helpers/lookupClassByGlobalName.js +16 -0
  108. package/dist/cjs/src/psychic-application/index.js +346 -0
  109. package/dist/cjs/src/psychic-application/logo.js +77 -0
  110. package/dist/cjs/src/psychic-application/types.js +2 -0
  111. package/dist/cjs/src/router/helpers.js +138 -0
  112. package/dist/cjs/src/router/index.js +282 -0
  113. package/dist/cjs/src/router/route-manager.js +14 -0
  114. package/dist/cjs/src/router/types.js +6 -0
  115. package/dist/cjs/src/server/front-end-client.js +15 -0
  116. package/dist/cjs/src/server/helpers/startPsychicServer.js +39 -0
  117. package/dist/cjs/src/server/index.js +192 -0
  118. package/dist/cjs/src/server/params.js +370 -0
  119. package/dist/cjs/src/session/index.js +38 -0
  120. package/dist/esm/src/bin/helpers/enumsAndTheirValues.js +14 -0
  121. package/dist/esm/src/bin/helpers/enumsFileStr.js +18 -0
  122. package/dist/esm/src/bin/helpers/generateRouteTypes.js +13 -0
  123. package/dist/esm/src/bin/helpers/printRoutes.js +51 -0
  124. package/dist/esm/src/bin/index.js +76 -0
  125. package/dist/esm/src/cli/helpers/TypesBuilder.js +23 -0
  126. package/dist/esm/src/cli/index.js +73 -0
  127. package/dist/esm/src/controller/decorators.js +81 -0
  128. package/dist/esm/src/controller/hooks.js +25 -0
  129. package/dist/esm/src/controller/index.js +566 -0
  130. package/dist/esm/src/encrypt/internal-encrypt.js +40 -0
  131. package/dist/esm/src/env/Loader.js +24 -0
  132. package/dist/esm/src/error/db/failed-to-connect.js +14 -0
  133. package/dist/esm/src/error/db/index.js +13 -0
  134. package/dist/esm/src/error/db/missing-options.js +14 -0
  135. package/dist/esm/src/error/encrypt/missing-cookie-encryption-options.js +24 -0
  136. package/dist/esm/src/error/http/BadGateway.js +6 -0
  137. package/dist/esm/src/error/http/BadRequest.js +6 -0
  138. package/dist/esm/src/error/http/Conflict.js +6 -0
  139. package/dist/esm/src/error/http/ContentTooLarge.js +6 -0
  140. package/dist/esm/src/error/http/ExpectationFailed.js +6 -0
  141. package/dist/esm/src/error/http/FailedDependency.js +6 -0
  142. package/dist/esm/src/error/http/Forbidden.js +6 -0
  143. package/dist/esm/src/error/http/GatewayTimeout.js +6 -0
  144. package/dist/esm/src/error/http/Gone.js +6 -0
  145. package/dist/esm/src/error/http/ImATeapot.js +6 -0
  146. package/dist/esm/src/error/http/InsufficientStorage.js +6 -0
  147. package/dist/esm/src/error/http/InternalServerError.js +6 -0
  148. package/dist/esm/src/error/http/Locked.js +6 -0
  149. package/dist/esm/src/error/http/MethodNotAllowed.js +6 -0
  150. package/dist/esm/src/error/http/MisdirectedRequest.js +6 -0
  151. package/dist/esm/src/error/http/NotAcceptable.js +6 -0
  152. package/dist/esm/src/error/http/NotExtended.js +6 -0
  153. package/dist/esm/src/error/http/NotFound.js +6 -0
  154. package/dist/esm/src/error/http/NotImplemented.js +6 -0
  155. package/dist/esm/src/error/http/PaymentRequired.js +6 -0
  156. package/dist/esm/src/error/http/PreconditionFailed.js +6 -0
  157. package/dist/esm/src/error/http/PreconditionRequired.js +6 -0
  158. package/dist/esm/src/error/http/ProxyAuthenticationRequired.js +6 -0
  159. package/dist/esm/src/error/http/RequestHeaderFieldsTooLarge.js +6 -0
  160. package/dist/esm/src/error/http/ServiceUnavailable.js +6 -0
  161. package/dist/esm/src/error/http/TooManyRequests.js +6 -0
  162. package/dist/esm/src/error/http/Unauthorized.js +6 -0
  163. package/dist/esm/src/error/http/UnavailableForLegalReasons.js +6 -0
  164. package/dist/esm/src/error/http/UnprocessableContent.js +6 -0
  165. package/dist/esm/src/error/http/UnsupportedMediaType.js +6 -0
  166. package/dist/esm/src/error/http/index.js +19 -0
  167. package/dist/esm/src/error/http/router/index.js +15 -0
  168. package/dist/esm/src/error/http/router/missing-controller-method.js +17 -0
  169. package/dist/esm/src/error/http/router/missing-controller.js +14 -0
  170. package/dist/esm/src/error/http/status-codes.js +309 -0
  171. package/dist/esm/src/error/model/index.js +2 -0
  172. package/dist/esm/src/error/openapi/CannotFlattenMultiplePolymorphicRendersOneAssociations.js +19 -0
  173. package/dist/esm/src/error/psychic-application/init-missing-api-root.js +18 -0
  174. package/dist/esm/src/error/psychic-application/init-missing-call-to-load-controllers.js +18 -0
  175. package/dist/esm/src/error/psychic-application/init-missing-routes-callback.js +20 -0
  176. package/dist/esm/src/error/psychic-application/invalid-encryption-key.js +17 -0
  177. package/dist/esm/src/error/router/cannot-find-inferred-controller-from-provided-namespace.js +39 -0
  178. package/dist/esm/src/error/router/cannot-infer-controller-from-top-level-route.js +36 -0
  179. package/dist/esm/src/error/ws/MissingWsRedisConnection.js +29 -0
  180. package/dist/esm/src/generate/controller.js +104 -0
  181. package/dist/esm/src/generate/helpers/addResourceToRoutes.js +60 -0
  182. package/dist/esm/src/generate/helpers/generateControllerContent.js +188 -0
  183. package/dist/esm/src/generate/helpers/generateControllerSpecContent.js +6 -0
  184. package/dist/esm/src/generate/helpers/generateResourceControllerSpecContent.js +196 -0
  185. package/dist/esm/src/generate/helpers/migrationTimestamp.js +3 -0
  186. package/dist/esm/src/generate/resource.js +16 -0
  187. package/dist/esm/src/helpers/EnvInternal.js +3 -0
  188. package/dist/esm/src/helpers/autogeneratedFileDisclaimer.js +68 -0
  189. package/dist/esm/src/helpers/cookieMaxAgeFromCookieOpts.js +17 -0
  190. package/dist/esm/src/helpers/error/errorIsRescuableHttpError.js +5 -0
  191. package/dist/esm/src/helpers/error/httpErrorClasses.js +72 -0
  192. package/dist/esm/src/helpers/importFileWithDefault.js +11 -0
  193. package/dist/esm/src/helpers/importFileWithNamedExport.js +9 -0
  194. package/dist/esm/src/helpers/isOpenapiError.js +3 -0
  195. package/dist/esm/src/helpers/isUuid.js +5 -0
  196. package/dist/esm/src/helpers/loadEnv.js +3 -0
  197. package/dist/esm/src/helpers/openapiJsonPath.js +6 -0
  198. package/dist/esm/src/helpers/pascalizeFileName.js +7 -0
  199. package/dist/esm/src/helpers/path/psychicFileAndDirPaths.js +13 -0
  200. package/dist/esm/src/helpers/path/psychicPath.js +15 -0
  201. package/dist/esm/src/helpers/path/relativePsychicPath.js +39 -0
  202. package/dist/esm/src/helpers/path/updirsFromPath.js +8 -0
  203. package/dist/esm/src/helpers/path.js +7 -0
  204. package/dist/esm/src/helpers/pathifyNestedObject.js +11 -0
  205. package/dist/esm/src/helpers/sspawn.js +22 -0
  206. package/dist/esm/src/helpers/typeHelpers.js +1 -0
  207. package/dist/esm/src/helpers/typechecks.js +16 -0
  208. package/dist/esm/src/i18n/conf/I18nDefaultLocales.js +29 -0
  209. package/dist/esm/src/i18n/conf/types.js +1 -0
  210. package/dist/esm/src/i18n/provider.js +89 -0
  211. package/dist/esm/src/index.js +50 -0
  212. package/dist/esm/src/openapi-renderer/app.js +150 -0
  213. package/dist/esm/src/openapi-renderer/body-segment.js +511 -0
  214. package/dist/esm/src/openapi-renderer/defaults.js +81 -0
  215. package/dist/esm/src/openapi-renderer/endpoint.js +925 -0
  216. package/dist/esm/src/openapi-renderer/helpers/isBlankDescription.js +10 -0
  217. package/dist/esm/src/openapi-renderer/helpers/openapiRoute.js +4 -0
  218. package/dist/esm/src/openapi-renderer/serializer.js +318 -0
  219. package/dist/esm/src/psychic-application/cache.js +12 -0
  220. package/dist/esm/src/psychic-application/helpers/PsychicImporter.js +12 -0
  221. package/dist/esm/src/psychic-application/helpers/globalControllerKeyFromPath.js +8 -0
  222. package/dist/esm/src/psychic-application/helpers/import/importControllers.js +51 -0
  223. package/dist/esm/src/psychic-application/helpers/loadAppEnv.js +3 -0
  224. package/dist/esm/src/psychic-application/helpers/lookupClassByGlobalName.js +13 -0
  225. package/dist/esm/src/psychic-application/index.js +343 -0
  226. package/dist/esm/src/psychic-application/logo.js +73 -0
  227. package/dist/esm/src/psychic-application/types.js +1 -0
  228. package/dist/esm/src/router/helpers.js +127 -0
  229. package/dist/esm/src/router/index.js +277 -0
  230. package/dist/esm/src/router/route-manager.js +11 -0
  231. package/dist/esm/src/router/types.js +3 -0
  232. package/dist/esm/src/server/front-end-client.js +12 -0
  233. package/dist/esm/src/server/helpers/startPsychicServer.js +35 -0
  234. package/dist/esm/src/server/index.js +189 -0
  235. package/dist/esm/src/server/params.js +365 -0
  236. package/dist/esm/src/session/index.js +35 -0
  237. package/dist/types/src/bin/helpers/enumsAndTheirValues.d.ts +1 -0
  238. package/dist/types/src/bin/helpers/enumsFileStr.d.ts +1 -0
  239. package/dist/types/src/bin/helpers/generateRouteTypes.d.ts +2 -0
  240. package/dist/types/src/bin/helpers/printRoutes.d.ts +1 -0
  241. package/dist/types/src/bin/index.d.ts +12 -0
  242. package/dist/types/src/cli/helpers/TypesBuilder.d.ts +7 -0
  243. package/dist/types/src/cli/index.d.ts +8 -0
  244. package/dist/types/src/controller/decorators.d.ts +28 -0
  245. package/dist/types/src/controller/hooks.d.ts +13 -0
  246. package/dist/types/src/controller/index.d.ts +209 -0
  247. package/dist/types/src/encrypt/internal-encrypt.d.ts +6 -0
  248. package/dist/types/src/env/Loader.d.ts +8 -0
  249. package/dist/types/src/error/db/failed-to-connect.d.ts +4 -0
  250. package/dist/types/src/error/db/index.d.ts +5 -0
  251. package/dist/types/src/error/db/missing-options.d.ts +4 -0
  252. package/dist/types/src/error/encrypt/missing-cookie-encryption-options.d.ts +3 -0
  253. package/dist/types/src/error/http/BadGateway.d.ts +4 -0
  254. package/dist/types/src/error/http/BadRequest.d.ts +4 -0
  255. package/dist/types/src/error/http/Conflict.d.ts +4 -0
  256. package/dist/types/src/error/http/ContentTooLarge.d.ts +4 -0
  257. package/dist/types/src/error/http/ExpectationFailed.d.ts +4 -0
  258. package/dist/types/src/error/http/FailedDependency.d.ts +4 -0
  259. package/dist/types/src/error/http/Forbidden.d.ts +4 -0
  260. package/dist/types/src/error/http/GatewayTimeout.d.ts +4 -0
  261. package/dist/types/src/error/http/Gone.d.ts +4 -0
  262. package/dist/types/src/error/http/ImATeapot.d.ts +4 -0
  263. package/dist/types/src/error/http/InsufficientStorage.d.ts +4 -0
  264. package/dist/types/src/error/http/InternalServerError.d.ts +4 -0
  265. package/dist/types/src/error/http/Locked.d.ts +4 -0
  266. package/dist/types/src/error/http/MethodNotAllowed.d.ts +4 -0
  267. package/dist/types/src/error/http/MisdirectedRequest.d.ts +4 -0
  268. package/dist/types/src/error/http/NotAcceptable.d.ts +4 -0
  269. package/dist/types/src/error/http/NotExtended.d.ts +4 -0
  270. package/dist/types/src/error/http/NotFound.d.ts +4 -0
  271. package/dist/types/src/error/http/NotImplemented.d.ts +4 -0
  272. package/dist/types/src/error/http/PaymentRequired.d.ts +4 -0
  273. package/dist/types/src/error/http/PreconditionFailed.d.ts +4 -0
  274. package/dist/types/src/error/http/PreconditionRequired.d.ts +4 -0
  275. package/dist/types/src/error/http/ProxyAuthenticationRequired.d.ts +4 -0
  276. package/dist/types/src/error/http/RequestHeaderFieldsTooLarge.d.ts +4 -0
  277. package/dist/types/src/error/http/ServiceUnavailable.d.ts +4 -0
  278. package/dist/types/src/error/http/TooManyRequests.d.ts +4 -0
  279. package/dist/types/src/error/http/Unauthorized.d.ts +4 -0
  280. package/dist/types/src/error/http/UnavailableForLegalReasons.d.ts +4 -0
  281. package/dist/types/src/error/http/UnprocessableContent.d.ts +4 -0
  282. package/dist/types/src/error/http/UnsupportedMediaType.d.ts +4 -0
  283. package/dist/types/src/error/http/index.d.ts +10 -0
  284. package/dist/types/src/error/http/router/index.d.ts +6 -0
  285. package/dist/types/src/error/http/router/missing-controller-method.d.ts +7 -0
  286. package/dist/types/src/error/http/router/missing-controller.d.ts +6 -0
  287. package/dist/types/src/error/http/status-codes.d.ts +312 -0
  288. package/dist/types/src/error/model/index.d.ts +2 -0
  289. package/dist/types/src/error/openapi/CannotFlattenMultiplePolymorphicRendersOneAssociations.d.ts +7 -0
  290. package/dist/types/src/error/psychic-application/init-missing-api-root.d.ts +4 -0
  291. package/dist/types/src/error/psychic-application/init-missing-call-to-load-controllers.d.ts +4 -0
  292. package/dist/types/src/error/psychic-application/init-missing-routes-callback.d.ts +4 -0
  293. package/dist/types/src/error/psychic-application/invalid-encryption-key.d.ts +4 -0
  294. package/dist/types/src/error/router/cannot-find-inferred-controller-from-provided-namespace.d.ts +15 -0
  295. package/dist/types/src/error/router/cannot-infer-controller-from-top-level-route.d.ts +8 -0
  296. package/dist/types/src/error/ws/MissingWsRedisConnection.d.ts +3 -0
  297. package/dist/types/src/generate/controller.d.ts +7 -0
  298. package/dist/types/src/generate/helpers/addResourceToRoutes.d.ts +7 -0
  299. package/dist/types/src/generate/helpers/generateControllerContent.d.ts +8 -0
  300. package/dist/types/src/generate/helpers/generateControllerSpecContent.d.ts +1 -0
  301. package/dist/types/src/generate/helpers/generateResourceControllerSpecContent.d.ts +6 -0
  302. package/dist/types/src/generate/helpers/migrationTimestamp.d.ts +1 -0
  303. package/dist/types/src/generate/resource.d.ts +5 -0
  304. package/dist/types/src/helpers/EnvInternal.d.ts +7 -0
  305. package/dist/types/src/helpers/autogeneratedFileDisclaimer.d.ts +1 -0
  306. package/dist/types/src/helpers/cookieMaxAgeFromCookieOpts.d.ts +2 -0
  307. package/dist/types/src/helpers/error/errorIsRescuableHttpError.d.ts +1 -0
  308. package/dist/types/src/helpers/error/httpErrorClasses.d.ts +3 -0
  309. package/dist/types/src/helpers/importFileWithDefault.d.ts +1 -0
  310. package/dist/types/src/helpers/importFileWithNamedExport.d.ts +1 -0
  311. package/dist/types/src/helpers/isOpenapiError.d.ts +8 -0
  312. package/dist/types/src/helpers/isUuid.d.ts +1 -0
  313. package/dist/types/src/helpers/loadEnv.d.ts +1 -0
  314. package/dist/types/src/helpers/openapiJsonPath.d.ts +1 -0
  315. package/dist/types/src/helpers/pascalizeFileName.d.ts +1 -0
  316. package/dist/types/src/helpers/path/psychicFileAndDirPaths.d.ts +5 -0
  317. package/dist/types/src/helpers/path/psychicPath.d.ts +4 -0
  318. package/dist/types/src/helpers/path/relativePsychicPath.d.ts +3 -0
  319. package/dist/types/src/helpers/path/updirsFromPath.d.ts +1 -0
  320. package/dist/types/src/helpers/path.d.ts +2 -0
  321. package/dist/types/src/helpers/pathifyNestedObject.d.ts +5 -0
  322. package/dist/types/src/helpers/sspawn.d.ts +2 -0
  323. package/dist/types/src/helpers/typeHelpers.d.ts +4 -0
  324. package/dist/types/src/helpers/typechecks.d.ts +2 -0
  325. package/dist/types/src/i18n/conf/I18nDefaultLocales.d.ts +2 -0
  326. package/dist/types/src/i18n/conf/types.d.ts +45 -0
  327. package/dist/types/src/i18n/provider.d.ts +26 -0
  328. package/dist/types/src/index.d.ts +61 -0
  329. package/dist/types/src/openapi-renderer/app.d.ts +21 -0
  330. package/dist/types/src/openapi-renderer/body-segment.d.ts +153 -0
  331. package/dist/types/src/openapi-renderer/defaults.d.ts +5 -0
  332. package/dist/types/src/openapi-renderer/endpoint.d.ts +410 -0
  333. package/dist/types/src/openapi-renderer/helpers/isBlankDescription.d.ts +1 -0
  334. package/dist/types/src/openapi-renderer/helpers/openapiRoute.d.ts +1 -0
  335. package/dist/types/src/openapi-renderer/serializer.d.ts +76 -0
  336. package/dist/types/src/psychic-application/cache.d.ts +4 -0
  337. package/dist/types/src/psychic-application/helpers/PsychicImporter.d.ts +4 -0
  338. package/dist/types/src/psychic-application/helpers/globalControllerKeyFromPath.d.ts +1 -0
  339. package/dist/types/src/psychic-application/helpers/import/importControllers.d.ts +5 -0
  340. package/dist/types/src/psychic-application/helpers/loadAppEnv.d.ts +1 -0
  341. package/dist/types/src/psychic-application/helpers/lookupClassByGlobalName.d.ts +1 -0
  342. package/dist/types/src/psychic-application/index.d.ts +164 -0
  343. package/dist/types/src/psychic-application/logo.d.ts +2 -0
  344. package/dist/types/src/psychic-application/types.d.ts +6 -0
  345. package/dist/types/src/router/helpers.d.ts +26 -0
  346. package/dist/types/src/router/index.d.ts +55 -0
  347. package/dist/types/src/router/route-manager.d.ts +17 -0
  348. package/dist/types/src/router/types.d.ts +11 -0
  349. package/dist/types/src/server/front-end-client.d.ts +5 -0
  350. package/dist/types/src/server/helpers/startPsychicServer.d.ts +14 -0
  351. package/dist/types/src/server/index.d.ts +34 -0
  352. package/dist/types/src/server/params.d.ts +80 -0
  353. package/dist/types/src/session/index.d.ts +12 -0
  354. package/package.json +98 -0
@@ -0,0 +1,6 @@
1
+ export type UUID = string;
2
+ export type PsychicHookEventType = 'boot' | 'sync' | 'load' | 'load:dev' | 'load:prod' | 'load:test' | 'server:init' | 'server:init:after-routes' | 'server:start' | 'server:error' | 'server:shutdown';
3
+ export type PsychicHookLoadEventTypes = Exclude<PsychicHookEventType, 'server:error' | 'server:init' | 'server:init:after-routes' | 'server:start' | 'server:shutdown' | 'sync'>;
4
+ type Only<T, U> = T & Partial<Record<Exclude<keyof U, keyof T>, never>>;
5
+ export type Either<T, U> = Only<T, U> | Only<U, T>;
6
+ export {};
@@ -0,0 +1,26 @@
1
+ import PsychicController from '../controller/index.js';
2
+ import { FunctionPropertyNames } from '../helpers/typeHelpers.js';
3
+ import PsychicRouter, { PsychicNestedRouter } from '../router/index.js';
4
+ import { ResourcesMethodType, ResourcesOptions } from './types.js';
5
+ export declare function routePath(routePath: string): string;
6
+ export declare function resourcePath(routePath: string): string;
7
+ export declare function sanitizedControllerPath(controllerName: string): string;
8
+ export declare function controllerGlobalNameFromControllerPath(controllerName: string): string;
9
+ export declare function namespacedRoute(namespace: string, route: string): string;
10
+ export declare function namespacedControllerActionString(namespace: string, controllerActionString: string): string;
11
+ type RoutingMechanism = PsychicRouter | PsychicNestedRouter;
12
+ type LookupOpts = {
13
+ resourceName?: string;
14
+ httpMethod: string;
15
+ path: string;
16
+ };
17
+ export declare function lookupControllerOrFail(routingMechanism: RoutingMechanism, opts: LookupOpts): typeof PsychicController;
18
+ export type PsychicControllerActions<T extends typeof PsychicController> = Exclude<FunctionPropertyNames<Required<InstanceType<T>>>, FunctionPropertyNames<PsychicController>>;
19
+ export interface NamespaceConfig {
20
+ namespace: string;
21
+ resourceful: boolean;
22
+ isScope: boolean;
23
+ }
24
+ export declare function applyResourcesAction(path: string, action: ResourcesMethodType, routingMechanism: RoutingMechanism, options?: ResourcesOptions): void;
25
+ export declare function applyResourceAction(path: string, action: ResourcesMethodType, routingMechanism: PsychicRouter | PsychicNestedRouter, options?: ResourcesOptions): void;
26
+ export {};
@@ -0,0 +1,55 @@
1
+ import { Application, Request, Response, Router } from 'express';
2
+ import PsychicController from '../controller/index.js';
3
+ import PsychicApplication from '../psychic-application/index.js';
4
+ import { NamespaceConfig, PsychicControllerActions } from '../router/helpers.js';
5
+ import RouteManager from './route-manager.js';
6
+ import { HttpMethod, ResourcesOptions } from './types.js';
7
+ export default class PsychicRouter {
8
+ app: Application;
9
+ config: PsychicApplication;
10
+ currentNamespaces: NamespaceConfig[];
11
+ routeManager: RouteManager;
12
+ constructor(app: Application, config: PsychicApplication);
13
+ get routingMechanism(): Application | Router;
14
+ get routes(): import("./route-manager.js").RouteConfig[];
15
+ private get currentNamespacePaths();
16
+ commit(): void;
17
+ get(path: string): void;
18
+ get<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
19
+ post(path: string): void;
20
+ post<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
21
+ put(path: string): void;
22
+ put<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
23
+ patch(path: string): void;
24
+ patch<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
25
+ delete(path: string): void;
26
+ delete<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
27
+ options(path: string): void;
28
+ options<T extends typeof PsychicController>(path: string, controller: T, action: PsychicControllerActions<T>): void;
29
+ private prefixPathWithNamespaces;
30
+ crud(httpMethod: HttpMethod, path: string): void;
31
+ crud(httpMethod: HttpMethod, path: string, controller: typeof PsychicController, action: string): void;
32
+ namespace(namespace: string, cb: (router: PsychicNestedRouter) => void): void;
33
+ scope(scope: string, cb: (router: PsychicNestedRouter) => void): void;
34
+ resources(path: string, optionsOrCb?: ResourcesOptions | ((router: PsychicNestedRouter) => void), cb?: (router: PsychicNestedRouter) => void): void;
35
+ resource(path: string, optionsOrCb?: ResourcesOptions | ((router: PsychicNestedRouter) => void), cb?: (router: PsychicNestedRouter) => void): void;
36
+ collection(cb: (router: PsychicNestedRouter) => void): void;
37
+ private makeResource;
38
+ private _makeResource;
39
+ private runNestedCallbacks;
40
+ private addNamespace;
41
+ private removeLastNamespace;
42
+ private makeRoomForNewIdParam;
43
+ handle(controller: typeof PsychicController, action: string, { req, res, }: {
44
+ req: Request;
45
+ res: Response;
46
+ }): Promise<void>;
47
+ _initializeController(ControllerClass: typeof PsychicController, req: Request, res: Response, action: string): PsychicController;
48
+ }
49
+ export declare class PsychicNestedRouter extends PsychicRouter {
50
+ router: Router;
51
+ constructor(app: Application, config: PsychicApplication, routeManager: RouteManager, { namespaces, }?: {
52
+ namespaces?: NamespaceConfig[];
53
+ });
54
+ get routingMechanism(): Router;
55
+ }
@@ -0,0 +1,17 @@
1
+ import PsychicController from '../controller/index.js';
2
+ import { HttpMethod } from './types.js';
3
+ export default class RouteManager {
4
+ routes: RouteConfig[];
5
+ addRoute({ httpMethod, path, controller, action, }: {
6
+ httpMethod: HttpMethod;
7
+ path: string;
8
+ controller: typeof PsychicController;
9
+ action: string;
10
+ }): void;
11
+ }
12
+ export interface RouteConfig {
13
+ controller: typeof PsychicController;
14
+ action: string;
15
+ path: string;
16
+ httpMethod: HttpMethod;
17
+ }
@@ -0,0 +1,11 @@
1
+ import PsychicController from '../controller/index.js';
2
+ export type ResourcesMethodType = 'index' | 'create' | 'update' | 'show' | 'destroy';
3
+ export declare const ResourcesMethods: ResourcesMethodType[];
4
+ export declare const ResourceMethods: ResourcesMethodType[];
5
+ export declare const HttpMethods: readonly ["get", "post", "put", "patch", "delete", "options"];
6
+ export type HttpMethod = (typeof HttpMethods)[number];
7
+ export interface ResourcesOptions {
8
+ only?: ResourcesMethodType[];
9
+ except?: ResourcesMethodType[];
10
+ controller?: typeof PsychicController;
11
+ }
@@ -0,0 +1,5 @@
1
+ export default class FrontEndClientServer {
2
+ private child;
3
+ start(port?: number): void;
4
+ stop(): void;
5
+ }
@@ -0,0 +1,14 @@
1
+ import { Application } from 'express';
2
+ import * as http from 'http';
3
+ import { Server } from 'http';
4
+ import * as https from 'https';
5
+ import { PsychicSslCredentials } from '../../psychic-application/index.js';
6
+ export interface StartPsychicServerOptions {
7
+ app: Application;
8
+ port: number;
9
+ withFrontEndClient: boolean;
10
+ frontEndPort: number;
11
+ sslCredentials: PsychicSslCredentials | undefined;
12
+ }
13
+ export default function startPsychicServer({ app, port, withFrontEndClient, frontEndPort, sslCredentials, }: StartPsychicServerOptions): Promise<Server>;
14
+ export declare function createPsychicHttpInstance(app: Application, sslCredentials: PsychicSslCredentials | undefined): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> | https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
@@ -0,0 +1,34 @@
1
+ import { Application } from 'express';
2
+ import { Server } from 'http';
3
+ import PsychicApplication, { PsychicSslCredentials } from '../psychic-application/index.js';
4
+ import FrontEndClientServer from './front-end-client.js';
5
+ import { StartPsychicServerOptions } from './helpers/startPsychicServer.js';
6
+ export default class PsychicServer {
7
+ static startPsychicServer(opts: StartPsychicServerOptions): Promise<Server>;
8
+ static createPsychicHttpInstance(app: Application, sslCredentials: PsychicSslCredentials | undefined): Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
9
+ static asciiLogo(): string;
10
+ expressApp: Application;
11
+ frontEndClient: FrontEndClientServer;
12
+ httpServer: Server;
13
+ private booted;
14
+ constructor();
15
+ get config(): PsychicApplication;
16
+ routes(): Promise<import("../router/route-manager.js").RouteConfig[]>;
17
+ boot(): Promise<true | undefined>;
18
+ start(port?: number, { withFrontEndClient, frontEndPort, }?: {
19
+ withFrontEndClient?: boolean;
20
+ frontEndPort?: number;
21
+ }): Promise<boolean>;
22
+ attach(id: string, obj: any): void;
23
+ $attached: Record<string, any>;
24
+ private shutdownAndExit;
25
+ stop({ bypassClosingDbConnections }?: {
26
+ bypassClosingDbConnections?: boolean;
27
+ }): Promise<void>;
28
+ serveForRequestSpecs(block: () => void | Promise<void>): Promise<boolean>;
29
+ buildApp(): void;
30
+ private initializeCors;
31
+ private initializeJSON;
32
+ private initializeOpenapiValidation;
33
+ private buildRoutes;
34
+ }
@@ -0,0 +1,80 @@
1
+ import { CalendarDate, Dream, DreamParamSafeAttributes, DreamParamSafeColumnNames } from '@rvoh/dream';
2
+ import { DateTime } from 'luxon';
3
+ import { PsychicParamsDictionary, PsychicParamsPrimitive, PsychicParamsPrimitiveLiterals } from '../controller/index.js';
4
+ export default class Params {
5
+ /**
6
+ * ### .for
7
+ *
8
+ * given an object with key value pairs, it will validate
9
+ * each field based on the underlying schema of the passed dream model class
10
+ *
11
+ * ```ts
12
+ *
13
+ * // from within your controller...
14
+ *
15
+ * // raise error if not matching attributes for User model
16
+ * const params = Params.for(this.params.user, User)
17
+ * ```
18
+ */
19
+ static for<T extends typeof Dream, I extends InstanceType<T>, const OnlyArray extends readonly (keyof DreamParamSafeAttributes<I>)[], ForOpts extends ParamsForOpts<OnlyArray>, ParamSafeColumnsOverride extends I['paramSafeColumns' & keyof I] extends never ? undefined : I['paramSafeColumns' & keyof I] & string[], ParamSafeColumns extends ParamSafeColumnsOverride extends string[] | Readonly<string[]> ? Extract<DreamParamSafeColumnNames<I>, ParamSafeColumnsOverride[number] & DreamParamSafeColumnNames<I>>[] : DreamParamSafeColumnNames<I>[], ReturnPartialType extends ForOpts['only'] extends readonly (keyof DreamParamSafeAttributes<InstanceType<T>>)[] ? Partial<{
20
+ [K in Extract<ParamSafeColumns[number], ForOpts['only'][number & keyof ForOpts['only']]>]: DreamParamSafeAttributes<InstanceType<T>>[K];
21
+ }> : Partial<{
22
+ [K in ParamSafeColumns[number & keyof ParamSafeColumns] & string]: DreamParamSafeAttributes<InstanceType<T>>[K & keyof DreamParamSafeAttributes<InstanceType<T>>];
23
+ }>, ReturnPayload extends ForOpts['array'] extends true ? ReturnPartialType[] : ReturnPartialType>(params: object, dreamClass: T, forOpts?: ForOpts): ReturnPayload;
24
+ static restrict<T extends typeof Params>(this: T, params: PsychicParamsPrimitive | PsychicParamsDictionary | PsychicParamsDictionary[], allowed: string[]): PsychicParamsDictionary;
25
+ /**
26
+ * ### .cast
27
+ *
28
+ * Returns the param requested if it passes validation
29
+ * for the type specified. If the param is not of the type
30
+ * specified, an error is raised.
31
+ *
32
+ * ```ts
33
+ *
34
+ * // from within your controller...
35
+ *
36
+ * // raise error if not string
37
+ * Params.cast(this.params.id, 'string')
38
+ *
39
+ * // raise error if not number
40
+ * Params.cast(this.params.amount, 'number')
41
+ *
42
+ * // raise error if not array of integers
43
+ * Params.cast(this.params.amounts, 'integer[]')
44
+ *
45
+ * // raise error if not 'chalupas' or 'other'
46
+ * Params.cast(this.params.stuff, 'string', { enum: ['chalupas', 'other'] })
47
+ * ```
48
+ */
49
+ static cast<const EnumType extends readonly string[], OptsType extends ParamsCastOptions<EnumType>, ExpectedType extends (typeof PsychicParamsPrimitiveLiterals)[number] | RegExp, ValidatedType extends ValidatedReturnType<ExpectedType, OptsType>, AllowNullOrUndefined extends ValidatedAllowsNull<ExpectedType, OptsType>, FinalReturnType extends AllowNullOrUndefined extends true ? ValidatedType | null | undefined : ValidatedType>(param: PsychicParamsPrimitive, expectedType: ExpectedType, opts?: OptsType): FinalReturnType;
50
+ static casing<T extends typeof Params>(this: T, casing: 'snake' | 'camel'): Params;
51
+ private _casing;
52
+ constructor();
53
+ casing(casing: 'snake' | 'camel'): this;
54
+ cast<EnumType extends readonly string[], OptsType extends ParamsCastOptions<EnumType>, ExpectedType extends (typeof PsychicParamsPrimitiveLiterals)[number] | RegExp, ValidatedType extends ValidatedReturnType<ExpectedType, OptsType>, AllowNullOrUndefined extends ValidatedAllowsNull<ExpectedType, OptsType>, ReturnType extends AllowNullOrUndefined extends true ? ValidatedType | null | undefined : ValidatedType>(paramValue: PsychicParamsPrimitive | PsychicParamsDictionary | PsychicParamsDictionary[], expectedType: ExpectedType, opts?: OptsType): AllowNullOrUndefined extends true ? ValidatedType | null | undefined : ValidatedType;
55
+ restrict(param: PsychicParamsPrimitive | PsychicParamsDictionary | PsychicParamsDictionary[], allowed: string[]): PsychicParamsDictionary;
56
+ private matchRegexOrThrow;
57
+ private throwUnlessAllowNull;
58
+ private throw;
59
+ }
60
+ export declare class ParamValidationError extends Error {
61
+ }
62
+ export type ValidatedReturnType<ExpectedType, OptsType> = ExpectedType extends RegExp ? string : ExpectedType extends 'string' ? OptsType extends {
63
+ enum: infer EnumValue;
64
+ } ? EnumValue extends readonly string[] ? EnumValue[number] : never : string : ExpectedType extends 'number' ? number : ExpectedType extends 'datetime' ? DateTime : ExpectedType extends 'date' ? CalendarDate : ExpectedType extends 'bigint' ? string : ExpectedType extends 'integer' ? number : ExpectedType extends 'json' ? object : ExpectedType extends 'boolean' ? boolean : ExpectedType extends 'null' ? null : ExpectedType extends 'uuid' ? string : ExpectedType extends 'datetime[]' ? DateTime[] : ExpectedType extends 'date[]' ? CalendarDate[] : ExpectedType extends 'string[]' ? OptsType extends {
65
+ enum: infer EnumValue;
66
+ } ? EnumValue extends readonly string[] ? EnumValue[number][] : never : string[] : ExpectedType extends 'bigint[]' ? string[] : ExpectedType extends 'number[]' ? number[] : ExpectedType extends 'integer[]' ? number[] : ExpectedType extends 'boolean[]' ? boolean : ExpectedType extends 'null[]' ? null[] : ExpectedType extends 'uuid[]' ? string[] : never;
67
+ export type ValidatedAllowsNull<ExpectedType, OptsValue> = ExpectedType extends {
68
+ allowNull: infer R;
69
+ } ? R extends true ? true : R extends false ? false : never : OptsValue extends {
70
+ allowNull: infer RR;
71
+ } ? RR extends true ? true : RR extends false ? false : never : false;
72
+ export type ParamsCastOptions<EnumType> = {
73
+ allowNull?: boolean;
74
+ match?: RegExp;
75
+ enum?: EnumType;
76
+ };
77
+ export interface ParamsForOpts<OnlyArray> {
78
+ array?: boolean;
79
+ only?: OnlyArray;
80
+ }
@@ -0,0 +1,12 @@
1
+ import { CookieOptions, Request, Response } from 'express';
2
+ import { CustomCookieOptions } from '../psychic-application/index.js';
3
+ export default class Session {
4
+ private req;
5
+ private res;
6
+ constructor(req: Request, res: Response);
7
+ getCookie(name: string): unknown;
8
+ setCookie(name: string, data: string, opts?: CustomSessionCookieOptions): void;
9
+ clearCookie(name: string): void;
10
+ daysToMilliseconds(numDays: number): number;
11
+ }
12
+ export type CustomSessionCookieOptions = Omit<CookieOptions, 'maxAge'> & CustomCookieOptions;
package/package.json ADDED
@@ -0,0 +1,98 @@
1
+ {
2
+ "type": "module",
3
+ "name": "@rvoh/psychic",
4
+ "description": "Typescript web framework",
5
+ "version": "0.24.1",
6
+ "author": "RVOHealth",
7
+ "repository": "https://github.com/rvohealth/psychic.git",
8
+ "license": "MIT",
9
+ "main": "./dist/cjs/src/index.js",
10
+ "module": "./dist/esm/src/index.js",
11
+ "types": "./dist/types/src/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/types/src/index.d.ts",
15
+ "import": "./dist/esm/src/index.js",
16
+ "require": "./dist/cjs/src/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist/**/*"
21
+ ],
22
+ "scripts": {
23
+ "client": "yarn --cwd=./client start",
24
+ "psy": "yarn psyts",
25
+ "psyjs": "node ./dist/test-app/src/cli/index.js",
26
+ "psyts": "node --experimental-specifier-resolution=node --import=./node/esm.js ./test-app/src/cli/index.ts",
27
+ "psycore": "PSYCHIC_CORE_DEVELOPMENT=1 yarn psyts",
28
+ "gpsycore": "PSYCHIC_CORE_DEVELOPMENT=1 npx ts-node --transpile-only ./global-cli/main.ts",
29
+ "build": "echo \"building cjs...\" && rm -rf dist && npx tsc -p ./tsconfig.cjs.build.json && echo \"building esm...\" && npx tsc -p ./tsconfig.esm.build.json",
30
+ "build:core": "rm -rf dist && echo \"building core app to esm...\" && npx tsc -p ./tsconfig.esm.build.core.json && echo \"building core app to cjs...\" && npx tsc -p ./tsconfig.cjs.build.core.json",
31
+ "sync": "NODE_ENV=development yarn --cwd=node_modules/@rvohealth/dream build-boot && NODE_ENV=development yarn --cwd=node_modules/@rvohealth/dream build",
32
+ "syncb": "NODE_ENV=development yarn --cwd=node_modules/@rvohealth/dream build-boot && NODE_ENV=development yarn dream sync:config-cache && yarn --cwd=node_modules/@rvohealth/dream build && yarn build",
33
+ "dev": "PSYCHIC_CORE_DEVELOPMENT=1 NODE_ENV=development ts-node ./test-app/main.ts",
34
+ "console": "PSYCHIC_CORE_DEVELOPMENT=1 npx ts-node --transpile-only --project ./tsconfig.json ./test-app/src/conf/repl.ts",
35
+ "uspec": "PSYCHIC_CORE_DEVELOPMENT=1 vitest --config ./spec/unit/vite.config.ts",
36
+ "fspec": "PSYCHIC_CORE_DEVELOPMENT=1 vitest run --config=./spec/features/vite.config.ts",
37
+ "format": "yarn run prettier . --write",
38
+ "lint": "yarn run eslint --no-warn-ignored \"src/**/*.ts\" \"spec/**/*.ts\" \"test-app/**/*.ts\" && yarn run prettier . --check",
39
+ "prepack": "yarn build"
40
+ },
41
+ "dependencies": {
42
+ "@types/cookie-parser": "^1.4.7",
43
+ "@types/cors": "^2.8.17",
44
+ "@types/lodash.groupby": "^4.6.9",
45
+ "colorette": "^2.0.20",
46
+ "commander": "^12.1.0",
47
+ "cookie-parser": "^1.4.7",
48
+ "cors": "^2.8.5",
49
+ "dotenv": "^16.4.5",
50
+ "express-openapi-validator": "^5.4.3",
51
+ "iso-datestring-validator": "^2.2.2",
52
+ "lodash-es": "^4.17.21",
53
+ "lodash.clonedeep": "^4.5.0",
54
+ "lodash.groupby": "^4.6.0",
55
+ "pluralize-esm": "^9.0.5"
56
+ },
57
+ "peerDependencies": {
58
+ "@rvohealth/dream": "*",
59
+ "@types/express": "*",
60
+ "commander": "*",
61
+ "express": "*"
62
+ },
63
+ "devDependencies": {
64
+ "@eslint/js": "^9.19.0",
65
+ "@jest-mock/express": "^3.0.0",
66
+ "@rvoh/dream": "^0.29.1",
67
+ "@rvoh/dream-spec-helpers": "=0.1.0",
68
+ "@rvoh/psychic-spec-helpers": "=0.2.0",
69
+ "@types/express": "^4.17.21",
70
+ "@types/lodash-es": "^4",
71
+ "@types/lodash.clonedeep": "^4.5.9",
72
+ "@types/lodash.sortby": "^4.7.9",
73
+ "@types/luxon": "^3.4.2",
74
+ "@types/node": "^22.5.1",
75
+ "@types/pg": "^8.11.8",
76
+ "@types/supertest": "^6.0.2",
77
+ "eslint": "^9.19.0",
78
+ "express": "^4.21.1",
79
+ "jsdom": "^26.0.0",
80
+ "kysely": "^0.27.4",
81
+ "kysely-codegen": "~0.17.0",
82
+ "lodash.sortby": "^4.7.0",
83
+ "luxon": "^3.5.0",
84
+ "luxon-jest-matchers": "^0.1.14",
85
+ "pg": "^8.12.0",
86
+ "prettier": "^3.3.3",
87
+ "puppeteer": "^24.4.0",
88
+ "supertest": "^7.0.0",
89
+ "ts-node": "^10.9.2",
90
+ "tslib": "^2.7.0",
91
+ "typedoc": "^0.26.6",
92
+ "typescript": "^5.5.4",
93
+ "typescript-eslint": "=7.18.0",
94
+ "vitest": "^3.0.8",
95
+ "winston": "^3.14.2"
96
+ },
97
+ "packageManager": "yarn@4.4.1"
98
+ }