@ug.software/opposer 3.0.10

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 (447) hide show
  1. package/README.md +504 -0
  2. package/lib/bin/commands/build.js +75 -0
  3. package/lib/bin/commands/generate/api-key.js +28 -0
  4. package/lib/bin/commands/generate/jwt-key.js +46 -0
  5. package/lib/bin/commands/init.js +169 -0
  6. package/lib/bin/helpers/crypto.js +33 -0
  7. package/lib/bin/opposer.js +26 -0
  8. package/lib/cjs/examples/full-app/index.d.ts +1 -0
  9. package/lib/cjs/examples/full-app/index.js +102 -0
  10. package/lib/cjs/examples/full-app/models/author.d.ts +7 -0
  11. package/lib/cjs/examples/full-app/models/author.js +42 -0
  12. package/lib/cjs/examples/full-app/models/book.d.ts +9 -0
  13. package/lib/cjs/examples/full-app/models/book.js +51 -0
  14. package/lib/cjs/examples/full-app/models/category.d.ts +4 -0
  15. package/lib/cjs/examples/full-app/models/category.js +26 -0
  16. package/lib/cjs/examples/full-app/schedules/catalog-refresh.d.ts +28 -0
  17. package/lib/cjs/examples/full-app/schedules/catalog-refresh.js +149 -0
  18. package/lib/cjs/examples/full-app/schedules/inventory-sync.d.ts +12 -0
  19. package/lib/cjs/examples/full-app/schedules/inventory-sync.js +61 -0
  20. package/lib/cjs/examples/full-app/schedules/library-alerts.d.ts +11 -0
  21. package/lib/cjs/examples/full-app/schedules/library-alerts.js +55 -0
  22. package/lib/cjs/examples/minimal/src/handlers/book.d.ts +11 -0
  23. package/lib/cjs/examples/minimal/src/handlers/book.js +51 -0
  24. package/lib/cjs/examples/minimal/src/index.d.ts +1 -0
  25. package/lib/cjs/examples/minimal/src/index.js +14 -0
  26. package/lib/cjs/examples/minimal/src/models/books.d.ts +4 -0
  27. package/lib/cjs/examples/minimal/src/models/books.js +26 -0
  28. package/lib/cjs/examples/orm/models/permission.d.ts +6 -0
  29. package/lib/cjs/examples/orm/models/permission.js +38 -0
  30. package/lib/cjs/examples/orm/models/profile.d.ts +7 -0
  31. package/lib/cjs/examples/orm/models/profile.js +42 -0
  32. package/lib/cjs/examples/orm/models/user.d.ts +11 -0
  33. package/lib/cjs/examples/orm/models/user.js +70 -0
  34. package/lib/cjs/examples/orm/mysql/index.d.ts +1 -0
  35. package/lib/cjs/examples/orm/mysql/index.js +44 -0
  36. package/lib/cjs/examples/orm/postgres/index.d.ts +1 -0
  37. package/lib/cjs/examples/orm/postgres/index.js +40 -0
  38. package/lib/cjs/examples/orm/sqlite/index.d.ts +1 -0
  39. package/lib/cjs/examples/orm/sqlite/index.js +41 -0
  40. package/lib/cjs/index.d.ts +2 -0
  41. package/lib/cjs/index.js +23 -0
  42. package/lib/cjs/interfaces/controller.d.ts +109 -0
  43. package/lib/cjs/interfaces/controller.js +2 -0
  44. package/lib/cjs/interfaces/field.d.ts +23 -0
  45. package/lib/cjs/interfaces/field.js +2 -0
  46. package/lib/cjs/interfaces/handler.d.ts +18 -0
  47. package/lib/cjs/interfaces/handler.js +2 -0
  48. package/lib/cjs/interfaces/jwt.d.ts +21 -0
  49. package/lib/cjs/interfaces/jwt.js +2 -0
  50. package/lib/cjs/interfaces/model.d.ts +9 -0
  51. package/lib/cjs/interfaces/model.js +2 -0
  52. package/lib/cjs/interfaces/request.d.ts +13 -0
  53. package/lib/cjs/interfaces/request.js +2 -0
  54. package/lib/cjs/interfaces/schema.d.ts +9 -0
  55. package/lib/cjs/interfaces/schema.js +2 -0
  56. package/lib/cjs/interfaces/security.d.ts +32 -0
  57. package/lib/cjs/interfaces/security.js +2 -0
  58. package/lib/cjs/interfaces/server.d.ts +37 -0
  59. package/lib/cjs/interfaces/server.js +2 -0
  60. package/lib/cjs/interfaces/system.d.ts +41 -0
  61. package/lib/cjs/interfaces/system.js +2 -0
  62. package/lib/cjs/orm/decorators/index.d.ts +33 -0
  63. package/lib/cjs/orm/decorators/index.js +131 -0
  64. package/lib/cjs/orm/driver/mysql.d.ts +14 -0
  65. package/lib/cjs/orm/driver/mysql.js +103 -0
  66. package/lib/cjs/orm/driver/postgres.d.ts +14 -0
  67. package/lib/cjs/orm/driver/postgres.js +105 -0
  68. package/lib/cjs/orm/driver/sqlite.d.ts +14 -0
  69. package/lib/cjs/orm/driver/sqlite.js +143 -0
  70. package/lib/cjs/orm/index.d.ts +8 -0
  71. package/lib/cjs/orm/index.js +28 -0
  72. package/lib/cjs/orm/metadata.d.ts +47 -0
  73. package/lib/cjs/orm/metadata.js +47 -0
  74. package/lib/cjs/orm/opposer.d.ts +30 -0
  75. package/lib/cjs/orm/opposer.js +33 -0
  76. package/lib/cjs/orm/query-builder.d.ts +32 -0
  77. package/lib/cjs/orm/query-builder.js +278 -0
  78. package/lib/cjs/orm/repository.d.ts +54 -0
  79. package/lib/cjs/orm/repository.js +325 -0
  80. package/lib/cjs/orm/validation.d.ts +44 -0
  81. package/lib/cjs/orm/validation.js +128 -0
  82. package/lib/cjs/package.json +3 -0
  83. package/lib/cjs/persistent/cache/core-context.d.ts +17 -0
  84. package/lib/cjs/persistent/cache/core-context.js +39 -0
  85. package/lib/cjs/persistent/cache/global.d.ts +18 -0
  86. package/lib/cjs/persistent/cache/global.js +22 -0
  87. package/lib/cjs/persistent/cache/index.d.ts +3 -0
  88. package/lib/cjs/persistent/cache/index.js +12 -0
  89. package/lib/cjs/persistent/cache/session.d.ts +19 -0
  90. package/lib/cjs/persistent/cache/session.js +39 -0
  91. package/lib/cjs/persistent/cache/storage.d.ts +14 -0
  92. package/lib/cjs/persistent/cache/storage.js +88 -0
  93. package/lib/cjs/persistent/cache/store.d.ts +16 -0
  94. package/lib/cjs/persistent/cache/store.js +112 -0
  95. package/lib/cjs/persistent/context/index.d.ts +3 -0
  96. package/lib/cjs/persistent/context/index.js +5 -0
  97. package/lib/cjs/persistent/decorators/global.d.ts +1 -0
  98. package/lib/cjs/persistent/decorators/global.js +25 -0
  99. package/lib/cjs/persistent/decorators/session.d.ts +1 -0
  100. package/lib/cjs/persistent/decorators/session.js +27 -0
  101. package/lib/cjs/persistent/index.d.ts +6 -0
  102. package/lib/cjs/persistent/index.js +18 -0
  103. package/lib/cjs/persistent/interfaces/context.d.ts +5 -0
  104. package/lib/cjs/persistent/interfaces/context.js +2 -0
  105. package/lib/cjs/persistent/interfaces/system.d.ts +47 -0
  106. package/lib/cjs/persistent/interfaces/system.js +29 -0
  107. package/lib/cjs/persistent/system/index.d.ts +7 -0
  108. package/lib/cjs/persistent/system/index.js +44 -0
  109. package/lib/cjs/persistent/utils/memory.d.ts +8 -0
  110. package/lib/cjs/persistent/utils/memory.js +44 -0
  111. package/lib/cjs/persistent/utils/timer.d.ts +14 -0
  112. package/lib/cjs/persistent/utils/timer.js +21 -0
  113. package/lib/cjs/playground/build/client/assets/AddRounded-ByHfnsiW.js +4 -0
  114. package/lib/cjs/playground/build/client/assets/Button-DLrxHRm7.js +1 -0
  115. package/lib/cjs/playground/build/client/assets/Container-CgITmmbk.js +1 -0
  116. package/lib/cjs/playground/build/client/assets/Divider-B_Wx9srO.js +1 -0
  117. package/lib/cjs/playground/build/client/assets/List-juBjUmfP.js +1 -0
  118. package/lib/cjs/playground/build/client/assets/ListItemText-DgWZmgzc.js +1 -0
  119. package/lib/cjs/playground/build/client/assets/MenuItem-D_5SuVKQ.js +1 -0
  120. package/lib/cjs/playground/build/client/assets/Modal-BwXR_5Bh.js +1 -0
  121. package/lib/cjs/playground/build/client/assets/TableRow-B9hAmlnV.js +2 -0
  122. package/lib/cjs/playground/build/client/assets/TextField-UybdTIGB.js +3 -0
  123. package/lib/cjs/playground/build/client/assets/Tooltip-BGcUWUcF.js +1 -0
  124. package/lib/cjs/playground/build/client/assets/auth-CD1rXHzz.js +1 -0
  125. package/lib/cjs/playground/build/client/assets/auth-GyTIVKy5.js +1 -0
  126. package/lib/cjs/playground/build/client/assets/confirm-Dr0pbiV6.js +1 -0
  127. package/lib/cjs/playground/build/client/assets/dividerClasses-CIiqeEPO.js +1 -0
  128. package/lib/cjs/playground/build/client/assets/entry.client-D6FYz1yh.js +13 -0
  129. package/lib/cjs/playground/build/client/assets/index-CJ0wdt6Z.js +1 -0
  130. package/lib/cjs/playground/build/client/assets/index-CQc11yq_.js +1153 -0
  131. package/lib/cjs/playground/build/client/assets/index-Cr4I-4J2.js +1 -0
  132. package/lib/cjs/playground/build/client/assets/index-CtPqstFl.js +26 -0
  133. package/lib/cjs/playground/build/client/assets/index-Ct_NE85o.js +1 -0
  134. package/lib/cjs/playground/build/client/assets/index-D0I6xwmb.js +1 -0
  135. package/lib/cjs/playground/build/client/assets/index-DmDCpKb3.js +1 -0
  136. package/lib/cjs/playground/build/client/assets/index-DsSkAwyn.js +1 -0
  137. package/lib/cjs/playground/build/client/assets/index-_DMgWZ3Y.js +1 -0
  138. package/lib/cjs/playground/build/client/assets/listItemIconClasses-39Itzgzt.js +1 -0
  139. package/lib/cjs/playground/build/client/assets/listItemTextClasses-EQFLPLzt.js +1 -0
  140. package/lib/cjs/playground/build/client/assets/manifest-c06e9a7f.js +1 -0
  141. package/lib/cjs/playground/build/client/assets/mergeSlotProps-DptgQgAT.js +1 -0
  142. package/lib/cjs/playground/build/client/assets/playground-Hl52p9f5.js +108 -0
  143. package/lib/cjs/playground/build/client/assets/root-CQTBmuv8.js +1 -0
  144. package/lib/cjs/playground/build/client/assets/toast-CsAH5FIf.js +1 -0
  145. package/lib/cjs/playground/build/client/assets/use-request-BZNkzlTr.js +1 -0
  146. package/lib/cjs/playground/build/client/favicon.ico +0 -0
  147. package/lib/cjs/playground/build/client/index.html +6 -0
  148. package/lib/cjs/playground/index.d.ts +2 -0
  149. package/lib/cjs/playground/index.js +135 -0
  150. package/lib/cjs/scheduler/controllers/index.d.ts +19 -0
  151. package/lib/cjs/scheduler/controllers/index.js +62 -0
  152. package/lib/cjs/scheduler/decorators/index.d.ts +9 -0
  153. package/lib/cjs/scheduler/decorators/index.js +21 -0
  154. package/lib/cjs/scheduler/handlers/index.d.ts +19 -0
  155. package/lib/cjs/scheduler/handlers/index.js +62 -0
  156. package/lib/cjs/scheduler/index.d.ts +24 -0
  157. package/lib/cjs/scheduler/index.js +110 -0
  158. package/lib/cjs/scheduler/models/history.d.ts +10 -0
  159. package/lib/cjs/scheduler/models/history.js +50 -0
  160. package/lib/cjs/server/constants/index.d.ts +78 -0
  161. package/lib/cjs/server/constants/index.js +372 -0
  162. package/lib/cjs/server/context/index.d.ts +17 -0
  163. package/lib/cjs/server/context/index.js +33 -0
  164. package/lib/cjs/server/controller/index.d.ts +3 -0
  165. package/lib/cjs/server/controller/index.js +217 -0
  166. package/lib/cjs/server/controllers/index.d.ts +5 -0
  167. package/lib/cjs/server/controllers/index.js +72 -0
  168. package/lib/cjs/server/core/index.d.ts +16 -0
  169. package/lib/cjs/server/core/index.js +110 -0
  170. package/lib/cjs/server/core/middleware/body-parser.d.ts +2 -0
  171. package/lib/cjs/server/core/middleware/body-parser.js +27 -0
  172. package/lib/cjs/server/core/middleware/cors.d.ts +4 -0
  173. package/lib/cjs/server/core/middleware/cors.js +32 -0
  174. package/lib/cjs/server/core/middleware/logger.d.ts +2 -0
  175. package/lib/cjs/server/core/middleware/logger.js +15 -0
  176. package/lib/cjs/server/decorators/controller.d.ts +3 -0
  177. package/lib/cjs/server/decorators/controller.js +14 -0
  178. package/lib/cjs/server/decorators/field.d.ts +2 -0
  179. package/lib/cjs/server/decorators/field.js +36 -0
  180. package/lib/cjs/server/decorators/handler.d.ts +3 -0
  181. package/lib/cjs/server/decorators/handler.js +14 -0
  182. package/lib/cjs/server/decorators/index.d.ts +7 -0
  183. package/lib/cjs/server/decorators/index.js +26 -0
  184. package/lib/cjs/server/decorators/is-public-method.d.ts +3 -0
  185. package/lib/cjs/server/decorators/is-public-method.js +16 -0
  186. package/lib/cjs/server/decorators/is-public.d.ts +3 -0
  187. package/lib/cjs/server/decorators/is-public.js +14 -0
  188. package/lib/cjs/server/decorators/method.d.ts +3 -0
  189. package/lib/cjs/server/decorators/method.js +16 -0
  190. package/lib/cjs/server/decorators/payload.d.ts +3 -0
  191. package/lib/cjs/server/decorators/payload.js +15 -0
  192. package/lib/cjs/server/handlers/index.d.ts +5 -0
  193. package/lib/cjs/server/handlers/index.js +72 -0
  194. package/lib/cjs/server/helpers/index.d.ts +17 -0
  195. package/lib/cjs/server/helpers/index.js +39 -0
  196. package/lib/cjs/server/index.d.ts +12 -0
  197. package/lib/cjs/server/index.js +176 -0
  198. package/lib/cjs/server/security/controller/auth.d.ts +76 -0
  199. package/lib/cjs/server/security/controller/auth.js +346 -0
  200. package/lib/cjs/server/security/index.d.ts +2 -0
  201. package/lib/cjs/server/security/index.js +10 -0
  202. package/lib/cjs/server/security/jwt/index.d.ts +23 -0
  203. package/lib/cjs/server/security/jwt/index.js +108 -0
  204. package/lib/cjs/server/security/middleware/autorization.d.ts +3 -0
  205. package/lib/cjs/server/security/middleware/autorization.js +46 -0
  206. package/lib/cjs/server/security/middleware/permission.d.ts +3 -0
  207. package/lib/cjs/server/security/middleware/permission.js +138 -0
  208. package/lib/cjs/server/security/models/crp.d.ts +8 -0
  209. package/lib/cjs/server/security/models/crp.js +42 -0
  210. package/lib/cjs/server/security/models/ke.d.ts +7 -0
  211. package/lib/cjs/server/security/models/ke.js +38 -0
  212. package/lib/cjs/server/security/models/rl.d.ts +9 -0
  213. package/lib/cjs/server/security/models/rl.js +50 -0
  214. package/lib/cjs/server/security/models/se.d.ts +11 -0
  215. package/lib/cjs/server/security/models/se.js +54 -0
  216. package/lib/cjs/server/security/models/usr.d.ts +14 -0
  217. package/lib/cjs/server/security/models/usr.js +82 -0
  218. package/lib/cjs/server/services/delete.d.ts +13 -0
  219. package/lib/cjs/server/services/delete.js +49 -0
  220. package/lib/cjs/server/services/get.d.ts +4 -0
  221. package/lib/cjs/server/services/get.js +145 -0
  222. package/lib/cjs/server/services/insert.d.ts +13 -0
  223. package/lib/cjs/server/services/insert.js +74 -0
  224. package/lib/cjs/server/services/update.d.ts +13 -0
  225. package/lib/cjs/server/services/update.js +60 -0
  226. package/lib/cjs/system/index.d.ts +13 -0
  227. package/lib/cjs/system/index.js +237 -0
  228. package/lib/esm/examples/full-app/index.d.ts +1 -0
  229. package/lib/esm/examples/full-app/index.js +64 -0
  230. package/lib/esm/examples/full-app/models/author.d.ts +7 -0
  231. package/lib/esm/examples/full-app/models/author.js +37 -0
  232. package/lib/esm/examples/full-app/models/book.d.ts +9 -0
  233. package/lib/esm/examples/full-app/models/book.js +46 -0
  234. package/lib/esm/examples/full-app/models/category.d.ts +4 -0
  235. package/lib/esm/examples/full-app/models/category.js +24 -0
  236. package/lib/esm/examples/full-app/schedules/catalog-refresh.d.ts +28 -0
  237. package/lib/esm/examples/full-app/schedules/catalog-refresh.js +143 -0
  238. package/lib/esm/examples/full-app/schedules/inventory-sync.d.ts +12 -0
  239. package/lib/esm/examples/full-app/schedules/inventory-sync.js +55 -0
  240. package/lib/esm/examples/full-app/schedules/library-alerts.d.ts +11 -0
  241. package/lib/esm/examples/full-app/schedules/library-alerts.js +52 -0
  242. package/lib/esm/examples/minimal/src/handlers/book.d.ts +11 -0
  243. package/lib/esm/examples/minimal/src/handlers/book.js +49 -0
  244. package/lib/esm/examples/minimal/src/index.d.ts +1 -0
  245. package/lib/esm/examples/minimal/src/index.js +9 -0
  246. package/lib/esm/examples/minimal/src/models/books.d.ts +4 -0
  247. package/lib/esm/examples/minimal/src/models/books.js +24 -0
  248. package/lib/esm/examples/orm/models/permission.d.ts +6 -0
  249. package/lib/esm/examples/orm/models/permission.js +33 -0
  250. package/lib/esm/examples/orm/models/profile.d.ts +7 -0
  251. package/lib/esm/examples/orm/models/profile.js +37 -0
  252. package/lib/esm/examples/orm/models/user.d.ts +11 -0
  253. package/lib/esm/examples/orm/models/user.js +65 -0
  254. package/lib/esm/examples/orm/mysql/index.d.ts +1 -0
  255. package/lib/esm/examples/orm/mysql/index.js +39 -0
  256. package/lib/esm/examples/orm/postgres/index.d.ts +1 -0
  257. package/lib/esm/examples/orm/postgres/index.js +35 -0
  258. package/lib/esm/examples/orm/sqlite/index.d.ts +1 -0
  259. package/lib/esm/examples/orm/sqlite/index.js +36 -0
  260. package/lib/esm/index.d.ts +2 -0
  261. package/lib/esm/index.js +2 -0
  262. package/lib/esm/interfaces/controller.d.ts +109 -0
  263. package/lib/esm/interfaces/controller.js +1 -0
  264. package/lib/esm/interfaces/field.d.ts +23 -0
  265. package/lib/esm/interfaces/field.js +1 -0
  266. package/lib/esm/interfaces/handler.d.ts +18 -0
  267. package/lib/esm/interfaces/handler.js +1 -0
  268. package/lib/esm/interfaces/jwt.d.ts +21 -0
  269. package/lib/esm/interfaces/jwt.js +1 -0
  270. package/lib/esm/interfaces/model.d.ts +9 -0
  271. package/lib/esm/interfaces/model.js +1 -0
  272. package/lib/esm/interfaces/request.d.ts +13 -0
  273. package/lib/esm/interfaces/request.js +1 -0
  274. package/lib/esm/interfaces/schema.d.ts +9 -0
  275. package/lib/esm/interfaces/schema.js +1 -0
  276. package/lib/esm/interfaces/security.d.ts +32 -0
  277. package/lib/esm/interfaces/security.js +1 -0
  278. package/lib/esm/interfaces/server.d.ts +37 -0
  279. package/lib/esm/interfaces/server.js +1 -0
  280. package/lib/esm/interfaces/system.d.ts +41 -0
  281. package/lib/esm/interfaces/system.js +1 -0
  282. package/lib/esm/orm/decorators/index.d.ts +33 -0
  283. package/lib/esm/orm/decorators/index.js +118 -0
  284. package/lib/esm/orm/driver/mysql.d.ts +14 -0
  285. package/lib/esm/orm/driver/mysql.js +66 -0
  286. package/lib/esm/orm/driver/postgres.d.ts +14 -0
  287. package/lib/esm/orm/driver/postgres.js +68 -0
  288. package/lib/esm/orm/driver/sqlite.d.ts +14 -0
  289. package/lib/esm/orm/driver/sqlite.js +106 -0
  290. package/lib/esm/orm/index.d.ts +8 -0
  291. package/lib/esm/orm/index.js +8 -0
  292. package/lib/esm/orm/metadata.d.ts +47 -0
  293. package/lib/esm/orm/metadata.js +43 -0
  294. package/lib/esm/orm/opposer.d.ts +30 -0
  295. package/lib/esm/orm/opposer.js +29 -0
  296. package/lib/esm/orm/query-builder.d.ts +32 -0
  297. package/lib/esm/orm/query-builder.js +274 -0
  298. package/lib/esm/orm/repository.d.ts +54 -0
  299. package/lib/esm/orm/repository.js +318 -0
  300. package/lib/esm/orm/validation.d.ts +44 -0
  301. package/lib/esm/orm/validation.js +122 -0
  302. package/lib/esm/persistent/cache/core-context.d.ts +17 -0
  303. package/lib/esm/persistent/cache/core-context.js +34 -0
  304. package/lib/esm/persistent/cache/global.d.ts +18 -0
  305. package/lib/esm/persistent/cache/global.js +17 -0
  306. package/lib/esm/persistent/cache/index.d.ts +3 -0
  307. package/lib/esm/persistent/cache/index.js +3 -0
  308. package/lib/esm/persistent/cache/session.d.ts +19 -0
  309. package/lib/esm/persistent/cache/session.js +34 -0
  310. package/lib/esm/persistent/cache/storage.d.ts +14 -0
  311. package/lib/esm/persistent/cache/storage.js +82 -0
  312. package/lib/esm/persistent/cache/store.d.ts +16 -0
  313. package/lib/esm/persistent/cache/store.js +106 -0
  314. package/lib/esm/persistent/context/index.d.ts +3 -0
  315. package/lib/esm/persistent/context/index.js +3 -0
  316. package/lib/esm/persistent/decorators/global.d.ts +1 -0
  317. package/lib/esm/persistent/decorators/global.js +19 -0
  318. package/lib/esm/persistent/decorators/session.d.ts +1 -0
  319. package/lib/esm/persistent/decorators/session.js +21 -0
  320. package/lib/esm/persistent/index.d.ts +6 -0
  321. package/lib/esm/persistent/index.js +6 -0
  322. package/lib/esm/persistent/interfaces/context.d.ts +5 -0
  323. package/lib/esm/persistent/interfaces/context.js +1 -0
  324. package/lib/esm/persistent/interfaces/system.d.ts +47 -0
  325. package/lib/esm/persistent/interfaces/system.js +26 -0
  326. package/lib/esm/persistent/system/index.d.ts +7 -0
  327. package/lib/esm/persistent/system/index.js +39 -0
  328. package/lib/esm/persistent/utils/memory.d.ts +8 -0
  329. package/lib/esm/persistent/utils/memory.js +42 -0
  330. package/lib/esm/persistent/utils/timer.d.ts +14 -0
  331. package/lib/esm/persistent/utils/timer.js +16 -0
  332. package/lib/esm/playground/build/client/assets/AddRounded-ByHfnsiW.js +4 -0
  333. package/lib/esm/playground/build/client/assets/Button-DLrxHRm7.js +1 -0
  334. package/lib/esm/playground/build/client/assets/Container-CgITmmbk.js +1 -0
  335. package/lib/esm/playground/build/client/assets/Divider-B_Wx9srO.js +1 -0
  336. package/lib/esm/playground/build/client/assets/List-juBjUmfP.js +1 -0
  337. package/lib/esm/playground/build/client/assets/ListItemText-DgWZmgzc.js +1 -0
  338. package/lib/esm/playground/build/client/assets/MenuItem-D_5SuVKQ.js +1 -0
  339. package/lib/esm/playground/build/client/assets/Modal-BwXR_5Bh.js +1 -0
  340. package/lib/esm/playground/build/client/assets/TableRow-B9hAmlnV.js +2 -0
  341. package/lib/esm/playground/build/client/assets/TextField-UybdTIGB.js +3 -0
  342. package/lib/esm/playground/build/client/assets/Tooltip-BGcUWUcF.js +1 -0
  343. package/lib/esm/playground/build/client/assets/auth-CD1rXHzz.js +1 -0
  344. package/lib/esm/playground/build/client/assets/auth-GyTIVKy5.js +1 -0
  345. package/lib/esm/playground/build/client/assets/confirm-Dr0pbiV6.js +1 -0
  346. package/lib/esm/playground/build/client/assets/dividerClasses-CIiqeEPO.js +1 -0
  347. package/lib/esm/playground/build/client/assets/entry.client-D6FYz1yh.js +13 -0
  348. package/lib/esm/playground/build/client/assets/index-CJ0wdt6Z.js +1 -0
  349. package/lib/esm/playground/build/client/assets/index-CQc11yq_.js +1153 -0
  350. package/lib/esm/playground/build/client/assets/index-Cr4I-4J2.js +1 -0
  351. package/lib/esm/playground/build/client/assets/index-CtPqstFl.js +26 -0
  352. package/lib/esm/playground/build/client/assets/index-Ct_NE85o.js +1 -0
  353. package/lib/esm/playground/build/client/assets/index-D0I6xwmb.js +1 -0
  354. package/lib/esm/playground/build/client/assets/index-DmDCpKb3.js +1 -0
  355. package/lib/esm/playground/build/client/assets/index-DsSkAwyn.js +1 -0
  356. package/lib/esm/playground/build/client/assets/index-_DMgWZ3Y.js +1 -0
  357. package/lib/esm/playground/build/client/assets/listItemIconClasses-39Itzgzt.js +1 -0
  358. package/lib/esm/playground/build/client/assets/listItemTextClasses-EQFLPLzt.js +1 -0
  359. package/lib/esm/playground/build/client/assets/manifest-c06e9a7f.js +1 -0
  360. package/lib/esm/playground/build/client/assets/mergeSlotProps-DptgQgAT.js +1 -0
  361. package/lib/esm/playground/build/client/assets/playground-Hl52p9f5.js +108 -0
  362. package/lib/esm/playground/build/client/assets/root-CQTBmuv8.js +1 -0
  363. package/lib/esm/playground/build/client/assets/toast-CsAH5FIf.js +1 -0
  364. package/lib/esm/playground/build/client/assets/use-request-BZNkzlTr.js +1 -0
  365. package/lib/esm/playground/build/client/favicon.ico +0 -0
  366. package/lib/esm/playground/build/client/index.html +6 -0
  367. package/lib/esm/playground/index.d.ts +2 -0
  368. package/lib/esm/playground/index.js +129 -0
  369. package/lib/esm/scheduler/controllers/index.d.ts +19 -0
  370. package/lib/esm/scheduler/controllers/index.js +57 -0
  371. package/lib/esm/scheduler/decorators/index.d.ts +9 -0
  372. package/lib/esm/scheduler/decorators/index.js +16 -0
  373. package/lib/esm/scheduler/handlers/index.d.ts +19 -0
  374. package/lib/esm/scheduler/handlers/index.js +57 -0
  375. package/lib/esm/scheduler/index.d.ts +24 -0
  376. package/lib/esm/scheduler/index.js +89 -0
  377. package/lib/esm/scheduler/models/history.d.ts +10 -0
  378. package/lib/esm/scheduler/models/history.js +48 -0
  379. package/lib/esm/server/constants/index.d.ts +78 -0
  380. package/lib/esm/server/constants/index.js +369 -0
  381. package/lib/esm/server/context/index.d.ts +17 -0
  382. package/lib/esm/server/context/index.js +31 -0
  383. package/lib/esm/server/controller/index.d.ts +3 -0
  384. package/lib/esm/server/controller/index.js +179 -0
  385. package/lib/esm/server/controllers/index.d.ts +5 -0
  386. package/lib/esm/server/controllers/index.js +31 -0
  387. package/lib/esm/server/core/index.d.ts +16 -0
  388. package/lib/esm/server/core/index.js +103 -0
  389. package/lib/esm/server/core/middleware/body-parser.d.ts +2 -0
  390. package/lib/esm/server/core/middleware/body-parser.js +24 -0
  391. package/lib/esm/server/core/middleware/cors.d.ts +4 -0
  392. package/lib/esm/server/core/middleware/cors.js +29 -0
  393. package/lib/esm/server/core/middleware/logger.d.ts +2 -0
  394. package/lib/esm/server/core/middleware/logger.js +12 -0
  395. package/lib/esm/server/decorators/controller.d.ts +3 -0
  396. package/lib/esm/server/decorators/controller.js +10 -0
  397. package/lib/esm/server/decorators/field.d.ts +2 -0
  398. package/lib/esm/server/decorators/field.js +32 -0
  399. package/lib/esm/server/decorators/handler.d.ts +3 -0
  400. package/lib/esm/server/decorators/handler.js +10 -0
  401. package/lib/esm/server/decorators/index.d.ts +7 -0
  402. package/lib/esm/server/decorators/index.js +7 -0
  403. package/lib/esm/server/decorators/is-public-method.d.ts +3 -0
  404. package/lib/esm/server/decorators/is-public-method.js +12 -0
  405. package/lib/esm/server/decorators/is-public.d.ts +3 -0
  406. package/lib/esm/server/decorators/is-public.js +10 -0
  407. package/lib/esm/server/decorators/method.d.ts +3 -0
  408. package/lib/esm/server/decorators/method.js +12 -0
  409. package/lib/esm/server/decorators/payload.d.ts +3 -0
  410. package/lib/esm/server/decorators/payload.js +11 -0
  411. package/lib/esm/server/handlers/index.d.ts +5 -0
  412. package/lib/esm/server/handlers/index.js +31 -0
  413. package/lib/esm/server/helpers/index.d.ts +17 -0
  414. package/lib/esm/server/helpers/index.js +34 -0
  415. package/lib/esm/server/index.d.ts +12 -0
  416. package/lib/esm/server/index.js +147 -0
  417. package/lib/esm/server/security/controller/auth.d.ts +76 -0
  418. package/lib/esm/server/security/controller/auth.js +341 -0
  419. package/lib/esm/server/security/index.d.ts +2 -0
  420. package/lib/esm/server/security/index.js +2 -0
  421. package/lib/esm/server/security/jwt/index.d.ts +23 -0
  422. package/lib/esm/server/security/jwt/index.js +103 -0
  423. package/lib/esm/server/security/middleware/autorization.d.ts +3 -0
  424. package/lib/esm/server/security/middleware/autorization.js +41 -0
  425. package/lib/esm/server/security/middleware/permission.d.ts +3 -0
  426. package/lib/esm/server/security/middleware/permission.js +133 -0
  427. package/lib/esm/server/security/models/crp.d.ts +8 -0
  428. package/lib/esm/server/security/models/crp.js +40 -0
  429. package/lib/esm/server/security/models/ke.d.ts +7 -0
  430. package/lib/esm/server/security/models/ke.js +36 -0
  431. package/lib/esm/server/security/models/rl.d.ts +9 -0
  432. package/lib/esm/server/security/models/rl.js +45 -0
  433. package/lib/esm/server/security/models/se.d.ts +11 -0
  434. package/lib/esm/server/security/models/se.js +52 -0
  435. package/lib/esm/server/security/models/usr.d.ts +14 -0
  436. package/lib/esm/server/security/models/usr.js +77 -0
  437. package/lib/esm/server/services/delete.d.ts +13 -0
  438. package/lib/esm/server/services/delete.js +44 -0
  439. package/lib/esm/server/services/get.d.ts +4 -0
  440. package/lib/esm/server/services/get.js +140 -0
  441. package/lib/esm/server/services/insert.d.ts +13 -0
  442. package/lib/esm/server/services/insert.js +69 -0
  443. package/lib/esm/server/services/update.d.ts +13 -0
  444. package/lib/esm/server/services/update.js +55 -0
  445. package/lib/esm/system/index.d.ts +13 -0
  446. package/lib/esm/system/index.js +197 -0
  447. package/package.json +95 -0
