@typetron/framework 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Container/ClassResolver.d.ts +9 -0
- package/Container/ClassResolver.d.ts.map +1 -0
- package/Container/ClassResolver.js +84 -0
- package/Container/ClassResolver.js.map +1 -0
- package/Container/Container.d.ts +25 -0
- package/Container/Container.d.ts.map +1 -0
- package/Container/Container.js +122 -0
- package/Container/Container.js.map +1 -0
- package/Container/Contracts.d.ts +3 -0
- package/Container/Contracts.d.ts.map +1 -0
- package/Container/Contracts.js +3 -0
- package/Container/Contracts.js.map +1 -0
- package/Container/Decorators.d.ts +5 -0
- package/Container/Decorators.d.ts.map +1 -0
- package/Container/Decorators.js +22 -0
- package/Container/Decorators.js.map +1 -0
- package/Container/Metadata.d.ts +21 -0
- package/Container/Metadata.d.ts.map +1 -0
- package/Container/Metadata.js +19 -0
- package/Container/Metadata.js.map +1 -0
- package/Container/Resolver.d.ts +19 -0
- package/Container/Resolver.d.ts.map +1 -0
- package/Container/Resolver.js +16 -0
- package/Container/Resolver.js.map +1 -0
- package/Container/index.d.ts +6 -0
- package/Container/index.d.ts.map +1 -0
- package/Container/index.js +18 -0
- package/Container/index.js.map +1 -0
- package/Database/Clauses/Where.d.ts +1 -0
- package/Database/Clauses/Where.d.ts.map +1 -0
- package/Database/Clauses/Where.js +2 -0
- package/Database/Clauses/Where.js.map +1 -0
- package/Database/Connection.d.ts +24 -0
- package/Database/Connection.d.ts.map +1 -0
- package/Database/Connection.js +43 -0
- package/Database/Connection.js.map +1 -0
- package/Database/Decorators.d.ts +32 -0
- package/Database/Decorators.d.ts.map +1 -0
- package/Database/Decorators.js +114 -0
- package/Database/Decorators.js.map +1 -0
- package/Database/Drivers/DatabaseDriver.d.ts +31 -0
- package/Database/Drivers/DatabaseDriver.d.ts.map +1 -0
- package/Database/Drivers/DatabaseDriver.js +7 -0
- package/Database/Drivers/DatabaseDriver.js.map +1 -0
- package/Database/Drivers/MySQL/MysqlDriver.d.ts +38 -0
- package/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -0
- package/Database/Drivers/MySQL/MysqlDriver.js +81 -0
- package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -0
- package/Database/Drivers/MySQL/Schema.d.ts +6 -0
- package/Database/Drivers/MySQL/Schema.d.ts.map +1 -0
- package/Database/Drivers/MySQL/Schema.js +12 -0
- package/Database/Drivers/MySQL/Schema.js.map +1 -0
- package/Database/Drivers/MySQL/index.d.ts +1 -0
- package/Database/Drivers/MySQL/index.d.ts.map +1 -0
- package/Database/Drivers/MySQL/index.js +2 -0
- package/Database/Drivers/MySQL/index.js.map +1 -0
- package/Database/Drivers/SQL/Schema.d.ts +12 -0
- package/Database/Drivers/SQL/Schema.d.ts.map +1 -0
- package/Database/Drivers/SQL/Schema.js +100 -0
- package/Database/Drivers/SQL/Schema.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Alter.d.ts +8 -0
- package/Database/Drivers/SQL/Statements/Alter.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Alter.js +25 -0
- package/Database/Drivers/SQL/Statements/Alter.js.map +1 -0
- package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +13 -0
- package/Database/Drivers/SQL/Statements/BaseStatement.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/BaseStatement.js +47 -0
- package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Create.d.ts +7 -0
- package/Database/Drivers/SQL/Statements/Create.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Create.js +22 -0
- package/Database/Drivers/SQL/Statements/Create.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Delete.d.ts +6 -0
- package/Database/Drivers/SQL/Statements/Delete.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Delete.js +22 -0
- package/Database/Drivers/SQL/Statements/Delete.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Insert.d.ts +7 -0
- package/Database/Drivers/SQL/Statements/Insert.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Insert.js +24 -0
- package/Database/Drivers/SQL/Statements/Insert.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Select.d.ts +8 -0
- package/Database/Drivers/SQL/Statements/Select.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Select.js +54 -0
- package/Database/Drivers/SQL/Statements/Select.js.map +1 -0
- package/Database/Drivers/SQL/Statements/Update.d.ts +7 -0
- package/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -0
- package/Database/Drivers/SQL/Statements/Update.js +35 -0
- package/Database/Drivers/SQL/Statements/Update.js.map +1 -0
- package/Database/Drivers/SQLite/Schema.d.ts +6 -0
- package/Database/Drivers/SQLite/Schema.d.ts.map +1 -0
- package/Database/Drivers/SQLite/Schema.js +12 -0
- package/Database/Drivers/SQLite/Schema.js.map +1 -0
- package/Database/Drivers/SQLite/SqliteDriver.d.ts +39 -0
- package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -0
- package/Database/Drivers/SQLite/SqliteDriver.js +98 -0
- package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -0
- package/Database/Drivers/SQLite/index.d.ts +2 -0
- package/Database/Drivers/SQLite/index.d.ts.map +1 -0
- package/Database/Drivers/SQLite/index.js +14 -0
- package/Database/Drivers/SQLite/index.js.map +1 -0
- package/Database/Drivers/SchemaContract.d.ts +11 -0
- package/Database/Drivers/SchemaContract.d.ts.map +1 -0
- package/Database/Drivers/SchemaContract.js +10 -0
- package/Database/Drivers/SchemaContract.js.map +1 -0
- package/Database/Drivers/Statement.d.ts +9 -0
- package/Database/Drivers/Statement.d.ts.map +1 -0
- package/Database/Drivers/Statement.js +14 -0
- package/Database/Drivers/Statement.js.map +1 -0
- package/Database/Drivers/index.d.ts +5 -0
- package/Database/Drivers/index.d.ts.map +1 -0
- package/Database/Drivers/index.js +17 -0
- package/Database/Drivers/index.js.map +1 -0
- package/Database/Entity.d.ts +64 -0
- package/Database/Entity.d.ts.map +1 -0
- package/Database/Entity.js +242 -0
- package/Database/Entity.js.map +1 -0
- package/Database/EntityNotFoundError.d.ts +3 -0
- package/Database/EntityNotFoundError.d.ts.map +1 -0
- package/Database/EntityNotFoundError.js +7 -0
- package/Database/EntityNotFoundError.js.map +1 -0
- package/Database/EntityProxyHandler.d.ts +9 -0
- package/Database/EntityProxyHandler.d.ts.map +1 -0
- package/Database/EntityProxyHandler.js +33 -0
- package/Database/EntityProxyHandler.js.map +1 -0
- package/Database/EntityQuery.d.ts +28 -0
- package/Database/EntityQuery.d.ts.map +1 -0
- package/Database/EntityQuery.js +146 -0
- package/Database/EntityQuery.js.map +1 -0
- package/Database/Expression.d.ts +6 -0
- package/Database/Expression.d.ts.map +1 -0
- package/Database/Expression.js +13 -0
- package/Database/Expression.js.map +1 -0
- package/Database/Fields.d.ts +153 -0
- package/Database/Fields.d.ts.map +1 -0
- package/Database/Fields.js +543 -0
- package/Database/Fields.js.map +1 -0
- package/Database/Helpers.d.ts +2 -0
- package/Database/Helpers.d.ts.map +1 -0
- package/Database/Helpers.js +11 -0
- package/Database/Helpers.js.map +1 -0
- package/Database/List.d.ts +25 -0
- package/Database/List.d.ts.map +1 -0
- package/Database/List.js +50 -0
- package/Database/List.js.map +1 -0
- package/Database/Migrations/Migration.d.ts +8 -0
- package/Database/Migrations/Migration.d.ts.map +1 -0
- package/Database/Migrations/Migration.js +10 -0
- package/Database/Migrations/Migration.js.map +1 -0
- package/Database/Migrations/MigrationHistory.d.ts +9 -0
- package/Database/Migrations/MigrationHistory.d.ts.map +1 -0
- package/Database/Migrations/MigrationHistory.js +39 -0
- package/Database/Migrations/MigrationHistory.js.map +1 -0
- package/Database/Migrations/Migrator.d.ts +21 -0
- package/Database/Migrations/Migrator.d.ts.map +1 -0
- package/Database/Migrations/Migrator.js +119 -0
- package/Database/Migrations/Migrator.js.map +1 -0
- package/Database/Migrations/index.d.ts +4 -0
- package/Database/Migrations/index.d.ts.map +1 -0
- package/Database/Migrations/index.js +16 -0
- package/Database/Migrations/index.js.map +1 -0
- package/Database/ORM/BaseRelationship.d.ts +8 -0
- package/Database/ORM/BaseRelationship.d.ts.map +1 -0
- package/Database/ORM/BaseRelationship.js +11 -0
- package/Database/ORM/BaseRelationship.js.map +1 -0
- package/Database/Query.d.ts +62 -0
- package/Database/Query.d.ts.map +1 -0
- package/Database/Query.js +263 -0
- package/Database/Query.js.map +1 -0
- package/Database/Types.d.ts +117 -0
- package/Database/Types.d.ts.map +1 -0
- package/Database/Types.js +95 -0
- package/Database/Types.js.map +1 -0
- package/Database/index.d.ts +20 -0
- package/Database/index.d.ts.map +1 -0
- package/Database/index.js +20 -0
- package/Database/index.js.map +1 -0
- package/Encryption/index.d.ts +16 -0
- package/Encryption/index.d.ts.map +1 -0
- package/Encryption/index.js +51 -0
- package/Encryption/index.js.map +1 -0
- package/Forms/Decorators.d.ts +7 -0
- package/Forms/Decorators.d.ts.map +1 -0
- package/Forms/Decorators.js +29 -0
- package/Forms/Decorators.js.map +1 -0
- package/Forms/Form.d.ts +18 -0
- package/Forms/Form.d.ts.map +1 -0
- package/Forms/Form.js +70 -0
- package/Forms/Form.js.map +1 -0
- package/Forms/FormFields.d.ts +10 -0
- package/Forms/FormFields.d.ts.map +1 -0
- package/Forms/FormFields.js +36 -0
- package/Forms/FormFields.js.map +1 -0
- package/Forms/index.d.ts +4 -0
- package/Forms/index.d.ts.map +1 -0
- package/Forms/index.js +16 -0
- package/Forms/index.js.map +1 -0
- package/Framework/App.d.ts +7 -0
- package/Framework/App.d.ts.map +1 -0
- package/Framework/App.js +10 -0
- package/Framework/App.js.map +1 -0
- package/Framework/Application.d.ts +18 -0
- package/Framework/Application.d.ts.map +1 -0
- package/Framework/Application.js +94 -0
- package/Framework/Application.js.map +1 -0
- package/Framework/Auth/Auth.d.ts +25 -0
- package/Framework/Auth/Auth.d.ts.map +1 -0
- package/Framework/Auth/Auth.js +93 -0
- package/Framework/Auth/Auth.js.map +1 -0
- package/Framework/Auth/Authenticatable.d.ts +7 -0
- package/Framework/Auth/Authenticatable.d.ts.map +1 -0
- package/Framework/Auth/Authenticatable.js +3 -0
- package/Framework/Auth/Authenticatable.js.map +1 -0
- package/Framework/Auth/User.d.ts +11 -0
- package/Framework/Auth/User.d.ts.map +1 -0
- package/Framework/Auth/User.js +38 -0
- package/Framework/Auth/User.js.map +1 -0
- package/Framework/Auth/index.d.ts +6 -0
- package/Framework/Auth/index.d.ts.map +1 -0
- package/Framework/Auth/index.js +45 -0
- package/Framework/Auth/index.js.map +1 -0
- package/Framework/Config/AppConfig.d.ts +15 -0
- package/Framework/Config/AppConfig.d.ts.map +1 -0
- package/Framework/Config/AppConfig.js +12 -0
- package/Framework/Config/AppConfig.js.map +1 -0
- package/Framework/Config/AuthConfig.d.ts +9 -0
- package/Framework/Config/AuthConfig.d.ts.map +1 -0
- package/Framework/Config/AuthConfig.js +8 -0
- package/Framework/Config/AuthConfig.js.map +1 -0
- package/Framework/Config/BaseConfig.d.ts +7 -0
- package/Framework/Config/BaseConfig.d.ts.map +1 -0
- package/Framework/Config/BaseConfig.js +13 -0
- package/Framework/Config/BaseConfig.js.map +1 -0
- package/Framework/Config/DatabaseConfig.d.ts +10 -0
- package/Framework/Config/DatabaseConfig.d.ts.map +1 -0
- package/Framework/Config/DatabaseConfig.js +25 -0
- package/Framework/Config/DatabaseConfig.js.map +1 -0
- package/Framework/Config/index.d.ts +5 -0
- package/Framework/Config/index.d.ts.map +1 -0
- package/Framework/Config/index.js +17 -0
- package/Framework/Config/index.js.map +1 -0
- package/Framework/Middleware/AuthMiddleware.d.ts +8 -0
- package/Framework/Middleware/AuthMiddleware.d.ts.map +1 -0
- package/Framework/Middleware/AuthMiddleware.js +64 -0
- package/Framework/Middleware/AuthMiddleware.js.map +1 -0
- package/Framework/Middleware/CorsMiddleware.d.ts +7 -0
- package/Framework/Middleware/CorsMiddleware.d.ts.map +1 -0
- package/Framework/Middleware/CorsMiddleware.js +44 -0
- package/Framework/Middleware/CorsMiddleware.js.map +1 -0
- package/Framework/Middleware/StaticAssetsMiddleware.d.ts +15 -0
- package/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -0
- package/Framework/Middleware/StaticAssetsMiddleware.js +87 -0
- package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -0
- package/Framework/Middleware/index.d.ts +3 -0
- package/Framework/Middleware/index.d.ts.map +1 -0
- package/Framework/Middleware/index.js +15 -0
- package/Framework/Middleware/index.js.map +1 -0
- package/Framework/Provider.d.ts +6 -0
- package/Framework/Provider.d.ts.map +1 -0
- package/Framework/Provider.js +21 -0
- package/Framework/Provider.js.map +1 -0
- package/Framework/Providers/DatabaseProvider.d.ts +10 -0
- package/Framework/Providers/DatabaseProvider.d.ts.map +1 -0
- package/Framework/Providers/DatabaseProvider.js +64 -0
- package/Framework/Providers/DatabaseProvider.js.map +1 -0
- package/Framework/Providers/WebsocketsProvider.d.ts +11 -0
- package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -0
- package/Framework/Providers/WebsocketsProvider.js +118 -0
- package/Framework/Providers/WebsocketsProvider.js.map +1 -0
- package/Framework/Resolvers/AuthResolver.d.ts +6 -0
- package/Framework/Resolvers/AuthResolver.d.ts.map +1 -0
- package/Framework/Resolvers/AuthResolver.js +23 -0
- package/Framework/Resolvers/AuthResolver.js.map +1 -0
- package/Framework/Resolvers/EntityResolver.d.ts +10 -0
- package/Framework/Resolvers/EntityResolver.d.ts.map +1 -0
- package/Framework/Resolvers/EntityResolver.js +40 -0
- package/Framework/Resolvers/EntityResolver.js.map +1 -0
- package/Framework/Resolvers/FormResolver.d.ts +10 -0
- package/Framework/Resolvers/FormResolver.d.ts.map +1 -0
- package/Framework/Resolvers/FormResolver.js +33 -0
- package/Framework/Resolvers/FormResolver.js.map +1 -0
- package/Framework/RootDir.d.ts +3 -0
- package/Framework/RootDir.d.ts.map +1 -0
- package/Framework/RootDir.js +7 -0
- package/Framework/RootDir.js.map +1 -0
- package/Framework/index.d.ts +7 -0
- package/Framework/index.d.ts.map +1 -0
- package/Framework/index.js +19 -0
- package/Framework/index.js.map +1 -0
- package/LICENSE.md +21 -0
- package/Models/Model.d.ts +10 -0
- package/Models/Model.d.ts.map +1 -0
- package/Models/Model.js +36 -0
- package/Models/Model.js.map +1 -0
- package/Models/index.d.ts +22 -0
- package/Models/index.d.ts.map +1 -0
- package/Models/index.js +59 -0
- package/Models/index.js.map +1 -0
- package/Readme.md +123 -0
- package/Router/BaseController.d.ts +5 -0
- package/Router/BaseController.d.ts.map +1 -0
- package/Router/BaseController.js +21 -0
- package/Router/BaseController.js.map +1 -0
- package/Router/Decorators.d.ts +22 -0
- package/Router/Decorators.d.ts.map +1 -0
- package/Router/Decorators.js +171 -0
- package/Router/Decorators.js.map +1 -0
- package/Router/Guard.d.ts +5 -0
- package/Router/Guard.d.ts.map +1 -0
- package/Router/Guard.js +11 -0
- package/Router/Guard.js.map +1 -0
- package/Router/Http/Contracts.d.ts +4 -0
- package/Router/Http/Contracts.d.ts.map +1 -0
- package/Router/Http/Contracts.js +3 -0
- package/Router/Http/Contracts.js.map +1 -0
- package/Router/Http/ErrorHandler.d.ts +10 -0
- package/Router/Http/ErrorHandler.d.ts.map +1 -0
- package/Router/Http/ErrorHandler.js +52 -0
- package/Router/Http/ErrorHandler.js.map +1 -0
- package/Router/Http/ErrorHandlerInterface.d.ts +6 -0
- package/Router/Http/ErrorHandlerInterface.d.ts.map +1 -0
- package/Router/Http/ErrorHandlerInterface.js +7 -0
- package/Router/Http/ErrorHandlerInterface.js.map +1 -0
- package/Router/Http/Errors/HttpError.d.ts +8 -0
- package/Router/Http/Errors/HttpError.d.ts.map +1 -0
- package/Router/Http/Errors/HttpError.js +16 -0
- package/Router/Http/Errors/HttpError.js.map +1 -0
- package/Router/Http/Handler.d.ts +16 -0
- package/Router/Http/Handler.d.ts.map +1 -0
- package/Router/Http/Handler.js +132 -0
- package/Router/Http/Handler.js.map +1 -0
- package/Router/Http/Request.d.ts +23 -0
- package/Router/Http/Request.d.ts.map +1 -0
- package/Router/Http/Request.js +152 -0
- package/Router/Http/Request.js.map +1 -0
- package/Router/Http/Response.d.ts +17 -0
- package/Router/Http/Response.d.ts.map +1 -0
- package/Router/Http/Response.js +52 -0
- package/Router/Http/Response.js.map +1 -0
- package/Router/Http/index.d.ts +84 -0
- package/Router/Http/index.d.ts.map +1 -0
- package/Router/Http/index.js +100 -0
- package/Router/Http/index.js.map +1 -0
- package/Router/Metadata.d.ts +32 -0
- package/Router/Metadata.d.ts.map +1 -0
- package/Router/Metadata.js +26 -0
- package/Router/Metadata.js.map +1 -0
- package/Router/Middleware.d.ts +6 -0
- package/Router/Middleware.d.ts.map +1 -0
- package/Router/Middleware.js +3 -0
- package/Router/Middleware.js.map +1 -0
- package/Router/Route.d.ts +24 -0
- package/Router/Route.d.ts.map +1 -0
- package/Router/Route.js +111 -0
- package/Router/Route.js.map +1 -0
- package/Router/RouteNotFoundError.d.ts +4 -0
- package/Router/RouteNotFoundError.d.ts.map +1 -0
- package/Router/RouteNotFoundError.js +10 -0
- package/Router/RouteNotFoundError.js.map +1 -0
- package/Router/Router.d.ts +13 -0
- package/Router/Router.d.ts.map +1 -0
- package/Router/Router.js +33 -0
- package/Router/Router.js.map +1 -0
- package/Router/Websockets/Handler.d.ts +14 -0
- package/Router/Websockets/Handler.d.ts.map +1 -0
- package/Router/Websockets/Handler.js +64 -0
- package/Router/Websockets/Handler.js.map +1 -0
- package/Router/Websockets/WebsocketEvent.d.ts +16 -0
- package/Router/Websockets/WebsocketEvent.d.ts.map +1 -0
- package/Router/Websockets/WebsocketEvent.js +54 -0
- package/Router/Websockets/WebsocketEvent.js.map +1 -0
- package/Router/Websockets/index.d.ts +13 -0
- package/Router/Websockets/index.d.ts.map +1 -0
- package/Router/Websockets/index.js +49 -0
- package/Router/Websockets/index.js.map +1 -0
- package/Router/Websockets/types.d.ts +17 -0
- package/Router/Websockets/types.d.ts.map +1 -0
- package/Router/Websockets/types.js +9 -0
- package/Router/Websockets/types.js.map +1 -0
- package/Router/index.d.ts +7 -0
- package/Router/index.d.ts.map +1 -0
- package/Router/index.js +19 -0
- package/Router/index.js.map +1 -0
- package/Storage/File.d.ts +12 -0
- package/Storage/File.d.ts.map +1 -0
- package/Storage/File.js +47 -0
- package/Storage/File.js.map +1 -0
- package/Storage/Image.d.ts +4 -0
- package/Storage/Image.d.ts.map +1 -0
- package/Storage/Image.js +8 -0
- package/Storage/Image.js.map +1 -0
- package/Storage/InvalidImage.d.ts +4 -0
- package/Storage/InvalidImage.d.ts.map +1 -0
- package/Storage/InvalidImage.js +8 -0
- package/Storage/InvalidImage.js.map +1 -0
- package/Storage/Storage.d.ts +13 -0
- package/Storage/Storage.d.ts.map +1 -0
- package/Storage/Storage.js +111 -0
- package/Storage/Storage.js.map +1 -0
- package/Storage/index.d.ts +5 -0
- package/Storage/index.d.ts.map +1 -0
- package/Storage/index.js +17 -0
- package/Storage/index.js.map +1 -0
- package/Storage/utils.d.ts +6 -0
- package/Storage/utils.d.ts.map +1 -0
- package/Storage/utils.js +21 -0
- package/Storage/utils.js.map +1 -0
- package/Support/Array.d.ts +25 -0
- package/Support/Array.d.ts.map +1 -0
- package/Support/Array.js +91 -0
- package/Support/Array.js.map +1 -0
- package/Support/Math.d.ts +7 -0
- package/Support/Math.d.ts.map +1 -0
- package/Support/Math.js +8 -0
- package/Support/Math.js.map +1 -0
- package/Support/Metadata.d.ts +15 -0
- package/Support/Metadata.d.ts.map +1 -0
- package/Support/Metadata.js +21 -0
- package/Support/Metadata.js.map +1 -0
- package/Support/String.d.ts +12 -0
- package/Support/String.d.ts.map +1 -0
- package/Support/String.js +24 -0
- package/Support/String.js.map +1 -0
- package/Support/index.d.ts +14 -0
- package/Support/index.d.ts.map +1 -0
- package/Support/index.js +6 -0
- package/Support/index.js.map +1 -0
- package/Testing/TestCase.d.ts +33 -0
- package/Testing/TestCase.d.ts.map +1 -0
- package/Testing/TestCase.js +122 -0
- package/Testing/TestCase.js.map +1 -0
- package/Validation/Rule.d.ts +7 -0
- package/Validation/Rule.d.ts.map +1 -0
- package/Validation/Rule.js +7 -0
- package/Validation/Rule.js.map +1 -0
- package/Validation/RuleInterface.d.ts +7 -0
- package/Validation/RuleInterface.d.ts.map +1 -0
- package/Validation/RuleInterface.js +3 -0
- package/Validation/RuleInterface.js.map +1 -0
- package/Validation/Rules/Email.d.ts +4 -0
- package/Validation/Rules/Email.d.ts.map +1 -0
- package/Validation/Rules/Email.js +21 -0
- package/Validation/Rules/Email.js.map +1 -0
- package/Validation/Rules/FileExtension.d.ts +4 -0
- package/Validation/Rules/FileExtension.d.ts.map +1 -0
- package/Validation/Rules/FileExtension.js +23 -0
- package/Validation/Rules/FileExtension.js.map +1 -0
- package/Validation/Rules/MaxLength.d.ts +4 -0
- package/Validation/Rules/MaxLength.d.ts.map +1 -0
- package/Validation/Rules/MaxLength.js +20 -0
- package/Validation/Rules/MaxLength.js.map +1 -0
- package/Validation/Rules/MinLength.d.ts +4 -0
- package/Validation/Rules/MinLength.d.ts.map +1 -0
- package/Validation/Rules/MinLength.js +20 -0
- package/Validation/Rules/MinLength.js.map +1 -0
- package/Validation/Rules/Optional.d.ts +4 -0
- package/Validation/Rules/Optional.d.ts.map +1 -0
- package/Validation/Rules/Optional.js +20 -0
- package/Validation/Rules/Optional.js.map +1 -0
- package/Validation/Rules/Required.d.ts +4 -0
- package/Validation/Rules/Required.d.ts.map +1 -0
- package/Validation/Rules/Required.js +27 -0
- package/Validation/Rules/Required.js.map +1 -0
- package/Validation/Validator.d.ts +12 -0
- package/Validation/Validator.d.ts.map +1 -0
- package/Validation/Validator.js +11 -0
- package/Validation/Validator.js.map +1 -0
- package/Validation/index.d.ts +10 -0
- package/Validation/index.d.ts.map +1 -0
- package/Validation/index.js +22 -0
- package/Validation/index.js.map +1 -0
- package/Web/Contracts.d.ts +4 -0
- package/Web/Contracts.d.ts.map +1 -0
- package/Web/Contracts.js +3 -0
- package/Web/Contracts.js.map +1 -0
- package/Web/ErrorHandler.d.ts +10 -0
- package/Web/ErrorHandler.d.ts.map +1 -0
- package/Web/ErrorHandler.js +52 -0
- package/Web/ErrorHandler.js.map +1 -0
- package/Web/ErrorHandlerInterface.d.ts +6 -0
- package/Web/ErrorHandlerInterface.d.ts.map +1 -0
- package/Web/ErrorHandlerInterface.js +7 -0
- package/Web/ErrorHandlerInterface.js.map +1 -0
- package/Web/Errors/HttpError.d.ts +8 -0
- package/Web/Errors/HttpError.d.ts.map +1 -0
- package/Web/Errors/HttpError.js +16 -0
- package/Web/Errors/HttpError.js.map +1 -0
- package/Web/Handler.d.ts +11 -0
- package/Web/Handler.d.ts.map +1 -0
- package/Web/Handler.js +52 -0
- package/Web/Handler.js.map +1 -0
- package/Web/Request.d.ts +25 -0
- package/Web/Request.d.ts.map +1 -0
- package/Web/Request.js +152 -0
- package/Web/Request.js.map +1 -0
- package/Web/Response.d.ts +16 -0
- package/Web/Response.d.ts.map +1 -0
- package/Web/Response.js +51 -0
- package/Web/Response.js.map +1 -0
- package/Web/index.d.ts +84 -0
- package/Web/index.d.ts.map +1 -0
- package/Web/index.js +100 -0
- package/Web/index.js.map +1 -0
- package/Web-old/Contracts.d.ts +4 -0
- package/Web-old/Contracts.d.ts.map +1 -0
- package/Web-old/Contracts.js +3 -0
- package/Web-old/Contracts.js.map +1 -0
- package/Web-old/ErrorHandler.d.ts +10 -0
- package/Web-old/ErrorHandler.d.ts.map +1 -0
- package/Web-old/ErrorHandler.js +52 -0
- package/Web-old/ErrorHandler.js.map +1 -0
- package/Web-old/ErrorHandlerInterface.d.ts +6 -0
- package/Web-old/ErrorHandlerInterface.d.ts.map +1 -0
- package/Web-old/ErrorHandlerInterface.js +7 -0
- package/Web-old/ErrorHandlerInterface.js.map +1 -0
- package/Web-old/Errors/HttpError.d.ts +8 -0
- package/Web-old/Errors/HttpError.d.ts.map +1 -0
- package/Web-old/Errors/HttpError.js +16 -0
- package/Web-old/Errors/HttpError.js.map +1 -0
- package/Web-old/Handler.d.ts +16 -0
- package/Web-old/Handler.d.ts.map +1 -0
- package/Web-old/Handler.js +132 -0
- package/Web-old/Handler.js.map +1 -0
- package/Web-old/Request.d.ts +25 -0
- package/Web-old/Request.d.ts.map +1 -0
- package/Web-old/Request.js +152 -0
- package/Web-old/Request.js.map +1 -0
- package/Web-old/Response.d.ts +16 -0
- package/Web-old/Response.d.ts.map +1 -0
- package/Web-old/Response.js +51 -0
- package/Web-old/Response.js.map +1 -0
- package/Web-old/index.d.ts +84 -0
- package/Web-old/index.d.ts.map +1 -0
- package/Web-old/index.js +100 -0
- package/Web-old/index.js.map +1 -0
- package/package.json +67 -0
- package/tests/Container/ContainerTest.d.ts +2 -0
- package/tests/Container/ContainerTest.d.ts.map +1 -0
- package/tests/Container/ContainerTest.js +396 -0
- package/tests/Container/ContainerTest.js.map +1 -0
- package/tests/Database/Entities/Article.d.ts +11 -0
- package/tests/Database/Entities/Article.d.ts.map +1 -0
- package/tests/Database/Entities/Article.js +43 -0
- package/tests/Database/Entities/Article.js.map +1 -0
- package/tests/Database/Entities/Profile.d.ts +11 -0
- package/tests/Database/Entities/Profile.d.ts.map +1 -0
- package/tests/Database/Entities/Profile.js +39 -0
- package/tests/Database/Entities/Profile.js.map +1 -0
- package/tests/Database/Entities/Role.d.ts +9 -0
- package/tests/Database/Entities/Role.d.ts.map +1 -0
- package/tests/Database/Entities/Role.js +31 -0
- package/tests/Database/Entities/Role.js.map +1 -0
- package/tests/Database/Entities/User.d.ts +16 -0
- package/tests/Database/Entities/User.d.ts.map +1 -0
- package/tests/Database/Entities/User.js +58 -0
- package/tests/Database/Entities/User.js.map +1 -0
- package/tests/Database/EntityRelationshipsTest.d.ts +2 -0
- package/tests/Database/EntityRelationshipsTest.d.ts.map +1 -0
- package/tests/Database/EntityRelationshipsTest.js +535 -0
- package/tests/Database/EntityRelationshipsTest.js.map +1 -0
- package/tests/Database/EntityTest.d.ts +2 -0
- package/tests/Database/EntityTest.d.ts.map +1 -0
- package/tests/Database/EntityTest.js +234 -0
- package/tests/Database/EntityTest.js.map +1 -0
- package/tests/Database/Migrations/RunnerTest.d.ts +2 -0
- package/tests/Database/Migrations/RunnerTest.d.ts.map +1 -0
- package/tests/Database/Migrations/RunnerTest.js +112 -0
- package/tests/Database/Migrations/RunnerTest.js.map +1 -0
- package/tests/Database/Migrations/migrations/1.createUserTable.d.ts +6 -0
- package/tests/Database/Migrations/migrations/1.createUserTable.d.ts.map +1 -0
- package/tests/Database/Migrations/migrations/1.createUserTable.js +14 -0
- package/tests/Database/Migrations/migrations/1.createUserTable.js.map +1 -0
- package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts +6 -0
- package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts.map +1 -0
- package/tests/Database/Migrations/migrations/2.createArticlesTable.js +14 -0
- package/tests/Database/Migrations/migrations/2.createArticlesTable.js.map +1 -0
- package/tests/Database/QueryTest.d.ts +2 -0
- package/tests/Database/QueryTest.d.ts.map +1 -0
- package/tests/Database/QueryTest.js +619 -0
- package/tests/Database/QueryTest.js.map +1 -0
- package/tests/Database/SchemaTest.d.ts +2 -0
- package/tests/Database/SchemaTest.d.ts.map +1 -0
- package/tests/Database/SchemaTest.js +46 -0
- package/tests/Database/SchemaTest.js.map +1 -0
- package/tests/Forms/FormsTest.d.ts +2 -0
- package/tests/Forms/FormsTest.d.ts.map +1 -0
- package/tests/Forms/FormsTest.js +80 -0
- package/tests/Forms/FormsTest.js.map +1 -0
- package/tests/Framework/Resolvers/EntityResolverTest.d.ts +2 -0
- package/tests/Framework/Resolvers/EntityResolverTest.d.ts.map +1 -0
- package/tests/Framework/Resolvers/EntityResolverTest.js +60 -0
- package/tests/Framework/Resolvers/EntityResolverTest.js.map +1 -0
- package/tests/Model/ModelTest.d.ts +2 -0
- package/tests/Model/ModelTest.d.ts.map +1 -0
- package/tests/Model/ModelTest.js +234 -0
- package/tests/Model/ModelTest.js.map +1 -0
- package/tests/Router/HttpHandlerTest.d.ts +2 -0
- package/tests/Router/HttpHandlerTest.d.ts.map +1 -0
- package/tests/Router/HttpHandlerTest.js +37 -0
- package/tests/Router/HttpHandlerTest.js.map +1 -0
- package/tests/Router/WebSocketsHandlerTest.d.ts +2 -0
- package/tests/Router/WebSocketsHandlerTest.d.ts.map +1 -0
- package/tests/Router/WebSocketsHandlerTest.js +36 -0
- package/tests/Router/WebSocketsHandlerTest.js.map +1 -0
- package/tests/Support/ArrayTest.d.ts +2 -0
- package/tests/Support/ArrayTest.d.ts.map +1 -0
- package/tests/Support/ArrayTest.js +197 -0
- package/tests/Support/ArrayTest.js.map +1 -0
- package/tests/Support/StringTest.d.ts +2 -0
- package/tests/Support/StringTest.d.ts.map +1 -0
- package/tests/Support/StringTest.js +39 -0
- package/tests/Support/StringTest.js.map +1 -0
- package/tests/Validation/RulesTest.d.ts +2 -0
- package/tests/Validation/RulesTest.d.ts.map +1 -0
- package/tests/Validation/RulesTest.js +68 -0
- package/tests/Validation/RulesTest.js.map +1 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Rules = exports.Field = exports.FormMetadataKey = void 0;
|
|
4
|
+
const FormFields_1 = require("./FormFields");
|
|
5
|
+
exports.FormMetadataKey = 'form:fields';
|
|
6
|
+
function Field(name) {
|
|
7
|
+
return function (target, property) {
|
|
8
|
+
const fields = Reflect.getMetadata(exports.FormMetadataKey, target.constructor) || {};
|
|
9
|
+
const type = Reflect.getMetadata('design:type', target, property);
|
|
10
|
+
const field = fields[property] || new FormFields_1.FormField(name || property, type);
|
|
11
|
+
field.name = name || property;
|
|
12
|
+
fields[property] = field;
|
|
13
|
+
Reflect.defineMetadata(exports.FormMetadataKey, fields, target.constructor);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
exports.Field = Field;
|
|
17
|
+
// tslint:disable-next-line:no-any
|
|
18
|
+
function Rules(...rules) {
|
|
19
|
+
return function (target, property) {
|
|
20
|
+
const fields = Reflect.getMetadata(exports.FormMetadataKey, target.constructor) || {};
|
|
21
|
+
const type = Reflect.getMetadata('design:type', target, property);
|
|
22
|
+
const field = fields[property] || new FormFields_1.FormField(property, type);
|
|
23
|
+
field.rules = rules;
|
|
24
|
+
fields[property] = field;
|
|
25
|
+
Reflect.defineMetadata(exports.FormMetadataKey, fields, target.constructor);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.Rules = Rules;
|
|
29
|
+
//# sourceMappingURL=Decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../Forms/Decorators.ts"],"names":[],"mappings":";;;AAEA,6CAAwC;AAG3B,QAAA,eAAe,GAAG,aAAa,CAAA;AAE5C,SAAgB,KAAK,CAAiB,IAAa;IAC/C,OAAO,UAAS,MAAS,EAAE,QAAgB;QACvC,MAAM,MAAM,GAA+B,OAAO,CAAC,WAAW,CAAC,uBAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACzG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,sBAAS,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvE,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAA;QAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;QACxB,OAAO,CAAC,cAAc,CAAC,uBAAe,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACvE,CAAC,CAAA;AACL,CAAC;AATD,sBASC;AAED,kCAAkC;AAClC,SAAgB,KAAK,CAAC,GAAG,KAA0E;IAC/F,OAAO,UAAS,MAAc,EAAE,QAAgB;QAC5C,MAAM,MAAM,GAA+B,OAAO,CAAC,WAAW,CAAC,uBAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACzG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,sBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC/D,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;QACxB,OAAO,CAAC,cAAc,CAAC,uBAAe,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACvE,CAAC,CAAA;AACL,CAAC;AATD,sBASC"}
|
package/Forms/Form.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChildKeys, ChildObject, Constructor } from '../Support';
|
|
2
|
+
import { FormField } from './FormFields';
|
|
3
|
+
export declare type FormFields<T> = ChildObject<T, Form>;
|
|
4
|
+
export declare abstract class Form {
|
|
5
|
+
readonly errors: {
|
|
6
|
+
[key: string]: Record<string, string>;
|
|
7
|
+
};
|
|
8
|
+
static fields<T extends Form>(this: Constructor<T>): Record<ChildKeys<T, Form>, FormField>;
|
|
9
|
+
fields(): Record<never, FormField>;
|
|
10
|
+
valid(): boolean;
|
|
11
|
+
validated(): {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
};
|
|
14
|
+
value(): Record<string, any>;
|
|
15
|
+
fill(data: Partial<FormFields<this>>): void;
|
|
16
|
+
toJSON(): Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../Forms/Form.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,oBAAY,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEjD,8BACsB,IAAI;IAEtB,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,CAAK;IAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAI1F,MAAM;IAIN,KAAK;IAYL,SAAS;;;IAYT,KAAK;IAWL,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAUpC,MAAM;CAGT"}
|
package/Forms/Form.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var Form_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.Form = void 0;
|
|
11
|
+
const Decorators_1 = require("./Decorators");
|
|
12
|
+
const Container_1 = require("@Typetron/Container");
|
|
13
|
+
let Form = Form_1 = class Form {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.errors = {};
|
|
16
|
+
}
|
|
17
|
+
static fields() {
|
|
18
|
+
return Reflect.getMetadata(Decorators_1.FormMetadataKey, this);
|
|
19
|
+
}
|
|
20
|
+
fields() {
|
|
21
|
+
return this.constructor.fields();
|
|
22
|
+
}
|
|
23
|
+
valid() {
|
|
24
|
+
const fields = Object.values(this.fields());
|
|
25
|
+
fields.forEach(field => {
|
|
26
|
+
const errors = field.validate(this[field.name]);
|
|
27
|
+
if (errors) {
|
|
28
|
+
this.errors[field.name] = errors;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return !Object.keys(this.errors).length;
|
|
32
|
+
}
|
|
33
|
+
validated() {
|
|
34
|
+
const fields = Object.values(this.fields());
|
|
35
|
+
return fields.filter(field => !this.errors[field.name])
|
|
36
|
+
.reduce((obj, field) => {
|
|
37
|
+
const value = this[field.name];
|
|
38
|
+
if (value) {
|
|
39
|
+
obj[field.name] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}, {});
|
|
43
|
+
}
|
|
44
|
+
value() {
|
|
45
|
+
const fields = Object.values(this.fields());
|
|
46
|
+
// tslint:disable-next-line:no-any
|
|
47
|
+
const value = {};
|
|
48
|
+
fields.forEach(field => {
|
|
49
|
+
value[field.name] = this[field.name];
|
|
50
|
+
});
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
fill(data) {
|
|
54
|
+
const fields = Object.values(this.fields());
|
|
55
|
+
fields.forEach(field => {
|
|
56
|
+
if (field.name in data) {
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
this[field.name] = data[field.name];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
toJSON() {
|
|
63
|
+
return this.value();
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
Form = Form_1 = __decorate([
|
|
67
|
+
Container_1.Injectable(Container_1.Scope.TRANSIENT)
|
|
68
|
+
], Form);
|
|
69
|
+
exports.Form = Form;
|
|
70
|
+
//# sourceMappingURL=Form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../../Forms/Form.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,6CAA8C;AAI9C,mDAAuD;AAKvD,IAAsB,IAAI,YAA1B,MAAsB,IAAI;IAA1B;QAEa,WAAM,GAA4C,EAAE,CAAA;IA0DjE,CAAC;IAxDG,MAAM,CAAC,MAAM;QACT,OAAO,OAAO,CAAC,WAAW,CAAC,4BAAe,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;IAED,MAAM;QACF,OAAQ,IAAI,CAAC,WAAiD,CAAC,MAAM,EAAE,CAAA;IAC3E,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAC,CAAA;YACzE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED,SAAS;QACL,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAkB,CAAC,CAAA;YAC5C,IAAI,KAAK,EAAE;gBACP,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;aAC1B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,EAA8B,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,kCAAkC;QAClC,MAAM,KAAK,GAAwB,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,IAA+B;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;gBACpB,aAAa;gBACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACtC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;CACJ,CAAA;AA5DqB,IAAI;IADzB,sBAAU,CAAC,iBAAK,CAAC,SAAS,CAAC;GACN,IAAI,CA4DzB;AA5DqB,oBAAI"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Type } from '../Support';
|
|
2
|
+
import { RuleInterface } from '../Validation';
|
|
3
|
+
export declare class FormField {
|
|
4
|
+
name: string;
|
|
5
|
+
type: any;
|
|
6
|
+
rules: (Type<RuleInterface> | ((...args: any[]) => Type<RuleInterface>))[];
|
|
7
|
+
constructor(name: string, type: any, rules?: (Type<RuleInterface> | ((...args: any[]) => Type<RuleInterface>))[]);
|
|
8
|
+
validate(value: any): Record<string, string> | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=FormFields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFields.d.ts","sourceRoot":"","sources":["../../Forms/FormFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAY,aAAa,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,SAAS;IAEP,IAAI,EAAE,MAAM;IAEZ,IAAI,EAAE,GAAG;IAET,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAG;gBAJ3E,IAAI,EAAE,MAAM,EAEZ,IAAI,EAAE,GAAG,EAET,KAAK,GAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAQ;IAK3F,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAqB3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormField = void 0;
|
|
4
|
+
const Validation_1 = require("../Validation");
|
|
5
|
+
class FormField {
|
|
6
|
+
constructor(name,
|
|
7
|
+
// tslint:disable-next-line:no-any
|
|
8
|
+
type,
|
|
9
|
+
// tslint:disable-next-line:no-any
|
|
10
|
+
rules = []) {
|
|
11
|
+
this.name = name;
|
|
12
|
+
this.type = type;
|
|
13
|
+
this.rules = rules;
|
|
14
|
+
}
|
|
15
|
+
// tslint:disable-next-line:no-any
|
|
16
|
+
validate(value) {
|
|
17
|
+
const errors = {};
|
|
18
|
+
let hasErrors = false;
|
|
19
|
+
if (this.rules.includes(Validation_1.Optional) && (value === undefined || value === null)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.rules.forEach(rule => {
|
|
23
|
+
if (!rule.prototype.passes) {
|
|
24
|
+
rule = rule();
|
|
25
|
+
}
|
|
26
|
+
const instance = new rule;
|
|
27
|
+
if (!instance.passes(this.name, value)) {
|
|
28
|
+
hasErrors = true;
|
|
29
|
+
errors[instance.identifier] = instance.message(this.name, value);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return hasErrors ? errors : undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.FormField = FormField;
|
|
36
|
+
//# sourceMappingURL=FormFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFields.js","sourceRoot":"","sources":["../../Forms/FormFields.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAEvD,MAAa,SAAS;IAClB,YACW,IAAY;IACnB,kCAAkC;IAC3B,IAAS;IAChB,kCAAkC;IAC3B,QAA8E,EAAE;QAJhF,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAK;QAET,UAAK,GAAL,KAAK,CAA2E;IAE3F,CAAC;IAED,kCAAkC;IAClC,QAAQ,CAAC,KAAU;QACf,MAAM,MAAM,GAA2B,EAAE,CAAA;QACzC,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC1E,OAAM;SACT;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACxB,IAAI,GAAI,IAAiB,EAAE,CAAA;aAC9B;YACD,MAAM,QAAQ,GAAG,IAAK,IAAmC,CAAA;YACzD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACpC,SAAS,GAAG,IAAI,CAAA;gBAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;aACnE;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACzC,CAAC;CACJ;AAhCD,8BAgCC"}
|
package/Forms/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Forms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
package/Forms/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./Form"), exports);
|
|
14
|
+
__exportStar(require("./Decorators"), exports);
|
|
15
|
+
__exportStar(require("./FormFields"), exports);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Forms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,+CAA4B;AAC5B,+CAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../Framework/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,qBAAa,GAAG;IACZ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAA;IAE5B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAG3D"}
|
package/Framework/App.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../Framework/App.ts"],"names":[],"mappings":";;;AAGA,MAAa,GAAG;IAGZ,MAAM,CAAC,GAAG,CAAI,OAAsC;QAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;CACJ;AAND,kBAMC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Container } from '../Container';
|
|
2
|
+
import { Type } from '../Support';
|
|
3
|
+
import { Provider } from './Provider';
|
|
4
|
+
export declare class Application extends Container {
|
|
5
|
+
directory: string;
|
|
6
|
+
configDirectory: string;
|
|
7
|
+
static defaultConfigDirectory: string;
|
|
8
|
+
config: Map<Function, object>;
|
|
9
|
+
constructor(directory: string, configDirectory?: string);
|
|
10
|
+
static create(directory: string, configDirectory?: string): Promise<Application>;
|
|
11
|
+
startServer(): Promise<void>;
|
|
12
|
+
registerProviders(providers: Type<Provider>[]): Promise<void>;
|
|
13
|
+
private loadConfig;
|
|
14
|
+
private registerResolvers;
|
|
15
|
+
private bootstrap;
|
|
16
|
+
private checkAppSecret;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Application.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../Framework/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,qBAAa,WAAY,SAAQ,SAAS;IAKnB,SAAS,EAAE,MAAM;IAAS,eAAe;IAJ5D,MAAM,CAAC,sBAAsB,SAAW;IAEjC,MAAM,wBAA8B;gBAExB,SAAS,EAAE,MAAM,EAAS,eAAe,SAAqC;WAQpF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,SAAqC;IAMrF,WAAW;IAYJ,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAS5C,UAAU;IAsBxB,OAAO,CAAC,iBAAiB;YAMX,SAAS;YAmBT,cAAc;CAM/B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Application = void 0;
|
|
7
|
+
const Container_1 = require("../Container");
|
|
8
|
+
const App_1 = require("./App");
|
|
9
|
+
const Config_1 = require("./Config");
|
|
10
|
+
const FormResolver_1 = require("./Resolvers/FormResolver");
|
|
11
|
+
const EntityResolver_1 = require("./Resolvers/EntityResolver");
|
|
12
|
+
const RootDir_1 = require("./RootDir");
|
|
13
|
+
const StaticAssetsMiddleware_1 = require("./Middleware/StaticAssetsMiddleware");
|
|
14
|
+
const Http_1 = require("../Router/Http");
|
|
15
|
+
const Storage_1 = require("../Storage");
|
|
16
|
+
const AuthResolver_1 = require("./Resolvers/AuthResolver");
|
|
17
|
+
const fs_1 = __importDefault(require("fs"));
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
const WebsocketsProvider_1 = require("./Providers/WebsocketsProvider");
|
|
20
|
+
class Application extends Container_1.Container {
|
|
21
|
+
constructor(directory, configDirectory = Application.defaultConfigDirectory) {
|
|
22
|
+
super();
|
|
23
|
+
this.directory = directory;
|
|
24
|
+
this.configDirectory = configDirectory;
|
|
25
|
+
this.config = new Map();
|
|
26
|
+
Application.setInstance(this);
|
|
27
|
+
this.set(Application, App_1.App.instance = this);
|
|
28
|
+
this.set(Container_1.Container, this);
|
|
29
|
+
this.set(RootDir_1.RootDir, directory);
|
|
30
|
+
}
|
|
31
|
+
static async create(directory, configDirectory = Application.defaultConfigDirectory) {
|
|
32
|
+
const app = new this(fs_1.default.realpathSync.native(directory), configDirectory);
|
|
33
|
+
await app.bootstrap();
|
|
34
|
+
return app;
|
|
35
|
+
}
|
|
36
|
+
async startServer() {
|
|
37
|
+
const httpHandler = this.get(Http_1.Handler);
|
|
38
|
+
const appConfig = this.get(Config_1.AppConfig);
|
|
39
|
+
if (appConfig.websocketsPort) {
|
|
40
|
+
await this.registerProviders([WebsocketsProvider_1.WebsocketsProvider]);
|
|
41
|
+
}
|
|
42
|
+
return httpHandler.startServer(this);
|
|
43
|
+
}
|
|
44
|
+
async registerProviders(providers) {
|
|
45
|
+
await Promise.all(providers.map(provider => {
|
|
46
|
+
const instance = this.get(provider);
|
|
47
|
+
return instance.register();
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
async loadConfig(configDirectory) {
|
|
51
|
+
const configsPath = path_1.default.join(this.directory, configDirectory);
|
|
52
|
+
const storage = this.get(Storage_1.Storage);
|
|
53
|
+
if (!await storage.exists(configsPath)) {
|
|
54
|
+
console.warn(`Config path '${configsPath}' does not exist. Running with default config.`);
|
|
55
|
+
}
|
|
56
|
+
storage
|
|
57
|
+
.files(configsPath)
|
|
58
|
+
.whereIn('extension', ['ts'])
|
|
59
|
+
.forEach(file => {
|
|
60
|
+
const configItem = require(file.path).default;
|
|
61
|
+
if (configItem && configItem.constructor) {
|
|
62
|
+
configItem.applyNewValues();
|
|
63
|
+
this.config.set(configItem.constructor, configItem);
|
|
64
|
+
this.set(configItem.constructor, configItem);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
registerResolvers() {
|
|
69
|
+
this.resolvers.unshift(new FormResolver_1.FormResolver(this));
|
|
70
|
+
this.resolvers.unshift(new EntityResolver_1.EntityResolver(this));
|
|
71
|
+
this.resolvers.unshift(new AuthResolver_1.AuthResolver(this));
|
|
72
|
+
}
|
|
73
|
+
async bootstrap() {
|
|
74
|
+
await this.loadConfig(this.configDirectory);
|
|
75
|
+
this.set(Http_1.ErrorHandlerInterface, this.get(Http_1.ErrorHandler));
|
|
76
|
+
const appConfig = this.get(Config_1.AppConfig);
|
|
77
|
+
await this.checkAppSecret();
|
|
78
|
+
if (appConfig.staticAssets) {
|
|
79
|
+
appConfig.middleware.unshift(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
|
|
80
|
+
}
|
|
81
|
+
this.registerResolvers();
|
|
82
|
+
const providers = appConfig.providers || [];
|
|
83
|
+
await this.registerProviders(providers);
|
|
84
|
+
}
|
|
85
|
+
async checkAppSecret() {
|
|
86
|
+
const authConfig = this.get(Config_1.AuthConfig);
|
|
87
|
+
if (!authConfig.signature) {
|
|
88
|
+
throw new Error(`APP_SECRET is not setup in your '.env' file.`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.Application = Application;
|
|
93
|
+
Application.defaultConfigDirectory = 'config';
|
|
94
|
+
//# sourceMappingURL=Application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../Framework/Application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { User } from './User';
|
|
2
|
+
import { AuthConfig } from '../Config';
|
|
3
|
+
import { ID } from '../../Database';
|
|
4
|
+
import { Crypt, JWT } from '@Typetron/Encryption';
|
|
5
|
+
export declare class Auth {
|
|
6
|
+
authConfig: AuthConfig;
|
|
7
|
+
jwt: JWT;
|
|
8
|
+
crypt: Crypt;
|
|
9
|
+
id?: ID;
|
|
10
|
+
/**
|
|
11
|
+
* This is primarily used in websocket connections so we don't need to pass the auth token for each weboscket message
|
|
12
|
+
*/
|
|
13
|
+
expiresAt: Date;
|
|
14
|
+
private savedUser;
|
|
15
|
+
get authenticable(): typeof User;
|
|
16
|
+
user<T extends User>(): Promise<T>;
|
|
17
|
+
login(username: string, password: string): Promise<string>;
|
|
18
|
+
loginById(id: ID): Promise<string>;
|
|
19
|
+
loginUser(authenticable: User): Promise<string>;
|
|
20
|
+
sign(id: ID, expiresAtTimestampInSeconds?: number): Promise<string>;
|
|
21
|
+
register(username: string, password: string): Promise<User>;
|
|
22
|
+
verify(token: string): Promise<import("../../Encryption").JWToken<number>>;
|
|
23
|
+
private set;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=Auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../Framework/Auth/Auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAc,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAEjD,qBACa,IAAI;IAGb,UAAU,EAAE,UAAU,CAAA;IAGtB,GAAG,EAAE,GAAG,CAAA;IAGR,KAAK,EAAE,KAAK,CAAA;IAEZ,EAAE,CAAC,EAAE,EAAE,CAAA;IAEP;;OAEG;IACH,SAAS,OAAa;IAEtB,OAAO,CAAC,SAAS,CAAM;IAEvB,IAAI,aAAa,IAAI,OAAO,IAAI,CAE/B;IAEK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IAYlC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAShE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlC,SAAS,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,2BAA2B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D,MAAM,CAAC,KAAK,EAAE,MAAM;IAQ1B,OAAO,CAAC,GAAG;CAWd"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Auth = void 0;
|
|
13
|
+
const Container_1 = require("../../Container");
|
|
14
|
+
const Config_1 = require("../Config");
|
|
15
|
+
const Encryption_1 = require("@Typetron/Encryption");
|
|
16
|
+
let Auth = class Auth {
|
|
17
|
+
constructor() {
|
|
18
|
+
/**
|
|
19
|
+
* This is primarily used in websocket connections so we don't need to pass the auth token for each weboscket message
|
|
20
|
+
*/
|
|
21
|
+
this.expiresAt = new Date();
|
|
22
|
+
}
|
|
23
|
+
get authenticable() {
|
|
24
|
+
return this.authConfig.entity;
|
|
25
|
+
}
|
|
26
|
+
async user() {
|
|
27
|
+
if (this.savedUser) {
|
|
28
|
+
return this.savedUser;
|
|
29
|
+
}
|
|
30
|
+
if (!this.id) {
|
|
31
|
+
throw new Error('You tried to use the Auth service without authenticating the user. Please use the AuthMiddleware or authenticate the user before using this route');
|
|
32
|
+
}
|
|
33
|
+
return this.savedUser = await this.authenticable.find(this.id);
|
|
34
|
+
}
|
|
35
|
+
async login(username, password) {
|
|
36
|
+
const user = await this.authenticable.where((new this.authenticable).getUsername(), username).first();
|
|
37
|
+
if (!user || !await this.crypt.compare(password, user.password)) {
|
|
38
|
+
throw new Error('Invalid credentials');
|
|
39
|
+
}
|
|
40
|
+
return this.sign(this.id = user.id);
|
|
41
|
+
}
|
|
42
|
+
loginById(id) {
|
|
43
|
+
return this.sign(id);
|
|
44
|
+
}
|
|
45
|
+
loginUser(authenticable) {
|
|
46
|
+
return this.loginById(authenticable[authenticable.getId()]);
|
|
47
|
+
}
|
|
48
|
+
sign(id, expiresAtTimestampInSeconds) {
|
|
49
|
+
return this.jwt.sign({
|
|
50
|
+
sub: this.set(id, expiresAtTimestampInSeconds)
|
|
51
|
+
}, this.authConfig.signature, {
|
|
52
|
+
expiresIn: this.authConfig.duration
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async register(username, password) {
|
|
56
|
+
return await this.authenticable.create({
|
|
57
|
+
[(new this.authenticable).getUsername()]: username,
|
|
58
|
+
password: await this.crypt.hash(password, this.authConfig.saltRounds),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async verify(token) {
|
|
62
|
+
const payload = await this.jwt.verify(token, this.authConfig.signature);
|
|
63
|
+
this.set(payload.sub, payload.exp);
|
|
64
|
+
return payload;
|
|
65
|
+
}
|
|
66
|
+
set(id, expiresAtTimestampInSeconds) {
|
|
67
|
+
if (expiresAtTimestampInSeconds) {
|
|
68
|
+
this.expiresAt = new Date(expiresAtTimestampInSeconds * 1000);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.expiresAt = new Date();
|
|
72
|
+
this.expiresAt.setSeconds(this.expiresAt.getSeconds() + this.authConfig.duration);
|
|
73
|
+
}
|
|
74
|
+
return this.id = id;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
__decorate([
|
|
78
|
+
Container_1.Inject(),
|
|
79
|
+
__metadata("design:type", Config_1.AuthConfig)
|
|
80
|
+
], Auth.prototype, "authConfig", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Container_1.Inject(),
|
|
83
|
+
__metadata("design:type", Encryption_1.JWT)
|
|
84
|
+
], Auth.prototype, "jwt", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
Container_1.Inject(),
|
|
87
|
+
__metadata("design:type", Encryption_1.Crypt)
|
|
88
|
+
], Auth.prototype, "crypt", void 0);
|
|
89
|
+
Auth = __decorate([
|
|
90
|
+
Container_1.Injectable(Container_1.Scope.REQUEST)
|
|
91
|
+
], Auth);
|
|
92
|
+
exports.Auth = Auth;
|
|
93
|
+
//# sourceMappingURL=Auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../Framework/Auth/Auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Authenticatable.d.ts","sourceRoot":"","sources":["../../../Framework/Auth/Authenticatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM;IAC7C,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1B,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhC,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Authenticatable.js","sourceRoot":"","sources":["../../../Framework/Auth/Authenticatable.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Entity, EntityColumns, ID } from '../../Database';
|
|
2
|
+
import { Authenticatable } from './Authenticatable';
|
|
3
|
+
export declare class User extends Entity implements Authenticatable<User> {
|
|
4
|
+
id: ID;
|
|
5
|
+
email: string;
|
|
6
|
+
password: string;
|
|
7
|
+
getId(): EntityColumns<User>;
|
|
8
|
+
getPassword(): EntityColumns<User>;
|
|
9
|
+
getUsername(): EntityColumns<User>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=User.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../Framework/Auth/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAE,aAAa,EAAE,EAAE,EAAiB,MAAM,gBAAgB,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,qBAAa,IAAK,SAAQ,MAAO,YAAW,eAAe,CAAC,IAAI,CAAC;IAG7D,EAAE,EAAE,EAAE,CAAA;IAGN,KAAK,EAAE,MAAM,CAAA;IAGb,QAAQ,EAAE,MAAM,CAAA;IAEhB,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC;IAI5B,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC;IAIlC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC;CAIrC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.User = void 0;
|
|
13
|
+
const Database_1 = require("../../Database");
|
|
14
|
+
class User extends Database_1.Entity {
|
|
15
|
+
getId() {
|
|
16
|
+
return 'id';
|
|
17
|
+
}
|
|
18
|
+
getPassword() {
|
|
19
|
+
return 'password';
|
|
20
|
+
}
|
|
21
|
+
getUsername() {
|
|
22
|
+
return 'email';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
__decorate([
|
|
26
|
+
Database_1.PrimaryColumn(),
|
|
27
|
+
__metadata("design:type", Object)
|
|
28
|
+
], User.prototype, "id", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
Database_1.Column(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], User.prototype, "email", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
Database_1.Column(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], User.prototype, "password", void 0);
|
|
37
|
+
exports.User = User;
|
|
38
|
+
//# sourceMappingURL=User.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../Framework/Auth/User.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAiF;AAGjF,MAAa,IAAK,SAAQ,iBAAM;IAW5B,KAAK;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,WAAW;QACP,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,WAAW;QACP,OAAO,OAAO,CAAA;IAClB,CAAC;CAEJ;AApBG;IADC,wBAAa,EAAE;;gCACV;AAGN;IADC,iBAAM,EAAE;;mCACI;AAGb;IADC,iBAAM,EAAE;;sCACO;AATpB,oBAuBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './Auth';
|
|
2
|
+
export * from './User';
|
|
3
|
+
export * from './Authenticatable';
|
|
4
|
+
export declare const AuthUserIdentifier: unique symbol;
|
|
5
|
+
export declare function AuthUser(): (target: Object, property: string, parameterIndex?: number | undefined) => void;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Framework/Auth/index.ts"],"names":[],"mappings":"AAGA,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AAEjC,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AAEzE,wBAAgB,QAAQ,aACK,MAAM,YAAY,MAAM,+CAwBpD"}
|