prostgles-server 4.2.187 → 4.2.188
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/.eslintignore +2 -1
- package/.eslintrc.json +2 -0
- package/dist/Auth/AuthHandler.d.ts +18 -11
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +94 -120
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +78 -71
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/{setEmailProvider.d.ts → authProviders/setEmailProvider.d.ts} +1 -1
- package/dist/Auth/authProviders/setEmailProvider.d.ts.map +1 -0
- package/dist/Auth/authProviders/setEmailProvider.js +27 -0
- package/dist/Auth/authProviders/setEmailProvider.js.map +1 -0
- package/dist/Auth/authProviders/setOAuthProviders.d.ts +5 -0
- package/dist/Auth/authProviders/setOAuthProviders.d.ts.map +1 -0
- package/dist/Auth/authProviders/setOAuthProviders.js +78 -0
- package/dist/Auth/authProviders/setOAuthProviders.js.map +1 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts +7 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts.map +1 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js +29 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js.map +1 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts +7 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts.map +1 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.js +74 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.js.map +1 -0
- package/dist/Auth/setAuthProviders.d.ts.map +1 -1
- package/dist/Auth/setAuthProviders.js +4 -74
- package/dist/Auth/setAuthProviders.js.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js +23 -33
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/Auth/utils/checkDmarc.d.ts +2 -0
- package/dist/Auth/utils/checkDmarc.d.ts.map +1 -0
- package/dist/Auth/utils/checkDmarc.js +22 -0
- package/dist/Auth/utils/checkDmarc.js.map +1 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts +3 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts.map +1 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.js +29 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.js.map +1 -0
- package/dist/Auth/utils/getReturnUrl.d.ts +3 -0
- package/dist/Auth/utils/getReturnUrl.d.ts.map +1 -0
- package/dist/Auth/utils/getReturnUrl.js +15 -0
- package/dist/Auth/utils/getReturnUrl.js.map +1 -0
- package/dist/Auth/utils/getSafeReturnURL.d.ts.map +1 -0
- package/dist/Auth/utils/getSafeReturnURL.js.map +1 -0
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +4 -5
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.js +1 -1
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts +0 -1
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +3 -12
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +38 -76
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +4 -12
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js +23 -33
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +6 -6
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js +13 -19
- package/dist/DboBuilder/QueryStreamer.js.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js +7 -16
- package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +7 -5
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +5 -8
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.js +10 -15
- package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +5 -9
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js +7 -9
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +11 -13
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +1 -1
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js +20 -27
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js +4 -10
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.js +2 -2
- package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +6 -22
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +6 -10
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js +8 -11
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js +7 -12
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.js +6 -10
- package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +8 -23
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +19 -26
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +7 -9
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +2 -2
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +14 -15
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.js +26 -40
- package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.js +12 -18
- package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +14 -27
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +4 -11
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +11 -13
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts.map +1 -1
- package/dist/FileManager/initFileManager.js +60 -62
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/FileManager/uploadStream.js +2 -2
- package/dist/FileManager/uploadStream.js.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +12 -35
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validation.d.ts.map +1 -1
- package/dist/JSONBValidation/validation.js +20 -26
- package/dist/JSONBValidation/validation.js.map +1 -1
- package/dist/Logging.d.ts +1 -0
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +1 -5
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +18 -33
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +8 -13
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.js +1 -1
- package/dist/PubSubManager/addSub.js.map +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +4 -7
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js +6 -6
- package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +2 -3
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.js +0 -2
- package/dist/PubSubManager/pushSubData.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +8 -13
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.js +1 -1
- package/dist/PublishParser/getFileTableRules.js.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.js +6 -13
- package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.js +14 -19
- package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
- package/dist/RestApi.d.ts +1 -1
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +2 -2
- package/dist/RestApi.js.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.js +2 -2
- package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +31 -41
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js +7 -9
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.js +1 -6
- package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.js +16 -28
- package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.js +5 -9
- package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
- package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.js +22 -25
- package/dist/TableConfig/initTableConfig.js.map +1 -1
- package/dist/initProstgles.js +1 -1
- package/dist/initProstgles.js.map +1 -1
- package/dist/onSocketConnected.d.ts.map +1 -1
- package/dist/onSocketConnected.js +2 -4
- package/dist/onSocketConnected.js.map +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +14 -13
- package/dist/runClientRequest.js.map +1 -1
- package/lib/Auth/AuthHandler.ts +117 -137
- package/lib/Auth/AuthTypes.ts +97 -81
- package/lib/Auth/authProviders/setEmailProvider.ts +29 -0
- package/lib/Auth/authProviders/setOAuthProviders.ts +97 -0
- package/lib/Auth/endpoints/getConfirmEmailRequestHandler.ts +39 -0
- package/lib/Auth/endpoints/getRegisterRequestHandler.ts +83 -0
- package/lib/Auth/setAuthProviders.ts +8 -111
- package/lib/Auth/setupAuthRoutes.ts +105 -148
- package/lib/Auth/utils/checkDmarc.ts +19 -0
- package/lib/Auth/utils/getClientRequestIPsInfo.ts +25 -0
- package/lib/Auth/utils/getReturnUrl.ts +13 -0
- package/lib/DBEventsManager.ts +12 -26
- package/lib/DBSchemaBuilder.ts +1 -1
- package/lib/DboBuilder/DboBuilder.ts +23 -52
- package/lib/DboBuilder/DboBuilderTypes.ts +9 -23
- package/lib/DboBuilder/QueryBuilder/Functions.ts +86 -188
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +11 -36
- package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +102 -129
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +14 -27
- package/lib/DboBuilder/QueryStreamer.ts +26 -57
- package/lib/DboBuilder/TableHandler/DataValidator.ts +58 -90
- package/lib/DboBuilder/TableHandler/TableHandler.ts +19 -45
- package/lib/DboBuilder/TableHandler/delete.ts +9 -18
- package/lib/DboBuilder/TableHandler/insert.ts +18 -31
- package/lib/DboBuilder/TableHandler/insertTest.ts +1 -1
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +8 -19
- package/lib/DboBuilder/TableHandler/update.ts +17 -46
- package/lib/DboBuilder/TableHandler/updateFile.ts +18 -21
- package/lib/DboBuilder/TableHandler/upsert.ts +7 -24
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +13 -15
- package/lib/DboBuilder/ViewHandler/count.ts +1 -1
- package/lib/DboBuilder/ViewHandler/find.ts +28 -35
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +8 -30
- package/lib/DboBuilder/ViewHandler/getInfo.ts +2 -2
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +16 -32
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +9 -16
- package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +26 -44
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +58 -82
- package/lib/DboBuilder/ViewHandler/prepareWhere.ts +14 -27
- package/lib/DboBuilder/dboBuilderUtils.ts +19 -46
- package/lib/DboBuilder/getColumns.ts +24 -46
- package/lib/DboBuilder/getCondition.ts +18 -30
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +2 -2
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +44 -62
- package/lib/DboBuilder/insertNestedRecords.ts +67 -135
- package/lib/DboBuilder/parseUpdateRules.ts +1 -1
- package/lib/DboBuilder/prepareShortestJoinPaths.ts +23 -58
- package/lib/DboBuilder/runSQL.ts +41 -76
- package/lib/DboBuilder/uploadFile.ts +26 -37
- package/lib/FileManager/FileManager.ts +27 -58
- package/lib/FileManager/initFileManager.ts +68 -76
- package/lib/FileManager/uploadStream.ts +2 -2
- package/lib/Filtering.ts +30 -87
- package/lib/JSONBValidation/validation.ts +36 -75
- package/lib/Logging.ts +1 -1
- package/lib/PostgresNotifListenManager.ts +11 -35
- package/lib/Prostgles.ts +42 -100
- package/lib/PubSubManager/PubSubManager.ts +30 -66
- package/lib/PubSubManager/addSub.ts +11 -18
- package/lib/PubSubManager/addSync.ts +5 -12
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +9 -9
- package/lib/PubSubManager/initPubSubManager.ts +7 -13
- package/lib/PubSubManager/pushSubData.ts +1 -7
- package/lib/PublishParser/PublishParser.ts +8 -12
- package/lib/PublishParser/getFileTableRules.ts +1 -1
- package/lib/PublishParser/getSchemaFromPublish.ts +26 -42
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +22 -37
- package/lib/RestApi.ts +4 -12
- package/lib/SchemaWatch/SchemaWatch.ts +11 -24
- package/lib/SyncReplication.ts +96 -190
- package/lib/TableConfig/TableConfig.ts +16 -38
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +2 -8
- package/lib/TableConfig/getFutureTableSchema.ts +20 -34
- package/lib/TableConfig/getTableColumnQueries.ts +13 -35
- package/lib/TableConfig/initTableConfig.ts +40 -64
- package/lib/initProstgles.ts +1 -1
- package/lib/onSocketConnected.ts +8 -12
- package/lib/runClientRequest.ts +31 -54
- package/package.json +2 -2
- package/dist/Auth/getSafeReturnURL.d.ts.map +0 -1
- package/dist/Auth/getSafeReturnURL.js.map +0 -1
- package/dist/Auth/setEmailProvider.d.ts.map +0 -1
- package/dist/Auth/setEmailProvider.js +0 -133
- package/dist/Auth/setEmailProvider.js.map +0 -1
- package/dist/DboBuilder/runTransaction.d.ts +0 -9
- package/dist/DboBuilder/runTransaction.d.ts.map +0 -1
- package/dist/DboBuilder/runTransaction.js +0 -49
- package/dist/DboBuilder/runTransaction.js.map +0 -1
- package/lib/Auth/setEmailProvider.ts +0 -132
- package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +0 -27
- package/lib/DboBuilder/runTransaction.ts +0 -61
- package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +0 -3
- /package/dist/Auth/{getSafeReturnURL.d.ts → utils/getSafeReturnURL.d.ts} +0 -0
- /package/dist/Auth/{getSafeReturnURL.js → utils/getSafeReturnURL.js} +0 -0
- /package/lib/Auth/{getSafeReturnURL.ts → utils/getSafeReturnURL.ts} +0 -0
package/dist/Auth/AuthTypes.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Express, NextFunction, Request, Response } from "express";
|
|
2
|
-
import
|
|
3
|
-
import { DB } from "../Prostgles";
|
|
4
|
-
import { DBOFullyTyped } from "../DBSchemaBuilder";
|
|
5
|
-
import { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
|
|
2
|
+
import Mail from "nodemailer/lib/mailer";
|
|
6
3
|
import type { AuthenticateOptions } from "passport";
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
4
|
+
import type { Profile as FacebookProfile, StrategyOptions as FacebookStrategy } from "passport-facebook";
|
|
5
|
+
import type { Profile as GitHubProfile, StrategyOptions as GitHubStrategy } from "passport-github2";
|
|
6
|
+
import type { Profile as GoogleProfile, StrategyOptions as GoogleStrategy } from "passport-google-oauth20";
|
|
9
7
|
import type { MicrosoftStrategyOptions } from "passport-microsoft";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
8
|
+
import { AnyObject, FieldFilter, IdentityProvider, AuthResponse, UserLike, AuthRequest } from "prostgles-types";
|
|
9
|
+
import { DBOFullyTyped } from "../DBSchemaBuilder";
|
|
10
|
+
import { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
|
|
11
|
+
import { DB } from "../Prostgles";
|
|
12
12
|
type Awaitable<T> = T | Promise<T>;
|
|
13
13
|
export type ExpressReq = Request;
|
|
14
14
|
export type ExpressRes = Response;
|
|
@@ -77,54 +77,58 @@ export type Email = {
|
|
|
77
77
|
}[] | Mail.Attachment[];
|
|
78
78
|
};
|
|
79
79
|
type EmailWithoutTo = Omit<Email, "to">;
|
|
80
|
-
type
|
|
80
|
+
type MagicLinkAuthResponse = {
|
|
81
|
+
response: AuthResponse.MagicLinkAuthFailure;
|
|
82
|
+
email?: undefined;
|
|
83
|
+
} | {
|
|
84
|
+
response: AuthResponse.MagicLinkAuthSuccess;
|
|
85
|
+
email: EmailWithoutTo;
|
|
86
|
+
};
|
|
87
|
+
type PasswordRegisterResponse = {
|
|
88
|
+
response: AuthResponse.PasswordRegisterFailure;
|
|
89
|
+
email?: undefined;
|
|
90
|
+
} | {
|
|
91
|
+
response: AuthResponse.PasswordRegisterSuccess;
|
|
92
|
+
email: EmailWithoutTo;
|
|
93
|
+
};
|
|
94
|
+
export type EmailProvider = {
|
|
81
95
|
signupType: "withMagicLink";
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
clientInfo: LoginClientInfo;
|
|
90
|
-
req: ExpressReq;
|
|
91
|
-
}) => EmailWithoutTo | Promise<EmailWithoutTo>;
|
|
92
|
-
smtp: SMTPConfig;
|
|
93
|
-
};
|
|
96
|
+
onRegister: (data: {
|
|
97
|
+
email: string;
|
|
98
|
+
magicLinkUrlPath: string;
|
|
99
|
+
clientInfo: LoginClientInfo;
|
|
100
|
+
req: ExpressReq;
|
|
101
|
+
}) => Awaitable<MagicLinkAuthResponse>;
|
|
102
|
+
smtp: SMTPConfig;
|
|
94
103
|
} | {
|
|
104
|
+
/**
|
|
105
|
+
* Users have to provide an email and a password.
|
|
106
|
+
* Account should be activated after email confirmation
|
|
107
|
+
*/
|
|
95
108
|
signupType: "withPassword";
|
|
96
|
-
onRegistered: (data: {
|
|
97
|
-
username: string;
|
|
98
|
-
password: string;
|
|
99
|
-
}, clientInfo: LoginClientInfo) => Awaitable<EmailRegisterResponse>;
|
|
100
109
|
/**
|
|
101
110
|
* Defaults to 8
|
|
102
111
|
*/
|
|
103
112
|
minPasswordLength?: number;
|
|
104
113
|
/**
|
|
105
|
-
*
|
|
114
|
+
* Called when the user has registered
|
|
106
115
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
confirmationCode: string;
|
|
124
|
-
clientInfo: LoginClientInfo;
|
|
125
|
-
req: ExpressReq;
|
|
126
|
-
}) => void | Promise<void>;
|
|
127
|
-
};
|
|
116
|
+
onRegister: (data: {
|
|
117
|
+
email: string;
|
|
118
|
+
password: string;
|
|
119
|
+
confirmationUrlPath: string;
|
|
120
|
+
clientInfo: LoginClientInfo;
|
|
121
|
+
req: ExpressReq;
|
|
122
|
+
}) => Awaitable<PasswordRegisterResponse>;
|
|
123
|
+
smtp: SMTPConfig;
|
|
124
|
+
/**
|
|
125
|
+
* Called after the user has clicked the URL to confirm their email address
|
|
126
|
+
*/
|
|
127
|
+
onEmailConfirmation: (data: {
|
|
128
|
+
confirmationCode: string;
|
|
129
|
+
clientInfo: LoginClientInfo;
|
|
130
|
+
req: ExpressReq;
|
|
131
|
+
}) => void | Promise<void>;
|
|
128
132
|
};
|
|
129
133
|
export type AuthProviderUserData = {
|
|
130
134
|
provider: "google";
|
|
@@ -209,7 +213,7 @@ export type AuthResult<SU = SessionUser> = (SU & {
|
|
|
209
213
|
}) | {
|
|
210
214
|
user?: undefined;
|
|
211
215
|
clientUser?: undefined;
|
|
212
|
-
sid?: string;
|
|
216
|
+
sid?: string | undefined;
|
|
213
217
|
} | undefined;
|
|
214
218
|
export type AuthRequestParams<S, SUser extends SessionUser> = {
|
|
215
219
|
db: DB;
|
|
@@ -223,9 +227,9 @@ export type Auth<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
223
227
|
*/
|
|
224
228
|
sidKeyName?: string;
|
|
225
229
|
/**
|
|
226
|
-
*
|
|
230
|
+
* undefined sid is allowed to enable public users
|
|
227
231
|
*/
|
|
228
|
-
|
|
232
|
+
getUser: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB, client: AuthClientRequest & LoginClientInfo) => Awaitable<AuthResult<SUser>>;
|
|
229
233
|
/**
|
|
230
234
|
* Will setup auth routes
|
|
231
235
|
* /login
|
|
@@ -233,28 +237,29 @@ export type Auth<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
233
237
|
* /magic-link/:id
|
|
234
238
|
*/
|
|
235
239
|
expressConfig?: ExpressConfig<S, SUser>;
|
|
236
|
-
/**
|
|
237
|
-
* undefined sid is allowed to enable public users
|
|
238
|
-
*/
|
|
239
|
-
getUser: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB, client: AuthClientRequest & LoginClientInfo) => Awaitable<AuthResult<SUser>>;
|
|
240
240
|
login?: (params: LoginParams, dbo: DBOFullyTyped<S>, db: DB, client: LoginClientInfo) => Awaitable<LoginResponse>;
|
|
241
241
|
logout?: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<any>;
|
|
242
|
+
/**
|
|
243
|
+
* Response time rounding in milliseconds to prevent timing attacks on login. Login response time should always be a multiple of this value. Defaults to 500 milliseconds
|
|
244
|
+
*/
|
|
245
|
+
responseThrottle?: number;
|
|
242
246
|
/**
|
|
243
247
|
* If provided then session info will be saved on socket.__prglCache and reused from there
|
|
244
248
|
*/
|
|
245
249
|
cacheSession?: {
|
|
246
|
-
getSession: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<BasicSession>;
|
|
250
|
+
getSession: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<BasicSession | undefined>;
|
|
247
251
|
};
|
|
248
252
|
};
|
|
249
|
-
export type LoginResponse =
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
+
export type LoginResponse = {
|
|
254
|
+
session: BasicSession;
|
|
255
|
+
response?: AuthResponse.PasswordLoginSuccess | AuthResponse.MagicLinkAuthSuccess;
|
|
256
|
+
} | {
|
|
257
|
+
session?: undefined;
|
|
258
|
+
response: AuthResponse.PasswordLoginFailure | AuthResponse.MagicLinkAuthFailure;
|
|
259
|
+
};
|
|
260
|
+
export type LoginParams = ({
|
|
253
261
|
type: "username";
|
|
254
|
-
|
|
255
|
-
password: string;
|
|
256
|
-
[key: string]: any;
|
|
257
|
-
} | ({
|
|
262
|
+
} & AuthRequest.LoginData) | ({
|
|
258
263
|
type: "provider";
|
|
259
264
|
} & AuthProviderUserData);
|
|
260
265
|
type ExpressConfig<S, SUser extends SessionUser> = {
|
|
@@ -284,16 +289,18 @@ type ExpressConfig<S, SUser extends SessionUser> = {
|
|
|
284
289
|
* Will be called after a GET request is authorised
|
|
285
290
|
* This means that
|
|
286
291
|
*/
|
|
287
|
-
onGetRequestOK?: (req: ExpressReq, res: ExpressRes, params: AuthRequestParams<S, SUser>) =>
|
|
292
|
+
onGetRequestOK?: (req: ExpressReq, res: ExpressRes, params: AuthRequestParams<S, SUser>) => Awaitable<void>;
|
|
288
293
|
/**
|
|
289
|
-
* If defined, will
|
|
294
|
+
* If defined, will enable GET /magic-link/:id route.
|
|
295
|
+
* Requests with valid magic link ids will be logged in and redirected to the returnUrl if set
|
|
290
296
|
*/
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
+
onMagicLink?: (magicId: string, dbo: DBOFullyTyped<S>, db: DB, client: LoginClientInfo) => Awaitable<{
|
|
298
|
+
session: BasicSession;
|
|
299
|
+
response?: AuthResponse.MagicLinkAuthSuccess;
|
|
300
|
+
} | {
|
|
301
|
+
session?: undefined;
|
|
302
|
+
response: AuthResponse.MagicLinkAuthFailure;
|
|
303
|
+
}>;
|
|
297
304
|
registrations?: AuthRegistrationConfig<S>;
|
|
298
305
|
};
|
|
299
306
|
type ExpressMiddleware<S, SUser extends SessionUser> = (args: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthTypes.d.ts","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthTypes.d.ts","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setEmailProvider.d.ts","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setEmailProvider.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAA0B,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMrE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,iBAqBvE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setEmailProvider = void 0;
|
|
4
|
+
const AuthHandler_1 = require("../AuthHandler");
|
|
5
|
+
const getConfirmEmailRequestHandler_1 = require("../endpoints/getConfirmEmailRequestHandler");
|
|
6
|
+
const getRegisterRequestHandler_1 = require("../endpoints/getRegisterRequestHandler");
|
|
7
|
+
const sendEmail_1 = require("../sendEmail");
|
|
8
|
+
const checkDmarc_1 = require("../utils/checkDmarc");
|
|
9
|
+
async function setEmailProvider(app) {
|
|
10
|
+
const { email, websiteUrl } = this.opts.expressConfig?.registrations ?? {};
|
|
11
|
+
if (!email)
|
|
12
|
+
return;
|
|
13
|
+
if (!websiteUrl) {
|
|
14
|
+
throw new Error("websiteUrl is required for email/magic-link registrations");
|
|
15
|
+
}
|
|
16
|
+
await (0, checkDmarc_1.checkDmarc)(websiteUrl);
|
|
17
|
+
/**
|
|
18
|
+
* Setup nodemailer transporters
|
|
19
|
+
*/
|
|
20
|
+
(0, sendEmail_1.getOrSetTransporter)(email.smtp);
|
|
21
|
+
app.post(AuthHandler_1.AUTH_ROUTES_AND_PARAMS.emailRegistration, (0, getRegisterRequestHandler_1.getRegisterRequestHandler)({ email, websiteUrl }));
|
|
22
|
+
if (email.signupType === "withPassword") {
|
|
23
|
+
app.get(AuthHandler_1.AUTH_ROUTES_AND_PARAMS.confirmEmailExpressRoute, (0, getConfirmEmailRequestHandler_1.getConfirmEmailRequestHandler)(email));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.setEmailProvider = setEmailProvider;
|
|
27
|
+
//# sourceMappingURL=setEmailProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setEmailProvider.js","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setEmailProvider.ts"],"names":[],"mappings":";;;AACA,gDAAqE;AACrE,8FAA2F;AAC3F,sFAAmF;AACnF,4CAAmD;AACnD,oDAAiD;AAE1C,KAAK,UAAU,gBAAgB,CAAoB,GAAc;IACtE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAA,uBAAU,EAAC,UAAU,CAAC,CAAC;IAE7B;;OAEG;IACH,IAAA,+BAAmB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,GAAG,CAAC,IAAI,CACN,oCAAsB,CAAC,iBAAiB,EACxC,IAAA,qDAAyB,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CACjD,CAAC;IAEF,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,oCAAsB,CAAC,wBAAwB,EAAE,IAAA,6DAA6B,EAAC,KAAK,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AuthHandler } from "../AuthHandler";
|
|
2
|
+
import { AuthRegistrationConfig } from "../AuthTypes";
|
|
3
|
+
import e from "express";
|
|
4
|
+
export declare function setOAuthProviders(this: AuthHandler, app: e.Express, registrations: AuthRegistrationConfig<void>): void;
|
|
5
|
+
//# sourceMappingURL=setOAuthProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setOAuthProviders.d.ts","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setOAuthProviders.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,CAAC,MAAM,SAAS,CAAC;AAExB,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,aAAa,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAgF5C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setOAuthProviders = void 0;
|
|
4
|
+
const passport = require("passport");
|
|
5
|
+
const passport_facebook_1 = require("passport-facebook");
|
|
6
|
+
const passport_github2_1 = require("passport-github2");
|
|
7
|
+
const passport_google_oauth20_1 = require("passport-google-oauth20");
|
|
8
|
+
const passport_microsoft_1 = require("passport-microsoft");
|
|
9
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
10
|
+
const dboBuilderUtils_1 = require("../../DboBuilder/dboBuilderUtils");
|
|
11
|
+
const AuthHandler_1 = require("../AuthHandler");
|
|
12
|
+
const getClientRequestIPsInfo_1 = require("../utils/getClientRequestIPsInfo");
|
|
13
|
+
const setAuthProviders_1 = require("../setAuthProviders");
|
|
14
|
+
function setOAuthProviders(app, registrations) {
|
|
15
|
+
const { onProviderLoginFail, onProviderLoginStart, websiteUrl, OAuthProviders } = registrations;
|
|
16
|
+
if (!OAuthProviders || (0, prostgles_types_1.isEmpty)(OAuthProviders)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
(0, setAuthProviders_1.upsertNamedExpressMiddleware)(app, passport.initialize(), "prostglesPassportMiddleware");
|
|
20
|
+
(0, prostgles_types_1.getObjectEntries)(OAuthProviders).forEach(([providerName, providerConfig]) => {
|
|
21
|
+
if (!providerConfig?.clientID) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const { authOpts, ...config } = providerConfig;
|
|
25
|
+
const strategy = providerName === "google" ? passport_google_oauth20_1.Strategy
|
|
26
|
+
: providerName === "github" ? passport_github2_1.Strategy
|
|
27
|
+
: providerName === "facebook" ? passport_facebook_1.Strategy
|
|
28
|
+
: passport_microsoft_1.Strategy;
|
|
29
|
+
const callbackPath = `${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.loginWithProvider}/${providerName}/callback`;
|
|
30
|
+
passport.use(new strategy({
|
|
31
|
+
...config,
|
|
32
|
+
callbackURL: `${websiteUrl}${callbackPath}`,
|
|
33
|
+
}, async (accessToken, refreshToken, profile, done) => {
|
|
34
|
+
// This callback is where you would normally store or retrieve user info from the database
|
|
35
|
+
return done(null, profile, { accessToken, refreshToken, profile });
|
|
36
|
+
}));
|
|
37
|
+
app.get(`${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.loginWithProvider}/${providerName}`, passport.authenticate(providerName, authOpts ?? {}));
|
|
38
|
+
app.get(callbackPath, async (req, res) => {
|
|
39
|
+
try {
|
|
40
|
+
const clientInfo = (0, getClientRequestIPsInfo_1.getClientRequestIPsInfo)({ httpReq: req });
|
|
41
|
+
const db = this.db;
|
|
42
|
+
const dbo = this.dbo;
|
|
43
|
+
const args = { provider: providerName, req, res, clientInfo, db, dbo };
|
|
44
|
+
const startCheck = await onProviderLoginStart?.(args);
|
|
45
|
+
if (startCheck && "error" in startCheck) {
|
|
46
|
+
res.status(500).json({ error: startCheck.error });
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
passport.authenticate(providerName, {
|
|
50
|
+
session: false,
|
|
51
|
+
failureRedirect: "/login",
|
|
52
|
+
failWithError: true,
|
|
53
|
+
}, async (error, _profile, authInfo) => {
|
|
54
|
+
if (error) {
|
|
55
|
+
await onProviderLoginFail?.({ ...args, error });
|
|
56
|
+
res.status(500).json({
|
|
57
|
+
error: "Failed to login with provider",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.loginThrottledAndSetCookie(req, res, {
|
|
62
|
+
type: "provider",
|
|
63
|
+
provider: providerName,
|
|
64
|
+
...authInfo,
|
|
65
|
+
}).catch((e) => {
|
|
66
|
+
res.status(500).json((0, dboBuilderUtils_1.getErrorAsObject)(e));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
})(req, res);
|
|
70
|
+
}
|
|
71
|
+
catch (_e) {
|
|
72
|
+
res.status(500).json({ error: "Something went wrong" });
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
exports.setOAuthProviders = setOAuthProviders;
|
|
78
|
+
//# sourceMappingURL=setOAuthProviders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setOAuthProviders.js","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setOAuthProviders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Request, Response } from "express";
|
|
2
|
+
import { AuthResponse } from "prostgles-types";
|
|
3
|
+
import { AuthRegistrationConfig } from "../AuthTypes";
|
|
4
|
+
export declare const getConfirmEmailRequestHandler: (emailAuthConfig: Extract<Required<AuthRegistrationConfig<void>>["email"], {
|
|
5
|
+
signupType: "withPassword";
|
|
6
|
+
}>) => (req: Request, res: Response<AuthResponse.PasswordRegisterSuccess | AuthResponse.PasswordRegisterFailure | AuthResponse.AuthSuccess>) => Promise<Response<AuthResponse.PasswordRegisterSuccess | AuthResponse.PasswordRegisterFailure | AuthResponse.AuthSuccess, Record<string, any>> | undefined>;
|
|
7
|
+
//# sourceMappingURL=getConfirmEmailRequestHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConfirmEmailRequestHandler.d.ts","sourceRoot":"","sources":["../../../lib/Auth/endpoints/getConfirmEmailRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,eAAO,MAAM,6BAA6B,oBACvB,QACf,SAAS,uBAAuB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAC/C;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,CAC/B,WAGM,OAAO,OACP,SACD,aAAa,uBAAuB,GACpC,aAAa,uBAAuB,GACpC,aAAa,WAAW,CAC3B,+JAoBJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfirmEmailRequestHandler = void 0;
|
|
4
|
+
const AuthHandler_1 = require("../AuthHandler");
|
|
5
|
+
const getClientRequestIPsInfo_1 = require("../utils/getClientRequestIPsInfo");
|
|
6
|
+
const getConfirmEmailRequestHandler = (emailAuthConfig) => {
|
|
7
|
+
return async (req, res) => {
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
try {
|
|
10
|
+
if (!id || typeof id !== "string") {
|
|
11
|
+
return res.send({ success: false, code: "something-went-wrong", message: "Invalid code" });
|
|
12
|
+
}
|
|
13
|
+
const { httpReq, ...clientInfo } = (0, getClientRequestIPsInfo_1.getClientRequestIPsInfo)({ httpReq: req });
|
|
14
|
+
await emailAuthConfig.onEmailConfirmation({
|
|
15
|
+
confirmationCode: id,
|
|
16
|
+
clientInfo,
|
|
17
|
+
req: httpReq,
|
|
18
|
+
});
|
|
19
|
+
res.json({ success: true, message: "Email confirmed" });
|
|
20
|
+
}
|
|
21
|
+
catch (_e) {
|
|
22
|
+
res
|
|
23
|
+
.status(AuthHandler_1.HTTP_FAIL_CODES.BAD_REQUEST)
|
|
24
|
+
.json({ success: false, code: "server-error", message: "Failed to confirm email" });
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
exports.getConfirmEmailRequestHandler = getConfirmEmailRequestHandler;
|
|
29
|
+
//# sourceMappingURL=getConfirmEmailRequestHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConfirmEmailRequestHandler.js","sourceRoot":"","sources":["../../../lib/Auth/endpoints/getConfirmEmailRequestHandler.ts"],"names":[],"mappings":";;;AAEA,gDAAiD;AAEjD,8EAA2E;AAEpE,MAAM,6BAA6B,GAAG,CAC3C,eAGC,EACD,EAAE;IACF,OAAO,KAAK,EACV,GAAY,EACZ,GAIC,EACD,EAAE;QACF,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,IAAA,iDAAuB,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7E,MAAM,eAAe,CAAC,mBAAmB,CAAC;gBACxC,gBAAgB,EAAE,EAAE;gBACpB,UAAU;gBACV,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,GAAG;iBACA,MAAM,CAAC,6BAAe,CAAC,WAAW,CAAC;iBACnC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,6BAA6B,iCAgCxC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Response, Request } from "express";
|
|
2
|
+
import { AuthResponse } from "prostgles-types";
|
|
3
|
+
import type { AuthRegistrationConfig } from "../AuthTypes";
|
|
4
|
+
type ReturnType = AuthResponse.MagicLinkAuthFailure | AuthResponse.MagicLinkAuthSuccess | AuthResponse.PasswordRegisterFailure | AuthResponse.PasswordRegisterSuccess;
|
|
5
|
+
export declare const getRegisterRequestHandler: ({ email: emailAuthConfig, websiteUrl, }: Required<Pick<AuthRegistrationConfig<void>, "email" | "websiteUrl">>) => (req: Request, res: Response<ReturnType>) => Promise<void>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=getRegisterRequestHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRegisterRequestHandler.d.ts","sourceRoot":"","sources":["../../../lib/Auth/endpoints/getRegisterRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAI3D,KAAK,UAAU,GACX,YAAY,CAAC,oBAAoB,GACjC,YAAY,CAAC,oBAAoB,GACjC,YAAY,CAAC,uBAAuB,GACpC,YAAY,CAAC,uBAAuB,CAAC;AAEzC,eAAO,MAAM,yBAAyB,4CAGnC,SAAS,KAAK,uBAAuB,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,WAC1B,OAAO,OAAO,SAAS,UAAU,CAAC,kBAiE9E,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRegisterRequestHandler = void 0;
|
|
4
|
+
const AuthHandler_1 = require("../AuthHandler");
|
|
5
|
+
const sendEmail_1 = require("../sendEmail");
|
|
6
|
+
const getClientRequestIPsInfo_1 = require("../utils/getClientRequestIPsInfo");
|
|
7
|
+
const getRegisterRequestHandler = ({ email: emailAuthConfig, websiteUrl, }) => {
|
|
8
|
+
const registerRequestHandler = async (req, res) => {
|
|
9
|
+
const { username, password } = req.body;
|
|
10
|
+
const sendResponse = (response) => {
|
|
11
|
+
if (response.success) {
|
|
12
|
+
res.json(response);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
res.status(AuthHandler_1.HTTP_FAIL_CODES.BAD_REQUEST).json(response);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
if (!username || typeof username !== "string") {
|
|
19
|
+
return sendResponse({ success: false, code: "username-missing" });
|
|
20
|
+
}
|
|
21
|
+
if (emailAuthConfig.signupType === "withPassword") {
|
|
22
|
+
const { minPasswordLength = 8 } = emailAuthConfig;
|
|
23
|
+
if (typeof password !== "string") {
|
|
24
|
+
return sendResponse({ success: false, code: "password-missing" });
|
|
25
|
+
}
|
|
26
|
+
else if (password.length < minPasswordLength) {
|
|
27
|
+
return sendResponse({
|
|
28
|
+
success: false,
|
|
29
|
+
code: "weak-password",
|
|
30
|
+
message: `Password must be at least ${minPasswordLength} characters long`,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const { httpReq, ...clientInfo } = (0, getClientRequestIPsInfo_1.getClientRequestIPsInfo)({ httpReq: req });
|
|
36
|
+
const { smtp } = emailAuthConfig;
|
|
37
|
+
const registrationResult = emailAuthConfig.signupType === "withPassword" ?
|
|
38
|
+
await emailAuthConfig.onRegister({
|
|
39
|
+
email: username,
|
|
40
|
+
password,
|
|
41
|
+
confirmationUrlPath: `${websiteUrl}${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.confirmEmail}`,
|
|
42
|
+
clientInfo,
|
|
43
|
+
req: httpReq,
|
|
44
|
+
})
|
|
45
|
+
: await emailAuthConfig.onRegister({
|
|
46
|
+
email: username,
|
|
47
|
+
magicLinkUrlPath: `${websiteUrl}${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.magicLinksRoute}`,
|
|
48
|
+
clientInfo,
|
|
49
|
+
req: httpReq,
|
|
50
|
+
});
|
|
51
|
+
if (!registrationResult.email) {
|
|
52
|
+
return sendResponse(registrationResult.response);
|
|
53
|
+
}
|
|
54
|
+
const emailMessage = { ...registrationResult.email, to: username };
|
|
55
|
+
await (0, sendEmail_1.sendEmail)(smtp, emailMessage);
|
|
56
|
+
return sendResponse({
|
|
57
|
+
...registrationResult.response,
|
|
58
|
+
message: emailAuthConfig.signupType === "withPassword" ?
|
|
59
|
+
`We've sent a confirmation email to ${emailMessage.to}. Please check your inbox (and your spam folder) for a message from us.`
|
|
60
|
+
: "Email sent",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return sendResponse({
|
|
65
|
+
success: false,
|
|
66
|
+
code: "server-error",
|
|
67
|
+
message: "Failed to send email",
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return registerRequestHandler;
|
|
72
|
+
};
|
|
73
|
+
exports.getRegisterRequestHandler = getRegisterRequestHandler;
|
|
74
|
+
//# sourceMappingURL=getRegisterRequestHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRegisterRequestHandler.js","sourceRoot":"","sources":["../../../lib/Auth/endpoints/getRegisterRequestHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setAuthProviders.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"setAuthProviders.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAA6B,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAA0B,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC,eAAO,MAAM,4BAA4B,QAClC,SAAS,WACL,cAAc,QACjB,MAAM,SAMb,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,EACjB,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,iBAMxD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,CAgBzF"}
|