@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.
- package/README.md +504 -0
- package/lib/bin/commands/build.js +75 -0
- package/lib/bin/commands/generate/api-key.js +28 -0
- package/lib/bin/commands/generate/jwt-key.js +46 -0
- package/lib/bin/commands/init.js +169 -0
- package/lib/bin/helpers/crypto.js +33 -0
- package/lib/bin/opposer.js +26 -0
- package/lib/cjs/examples/full-app/index.d.ts +1 -0
- package/lib/cjs/examples/full-app/index.js +102 -0
- package/lib/cjs/examples/full-app/models/author.d.ts +7 -0
- package/lib/cjs/examples/full-app/models/author.js +42 -0
- package/lib/cjs/examples/full-app/models/book.d.ts +9 -0
- package/lib/cjs/examples/full-app/models/book.js +51 -0
- package/lib/cjs/examples/full-app/models/category.d.ts +4 -0
- package/lib/cjs/examples/full-app/models/category.js +26 -0
- package/lib/cjs/examples/full-app/schedules/catalog-refresh.d.ts +28 -0
- package/lib/cjs/examples/full-app/schedules/catalog-refresh.js +149 -0
- package/lib/cjs/examples/full-app/schedules/inventory-sync.d.ts +12 -0
- package/lib/cjs/examples/full-app/schedules/inventory-sync.js +61 -0
- package/lib/cjs/examples/full-app/schedules/library-alerts.d.ts +11 -0
- package/lib/cjs/examples/full-app/schedules/library-alerts.js +55 -0
- package/lib/cjs/examples/minimal/src/handlers/book.d.ts +11 -0
- package/lib/cjs/examples/minimal/src/handlers/book.js +51 -0
- package/lib/cjs/examples/minimal/src/index.d.ts +1 -0
- package/lib/cjs/examples/minimal/src/index.js +14 -0
- package/lib/cjs/examples/minimal/src/models/books.d.ts +4 -0
- package/lib/cjs/examples/minimal/src/models/books.js +26 -0
- package/lib/cjs/examples/orm/models/permission.d.ts +6 -0
- package/lib/cjs/examples/orm/models/permission.js +38 -0
- package/lib/cjs/examples/orm/models/profile.d.ts +7 -0
- package/lib/cjs/examples/orm/models/profile.js +42 -0
- package/lib/cjs/examples/orm/models/user.d.ts +11 -0
- package/lib/cjs/examples/orm/models/user.js +70 -0
- package/lib/cjs/examples/orm/mysql/index.d.ts +1 -0
- package/lib/cjs/examples/orm/mysql/index.js +44 -0
- package/lib/cjs/examples/orm/postgres/index.d.ts +1 -0
- package/lib/cjs/examples/orm/postgres/index.js +40 -0
- package/lib/cjs/examples/orm/sqlite/index.d.ts +1 -0
- package/lib/cjs/examples/orm/sqlite/index.js +41 -0
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.js +23 -0
- package/lib/cjs/interfaces/controller.d.ts +109 -0
- package/lib/cjs/interfaces/controller.js +2 -0
- package/lib/cjs/interfaces/field.d.ts +23 -0
- package/lib/cjs/interfaces/field.js +2 -0
- package/lib/cjs/interfaces/handler.d.ts +18 -0
- package/lib/cjs/interfaces/handler.js +2 -0
- package/lib/cjs/interfaces/jwt.d.ts +21 -0
- package/lib/cjs/interfaces/jwt.js +2 -0
- package/lib/cjs/interfaces/model.d.ts +9 -0
- package/lib/cjs/interfaces/model.js +2 -0
- package/lib/cjs/interfaces/request.d.ts +13 -0
- package/lib/cjs/interfaces/request.js +2 -0
- package/lib/cjs/interfaces/schema.d.ts +9 -0
- package/lib/cjs/interfaces/schema.js +2 -0
- package/lib/cjs/interfaces/security.d.ts +32 -0
- package/lib/cjs/interfaces/security.js +2 -0
- package/lib/cjs/interfaces/server.d.ts +37 -0
- package/lib/cjs/interfaces/server.js +2 -0
- package/lib/cjs/interfaces/system.d.ts +41 -0
- package/lib/cjs/interfaces/system.js +2 -0
- package/lib/cjs/orm/decorators/index.d.ts +33 -0
- package/lib/cjs/orm/decorators/index.js +131 -0
- package/lib/cjs/orm/driver/mysql.d.ts +14 -0
- package/lib/cjs/orm/driver/mysql.js +103 -0
- package/lib/cjs/orm/driver/postgres.d.ts +14 -0
- package/lib/cjs/orm/driver/postgres.js +105 -0
- package/lib/cjs/orm/driver/sqlite.d.ts +14 -0
- package/lib/cjs/orm/driver/sqlite.js +143 -0
- package/lib/cjs/orm/index.d.ts +8 -0
- package/lib/cjs/orm/index.js +28 -0
- package/lib/cjs/orm/metadata.d.ts +47 -0
- package/lib/cjs/orm/metadata.js +47 -0
- package/lib/cjs/orm/opposer.d.ts +30 -0
- package/lib/cjs/orm/opposer.js +33 -0
- package/lib/cjs/orm/query-builder.d.ts +32 -0
- package/lib/cjs/orm/query-builder.js +278 -0
- package/lib/cjs/orm/repository.d.ts +54 -0
- package/lib/cjs/orm/repository.js +325 -0
- package/lib/cjs/orm/validation.d.ts +44 -0
- package/lib/cjs/orm/validation.js +128 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/persistent/cache/core-context.d.ts +17 -0
- package/lib/cjs/persistent/cache/core-context.js +39 -0
- package/lib/cjs/persistent/cache/global.d.ts +18 -0
- package/lib/cjs/persistent/cache/global.js +22 -0
- package/lib/cjs/persistent/cache/index.d.ts +3 -0
- package/lib/cjs/persistent/cache/index.js +12 -0
- package/lib/cjs/persistent/cache/session.d.ts +19 -0
- package/lib/cjs/persistent/cache/session.js +39 -0
- package/lib/cjs/persistent/cache/storage.d.ts +14 -0
- package/lib/cjs/persistent/cache/storage.js +88 -0
- package/lib/cjs/persistent/cache/store.d.ts +16 -0
- package/lib/cjs/persistent/cache/store.js +112 -0
- package/lib/cjs/persistent/context/index.d.ts +3 -0
- package/lib/cjs/persistent/context/index.js +5 -0
- package/lib/cjs/persistent/decorators/global.d.ts +1 -0
- package/lib/cjs/persistent/decorators/global.js +25 -0
- package/lib/cjs/persistent/decorators/session.d.ts +1 -0
- package/lib/cjs/persistent/decorators/session.js +27 -0
- package/lib/cjs/persistent/index.d.ts +6 -0
- package/lib/cjs/persistent/index.js +18 -0
- package/lib/cjs/persistent/interfaces/context.d.ts +5 -0
- package/lib/cjs/persistent/interfaces/context.js +2 -0
- package/lib/cjs/persistent/interfaces/system.d.ts +47 -0
- package/lib/cjs/persistent/interfaces/system.js +29 -0
- package/lib/cjs/persistent/system/index.d.ts +7 -0
- package/lib/cjs/persistent/system/index.js +44 -0
- package/lib/cjs/persistent/utils/memory.d.ts +8 -0
- package/lib/cjs/persistent/utils/memory.js +44 -0
- package/lib/cjs/persistent/utils/timer.d.ts +14 -0
- package/lib/cjs/persistent/utils/timer.js +21 -0
- package/lib/cjs/playground/build/client/assets/AddRounded-ByHfnsiW.js +4 -0
- package/lib/cjs/playground/build/client/assets/Button-DLrxHRm7.js +1 -0
- package/lib/cjs/playground/build/client/assets/Container-CgITmmbk.js +1 -0
- package/lib/cjs/playground/build/client/assets/Divider-B_Wx9srO.js +1 -0
- package/lib/cjs/playground/build/client/assets/List-juBjUmfP.js +1 -0
- package/lib/cjs/playground/build/client/assets/ListItemText-DgWZmgzc.js +1 -0
- package/lib/cjs/playground/build/client/assets/MenuItem-D_5SuVKQ.js +1 -0
- package/lib/cjs/playground/build/client/assets/Modal-BwXR_5Bh.js +1 -0
- package/lib/cjs/playground/build/client/assets/TableRow-B9hAmlnV.js +2 -0
- package/lib/cjs/playground/build/client/assets/TextField-UybdTIGB.js +3 -0
- package/lib/cjs/playground/build/client/assets/Tooltip-BGcUWUcF.js +1 -0
- package/lib/cjs/playground/build/client/assets/auth-CD1rXHzz.js +1 -0
- package/lib/cjs/playground/build/client/assets/auth-GyTIVKy5.js +1 -0
- package/lib/cjs/playground/build/client/assets/confirm-Dr0pbiV6.js +1 -0
- package/lib/cjs/playground/build/client/assets/dividerClasses-CIiqeEPO.js +1 -0
- package/lib/cjs/playground/build/client/assets/entry.client-D6FYz1yh.js +13 -0
- package/lib/cjs/playground/build/client/assets/index-CJ0wdt6Z.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-CQc11yq_.js +1153 -0
- package/lib/cjs/playground/build/client/assets/index-Cr4I-4J2.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-CtPqstFl.js +26 -0
- package/lib/cjs/playground/build/client/assets/index-Ct_NE85o.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-D0I6xwmb.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-DmDCpKb3.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-DsSkAwyn.js +1 -0
- package/lib/cjs/playground/build/client/assets/index-_DMgWZ3Y.js +1 -0
- package/lib/cjs/playground/build/client/assets/listItemIconClasses-39Itzgzt.js +1 -0
- package/lib/cjs/playground/build/client/assets/listItemTextClasses-EQFLPLzt.js +1 -0
- package/lib/cjs/playground/build/client/assets/manifest-c06e9a7f.js +1 -0
- package/lib/cjs/playground/build/client/assets/mergeSlotProps-DptgQgAT.js +1 -0
- package/lib/cjs/playground/build/client/assets/playground-Hl52p9f5.js +108 -0
- package/lib/cjs/playground/build/client/assets/root-CQTBmuv8.js +1 -0
- package/lib/cjs/playground/build/client/assets/toast-CsAH5FIf.js +1 -0
- package/lib/cjs/playground/build/client/assets/use-request-BZNkzlTr.js +1 -0
- package/lib/cjs/playground/build/client/favicon.ico +0 -0
- package/lib/cjs/playground/build/client/index.html +6 -0
- package/lib/cjs/playground/index.d.ts +2 -0
- package/lib/cjs/playground/index.js +135 -0
- package/lib/cjs/scheduler/controllers/index.d.ts +19 -0
- package/lib/cjs/scheduler/controllers/index.js +62 -0
- package/lib/cjs/scheduler/decorators/index.d.ts +9 -0
- package/lib/cjs/scheduler/decorators/index.js +21 -0
- package/lib/cjs/scheduler/handlers/index.d.ts +19 -0
- package/lib/cjs/scheduler/handlers/index.js +62 -0
- package/lib/cjs/scheduler/index.d.ts +24 -0
- package/lib/cjs/scheduler/index.js +110 -0
- package/lib/cjs/scheduler/models/history.d.ts +10 -0
- package/lib/cjs/scheduler/models/history.js +50 -0
- package/lib/cjs/server/constants/index.d.ts +78 -0
- package/lib/cjs/server/constants/index.js +372 -0
- package/lib/cjs/server/context/index.d.ts +17 -0
- package/lib/cjs/server/context/index.js +33 -0
- package/lib/cjs/server/controller/index.d.ts +3 -0
- package/lib/cjs/server/controller/index.js +217 -0
- package/lib/cjs/server/controllers/index.d.ts +5 -0
- package/lib/cjs/server/controllers/index.js +72 -0
- package/lib/cjs/server/core/index.d.ts +16 -0
- package/lib/cjs/server/core/index.js +110 -0
- package/lib/cjs/server/core/middleware/body-parser.d.ts +2 -0
- package/lib/cjs/server/core/middleware/body-parser.js +27 -0
- package/lib/cjs/server/core/middleware/cors.d.ts +4 -0
- package/lib/cjs/server/core/middleware/cors.js +32 -0
- package/lib/cjs/server/core/middleware/logger.d.ts +2 -0
- package/lib/cjs/server/core/middleware/logger.js +15 -0
- package/lib/cjs/server/decorators/controller.d.ts +3 -0
- package/lib/cjs/server/decorators/controller.js +14 -0
- package/lib/cjs/server/decorators/field.d.ts +2 -0
- package/lib/cjs/server/decorators/field.js +36 -0
- package/lib/cjs/server/decorators/handler.d.ts +3 -0
- package/lib/cjs/server/decorators/handler.js +14 -0
- package/lib/cjs/server/decorators/index.d.ts +7 -0
- package/lib/cjs/server/decorators/index.js +26 -0
- package/lib/cjs/server/decorators/is-public-method.d.ts +3 -0
- package/lib/cjs/server/decorators/is-public-method.js +16 -0
- package/lib/cjs/server/decorators/is-public.d.ts +3 -0
- package/lib/cjs/server/decorators/is-public.js +14 -0
- package/lib/cjs/server/decorators/method.d.ts +3 -0
- package/lib/cjs/server/decorators/method.js +16 -0
- package/lib/cjs/server/decorators/payload.d.ts +3 -0
- package/lib/cjs/server/decorators/payload.js +15 -0
- package/lib/cjs/server/handlers/index.d.ts +5 -0
- package/lib/cjs/server/handlers/index.js +72 -0
- package/lib/cjs/server/helpers/index.d.ts +17 -0
- package/lib/cjs/server/helpers/index.js +39 -0
- package/lib/cjs/server/index.d.ts +12 -0
- package/lib/cjs/server/index.js +176 -0
- package/lib/cjs/server/security/controller/auth.d.ts +76 -0
- package/lib/cjs/server/security/controller/auth.js +346 -0
- package/lib/cjs/server/security/index.d.ts +2 -0
- package/lib/cjs/server/security/index.js +10 -0
- package/lib/cjs/server/security/jwt/index.d.ts +23 -0
- package/lib/cjs/server/security/jwt/index.js +108 -0
- package/lib/cjs/server/security/middleware/autorization.d.ts +3 -0
- package/lib/cjs/server/security/middleware/autorization.js +46 -0
- package/lib/cjs/server/security/middleware/permission.d.ts +3 -0
- package/lib/cjs/server/security/middleware/permission.js +138 -0
- package/lib/cjs/server/security/models/crp.d.ts +8 -0
- package/lib/cjs/server/security/models/crp.js +42 -0
- package/lib/cjs/server/security/models/ke.d.ts +7 -0
- package/lib/cjs/server/security/models/ke.js +38 -0
- package/lib/cjs/server/security/models/rl.d.ts +9 -0
- package/lib/cjs/server/security/models/rl.js +50 -0
- package/lib/cjs/server/security/models/se.d.ts +11 -0
- package/lib/cjs/server/security/models/se.js +54 -0
- package/lib/cjs/server/security/models/usr.d.ts +14 -0
- package/lib/cjs/server/security/models/usr.js +82 -0
- package/lib/cjs/server/services/delete.d.ts +13 -0
- package/lib/cjs/server/services/delete.js +49 -0
- package/lib/cjs/server/services/get.d.ts +4 -0
- package/lib/cjs/server/services/get.js +145 -0
- package/lib/cjs/server/services/insert.d.ts +13 -0
- package/lib/cjs/server/services/insert.js +74 -0
- package/lib/cjs/server/services/update.d.ts +13 -0
- package/lib/cjs/server/services/update.js +60 -0
- package/lib/cjs/system/index.d.ts +13 -0
- package/lib/cjs/system/index.js +237 -0
- package/lib/esm/examples/full-app/index.d.ts +1 -0
- package/lib/esm/examples/full-app/index.js +64 -0
- package/lib/esm/examples/full-app/models/author.d.ts +7 -0
- package/lib/esm/examples/full-app/models/author.js +37 -0
- package/lib/esm/examples/full-app/models/book.d.ts +9 -0
- package/lib/esm/examples/full-app/models/book.js +46 -0
- package/lib/esm/examples/full-app/models/category.d.ts +4 -0
- package/lib/esm/examples/full-app/models/category.js +24 -0
- package/lib/esm/examples/full-app/schedules/catalog-refresh.d.ts +28 -0
- package/lib/esm/examples/full-app/schedules/catalog-refresh.js +143 -0
- package/lib/esm/examples/full-app/schedules/inventory-sync.d.ts +12 -0
- package/lib/esm/examples/full-app/schedules/inventory-sync.js +55 -0
- package/lib/esm/examples/full-app/schedules/library-alerts.d.ts +11 -0
- package/lib/esm/examples/full-app/schedules/library-alerts.js +52 -0
- package/lib/esm/examples/minimal/src/handlers/book.d.ts +11 -0
- package/lib/esm/examples/minimal/src/handlers/book.js +49 -0
- package/lib/esm/examples/minimal/src/index.d.ts +1 -0
- package/lib/esm/examples/minimal/src/index.js +9 -0
- package/lib/esm/examples/minimal/src/models/books.d.ts +4 -0
- package/lib/esm/examples/minimal/src/models/books.js +24 -0
- package/lib/esm/examples/orm/models/permission.d.ts +6 -0
- package/lib/esm/examples/orm/models/permission.js +33 -0
- package/lib/esm/examples/orm/models/profile.d.ts +7 -0
- package/lib/esm/examples/orm/models/profile.js +37 -0
- package/lib/esm/examples/orm/models/user.d.ts +11 -0
- package/lib/esm/examples/orm/models/user.js +65 -0
- package/lib/esm/examples/orm/mysql/index.d.ts +1 -0
- package/lib/esm/examples/orm/mysql/index.js +39 -0
- package/lib/esm/examples/orm/postgres/index.d.ts +1 -0
- package/lib/esm/examples/orm/postgres/index.js +35 -0
- package/lib/esm/examples/orm/sqlite/index.d.ts +1 -0
- package/lib/esm/examples/orm/sqlite/index.js +36 -0
- package/lib/esm/index.d.ts +2 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/interfaces/controller.d.ts +109 -0
- package/lib/esm/interfaces/controller.js +1 -0
- package/lib/esm/interfaces/field.d.ts +23 -0
- package/lib/esm/interfaces/field.js +1 -0
- package/lib/esm/interfaces/handler.d.ts +18 -0
- package/lib/esm/interfaces/handler.js +1 -0
- package/lib/esm/interfaces/jwt.d.ts +21 -0
- package/lib/esm/interfaces/jwt.js +1 -0
- package/lib/esm/interfaces/model.d.ts +9 -0
- package/lib/esm/interfaces/model.js +1 -0
- package/lib/esm/interfaces/request.d.ts +13 -0
- package/lib/esm/interfaces/request.js +1 -0
- package/lib/esm/interfaces/schema.d.ts +9 -0
- package/lib/esm/interfaces/schema.js +1 -0
- package/lib/esm/interfaces/security.d.ts +32 -0
- package/lib/esm/interfaces/security.js +1 -0
- package/lib/esm/interfaces/server.d.ts +37 -0
- package/lib/esm/interfaces/server.js +1 -0
- package/lib/esm/interfaces/system.d.ts +41 -0
- package/lib/esm/interfaces/system.js +1 -0
- package/lib/esm/orm/decorators/index.d.ts +33 -0
- package/lib/esm/orm/decorators/index.js +118 -0
- package/lib/esm/orm/driver/mysql.d.ts +14 -0
- package/lib/esm/orm/driver/mysql.js +66 -0
- package/lib/esm/orm/driver/postgres.d.ts +14 -0
- package/lib/esm/orm/driver/postgres.js +68 -0
- package/lib/esm/orm/driver/sqlite.d.ts +14 -0
- package/lib/esm/orm/driver/sqlite.js +106 -0
- package/lib/esm/orm/index.d.ts +8 -0
- package/lib/esm/orm/index.js +8 -0
- package/lib/esm/orm/metadata.d.ts +47 -0
- package/lib/esm/orm/metadata.js +43 -0
- package/lib/esm/orm/opposer.d.ts +30 -0
- package/lib/esm/orm/opposer.js +29 -0
- package/lib/esm/orm/query-builder.d.ts +32 -0
- package/lib/esm/orm/query-builder.js +274 -0
- package/lib/esm/orm/repository.d.ts +54 -0
- package/lib/esm/orm/repository.js +318 -0
- package/lib/esm/orm/validation.d.ts +44 -0
- package/lib/esm/orm/validation.js +122 -0
- package/lib/esm/persistent/cache/core-context.d.ts +17 -0
- package/lib/esm/persistent/cache/core-context.js +34 -0
- package/lib/esm/persistent/cache/global.d.ts +18 -0
- package/lib/esm/persistent/cache/global.js +17 -0
- package/lib/esm/persistent/cache/index.d.ts +3 -0
- package/lib/esm/persistent/cache/index.js +3 -0
- package/lib/esm/persistent/cache/session.d.ts +19 -0
- package/lib/esm/persistent/cache/session.js +34 -0
- package/lib/esm/persistent/cache/storage.d.ts +14 -0
- package/lib/esm/persistent/cache/storage.js +82 -0
- package/lib/esm/persistent/cache/store.d.ts +16 -0
- package/lib/esm/persistent/cache/store.js +106 -0
- package/lib/esm/persistent/context/index.d.ts +3 -0
- package/lib/esm/persistent/context/index.js +3 -0
- package/lib/esm/persistent/decorators/global.d.ts +1 -0
- package/lib/esm/persistent/decorators/global.js +19 -0
- package/lib/esm/persistent/decorators/session.d.ts +1 -0
- package/lib/esm/persistent/decorators/session.js +21 -0
- package/lib/esm/persistent/index.d.ts +6 -0
- package/lib/esm/persistent/index.js +6 -0
- package/lib/esm/persistent/interfaces/context.d.ts +5 -0
- package/lib/esm/persistent/interfaces/context.js +1 -0
- package/lib/esm/persistent/interfaces/system.d.ts +47 -0
- package/lib/esm/persistent/interfaces/system.js +26 -0
- package/lib/esm/persistent/system/index.d.ts +7 -0
- package/lib/esm/persistent/system/index.js +39 -0
- package/lib/esm/persistent/utils/memory.d.ts +8 -0
- package/lib/esm/persistent/utils/memory.js +42 -0
- package/lib/esm/persistent/utils/timer.d.ts +14 -0
- package/lib/esm/persistent/utils/timer.js +16 -0
- package/lib/esm/playground/build/client/assets/AddRounded-ByHfnsiW.js +4 -0
- package/lib/esm/playground/build/client/assets/Button-DLrxHRm7.js +1 -0
- package/lib/esm/playground/build/client/assets/Container-CgITmmbk.js +1 -0
- package/lib/esm/playground/build/client/assets/Divider-B_Wx9srO.js +1 -0
- package/lib/esm/playground/build/client/assets/List-juBjUmfP.js +1 -0
- package/lib/esm/playground/build/client/assets/ListItemText-DgWZmgzc.js +1 -0
- package/lib/esm/playground/build/client/assets/MenuItem-D_5SuVKQ.js +1 -0
- package/lib/esm/playground/build/client/assets/Modal-BwXR_5Bh.js +1 -0
- package/lib/esm/playground/build/client/assets/TableRow-B9hAmlnV.js +2 -0
- package/lib/esm/playground/build/client/assets/TextField-UybdTIGB.js +3 -0
- package/lib/esm/playground/build/client/assets/Tooltip-BGcUWUcF.js +1 -0
- package/lib/esm/playground/build/client/assets/auth-CD1rXHzz.js +1 -0
- package/lib/esm/playground/build/client/assets/auth-GyTIVKy5.js +1 -0
- package/lib/esm/playground/build/client/assets/confirm-Dr0pbiV6.js +1 -0
- package/lib/esm/playground/build/client/assets/dividerClasses-CIiqeEPO.js +1 -0
- package/lib/esm/playground/build/client/assets/entry.client-D6FYz1yh.js +13 -0
- package/lib/esm/playground/build/client/assets/index-CJ0wdt6Z.js +1 -0
- package/lib/esm/playground/build/client/assets/index-CQc11yq_.js +1153 -0
- package/lib/esm/playground/build/client/assets/index-Cr4I-4J2.js +1 -0
- package/lib/esm/playground/build/client/assets/index-CtPqstFl.js +26 -0
- package/lib/esm/playground/build/client/assets/index-Ct_NE85o.js +1 -0
- package/lib/esm/playground/build/client/assets/index-D0I6xwmb.js +1 -0
- package/lib/esm/playground/build/client/assets/index-DmDCpKb3.js +1 -0
- package/lib/esm/playground/build/client/assets/index-DsSkAwyn.js +1 -0
- package/lib/esm/playground/build/client/assets/index-_DMgWZ3Y.js +1 -0
- package/lib/esm/playground/build/client/assets/listItemIconClasses-39Itzgzt.js +1 -0
- package/lib/esm/playground/build/client/assets/listItemTextClasses-EQFLPLzt.js +1 -0
- package/lib/esm/playground/build/client/assets/manifest-c06e9a7f.js +1 -0
- package/lib/esm/playground/build/client/assets/mergeSlotProps-DptgQgAT.js +1 -0
- package/lib/esm/playground/build/client/assets/playground-Hl52p9f5.js +108 -0
- package/lib/esm/playground/build/client/assets/root-CQTBmuv8.js +1 -0
- package/lib/esm/playground/build/client/assets/toast-CsAH5FIf.js +1 -0
- package/lib/esm/playground/build/client/assets/use-request-BZNkzlTr.js +1 -0
- package/lib/esm/playground/build/client/favicon.ico +0 -0
- package/lib/esm/playground/build/client/index.html +6 -0
- package/lib/esm/playground/index.d.ts +2 -0
- package/lib/esm/playground/index.js +129 -0
- package/lib/esm/scheduler/controllers/index.d.ts +19 -0
- package/lib/esm/scheduler/controllers/index.js +57 -0
- package/lib/esm/scheduler/decorators/index.d.ts +9 -0
- package/lib/esm/scheduler/decorators/index.js +16 -0
- package/lib/esm/scheduler/handlers/index.d.ts +19 -0
- package/lib/esm/scheduler/handlers/index.js +57 -0
- package/lib/esm/scheduler/index.d.ts +24 -0
- package/lib/esm/scheduler/index.js +89 -0
- package/lib/esm/scheduler/models/history.d.ts +10 -0
- package/lib/esm/scheduler/models/history.js +48 -0
- package/lib/esm/server/constants/index.d.ts +78 -0
- package/lib/esm/server/constants/index.js +369 -0
- package/lib/esm/server/context/index.d.ts +17 -0
- package/lib/esm/server/context/index.js +31 -0
- package/lib/esm/server/controller/index.d.ts +3 -0
- package/lib/esm/server/controller/index.js +179 -0
- package/lib/esm/server/controllers/index.d.ts +5 -0
- package/lib/esm/server/controllers/index.js +31 -0
- package/lib/esm/server/core/index.d.ts +16 -0
- package/lib/esm/server/core/index.js +103 -0
- package/lib/esm/server/core/middleware/body-parser.d.ts +2 -0
- package/lib/esm/server/core/middleware/body-parser.js +24 -0
- package/lib/esm/server/core/middleware/cors.d.ts +4 -0
- package/lib/esm/server/core/middleware/cors.js +29 -0
- package/lib/esm/server/core/middleware/logger.d.ts +2 -0
- package/lib/esm/server/core/middleware/logger.js +12 -0
- package/lib/esm/server/decorators/controller.d.ts +3 -0
- package/lib/esm/server/decorators/controller.js +10 -0
- package/lib/esm/server/decorators/field.d.ts +2 -0
- package/lib/esm/server/decorators/field.js +32 -0
- package/lib/esm/server/decorators/handler.d.ts +3 -0
- package/lib/esm/server/decorators/handler.js +10 -0
- package/lib/esm/server/decorators/index.d.ts +7 -0
- package/lib/esm/server/decorators/index.js +7 -0
- package/lib/esm/server/decorators/is-public-method.d.ts +3 -0
- package/lib/esm/server/decorators/is-public-method.js +12 -0
- package/lib/esm/server/decorators/is-public.d.ts +3 -0
- package/lib/esm/server/decorators/is-public.js +10 -0
- package/lib/esm/server/decorators/method.d.ts +3 -0
- package/lib/esm/server/decorators/method.js +12 -0
- package/lib/esm/server/decorators/payload.d.ts +3 -0
- package/lib/esm/server/decorators/payload.js +11 -0
- package/lib/esm/server/handlers/index.d.ts +5 -0
- package/lib/esm/server/handlers/index.js +31 -0
- package/lib/esm/server/helpers/index.d.ts +17 -0
- package/lib/esm/server/helpers/index.js +34 -0
- package/lib/esm/server/index.d.ts +12 -0
- package/lib/esm/server/index.js +147 -0
- package/lib/esm/server/security/controller/auth.d.ts +76 -0
- package/lib/esm/server/security/controller/auth.js +341 -0
- package/lib/esm/server/security/index.d.ts +2 -0
- package/lib/esm/server/security/index.js +2 -0
- package/lib/esm/server/security/jwt/index.d.ts +23 -0
- package/lib/esm/server/security/jwt/index.js +103 -0
- package/lib/esm/server/security/middleware/autorization.d.ts +3 -0
- package/lib/esm/server/security/middleware/autorization.js +41 -0
- package/lib/esm/server/security/middleware/permission.d.ts +3 -0
- package/lib/esm/server/security/middleware/permission.js +133 -0
- package/lib/esm/server/security/models/crp.d.ts +8 -0
- package/lib/esm/server/security/models/crp.js +40 -0
- package/lib/esm/server/security/models/ke.d.ts +7 -0
- package/lib/esm/server/security/models/ke.js +36 -0
- package/lib/esm/server/security/models/rl.d.ts +9 -0
- package/lib/esm/server/security/models/rl.js +45 -0
- package/lib/esm/server/security/models/se.d.ts +11 -0
- package/lib/esm/server/security/models/se.js +52 -0
- package/lib/esm/server/security/models/usr.d.ts +14 -0
- package/lib/esm/server/security/models/usr.js +77 -0
- package/lib/esm/server/services/delete.d.ts +13 -0
- package/lib/esm/server/services/delete.js +44 -0
- package/lib/esm/server/services/get.d.ts +4 -0
- package/lib/esm/server/services/get.js +140 -0
- package/lib/esm/server/services/insert.d.ts +13 -0
- package/lib/esm/server/services/insert.js +69 -0
- package/lib/esm/server/services/update.d.ts +13 -0
- package/lib/esm/server/services/update.js +55 -0
- package/lib/esm/system/index.d.ts +13 -0
- package/lib/esm/system/index.js +197 -0
- package/package.json +95 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { PayloadAuthChangePassword, PayloadAuthForgetPassword, PayloadAuthLogin, PayloadAuthRegister, PayloadSocialLogin } from '../../../interfaces/security.js';
|
|
2
|
+
import { PayloadRequest } from '../../../interfaces/controller.js';
|
|
3
|
+
export default class Auth {
|
|
4
|
+
private get db();
|
|
5
|
+
register(payload: PayloadRequest<PayloadAuthRegister>): Promise<{
|
|
6
|
+
readonly success: true;
|
|
7
|
+
readonly data: any;
|
|
8
|
+
} | {
|
|
9
|
+
readonly success: false;
|
|
10
|
+
readonly error: {
|
|
11
|
+
name: string;
|
|
12
|
+
code: number;
|
|
13
|
+
message: any;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
login(payload: PayloadRequest<PayloadAuthLogin>): Promise<{
|
|
17
|
+
readonly success: true;
|
|
18
|
+
readonly data: any;
|
|
19
|
+
} | {
|
|
20
|
+
readonly success: false;
|
|
21
|
+
readonly error: {
|
|
22
|
+
name: string;
|
|
23
|
+
code: number;
|
|
24
|
+
message: any;
|
|
25
|
+
};
|
|
26
|
+
}>;
|
|
27
|
+
refresh(payload: PayloadRequest<string>): Promise<{
|
|
28
|
+
readonly success: true;
|
|
29
|
+
readonly data: any;
|
|
30
|
+
} | {
|
|
31
|
+
readonly success: false;
|
|
32
|
+
readonly error: {
|
|
33
|
+
name: string;
|
|
34
|
+
code: number;
|
|
35
|
+
message: any;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
logout(payload: PayloadRequest<string>): Promise<{
|
|
39
|
+
readonly success: false;
|
|
40
|
+
readonly error: {
|
|
41
|
+
name: string;
|
|
42
|
+
code: number;
|
|
43
|
+
message: any;
|
|
44
|
+
};
|
|
45
|
+
} | undefined>;
|
|
46
|
+
me(payload: PayloadRequest<any>): Promise<{
|
|
47
|
+
readonly success: true;
|
|
48
|
+
readonly data: any;
|
|
49
|
+
} | null>;
|
|
50
|
+
changePassword(payload: PayloadRequest<PayloadAuthChangePassword>): Promise<{
|
|
51
|
+
readonly success: true;
|
|
52
|
+
readonly data: any;
|
|
53
|
+
} | {
|
|
54
|
+
readonly success: false;
|
|
55
|
+
readonly error: {
|
|
56
|
+
name: string;
|
|
57
|
+
code: number;
|
|
58
|
+
message: any;
|
|
59
|
+
};
|
|
60
|
+
}>;
|
|
61
|
+
forgotPassword(payload: PayloadRequest<PayloadAuthForgetPassword>): Promise<{
|
|
62
|
+
readonly success: true;
|
|
63
|
+
readonly data: any;
|
|
64
|
+
} | {
|
|
65
|
+
readonly success: false;
|
|
66
|
+
readonly error: {
|
|
67
|
+
name: string;
|
|
68
|
+
code: number;
|
|
69
|
+
message: any;
|
|
70
|
+
};
|
|
71
|
+
}>;
|
|
72
|
+
static social(payload: PayloadRequest<PayloadSocialLogin>): Promise<{
|
|
73
|
+
readonly success: true;
|
|
74
|
+
readonly data: any;
|
|
75
|
+
}>;
|
|
76
|
+
}
|
|
@@ -0,0 +1,341 @@
|
|
|
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 { Method, Controller, IsPublicMethod } from '../../decorators/index.js';
|
|
11
|
+
import User from '../models/usr.js';
|
|
12
|
+
import Role from '../models/rl.js';
|
|
13
|
+
import { Exception, Success, validateData } from '../../helpers/index.js';
|
|
14
|
+
import { HttpStatus } from '../../constants/index.js';
|
|
15
|
+
import jwt from '../jwt/index.js';
|
|
16
|
+
import Session from '../models/se.js';
|
|
17
|
+
import ChangeRequestPassword from '../models/crp.js';
|
|
18
|
+
import { Context } from '../../index.js';
|
|
19
|
+
let Auth = class Auth {
|
|
20
|
+
get db() {
|
|
21
|
+
return Context.get('db');
|
|
22
|
+
}
|
|
23
|
+
async register(payload) {
|
|
24
|
+
var errors = validateData(User, payload.data);
|
|
25
|
+
if (Object.keys(errors).length > 0) {
|
|
26
|
+
return Exception({
|
|
27
|
+
...HttpStatus[400],
|
|
28
|
+
message: errors,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
var userRepository = this.db.getRepository(User);
|
|
32
|
+
if (await userRepository.findOne({ where: { lg: payload.data.lg } })) {
|
|
33
|
+
return Exception({
|
|
34
|
+
...HttpStatus[400],
|
|
35
|
+
message: 'User with this login already exists.',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const result = await userRepository.insert(payload.data);
|
|
39
|
+
return Success(result);
|
|
40
|
+
}
|
|
41
|
+
async login(payload) {
|
|
42
|
+
if (!payload.data.lg) {
|
|
43
|
+
return Exception({
|
|
44
|
+
...HttpStatus[400],
|
|
45
|
+
message: 'Login is required',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (!payload.data.ps) {
|
|
49
|
+
return Exception({
|
|
50
|
+
...HttpStatus[400],
|
|
51
|
+
message: 'Password is required',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
var userRepository = this.db.getRepository(User);
|
|
55
|
+
var sessionRepository = this.db.getRepository(Session);
|
|
56
|
+
var usr = await userRepository.findOne({
|
|
57
|
+
where: { lg: payload.data.lg },
|
|
58
|
+
});
|
|
59
|
+
if (!usr) {
|
|
60
|
+
return Exception({
|
|
61
|
+
...HttpStatus[400],
|
|
62
|
+
message: 'Invalid login or password, check the data and try again.',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (!(await usr.comparePassword(payload.data.ps))) {
|
|
66
|
+
return Exception({
|
|
67
|
+
...HttpStatus[400],
|
|
68
|
+
message: 'Invalid login or password, check the data and try again.',
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
var roleRepository = this.db.getRepository(Role);
|
|
72
|
+
var roles = await roleRepository.find({
|
|
73
|
+
where: { usr: usr.id },
|
|
74
|
+
});
|
|
75
|
+
var { token, refresh } = await jwt.sign({
|
|
76
|
+
fn: usr.fn,
|
|
77
|
+
id: usr.id,
|
|
78
|
+
lg: usr.lg,
|
|
79
|
+
ln: usr.ln,
|
|
80
|
+
exp: 0,
|
|
81
|
+
rl: roles.map(({ sm, mt }) => ({ sm, mt })),
|
|
82
|
+
});
|
|
83
|
+
// register new session init
|
|
84
|
+
await sessionRepository.insert({
|
|
85
|
+
ac: true,
|
|
86
|
+
ag: payload.headers.userAgent,
|
|
87
|
+
ip: payload.headers.ip,
|
|
88
|
+
loi: new Date(),
|
|
89
|
+
rt: refresh,
|
|
90
|
+
usr: usr.id,
|
|
91
|
+
});
|
|
92
|
+
const current = new Date();
|
|
93
|
+
payload.headers.cookies.set('access_token', token, {
|
|
94
|
+
httpOnly: true,
|
|
95
|
+
secure: true,
|
|
96
|
+
sameSite: 'none',
|
|
97
|
+
path: '/',
|
|
98
|
+
expires: new Date(current.getTime() + 15 * 60 * 1000), // 15 mim
|
|
99
|
+
});
|
|
100
|
+
payload.headers.cookies.set('refresh_token', refresh, {
|
|
101
|
+
httpOnly: true,
|
|
102
|
+
secure: true,
|
|
103
|
+
sameSite: 'none',
|
|
104
|
+
path: '/',
|
|
105
|
+
expires: new Date(current.getTime() + 15 * 24 * 60 * 60 * 1000), // 15 dias
|
|
106
|
+
});
|
|
107
|
+
return Success({
|
|
108
|
+
token,
|
|
109
|
+
refresh,
|
|
110
|
+
usr: {
|
|
111
|
+
id: usr.id,
|
|
112
|
+
fn: usr.fn,
|
|
113
|
+
ln: usr.ln,
|
|
114
|
+
lg: usr.lg,
|
|
115
|
+
rl: roles.map(({ sm, mt }) => ({ sm, mt })),
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
async refresh(payload) {
|
|
120
|
+
if (!payload.data) {
|
|
121
|
+
return Exception({
|
|
122
|
+
...HttpStatus[400],
|
|
123
|
+
message: 'Refresh token is required.',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
var sessionRepository = this.db.getRepository(Session);
|
|
127
|
+
var last = await sessionRepository.findOne({
|
|
128
|
+
where: { rt: payload.data },
|
|
129
|
+
});
|
|
130
|
+
if (!last) {
|
|
131
|
+
return Exception({
|
|
132
|
+
...HttpStatus[401],
|
|
133
|
+
message: "Don't find session.",
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
if (!last.ac) {
|
|
137
|
+
return Exception({
|
|
138
|
+
...HttpStatus[401],
|
|
139
|
+
message: 'Refresh expired.',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
var usr = await jwt.validate.refresh(payload.data);
|
|
143
|
+
if (!usr || typeof usr === 'string') {
|
|
144
|
+
return Exception({
|
|
145
|
+
...HttpStatus[401],
|
|
146
|
+
message: 'Invalid token.',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//cancel last session and update in database;
|
|
150
|
+
await sessionRepository.update({ rt: last.rt }, {
|
|
151
|
+
ac: false,
|
|
152
|
+
lou: new Date(),
|
|
153
|
+
});
|
|
154
|
+
var { token, refresh } = await jwt.sign(usr);
|
|
155
|
+
await sessionRepository.insert({
|
|
156
|
+
ac: true,
|
|
157
|
+
ag: last.ag,
|
|
158
|
+
ip: last.ip,
|
|
159
|
+
loi: new Date(),
|
|
160
|
+
rt: refresh,
|
|
161
|
+
usr: usr.id,
|
|
162
|
+
});
|
|
163
|
+
const current = new Date();
|
|
164
|
+
payload.headers.cookies.set('access_token', token, {
|
|
165
|
+
httpOnly: true,
|
|
166
|
+
secure: true,
|
|
167
|
+
sameSite: 'none',
|
|
168
|
+
path: '/',
|
|
169
|
+
expires: new Date(current.getTime() + 15 * 60 * 1000), // 15 mim
|
|
170
|
+
});
|
|
171
|
+
payload.headers.cookies.set('refresh_token', refresh, {
|
|
172
|
+
httpOnly: true,
|
|
173
|
+
secure: true,
|
|
174
|
+
sameSite: 'none',
|
|
175
|
+
path: '/',
|
|
176
|
+
expires: new Date(current.getTime() + 15 * 24 * 60 * 60 * 1000), // 15 dias
|
|
177
|
+
});
|
|
178
|
+
return Success({
|
|
179
|
+
token,
|
|
180
|
+
refresh,
|
|
181
|
+
...usr,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async logout(payload) {
|
|
185
|
+
const token = payload.data || payload.headers.cookies.data.refresh_token;
|
|
186
|
+
if (!token) {
|
|
187
|
+
return Exception({
|
|
188
|
+
...HttpStatus[400],
|
|
189
|
+
message: 'Token is required for logout user.',
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
payload.headers.cookies.remove('access_token');
|
|
193
|
+
payload.headers.cookies.remove('refresh_token');
|
|
194
|
+
var sessionRepository = this.db.getRepository(Session);
|
|
195
|
+
await sessionRepository.update({ rt: token }, {
|
|
196
|
+
ac: false,
|
|
197
|
+
lou: new Date(),
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
async me(payload) {
|
|
201
|
+
const token = payload.headers.cookies.data.refresh_token;
|
|
202
|
+
if (!token) {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
var usr = await jwt.validate.refresh(token);
|
|
206
|
+
if (typeof usr === 'string') {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
return Success(usr);
|
|
210
|
+
}
|
|
211
|
+
async changePassword(payload) {
|
|
212
|
+
var errors = validateData(User, { ps: payload.data.ps });
|
|
213
|
+
if (Object.keys(errors).length > 0) {
|
|
214
|
+
return Exception({
|
|
215
|
+
...HttpStatus[400],
|
|
216
|
+
message: errors,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (!payload.data.tk) {
|
|
220
|
+
return Exception({
|
|
221
|
+
...HttpStatus[400],
|
|
222
|
+
message: 'Ticket is required for change password.',
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
var ticket = await jwt.validate.recover(payload.data.tk);
|
|
226
|
+
if (typeof ticket === 'string' || !ticket) {
|
|
227
|
+
return Exception({
|
|
228
|
+
...HttpStatus[401],
|
|
229
|
+
message: 'Invalid token.',
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
var changePasswordRepository = this.db.getRepository(ChangeRequestPassword);
|
|
233
|
+
var userRepository = this.db.getRepository(User);
|
|
234
|
+
var usr = await userRepository.findOne({
|
|
235
|
+
where: { lg: ticket.lg },
|
|
236
|
+
});
|
|
237
|
+
if (!usr) {
|
|
238
|
+
return Exception({
|
|
239
|
+
...HttpStatus[401],
|
|
240
|
+
message: "Don't find user, verify payload and try again.",
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
// finaly update password...
|
|
244
|
+
await userRepository.update({ lg: ticket.lg }, { ps: payload.data.ps });
|
|
245
|
+
await changePasswordRepository.update({ tk: payload.data.tk }, {
|
|
246
|
+
ud: true,
|
|
247
|
+
});
|
|
248
|
+
return Success({ message: 'Success for change password.' });
|
|
249
|
+
}
|
|
250
|
+
async forgotPassword(payload) {
|
|
251
|
+
if (!payload.data.lg) {
|
|
252
|
+
return Exception({
|
|
253
|
+
...HttpStatus[400],
|
|
254
|
+
message: 'Login is required.',
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
var { token } = await jwt.forget(payload.data);
|
|
258
|
+
var changePasswordRepository = this.db.getRepository(ChangeRequestPassword);
|
|
259
|
+
await changePasswordRepository.insert({
|
|
260
|
+
...payload.data,
|
|
261
|
+
tk: token,
|
|
262
|
+
ex: new Date(new Date().getTime() + 5 * 60 * 1000), // five min
|
|
263
|
+
});
|
|
264
|
+
return Success({ token });
|
|
265
|
+
}
|
|
266
|
+
static async social(payload) {
|
|
267
|
+
const usr = payload.data;
|
|
268
|
+
const db = Context.get('db');
|
|
269
|
+
var sessionRepository = db.getRepository(Session);
|
|
270
|
+
var { token, refresh } = await jwt.sign({
|
|
271
|
+
...usr,
|
|
272
|
+
exp: 0,
|
|
273
|
+
});
|
|
274
|
+
// register new session init
|
|
275
|
+
await sessionRepository.insert({
|
|
276
|
+
ac: true,
|
|
277
|
+
ag: payload.headers.userAgent,
|
|
278
|
+
ip: payload.headers.ip,
|
|
279
|
+
loi: new Date(),
|
|
280
|
+
rt: refresh,
|
|
281
|
+
usr: usr.id,
|
|
282
|
+
});
|
|
283
|
+
return Success({
|
|
284
|
+
token,
|
|
285
|
+
refresh,
|
|
286
|
+
usr: {
|
|
287
|
+
id: usr.id,
|
|
288
|
+
fn: usr.fn,
|
|
289
|
+
ln: usr.ln,
|
|
290
|
+
lg: usr.lg,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
__decorate([
|
|
296
|
+
Method(),
|
|
297
|
+
__metadata("design:type", Function),
|
|
298
|
+
__metadata("design:paramtypes", [Object]),
|
|
299
|
+
__metadata("design:returntype", Promise)
|
|
300
|
+
], Auth.prototype, "register", null);
|
|
301
|
+
__decorate([
|
|
302
|
+
Method(),
|
|
303
|
+
__metadata("design:type", Function),
|
|
304
|
+
__metadata("design:paramtypes", [Object]),
|
|
305
|
+
__metadata("design:returntype", Promise)
|
|
306
|
+
], Auth.prototype, "login", null);
|
|
307
|
+
__decorate([
|
|
308
|
+
Method(),
|
|
309
|
+
__metadata("design:type", Function),
|
|
310
|
+
__metadata("design:paramtypes", [Object]),
|
|
311
|
+
__metadata("design:returntype", Promise)
|
|
312
|
+
], Auth.prototype, "refresh", null);
|
|
313
|
+
__decorate([
|
|
314
|
+
Method(),
|
|
315
|
+
__metadata("design:type", Function),
|
|
316
|
+
__metadata("design:paramtypes", [Object]),
|
|
317
|
+
__metadata("design:returntype", Promise)
|
|
318
|
+
], Auth.prototype, "logout", null);
|
|
319
|
+
__decorate([
|
|
320
|
+
Method(),
|
|
321
|
+
IsPublicMethod(),
|
|
322
|
+
__metadata("design:type", Function),
|
|
323
|
+
__metadata("design:paramtypes", [Object]),
|
|
324
|
+
__metadata("design:returntype", Promise)
|
|
325
|
+
], Auth.prototype, "me", null);
|
|
326
|
+
__decorate([
|
|
327
|
+
Method(),
|
|
328
|
+
__metadata("design:type", Function),
|
|
329
|
+
__metadata("design:paramtypes", [Object]),
|
|
330
|
+
__metadata("design:returntype", Promise)
|
|
331
|
+
], Auth.prototype, "changePassword", null);
|
|
332
|
+
__decorate([
|
|
333
|
+
Method(),
|
|
334
|
+
__metadata("design:type", Function),
|
|
335
|
+
__metadata("design:paramtypes", [Object]),
|
|
336
|
+
__metadata("design:returntype", Promise)
|
|
337
|
+
], Auth.prototype, "forgotPassword", null);
|
|
338
|
+
Auth = __decorate([
|
|
339
|
+
Controller('auth')
|
|
340
|
+
], Auth);
|
|
341
|
+
export default Auth;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ForgetJwt, SignJwt } from "../../../interfaces/jwt.js";
|
|
2
|
+
declare function access(token: string): Promise<string | SignJwt | undefined>;
|
|
3
|
+
declare function refresh(token: string): Promise<string | SignJwt | undefined>;
|
|
4
|
+
declare function sign({ exp, ...payload }: SignJwt): Promise<{
|
|
5
|
+
token: any;
|
|
6
|
+
refresh: any;
|
|
7
|
+
}>;
|
|
8
|
+
declare function forget(payload: ForgetJwt): Promise<{
|
|
9
|
+
token: any;
|
|
10
|
+
}>;
|
|
11
|
+
declare function recover(token: string): Promise<string | ForgetJwt | undefined>;
|
|
12
|
+
declare function verify(token: string): Promise<string | true | undefined>;
|
|
13
|
+
declare const _default: {
|
|
14
|
+
verify: typeof verify;
|
|
15
|
+
sign: typeof sign;
|
|
16
|
+
forget: typeof forget;
|
|
17
|
+
validate: {
|
|
18
|
+
access: typeof access;
|
|
19
|
+
refresh: typeof refresh;
|
|
20
|
+
recover: typeof recover;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
//@ts-ignore
|
|
2
|
+
import jwt from "jsonwebtoken";
|
|
3
|
+
import system from "../../../system/index.js";
|
|
4
|
+
const settings = system.getSettingsFile();
|
|
5
|
+
const accessJwt = process.env.ACCESS_JWT
|
|
6
|
+
? process.env.ACCESS_JWT
|
|
7
|
+
: settings.jwt.access;
|
|
8
|
+
const refreshJwt = process.env.REFRESH_JWT
|
|
9
|
+
? process.env.REFRESH_JWT
|
|
10
|
+
: settings.jwt.refresh;
|
|
11
|
+
const recoverJwt = process.env.RECOVER_JWT
|
|
12
|
+
? process.env.RECOVER_JWT
|
|
13
|
+
: settings.jwt.recover;
|
|
14
|
+
async function access(token) {
|
|
15
|
+
if (!accessJwt) {
|
|
16
|
+
throw new Error("[jwt] - Don't finded token for access jwt, generate running 'npx @ug.software/opposer jwt generate' or consulting documentation.");
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const user = jwt.verify(token, accessJwt);
|
|
20
|
+
return user;
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
var erro = err;
|
|
24
|
+
if (erro.name === "TokenExpiredError") {
|
|
25
|
+
return erro.message;
|
|
26
|
+
}
|
|
27
|
+
if (erro.name === "JsonWebTokenError") {
|
|
28
|
+
return "Check your data and try again.";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function refresh(token) {
|
|
33
|
+
if (!refreshJwt) {
|
|
34
|
+
throw new Error("[jwt] - Don't finded token for refresh jwt, generate running 'npx @ug.software/opposer jwt generate' or consulting documentation.");
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const user = jwt.verify(token, refreshJwt);
|
|
38
|
+
return user;
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
var erro = err;
|
|
42
|
+
if (erro.name === "TokenExpiredError") {
|
|
43
|
+
return erro.message;
|
|
44
|
+
}
|
|
45
|
+
if (erro.name === "JsonWebTokenError") {
|
|
46
|
+
return "Check your data and try again.";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function sign({ exp, ...payload }) {
|
|
51
|
+
if (!accessJwt) {
|
|
52
|
+
throw new Error("[jwt] - Don't finded token secret, generate running 'npx @ug.software/opposer jwt generate' or consulting documentation.");
|
|
53
|
+
}
|
|
54
|
+
const token = jwt.sign({ ...payload }, accessJwt, { expiresIn: "15m" });
|
|
55
|
+
const refresh = jwt.sign({ ...payload }, refreshJwt, {
|
|
56
|
+
expiresIn: "15d",
|
|
57
|
+
});
|
|
58
|
+
return { token, refresh };
|
|
59
|
+
}
|
|
60
|
+
async function forget(payload) {
|
|
61
|
+
if (!recoverJwt) {
|
|
62
|
+
throw new Error("[jwt] - Don't finded token secret for recover password, generate running 'npx @ug.software/opposer jwt generate' or consulting documentation.");
|
|
63
|
+
}
|
|
64
|
+
const token = jwt.sign(payload, accessJwt, { expiresIn: "5m" });
|
|
65
|
+
return { token };
|
|
66
|
+
}
|
|
67
|
+
async function recover(token) {
|
|
68
|
+
if (!recoverJwt) {
|
|
69
|
+
throw new Error("[jwt] - Don't finded token secret for recover password, generate running 'npx @ug.software/opposer jwt generate' or consulting documentation.");
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const user = jwt.verify(token, recoverJwt);
|
|
73
|
+
return user;
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
var erro = err;
|
|
77
|
+
if (erro.name === "TokenExpiredError") {
|
|
78
|
+
return erro.message;
|
|
79
|
+
}
|
|
80
|
+
if (erro.name === "JsonWebTokenError") {
|
|
81
|
+
return "Check your data and try again.";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function verify(token) {
|
|
86
|
+
try {
|
|
87
|
+
const secret = process.env.ACCESS_JWT
|
|
88
|
+
? process.env.ACCESS_JWT
|
|
89
|
+
: settings.jwt;
|
|
90
|
+
jwt.verify(token, secret);
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
var erro = err;
|
|
95
|
+
if (erro.name === "TokenExpiredError") {
|
|
96
|
+
return erro.message;
|
|
97
|
+
}
|
|
98
|
+
if (erro.name === "JsonWebTokenError") {
|
|
99
|
+
return "Check your data and try again.";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export default { verify, sign, forget, validate: { access, refresh, recover } };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Exception } from "../../helpers/index.js";
|
|
2
|
+
import { HttpStatus } from "../../constants/index.js";
|
|
3
|
+
import ke from "../models/ke.js";
|
|
4
|
+
import { Context } from "../../index.js";
|
|
5
|
+
export default async (req, res, next) => {
|
|
6
|
+
const host = req.headers.host;
|
|
7
|
+
const referer = req.headers.referer;
|
|
8
|
+
// Bypass for playground or same domain requests
|
|
9
|
+
if (referer && host && referer.includes(host)) {
|
|
10
|
+
return next();
|
|
11
|
+
}
|
|
12
|
+
var api = (req.headers["opposer-key"] || req.cookies.opposer_key);
|
|
13
|
+
if (!api) {
|
|
14
|
+
return res.status(HttpStatus[401].code).send(Exception({
|
|
15
|
+
...HttpStatus[401],
|
|
16
|
+
message: "[autorization] - Unauthorized in system.",
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
const db = Context.get("db");
|
|
20
|
+
if (!db) {
|
|
21
|
+
return res.status(HttpStatus[403].code).send(Exception({
|
|
22
|
+
...HttpStatus[403],
|
|
23
|
+
message: "[database] - Database connection not found.",
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
var keRepository = db.getRepository(ke);
|
|
27
|
+
var authorization = await keRepository.findOne({ where: { hs: api } });
|
|
28
|
+
if (!authorization) {
|
|
29
|
+
return res.status(HttpStatus[403].code).send(Exception({
|
|
30
|
+
...HttpStatus[403],
|
|
31
|
+
message: "[autorization] - Unauthorized in system.",
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
if (new Date() > new Date(authorization.ex)) {
|
|
35
|
+
return res.status(HttpStatus[403].code).send(Exception({
|
|
36
|
+
...HttpStatus[403],
|
|
37
|
+
message: "[autorization] - Unauthorized in system.",
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
next();
|
|
41
|
+
};
|