@@ -0,0 +1,64 @@
1
+ import Server, { Context } from '../../server/index.js';
2
+ import Author from './models/author.js';
3
+ import Book from './models/book.js';
4
+ import Category from './models/category.js';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ // @ts-ignore
8
+ const _dirname = typeof __dirname !== 'undefined'
9
+ ? __dirname
10
+ : // @ts-ignore
11
+ path.dirname(fileURLToPath(import.meta.url));
12
+ async function runFullExample() {
13
+ console.log('🚀 Initializing Full Opposer Example...');
14
+ // 1. Setup Environment
15
+ process.env.OPPOSER_PORT = '4000';
16
+ process.env.OPPOSER_DATABASE_TYPE = 'sqlite';
17
+ process.env.OPPOSER_DATABASE_NAME = './full-app.db';
18
+ try {
19
+ // 2. Start Opposer Server
20
+ // Passing the local models and schedules path so initialization can find our entities
21
+ const { initialize } = await Server({
22
+ cors: { origin: '*' },
23
+ models: path.resolve(_dirname, 'models'),
24
+ schedules: path.resolve(_dirname, 'schedules'),
25
+ });
26
+ // 3. Populate Initial Data
27
+ // Using the new global Context to get the database
28
+ const db = Context.get('db');
29
+ console.log('📝 Populating initial data...');
30
+ const authorRepo = db.getRepository(Author);
31
+ const categoryRepo = db.getRepository(Category);
32
+ const bookRepo = db.getRepository(Book);
33
+ //@ts-ignore
34
+ const { randomUUID } = await import('crypto');
35
+ // Insert Author
36
+ let author = await authorRepo.findOne({ where: { name: 'J.K. Rowling' } });
37
+ if (!author) {
38
+ author = await authorRepo.insert({ id: randomUUID(), name: 'J.K. Rowling', nationality: 'British' });
39
+ }
40
+ // Insert Category
41
+ let category = await categoryRepo.findOne({ where: { title: 'Fantasy' } });
42
+ if (!category) {
43
+ category = await categoryRepo.insert({ id: randomUUID(), title: 'Fantasy' });
44
+ }
45
+ // Insert Books
46
+ const bookCount = await bookRepo.count({});
47
+ if (bookCount === 0) {
48
+ await bookRepo.insert({ id: randomUUID(), title: "Harry Potter and the Philosopher's Stone", price: 39.9, author: author.id, category: category.id });
49
+ await bookRepo.insert({ id: randomUUID(), title: 'Harry Potter and the Chamber of Secrets', price: 42.5, author: author.id, category: category.id });
50
+ console.log('✅ Data populated.');
51
+ }
52
+ // 4. Start listening
53
+ initialize();
54
+ console.log('\n--- Example Info ---');
55
+ console.log('API URL: http://localhost:4000/opposer');
56
+ console.log('Playground Map: http://localhost:4000/opposer-map.json');
57
+ console.log('Playground Status: http://localhost:4000/playground');
58
+ console.log('--------------------\n');
59
+ }
60
+ catch (error) {
61
+ console.error('❌ Failed to start example:', error);
62
+ }
63
+ }
64
+ runFullExample();
@@ -0,0 +1,7 @@
1
+ import Book from "./book.js";
2
+ export default class Author {
3
+ id: string;
4
+ name: string;
5
+ nationality?: string;
6
+ books: Book[];
7
+ }
@@ -0,0 +1,37 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Field, PrimaryColumn, Relation, f } from "../../../orm/index.js";
11
+ import Book from "./book.js";
12
+ let Author = class Author {
13
+ };
14
+ __decorate([
15
+ PrimaryColumn({ type: "uuid" }),
16
+ __metadata("design:type", String)
17
+ ], Author.prototype, "id", void 0);
18
+ __decorate([
19
+ Field(() => f().string("Name is string").required("Name is required")),
20
+ __metadata("design:type", String)
21
+ ], Author.prototype, "name", void 0);
22
+ __decorate([
23
+ Field({ type: "string" }),
24
+ __metadata("design:type", String)
25
+ ], Author.prototype, "nationality", void 0);
26
+ __decorate([
27
+ Relation({
28
+ type: "one-to-many",
29
+ target: () => Book,
30
+ inverseSide: "author"
31
+ }),
32
+ __metadata("design:type", Array)
33
+ ], Author.prototype, "books", void 0);
34
+ Author = __decorate([
35
+ Entity("authors", { description: "The author of the book, which contains the name and nationality" })
36
+ ], Author);
37
+ export default Author;
@@ -0,0 +1,9 @@
1
+ import Author from "./author.js";
2
+ import Category from "./category.js";
3
+ export default class Book {
4
+ id: string;
5
+ title: string;
6
+ price: number;
7
+ author: Author;
8
+ category: Category;
9
+ }
@@ -0,0 +1,46 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Field, PrimaryColumn, Relation, f } from "../../../orm/index.js";
11
+ import Author from "./author.js";
12
+ import Category from "./category.js";
13
+ let Book = class Book {
14
+ };
15
+ __decorate([
16
+ PrimaryColumn({ type: "uuid" }),
17
+ __metadata("design:type", String)
18
+ ], Book.prototype, "id", void 0);
19
+ __decorate([
20
+ Field(() => f().string("Title is string").required("Title is required")),
21
+ __metadata("design:type", String)
22
+ ], Book.prototype, "title", void 0);
23
+ __decorate([
24
+ Field({ type: "number", default: 0 }),
25
+ __metadata("design:type", Number)
26
+ ], Book.prototype, "price", void 0);
27
+ __decorate([
28
+ Relation({
29
+ type: "many-to-one",
30
+ target: () => Author,
31
+ inverseSide: "books"
32
+ }),
33
+ __metadata("design:type", Author)
34
+ ], Book.prototype, "author", void 0);
35
+ __decorate([
36
+ Relation({
37
+ type: "many-to-one",
38
+ target: () => Category,
39
+ inverseSide: "books"
40
+ }),
41
+ __metadata("design:type", Category)
42
+ ], Book.prototype, "category", void 0);
43
+ Book = __decorate([
44
+ Entity("books", { description: "Entity representing a book in the store" })
45
+ ], Book);
46
+ export default Book;
@@ -0,0 +1,4 @@
1
+ export default class Category {
2
+ id: string;
3
+ title: string;
4
+ }
@@ -0,0 +1,24 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Field, PrimaryColumn, f } from "../../../orm/index.js";
11
+ let Category = class Category {
12
+ };
13
+ __decorate([
14
+ PrimaryColumn({ type: "uuid" }),
15
+ __metadata("design:type", String)
16
+ ], Category.prototype, "id", void 0);
17
+ __decorate([
18
+ Field(() => f().string("Title is string").required("Title is required")),
19
+ __metadata("design:type", String)
20
+ ], Category.prototype, "title", void 0);
21
+ Category = __decorate([
22
+ Entity("categories")
23
+ ], Category);
24
+ export default Category;
@@ -0,0 +1,28 @@
1
+ import { OpposerDatabase } from '../../../orm';
2
+ export default class CatalogRefreshSchedules {
3
+ refreshCatalog(): Promise<{
4
+ status: string;
5
+ imported: number;
6
+ timestamp: string;
7
+ message?: undefined;
8
+ } | {
9
+ status: string;
10
+ message: any;
11
+ imported?: undefined;
12
+ timestamp?: undefined;
13
+ }>;
14
+ /**
15
+ * Logic to wipe and refill the catalog with 10,000 books
16
+ */
17
+ static performRefresh(db: OpposerDatabase): Promise<{
18
+ status: string;
19
+ imported: number;
20
+ timestamp: string;
21
+ message?: undefined;
22
+ } | {
23
+ status: string;
24
+ message: any;
25
+ imported?: undefined;
26
+ timestamp?: undefined;
27
+ }>;
28
+ }
@@ -0,0 +1,143 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Schedule } from '../../../scheduler';
11
+ import { Context } from '../../../server';
12
+ import Book from '../models/book.js';
13
+ import Author from '../models/author.js';
14
+ import Category from '../models/category.js';
15
+ import { randomUUID } from 'crypto';
16
+ export default class CatalogRefreshSchedules {
17
+ async refreshCatalog() {
18
+ console.log('[schedule] Starting hourly catalog refresh...');
19
+ const db = Context.get('db');
20
+ return await CatalogRefreshSchedules.performRefresh(db);
21
+ }
22
+ /**
23
+ * Logic to wipe and refill the catalog with 10,000 books
24
+ */
25
+ static async performRefresh(db) {
26
+ try {
27
+ const authorRepo = db.getRepository(Author);
28
+ const categoryRepo = db.getRepository(Category);
29
+ const bookRepo = db.getRepository(Book);
30
+ const totalToFetch = 100;
31
+ const pageSize = 10;
32
+ const pages = totalToFetch / pageSize;
33
+ console.log(`[catalog-refresh] Fetching ${totalToFetch} books from Open Library...`);
34
+ const allBooksData = [];
35
+ for (let i = 0; i < pages; i += 5) {
36
+ const requests = [];
37
+ for (let j = 0; j < 5 && i + j < pages; j++) {
38
+ const page = i + j + 1;
39
+ requests.push(fetch(`https://openlibrary.org/search.json?q=has_fulltext:true&page=${page}&limit=${pageSize}`)
40
+ .then((res) => res.json())
41
+ .then((data) => data.docs || [])
42
+ .catch((err) => {
43
+ console.error(`Error fetching page ${page}:`, err.message);
44
+ return [];
45
+ }));
46
+ }
47
+ const results = await Promise.all(requests);
48
+ allBooksData.push(...results.flat());
49
+ if (allBooksData.length >= totalToFetch)
50
+ break;
51
+ }
52
+ console.log('allBooksData', allBooksData);
53
+ if (allBooksData.length === 0)
54
+ throw new Error('No books fetched from API');
55
+ console.log(`[catalog-refresh] Wiping current database...`);
56
+ //@ts-ignore
57
+ if (typeof db.query === 'function') {
58
+ //@ts-ignore
59
+ await db.query('DELETE FROM books');
60
+ //@ts-ignore
61
+ await db.query('DELETE FROM authors');
62
+ //@ts-ignore
63
+ await db.query('DELETE FROM categories');
64
+ }
65
+ else {
66
+ //@ts-ignore
67
+ if (typeof bookRepo.delete === 'function') {
68
+ //@ts-ignore
69
+ await bookRepo.delete({});
70
+ //@ts-ignore
71
+ await authorRepo.delete({});
72
+ //@ts-ignore
73
+ await categoryRepo.delete({});
74
+ }
75
+ }
76
+ const authorsMap = new Map();
77
+ const categoriesMap = new Map();
78
+ let importedCount = 0;
79
+ console.log(`[catalog-refresh] Processing and inserting records...`);
80
+ for (const bookData of allBooksData) {
81
+ if (!bookData.title)
82
+ continue;
83
+ // Author
84
+ const authorName = (bookData.author_name && bookData.author_name[0]) || 'Unknown Author';
85
+ let authorId = authorsMap.get(authorName);
86
+ if (!authorId) {
87
+ authorId = randomUUID();
88
+ await authorRepo.insert({
89
+ id: authorId,
90
+ name: authorName,
91
+ nationality: 'Unknown',
92
+ });
93
+ authorsMap.set(authorName, authorId);
94
+ }
95
+ // Category
96
+ const categoryName = (bookData.subject && bookData.subject[0]) || 'General';
97
+ let categoryId = categoriesMap.get(categoryName);
98
+ if (!categoryId) {
99
+ categoryId = randomUUID();
100
+ await categoryRepo.insert({
101
+ id: categoryId,
102
+ title: categoryName,
103
+ });
104
+ categoriesMap.set(categoryName, categoryId);
105
+ }
106
+ // Book
107
+ let imageUrl = bookData.cover_i ? `https://covers.openlibrary.org/b/id/${bookData.cover_i}-L.jpg` : undefined;
108
+ await bookRepo.insert({
109
+ id: randomUUID(),
110
+ title: bookData.title,
111
+ price: Math.floor(Math.random() * 100) + 20,
112
+ imageUrl,
113
+ author: authorId,
114
+ category: categoryId,
115
+ });
116
+ importedCount++;
117
+ if (importedCount % 1000 === 0)
118
+ console.log(`[catalog-refresh] Imported ${importedCount} books...`);
119
+ if (importedCount >= totalToFetch)
120
+ break;
121
+ }
122
+ console.log(`[catalog-refresh] Success! Total imported: ${importedCount}`);
123
+ return {
124
+ status: 'success',
125
+ imported: importedCount,
126
+ timestamp: new Date().toISOString(),
127
+ };
128
+ }
129
+ catch (error) {
130
+ console.error(`[catalog-refresh] Failed:`, error.message);
131
+ return { status: 'error', message: error.message };
132
+ }
133
+ }
134
+ }
135
+ __decorate([
136
+ Schedule({
137
+ name: 'hourly-catalog-wipe-and-refill',
138
+ interval: 3600000, // 1 hour
139
+ }),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", []),
142
+ __metadata("design:returntype", Promise)
143
+ ], CatalogRefreshSchedules.prototype, "refreshCatalog", null);
@@ -0,0 +1,12 @@
1
+ export default class InventorySchedules {
2
+ checkStock(): Promise<{
3
+ timestamp: string;
4
+ booksChecked: number;
5
+ status: string;
6
+ }>;
7
+ importCatalog(): Promise<{
8
+ imported: number;
9
+ skipped: number;
10
+ errors: number;
11
+ }>;
12
+ }
@@ -0,0 +1,55 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Schedule } from "../../../scheduler/index.js";
11
+ import { Context } from "../../../server/index.js";
12
+ import Book from "../models/book.js";
13
+ export default class InventorySchedules {
14
+ async checkStock() {
15
+ // Using the new global Context to get the database
16
+ const db = Context.get("db");
17
+ const bookRepo = db.getRepository(Book);
18
+ const count = await bookRepo.count({});
19
+ console.log(`[schedule] Inventory check: ${count} books in library.`);
20
+ return {
21
+ timestamp: new Date().toISOString(),
22
+ booksChecked: count,
23
+ status: "Inventory levels are stable"
24
+ };
25
+ }
26
+ async importCatalog() {
27
+ console.log(`[schedule] Importing new titles from external partners...`);
28
+ // Simulate API delay
29
+ await new Promise(resolve => setTimeout(resolve, 3000));
30
+ return {
31
+ imported: 12,
32
+ skipped: 2,
33
+ errors: 0
34
+ };
35
+ }
36
+ }
37
+ __decorate([
38
+ Schedule({
39
+ name: "library-inventory-check",
40
+ interval: 300000, // 5 minutes
41
+ }),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", []),
44
+ __metadata("design:returntype", Promise)
45
+ ], InventorySchedules.prototype, "checkStock", null);
46
+ __decorate([
47
+ Schedule({
48
+ name: "import-external-catalog",
49
+ interval: 3600000, // 1 hour
50
+ enabled: false
51
+ }),
52
+ __metadata("design:type", Function),
53
+ __metadata("design:paramtypes", []),
54
+ __metadata("design:returntype", Promise)
55
+ ], InventorySchedules.prototype, "importCatalog", null);
@@ -0,0 +1,11 @@
1
+ export default class LibraryAlertSchedules {
2
+ checkOverdue(): Promise<{
3
+ overdueCount: number;
4
+ notificationsSent: boolean;
5
+ }>;
6
+ generateSalesReport(): Promise<{
7
+ reportId: string;
8
+ status: string;
9
+ path: string;
10
+ }>;
11
+ }
@@ -0,0 +1,52 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Schedule } from "../../../scheduler/index.js";
11
+ export default class LibraryAlertSchedules {
12
+ async checkOverdue() {
13
+ console.log(`[schedule] Checking for overdue book loans...`);
14
+ // Simulating finding overdue loans
15
+ const found = 3;
16
+ if (found > 0) {
17
+ console.log(`[schedule] Sending ${found} notifications to readers.`);
18
+ }
19
+ return {
20
+ overdueCount: found,
21
+ notificationsSent: true
22
+ };
23
+ }
24
+ async generateSalesReport() {
25
+ console.log(`[schedule] Generating periodic sales report for authors...`);
26
+ // Simulation
27
+ const reportId = `REP-${Math.floor(Math.random() * 10000)}`;
28
+ return {
29
+ reportId,
30
+ status: "Report generated and available for download.",
31
+ path: `/reports/${reportId}.pdf`
32
+ };
33
+ }
34
+ }
35
+ __decorate([
36
+ Schedule({
37
+ name: "overdue-book-loans",
38
+ interval: 600000, // 10 minutes
39
+ }),
40
+ __metadata("design:type", Function),
41
+ __metadata("design:paramtypes", []),
42
+ __metadata("design:returntype", Promise)
43
+ ], LibraryAlertSchedules.prototype, "checkOverdue", null);
44
+ __decorate([
45
+ Schedule({
46
+ name: "author-sales-report",
47
+ interval: 1800000, // 30 minutes
48
+ }),
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", []),
51
+ __metadata("design:returntype", Promise)
52
+ ], LibraryAlertSchedules.prototype, "generateSalesReport", null);
@@ -0,0 +1,11 @@
1
+ declare class GetAllPerDateDto {
2
+ date: Date;
3
+ }
4
+ declare class GetAllBooksPerAuthorDto {
5
+ author: string;
6
+ }
7
+ export default class Books {
8
+ getAllBooksPerDate(filter: GetAllPerDateDto): never[];
9
+ getAllBooksPerAuthor(filter: GetAllBooksPerAuthorDto): void;
10
+ }
11
+ export {};
@@ -0,0 +1,49 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { f, Field, Controller, Method, Payload, } from "../../../../server/index.js";
14
+ class GetAllPerDateDto {
15
+ }
16
+ __decorate([
17
+ Field(() => f().date("typeof is Date").required("date is required")),
18
+ __metadata("design:type", Date)
19
+ ], GetAllPerDateDto.prototype, "date", void 0);
20
+ class GetAllBooksPerAuthorDto {
21
+ }
22
+ __decorate([
23
+ Field(() => f().string("typeof is string").required("author is required")),
24
+ __metadata("design:type", String)
25
+ ], GetAllBooksPerAuthorDto.prototype, "author", void 0);
26
+ let Books = class Books {
27
+ getAllBooksPerDate(filter) {
28
+ return [];
29
+ }
30
+ getAllBooksPerAuthor(filter) { }
31
+ };
32
+ __decorate([
33
+ Method(),
34
+ __param(0, Payload(GetAllPerDateDto)),
35
+ __metadata("design:type", Function),
36
+ __metadata("design:paramtypes", [GetAllPerDateDto]),
37
+ __metadata("design:returntype", void 0)
38
+ ], Books.prototype, "getAllBooksPerDate", null);
39
+ __decorate([
40
+ Method(),
41
+ __param(0, Payload(GetAllBooksPerAuthorDto)),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", [GetAllBooksPerAuthorDto]),
44
+ __metadata("design:returntype", void 0)
45
+ ], Books.prototype, "getAllBooksPerAuthor", null);
46
+ Books = __decorate([
47
+ Controller("books")
48
+ ], Books);
49
+ export default Books;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import Server from "../../../server/index.js";
2
+ (async () => {
3
+ var app = await Server({
4
+ cors: {
5
+ origin: "*",
6
+ },
7
+ });
8
+ app.initialize();
9
+ })();
@@ -0,0 +1,4 @@
1
+ export default class Books {
2
+ id: string;
3
+ name: string;
4
+ }
@@ -0,0 +1,24 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, PrimaryColumn, Field, f } from "../../../../orm/index.js";
11
+ let Books = class Books {
12
+ };
13
+ __decorate([
14
+ PrimaryColumn({ generated: true }),
15
+ __metadata("design:type", String)
16
+ ], Books.prototype, "id", void 0);
17
+ __decorate([
18
+ Field(() => f().string("type of string").required("field is required")),
19
+ __metadata("design:type", String)
20
+ ], Books.prototype, "name", void 0);
21
+ Books = __decorate([
22
+ Entity("book")
23
+ ], Books);
24
+ export default Books;
@@ -0,0 +1,6 @@
1
+ import User from "./user.js";
2
+ export default class Permission {
3
+ id: string;
4
+ name: string;
5
+ user: User;
6
+ }
@@ -0,0 +1,33 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Field, PrimaryColumn, Relation } from "../../../orm/index.js";
11
+ import User from "./user.js";
12
+ let Permission = class Permission {
13
+ };
14
+ __decorate([
15
+ PrimaryColumn({ type: "uuid" }),
16
+ __metadata("design:type", String)
17
+ ], Permission.prototype, "id", void 0);
18
+ __decorate([
19
+ Field({ type: "string" }),
20
+ __metadata("design:type", String)
21
+ ], Permission.prototype, "name", void 0);
22
+ __decorate([
23
+ Relation({
24
+ type: "many-to-one",
25
+ target: () => User,
26
+ inverseSide: "permissions"
27
+ }),
28
+ __metadata("design:type", User)
29
+ ], Permission.prototype, "user", void 0);
30
+ Permission = __decorate([
31
+ Entity("permissions")
32
+ ], Permission);
33
+ export default Permission;