@nlabs/reaktor 0.10.2 → 0.10.6
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/coverage/block-navigation.js +1 -1
- package/coverage/index.html +23 -23
- package/coverage/sorter.js +21 -7
- package/lib/actions/apps.d.ts +1 -0
- package/lib/actions/apps.d.ts.map +1 -0
- package/lib/actions/apps.js +218 -17
- package/lib/actions/connections.d.ts +1 -0
- package/lib/actions/connections.d.ts.map +1 -0
- package/lib/actions/connections.js +61 -6
- package/lib/actions/content.d.ts +1 -0
- package/lib/actions/content.d.ts.map +1 -0
- package/lib/actions/content.js +232 -9
- package/lib/actions/conversations.d.ts +1 -0
- package/lib/actions/conversations.d.ts.map +1 -0
- package/lib/actions/conversations.js +321 -19
- package/lib/actions/dynamodb.d.ts +1 -0
- package/lib/actions/dynamodb.d.ts.map +1 -0
- package/lib/actions/dynamodb.js +119 -2
- package/lib/actions/email.d.ts +1 -0
- package/lib/actions/email.d.ts.map +1 -0
- package/lib/actions/email.js +56 -2
- package/lib/actions/files.d.ts +1 -0
- package/lib/actions/files.d.ts.map +1 -0
- package/lib/actions/files.js +226 -5
- package/lib/actions/groups.d.ts +1 -0
- package/lib/actions/groups.d.ts.map +1 -0
- package/lib/actions/groups.js +234 -19
- package/lib/actions/images.d.ts +1 -0
- package/lib/actions/images.d.ts.map +1 -0
- package/lib/actions/images.js +688 -31
- package/lib/actions/index.d.ts +2 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +29 -2
- package/lib/actions/ios.d.ts +1 -0
- package/lib/actions/ios.d.ts.map +1 -0
- package/lib/actions/ios.js +228 -9
- package/lib/actions/locations.d.ts +1 -0
- package/lib/actions/locations.d.ts.map +1 -0
- package/lib/actions/locations.js +111 -7
- package/lib/actions/messages.d.ts +1 -0
- package/lib/actions/messages.d.ts.map +1 -0
- package/lib/actions/messages.js +155 -21
- package/lib/actions/notifications.d.ts +1 -0
- package/lib/actions/notifications.d.ts.map +1 -0
- package/lib/actions/notifications.js +37 -2
- package/lib/actions/payments.d.ts +1 -0
- package/lib/actions/payments.d.ts.map +1 -0
- package/lib/actions/payments.js +428 -11
- package/lib/actions/posts.d.ts +1 -0
- package/lib/actions/posts.d.ts.map +1 -0
- package/lib/actions/posts.js +540 -75
- package/lib/actions/profiles.d.ts +1 -0
- package/lib/actions/profiles.d.ts.map +1 -0
- package/lib/actions/profiles.js +58 -8
- package/lib/actions/reactions.d.ts +1 -0
- package/lib/actions/reactions.d.ts.map +1 -0
- package/lib/actions/reactions.js +276 -25
- package/lib/actions/s3.d.ts +1 -0
- package/lib/actions/s3.d.ts.map +1 -0
- package/lib/actions/s3.js +102 -2
- package/lib/actions/search.d.ts +1 -0
- package/lib/actions/search.d.ts.map +1 -0
- package/lib/actions/search.js +81 -5
- package/lib/actions/sms.d.ts +1 -0
- package/lib/actions/sms.d.ts.map +1 -0
- package/lib/actions/sms.js +52 -2
- package/lib/actions/statistics.d.ts +1 -0
- package/lib/actions/statistics.d.ts.map +1 -0
- package/lib/actions/statistics.js +41 -6
- package/lib/actions/subscriptions.d.ts +1 -0
- package/lib/actions/subscriptions.d.ts.map +1 -0
- package/lib/actions/subscriptions.js +196 -6
- package/lib/actions/tags.d.ts +1 -0
- package/lib/actions/tags.d.ts.map +1 -0
- package/lib/actions/tags.js +258 -19
- package/lib/actions/users.d.ts +1 -0
- package/lib/actions/users.d.ts.map +1 -0
- package/lib/actions/users.js +781 -66
- package/lib/actions/videos.d.ts +26 -0
- package/lib/actions/videos.d.ts.map +1 -0
- package/lib/actions/videos.js +423 -0
- package/lib/actions/websockets.d.ts +1 -0
- package/lib/actions/websockets.d.ts.map +1 -0
- package/lib/actions/websockets.js +148 -14
- package/lib/adapters/arangoAdapter.d.ts +1 -0
- package/lib/adapters/arangoAdapter.d.ts.map +1 -0
- package/lib/adapters/arangoAdapter.js +70 -2
- package/lib/adapters/contentAdapter.d.ts +1 -0
- package/lib/adapters/contentAdapter.d.ts.map +1 -0
- package/lib/adapters/contentAdapter.js +108 -2
- package/lib/adapters/fileAdapter.d.ts +1 -0
- package/lib/adapters/fileAdapter.d.ts.map +1 -0
- package/lib/adapters/fileAdapter.js +119 -2
- package/lib/adapters/imageAdapter.d.ts +1 -0
- package/lib/adapters/imageAdapter.d.ts.map +1 -0
- package/lib/adapters/imageAdapter.js +112 -2
- package/lib/adapters/index.d.ts +1 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +11 -2
- package/lib/adapters/messageAdapter.d.ts +1 -0
- package/lib/adapters/messageAdapter.d.ts.map +1 -0
- package/lib/adapters/messageAdapter.js +82 -2
- package/lib/adapters/postAdapter.d.ts +1 -0
- package/lib/adapters/postAdapter.d.ts.map +1 -0
- package/lib/adapters/postAdapter.js +117 -2
- package/lib/adapters/reaktorAdapter.d.ts +1 -0
- package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
- package/lib/adapters/reaktorAdapter.js +59 -2
- package/lib/adapters/tagAdapter.d.ts +1 -0
- package/lib/adapters/tagAdapter.d.ts.map +1 -0
- package/lib/adapters/tagAdapter.js +99 -2
- package/lib/adapters/userAdapter.d.ts +1 -0
- package/lib/adapters/userAdapter.d.ts.map +1 -0
- package/lib/adapters/userAdapter.js +264 -2
- package/lib/config.d.ts +1 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +161 -2
- package/lib/handlers/graphqlHandler.d.ts +1 -0
- package/lib/handlers/graphqlHandler.d.ts.map +1 -0
- package/lib/handlers/graphqlHandler.js +118 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -2
- package/lib/lambdas/actions/websockets.d.ts +1 -0
- package/lib/lambdas/actions/websockets.d.ts.map +1 -0
- package/lib/lambdas/actions/websockets.js +89 -14
- package/lib/lambdas/authorizer.d.ts +1 -0
- package/lib/lambdas/authorizer.d.ts.map +1 -0
- package/lib/lambdas/authorizer.js +41 -2
- package/lib/lambdas/connection.d.ts +1 -0
- package/lib/lambdas/connection.d.ts.map +1 -0
- package/lib/lambdas/connection.js +85 -2
- package/lib/lambdas/utils/message.d.ts +1 -0
- package/lib/lambdas/utils/message.d.ts.map +1 -0
- package/lib/lambdas/utils/message.js +20 -2
- package/lib/lambdas/utils/websocket.d.ts +1 -0
- package/lib/lambdas/utils/websocket.d.ts.map +1 -0
- package/lib/lambdas/utils/websocket.js +78 -2
- package/lib/mocks/conversation.d.ts +1 -0
- package/lib/mocks/conversation.d.ts.map +1 -0
- package/lib/mocks/conversation.js +10 -2
- package/lib/mocks/file.d.ts +1 -0
- package/lib/mocks/file.d.ts.map +1 -0
- package/lib/mocks/file.js +13 -2
- package/lib/mocks/group.d.ts +1 -0
- package/lib/mocks/group.d.ts.map +1 -0
- package/lib/mocks/group.js +20 -2
- package/lib/mocks/image.d.ts +1 -0
- package/lib/mocks/image.d.ts.map +1 -0
- package/lib/mocks/image.js +17 -2
- package/lib/mocks/post.d.ts +1 -0
- package/lib/mocks/post.d.ts.map +1 -0
- package/lib/mocks/post.js +28 -2
- package/lib/mocks/tag.d.ts +1 -0
- package/lib/mocks/tag.d.ts.map +1 -0
- package/lib/mocks/tag.js +12 -2
- package/lib/mocks/user.d.ts +1 -0
- package/lib/mocks/user.d.ts.map +1 -0
- package/lib/mocks/user.js +61 -2
- package/lib/mocks/video.d.ts +4 -0
- package/lib/mocks/video.d.ts.map +1 -0
- package/lib/mocks/video.js +17 -0
- package/lib/mutations/content.d.ts +1 -0
- package/lib/mutations/content.d.ts.map +1 -0
- package/lib/mutations/content.js +27 -2
- package/lib/mutations/index.d.ts +1 -0
- package/lib/mutations/index.d.ts.map +1 -0
- package/lib/mutations/index.js +29 -2
- package/lib/mutations/locations.d.ts +1 -0
- package/lib/mutations/locations.d.ts.map +1 -0
- package/lib/mutations/locations.js +22 -2
- package/lib/mutations/messages.d.ts +1 -0
- package/lib/mutations/messages.d.ts.map +1 -0
- package/lib/mutations/messages.js +75 -2
- package/lib/mutations/posts.d.ts +1 -0
- package/lib/mutations/posts.d.ts.map +1 -0
- package/lib/mutations/posts.js +31 -2
- package/lib/mutations/profiles.d.ts +1 -0
- package/lib/mutations/profiles.d.ts.map +1 -0
- package/lib/mutations/profiles.js +78 -2
- package/lib/mutations/reactions.d.ts +1 -0
- package/lib/mutations/reactions.d.ts.map +1 -0
- package/lib/mutations/reactions.js +29 -2
- package/lib/mutations/statistics.d.ts +1 -0
- package/lib/mutations/statistics.d.ts.map +1 -0
- package/lib/mutations/statistics.js +17 -2
- package/lib/mutations/subscriptions.d.ts +1 -0
- package/lib/mutations/subscriptions.d.ts.map +1 -0
- package/lib/mutations/subscriptions.js +38 -2
- package/lib/mutations/tags.d.ts +1 -0
- package/lib/mutations/tags.d.ts.map +1 -0
- package/lib/mutations/tags.js +109 -2
- package/lib/mutations/users.d.ts +1 -0
- package/lib/mutations/users.d.ts.map +1 -0
- package/lib/mutations/users.js +129 -2
- package/lib/objectTypes/app.d.ts +1 -0
- package/lib/objectTypes/app.d.ts.map +1 -0
- package/lib/objectTypes/app.js +147 -2
- package/lib/objectTypes/bankAccount.d.ts +1 -0
- package/lib/objectTypes/bankAccount.d.ts.map +1 -0
- package/lib/objectTypes/bankAccount.js +54 -2
- package/lib/objectTypes/connection.d.ts +1 -0
- package/lib/objectTypes/connection.d.ts.map +1 -0
- package/lib/objectTypes/connection.js +26 -2
- package/lib/objectTypes/content.d.ts +1 -0
- package/lib/objectTypes/content.d.ts.map +1 -0
- package/lib/objectTypes/content.js +79 -2
- package/lib/objectTypes/conversation.d.ts +1 -0
- package/lib/objectTypes/conversation.d.ts.map +1 -0
- package/lib/objectTypes/conversation.js +53 -2
- package/lib/objectTypes/creditCard.d.ts +1 -0
- package/lib/objectTypes/creditCard.d.ts.map +1 -0
- package/lib/objectTypes/creditCard.js +64 -2
- package/lib/objectTypes/document.d.ts +1 -0
- package/lib/objectTypes/document.d.ts.map +1 -0
- package/lib/objectTypes/document.js +21 -2
- package/lib/objectTypes/error.d.ts +1 -0
- package/lib/objectTypes/error.d.ts.map +1 -0
- package/lib/objectTypes/error.js +24 -2
- package/lib/objectTypes/external.d.ts +1 -0
- package/lib/objectTypes/external.d.ts.map +1 -0
- package/lib/objectTypes/external.js +52 -2
- package/lib/objectTypes/file.d.ts +1 -0
- package/lib/objectTypes/file.d.ts.map +1 -0
- package/lib/objectTypes/file.js +76 -2
- package/lib/objectTypes/filter.d.ts +1 -0
- package/lib/objectTypes/filter.d.ts.map +1 -0
- package/lib/objectTypes/filter.js +21 -2
- package/lib/objectTypes/group.d.ts +1 -0
- package/lib/objectTypes/group.d.ts.map +1 -0
- package/lib/objectTypes/group.js +97 -2
- package/lib/objectTypes/iapSubscription.d.ts +1 -0
- package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
- package/lib/objectTypes/iapSubscription.js +18 -2
- package/lib/objectTypes/image.d.ts +1 -0
- package/lib/objectTypes/image.d.ts.map +1 -0
- package/lib/objectTypes/image.js +105 -2
- package/lib/objectTypes/index.d.ts +1 -0
- package/lib/objectTypes/index.d.ts.map +1 -0
- package/lib/objectTypes/index.js +28 -2
- package/lib/objectTypes/location.d.ts +1 -0
- package/lib/objectTypes/location.d.ts.map +1 -0
- package/lib/objectTypes/location.js +85 -2
- package/lib/objectTypes/message.d.ts +1 -0
- package/lib/objectTypes/message.d.ts.map +1 -0
- package/lib/objectTypes/message.js +72 -2
- package/lib/objectTypes/passcode.d.ts +1 -0
- package/lib/objectTypes/passcode.d.ts.map +1 -0
- package/lib/objectTypes/passcode.js +20 -2
- package/lib/objectTypes/plan.d.ts +1 -0
- package/lib/objectTypes/plan.d.ts.map +1 -0
- package/lib/objectTypes/plan.js +71 -2
- package/lib/objectTypes/post.d.ts +1 -0
- package/lib/objectTypes/post.d.ts.map +1 -0
- package/lib/objectTypes/post.js +101 -2
- package/lib/objectTypes/profile.d.ts +1 -0
- package/lib/objectTypes/profile.d.ts.map +1 -0
- package/lib/objectTypes/profile.js +68 -2
- package/lib/objectTypes/reaction.d.ts +1 -0
- package/lib/objectTypes/reaction.d.ts.map +1 -0
- package/lib/objectTypes/reaction.js +37 -2
- package/lib/objectTypes/relation.d.ts +1 -0
- package/lib/objectTypes/relation.d.ts.map +1 -0
- package/lib/objectTypes/relation.js +27 -2
- package/lib/objectTypes/search.d.ts +1 -0
- package/lib/objectTypes/search.d.ts.map +1 -0
- package/lib/objectTypes/search.js +50 -2
- package/lib/objectTypes/statistics.d.ts +1 -0
- package/lib/objectTypes/statistics.d.ts.map +1 -0
- package/lib/objectTypes/statistics.js +17 -2
- package/lib/objectTypes/subscription.d.ts +1 -0
- package/lib/objectTypes/subscription.d.ts.map +1 -0
- package/lib/objectTypes/subscription.js +102 -2
- package/lib/objectTypes/tag.d.ts +1 -0
- package/lib/objectTypes/tag.d.ts.map +1 -0
- package/lib/objectTypes/tag.js +41 -2
- package/lib/objectTypes/user.d.ts +1 -0
- package/lib/objectTypes/user.d.ts.map +1 -0
- package/lib/objectTypes/user.js +111 -2
- package/lib/queries/content.d.ts +1 -0
- package/lib/queries/content.d.ts.map +1 -0
- package/lib/queries/content.js +50 -2
- package/lib/queries/index.d.ts +1 -0
- package/lib/queries/index.d.ts.map +1 -0
- package/lib/queries/index.js +27 -2
- package/lib/queries/locations.d.ts +1 -0
- package/lib/queries/locations.d.ts.map +1 -0
- package/lib/queries/locations.js +23 -2
- package/lib/queries/messages.d.ts +1 -0
- package/lib/queries/messages.d.ts.map +1 -0
- package/lib/queries/messages.js +35 -2
- package/lib/queries/posts.d.ts +1 -0
- package/lib/queries/posts.d.ts.map +1 -0
- package/lib/queries/posts.js +154 -2
- package/lib/queries/reactions.d.ts +1 -0
- package/lib/queries/reactions.d.ts.map +1 -0
- package/lib/queries/reactions.js +34 -2
- package/lib/queries/statistics.d.ts +1 -0
- package/lib/queries/statistics.d.ts.map +1 -0
- package/lib/queries/statistics.js +17 -2
- package/lib/queries/subscriptions.d.ts +1 -0
- package/lib/queries/subscriptions.d.ts.map +1 -0
- package/lib/queries/subscriptions.js +21 -2
- package/lib/queries/tags.d.ts +1 -0
- package/lib/queries/tags.d.ts.map +1 -0
- package/lib/queries/tags.js +56 -2
- package/lib/queries/users.d.ts +1 -0
- package/lib/queries/users.d.ts.map +1 -0
- package/lib/queries/users.js +39 -2
- package/lib/templates/email/layout.d.ts +1 -0
- package/lib/templates/email/layout.d.ts.map +1 -0
- package/lib/templates/email/layout.js +4 -3
- package/lib/templates/email/passwordForgot.d.ts +1 -0
- package/lib/templates/email/passwordForgot.d.ts.map +1 -0
- package/lib/templates/email/passwordForgot.js +4 -3
- package/lib/templates/email/passwordRecovery.d.ts +1 -0
- package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
- package/lib/templates/email/passwordRecovery.js +4 -3
- package/lib/templates/email/verifyEmail.d.ts +1 -0
- package/lib/templates/email/verifyEmail.d.ts.map +1 -0
- package/lib/templates/email/verifyEmail.js +4 -3
- package/lib/templates/email/welcome.d.ts +1 -0
- package/lib/templates/email/welcome.d.ts.map +1 -0
- package/lib/templates/email/welcome.js +4 -3
- package/lib/templates/sms/passwordForgot.d.ts +1 -0
- package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
- package/lib/templates/sms/passwordForgot.js +3 -2
- package/lib/templates/sms/passwordRecovery.d.ts +1 -0
- package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
- package/lib/templates/sms/passwordRecovery.js +3 -2
- package/lib/templates/sms/verifyEmail.d.ts +1 -0
- package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
- package/lib/templates/sms/verifyEmail.js +3 -2
- package/lib/templates/sms/verifyPhone.d.ts +1 -0
- package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
- package/lib/templates/sms/verifyPhone.js +3 -2
- package/lib/templates/sms/welcome.d.ts +1 -0
- package/lib/templates/sms/welcome.d.ts.map +1 -0
- package/lib/templates/sms/welcome.js +3 -2
- package/lib/types/apps.types.d.ts +1 -0
- package/lib/types/apps.types.d.ts.map +1 -0
- package/lib/types/apps.types.js +10 -2
- package/lib/types/arangodb.types.d.ts +2 -1
- package/lib/types/arangodb.types.d.ts.map +1 -0
- package/lib/types/arangodb.types.js +6 -1
- package/lib/types/auth.types.d.ts +1 -0
- package/lib/types/auth.types.d.ts.map +1 -0
- package/lib/types/auth.types.js +6 -1
- package/lib/types/connections.types.d.ts +1 -0
- package/lib/types/connections.types.d.ts.map +1 -0
- package/lib/types/connections.types.js +6 -1
- package/lib/types/content.types.d.ts +1 -0
- package/lib/types/content.types.d.ts.map +1 -0
- package/lib/types/content.types.js +6 -1
- package/lib/types/conversations.types.d.ts +1 -0
- package/lib/types/conversations.types.d.ts.map +1 -0
- package/lib/types/conversations.types.js +6 -1
- package/lib/types/email.types.d.ts +1 -0
- package/lib/types/email.types.d.ts.map +1 -0
- package/lib/types/email.types.js +6 -1
- package/lib/types/error.types.d.ts +1 -0
- package/lib/types/error.types.d.ts.map +1 -0
- package/lib/types/error.types.js +20 -2
- package/lib/types/files.types.d.ts +1 -0
- package/lib/types/files.types.d.ts.map +1 -0
- package/lib/types/files.types.js +6 -1
- package/lib/types/google.types.d.ts +1 -0
- package/lib/types/google.types.d.ts.map +1 -0
- package/lib/types/google.types.js +6 -1
- package/lib/types/groups.types.d.ts +1 -0
- package/lib/types/groups.types.d.ts.map +1 -0
- package/lib/types/groups.types.js +6 -1
- package/lib/types/images.types.d.ts +1 -0
- package/lib/types/images.types.d.ts.map +1 -0
- package/lib/types/images.types.js +6 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +28 -2
- package/lib/types/locations.types.d.ts +1 -0
- package/lib/types/locations.types.d.ts.map +1 -0
- package/lib/types/locations.types.js +6 -1
- package/lib/types/messages.types.d.ts +1 -0
- package/lib/types/messages.types.d.ts.map +1 -0
- package/lib/types/messages.types.js +6 -1
- package/lib/types/notifications.types.d.ts +1 -0
- package/lib/types/notifications.types.d.ts.map +1 -0
- package/lib/types/notifications.types.js +6 -1
- package/lib/types/payments.types.d.ts +1 -0
- package/lib/types/payments.types.d.ts.map +1 -0
- package/lib/types/payments.types.js +6 -1
- package/lib/types/posts.types.d.ts +1 -0
- package/lib/types/posts.types.d.ts.map +1 -0
- package/lib/types/posts.types.js +6 -1
- package/lib/types/profiles.types.d.ts +1 -0
- package/lib/types/profiles.types.d.ts.map +1 -0
- package/lib/types/profiles.types.js +3 -1
- package/lib/types/statistics.types.d.ts +1 -0
- package/lib/types/statistics.types.d.ts.map +1 -0
- package/lib/types/statistics.types.js +3 -1
- package/lib/types/tags.types.d.ts +1 -0
- package/lib/types/tags.types.d.ts.map +1 -0
- package/lib/types/tags.types.js +6 -1
- package/lib/types/users.types.d.ts +1 -0
- package/lib/types/users.types.d.ts.map +1 -0
- package/lib/types/users.types.js +6 -1
- package/lib/types/videos.types.d.ts +47 -0
- package/lib/types/videos.types.d.ts.map +1 -0
- package/lib/types/videos.types.js +6 -0
- package/lib/types/websockets.types.d.ts +1 -0
- package/lib/types/websockets.types.d.ts.map +1 -0
- package/lib/types/websockets.types.js +6 -1
- package/lib/utils/adapterUtils.d.ts +1 -0
- package/lib/utils/adapterUtils.d.ts.map +1 -0
- package/lib/utils/adapterUtils.js +23 -2
- package/lib/utils/analyticsUtils.d.ts +1 -0
- package/lib/utils/analyticsUtils.d.ts.map +1 -0
- package/lib/utils/analyticsUtils.js +45 -2
- package/lib/utils/arangodbUtils.d.ts +1 -0
- package/lib/utils/arangodbUtils.d.ts.map +1 -0
- package/lib/utils/arangodbUtils.js +128 -5
- package/lib/utils/authUtils.d.ts +1 -0
- package/lib/utils/authUtils.d.ts.map +1 -0
- package/lib/utils/authUtils.js +54 -2
- package/lib/utils/contextUtils.d.ts +1 -0
- package/lib/utils/contextUtils.d.ts.map +1 -0
- package/lib/utils/contextUtils.js +10 -2
- package/lib/utils/dbI18n.d.ts +1 -0
- package/lib/utils/dbI18n.d.ts.map +1 -0
- package/lib/utils/dbI18n.example.d.ts +1 -0
- package/lib/utils/dbI18n.example.d.ts.map +1 -0
- package/lib/utils/dbI18n.example.js +92 -5
- package/lib/utils/dbI18n.js +28 -2
- package/lib/utils/googleTranslate.d.ts +1 -0
- package/lib/utils/googleTranslate.d.ts.map +1 -0
- package/lib/utils/googleTranslate.js +70 -2
- package/lib/utils/graphqlUtils.d.ts +1 -0
- package/lib/utils/graphqlUtils.d.ts.map +1 -0
- package/lib/utils/graphqlUtils.js +11 -2
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +19 -2
- package/lib/utils/languageDetection.d.ts +1 -0
- package/lib/utils/languageDetection.d.ts.map +1 -0
- package/lib/utils/languageDetection.js +120 -2
- package/lib/utils/localeUtils.d.ts +1 -0
- package/lib/utils/localeUtils.d.ts.map +1 -0
- package/lib/utils/localeUtils.example.d.ts +1 -0
- package/lib/utils/localeUtils.example.d.ts.map +1 -0
- package/lib/utils/localeUtils.example.js +124 -2
- package/lib/utils/localeUtils.js +71 -2
- package/lib/utils/middlewareUtils.d.ts +1 -0
- package/lib/utils/middlewareUtils.d.ts.map +1 -0
- package/lib/utils/middlewareUtils.js +10 -2
- package/lib/utils/sessionUtils.d.ts +1 -0
- package/lib/utils/sessionUtils.d.ts.map +1 -0
- package/lib/utils/sessionUtils.js +26 -2
- package/lib/utils/stripeUtils.d.ts +2 -1
- package/lib/utils/stripeUtils.d.ts.map +1 -0
- package/lib/utils/stripeUtils.js +12 -2
- package/lib/utils/templateUtils.d.ts +1 -0
- package/lib/utils/templateUtils.d.ts.map +1 -0
- package/lib/utils/templateUtils.js +11 -2
- package/lib/utils/testUtils.d.ts +1 -0
- package/lib/utils/testUtils.d.ts.map +1 -0
- package/lib/utils/testUtils.js +292 -2
- package/lib/utils/translationQueue.d.ts +1 -0
- package/lib/utils/translationQueue.d.ts.map +1 -0
- package/lib/utils/translationQueue.example.d.ts +1 -0
- package/lib/utils/translationQueue.example.d.ts.map +1 -0
- package/lib/utils/translationQueue.example.js +340 -2
- package/lib/utils/translationQueue.js +113 -2
- package/package.json +47 -29
|
@@ -1,2 +1,118 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { graphql } from 'graphql';
|
|
2
|
+
import { schemaComposer } from 'graphql-compose';
|
|
3
|
+
import { Config } from '../config.js';
|
|
4
|
+
import { extractLanguageContext } from '../utils/contextUtils.js';
|
|
5
|
+
import { createContext, getGqlFields, getLambdaData } from '../utils/index.js';
|
|
6
|
+
const addFieldsMiddleware = (resolve, source, args, context, info)=>{
|
|
7
|
+
const enhancedContext = {
|
|
8
|
+
...context,
|
|
9
|
+
fields: getGqlFields(info)
|
|
10
|
+
};
|
|
11
|
+
return resolve(source, args, enhancedContext, info);
|
|
12
|
+
};
|
|
13
|
+
export const createGraphqlHandler = (context)=>async (event)=>{
|
|
14
|
+
try {
|
|
15
|
+
const updatedContext = await createContext(context, event);
|
|
16
|
+
const languageContext = extractLanguageContext(event);
|
|
17
|
+
const contextWithLanguage = {
|
|
18
|
+
config: Config.get(),
|
|
19
|
+
...updatedContext,
|
|
20
|
+
languageContext,
|
|
21
|
+
request: event
|
|
22
|
+
};
|
|
23
|
+
const applyFieldsMiddleware = (tc)=>{
|
|
24
|
+
Object.keys(tc.getFields()).forEach((fieldName)=>{
|
|
25
|
+
try {
|
|
26
|
+
if (tc.hasResolver(fieldName)) {
|
|
27
|
+
tc.wrapResolver(fieldName, addFieldsMiddleware);
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.warn(`Skipping field ${fieldName} - not a resolver:`, error.message);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
applyFieldsMiddleware(schemaComposer.Query);
|
|
35
|
+
applyFieldsMiddleware(schemaComposer.Mutation);
|
|
36
|
+
const parseData = getLambdaData(event);
|
|
37
|
+
const schema = schemaComposer.buildSchema();
|
|
38
|
+
const { body } = parseData;
|
|
39
|
+
if (!body?.query) {
|
|
40
|
+
console.warn('No GraphQL query found in request body');
|
|
41
|
+
return {
|
|
42
|
+
body: JSON.stringify({
|
|
43
|
+
data: null,
|
|
44
|
+
errors: [
|
|
45
|
+
{
|
|
46
|
+
message: 'No GraphQL query found in request body'
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}),
|
|
50
|
+
headers: {
|
|
51
|
+
'Content-Type': 'application/json'
|
|
52
|
+
},
|
|
53
|
+
statusCode: 200
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const result = await Promise.resolve(graphql({
|
|
58
|
+
contextValue: contextWithLanguage,
|
|
59
|
+
schema,
|
|
60
|
+
source: body.query,
|
|
61
|
+
variableValues: body.variables
|
|
62
|
+
}));
|
|
63
|
+
if (result.errors && result.errors.length > 0) {
|
|
64
|
+
console.error('GraphQL execution errors:', result.errors);
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
body: JSON.stringify(result),
|
|
68
|
+
headers: {
|
|
69
|
+
'Content-Type': 'application/json'
|
|
70
|
+
},
|
|
71
|
+
statusCode: 200
|
|
72
|
+
};
|
|
73
|
+
} catch (graphqlError) {
|
|
74
|
+
console.error('Error during GraphQL execution:', graphqlError);
|
|
75
|
+
const errorMessage = graphqlError instanceof Error ? graphqlError.message : 'GraphQL execution error';
|
|
76
|
+
const errorStack = graphqlError instanceof Error ? graphqlError.stack : undefined;
|
|
77
|
+
return {
|
|
78
|
+
body: JSON.stringify({
|
|
79
|
+
data: null,
|
|
80
|
+
errors: [
|
|
81
|
+
{
|
|
82
|
+
message: errorMessage,
|
|
83
|
+
stack: process.env.NODE_ENV === 'development' ? errorStack : undefined
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}),
|
|
87
|
+
headers: {
|
|
88
|
+
'Content-Type': 'application/json'
|
|
89
|
+
},
|
|
90
|
+
statusCode: 500
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
} catch (err) {
|
|
94
|
+
console.error('Handler error:', {
|
|
95
|
+
message: err instanceof Error ? err.message : 'Unknown error',
|
|
96
|
+
stack: err instanceof Error ? err.stack : undefined
|
|
97
|
+
});
|
|
98
|
+
const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred in the handler';
|
|
99
|
+
const errorStack = err instanceof Error ? err.stack : undefined;
|
|
100
|
+
return {
|
|
101
|
+
body: JSON.stringify({
|
|
102
|
+
data: null,
|
|
103
|
+
errors: [
|
|
104
|
+
{
|
|
105
|
+
message: errorMessage,
|
|
106
|
+
stack: process.env.NODE_ENV === 'development' ? errorStack : undefined
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}),
|
|
110
|
+
headers: {
|
|
111
|
+
'Content-Type': 'application/json'
|
|
112
|
+
},
|
|
113
|
+
statusCode: 500
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2hhbmRsZXJzL2dyYXBocWxIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z3JhcGhxbH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge09iamVjdFR5cGVDb21wb3Nlciwgc2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtleHRyYWN0TGFuZ3VhZ2VDb250ZXh0fSBmcm9tICcuLi91dGlscy9jb250ZXh0VXRpbHMuanMnO1xuaW1wb3J0IHtjcmVhdGVDb250ZXh0LCBnZXRHcWxGaWVsZHMsIGdldExhbWJkYURhdGEsIHR5cGUgTGFtYmRhRGF0YX0gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7QVBJR2F0ZXdheUV2ZW50fSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtFeGVjdXRpb25SZXN1bHR9IGZyb20gJ2dyYXBocWwnO1xuXG5jb25zdCBhZGRGaWVsZHNNaWRkbGV3YXJlID0gKHJlc29sdmUsIHNvdXJjZSwgYXJncywgY29udGV4dDogQXBpQ29udGV4dCwgaW5mbykgPT4ge1xuICBjb25zdCBlbmhhbmNlZENvbnRleHQgPSB7XG4gICAgLi4uY29udGV4dCxcbiAgICBmaWVsZHM6IGdldEdxbEZpZWxkcyhpbmZvKVxuICB9O1xuXG4gIHJldHVybiByZXNvbHZlKHNvdXJjZSwgYXJncywgZW5oYW5jZWRDb250ZXh0LCBpbmZvKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVHcmFwaHFsSGFuZGxlciA9IChjb250ZXh0OiBBcGlDb250ZXh0KSA9PlxuICBhc3luYyAoZXZlbnQ6IEFQSUdhdGV3YXlFdmVudCk6IFByb21pc2U8RXhlY3V0aW9uUmVzdWx0IHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXBkYXRlZENvbnRleHQ6IEFwaUNvbnRleHQgPSBhd2FpdCBjcmVhdGVDb250ZXh0KGNvbnRleHQsIGV2ZW50KTtcbiAgICAgIGNvbnN0IGxhbmd1YWdlQ29udGV4dCA9IGV4dHJhY3RMYW5ndWFnZUNvbnRleHQoZXZlbnQpO1xuXG4gICAgICBjb25zdCBjb250ZXh0V2l0aExhbmd1YWdlID0ge1xuICAgICAgICBjb25maWc6IENvbmZpZy5nZXQoKSxcbiAgICAgICAgLi4udXBkYXRlZENvbnRleHQsXG4gICAgICAgIGxhbmd1YWdlQ29udGV4dCxcbiAgICAgICAgcmVxdWVzdDogZXZlbnRcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGFwcGx5RmllbGRzTWlkZGxld2FyZSA9ICh0YzogT2JqZWN0VHlwZUNvbXBvc2VyPHVua25vd24sIHVua25vd24+KSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRjLmdldEZpZWxkcygpKS5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYodGMuaGFzUmVzb2x2ZXIoZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICB0Yy53cmFwUmVzb2x2ZXIoZmllbGROYW1lLCBhZGRGaWVsZHNNaWRkbGV3YXJlIGFzIGFueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBTa2lwcGluZyBmaWVsZCAke2ZpZWxkTmFtZX0gLSBub3QgYSByZXNvbHZlcjpgLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgYXBwbHlGaWVsZHNNaWRkbGV3YXJlKHNjaGVtYUNvbXBvc2VyLlF1ZXJ5KTtcbiAgICAgIGFwcGx5RmllbGRzTWlkZGxld2FyZShzY2hlbWFDb21wb3Nlci5NdXRhdGlvbik7XG5cbiAgICAgIGNvbnN0IHBhcnNlRGF0YSA9IGdldExhbWJkYURhdGEoZXZlbnQgYXMgdW5rbm93biBhcyBMYW1iZGFEYXRhKTtcbiAgICAgIGNvbnN0IHNjaGVtYSA9IHNjaGVtYUNvbXBvc2VyLmJ1aWxkU2NoZW1hKCk7XG4gICAgICBjb25zdCB7Ym9keX0gPSBwYXJzZURhdGE7XG5cbiAgICAgIGlmKCFib2R5Py5xdWVyeSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ05vIEdyYXBoUUwgcXVlcnkgZm91bmQgaW4gcmVxdWVzdCBib2R5Jyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgICAgZXJyb3JzOiBbe1xuICAgICAgICAgICAgICBtZXNzYWdlOiAnTm8gR3JhcGhRTCBxdWVyeSBmb3VuZCBpbiByZXF1ZXN0IGJvZHknXG4gICAgICAgICAgICB9XVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoZ3JhcGhxbCh7XG4gICAgICAgICAgY29udGV4dFZhbHVlOiBjb250ZXh0V2l0aExhbmd1YWdlLFxuICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICBzb3VyY2U6IGJvZHkucXVlcnksXG4gICAgICAgICAgdmFyaWFibGVWYWx1ZXM6IGJvZHkudmFyaWFibGVzXG4gICAgICAgIH0pKTtcblxuICAgICAgICBpZihyZXN1bHQuZXJyb3JzICYmIHJlc3VsdC5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0dyYXBoUUwgZXhlY3V0aW9uIGVycm9yczonLCByZXN1bHQuZXJyb3JzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVzdWx0KSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0dXNDb2RlOiAyMDBcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2goZ3JhcGhxbEVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBHcmFwaFFMIGV4ZWN1dGlvbjonLCBncmFwaHFsRXJyb3IpO1xuXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGdyYXBocWxFcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZ3JhcGhxbEVycm9yLm1lc3NhZ2UgOiAnR3JhcGhRTCBleGVjdXRpb24gZXJyb3InO1xuICAgICAgICBjb25zdCBlcnJvclN0YWNrID0gZ3JhcGhxbEVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBncmFwaHFsRXJyb3Iuc3RhY2sgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgICAgZXJyb3JzOiBbe1xuICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyA/IGVycm9yU3RhY2sgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdHVzQ29kZTogNTAwXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBjYXRjaChlcnI6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0hhbmRsZXIgZXJyb3I6Jywge1xuICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICBzdGFjazogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIuc3RhY2sgOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQgaW4gdGhlIGhhbmRsZXInO1xuICAgICAgY29uc3QgZXJyb3JTdGFjayA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLnN0YWNrIDogdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcnM6IFt7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgPyBlcnJvclN0YWNrIDogdW5kZWZpbmVkXG4gICAgICAgICAgfV1cbiAgICAgICAgfSksXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1c0NvZGU6IDUwMFxuICAgICAgfTtcbiAgICB9XG4gIH07Il0sIm5hbWVzIjpbImdyYXBocWwiLCJzY2hlbWFDb21wb3NlciIsIkNvbmZpZyIsImV4dHJhY3RMYW5ndWFnZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiZ2V0R3FsRmllbGRzIiwiZ2V0TGFtYmRhRGF0YSIsImFkZEZpZWxkc01pZGRsZXdhcmUiLCJyZXNvbHZlIiwic291cmNlIiwiYXJncyIsImNvbnRleHQiLCJpbmZvIiwiZW5oYW5jZWRDb250ZXh0IiwiZmllbGRzIiwiY3JlYXRlR3JhcGhxbEhhbmRsZXIiLCJldmVudCIsInVwZGF0ZWRDb250ZXh0IiwibGFuZ3VhZ2VDb250ZXh0IiwiY29udGV4dFdpdGhMYW5ndWFnZSIsImNvbmZpZyIsImdldCIsInJlcXVlc3QiLCJhcHBseUZpZWxkc01pZGRsZXdhcmUiLCJ0YyIsIk9iamVjdCIsImtleXMiLCJnZXRGaWVsZHMiLCJmb3JFYWNoIiwiZmllbGROYW1lIiwiaGFzUmVzb2x2ZXIiLCJ3cmFwUmVzb2x2ZXIiLCJlcnJvciIsImNvbnNvbGUiLCJ3YXJuIiwibWVzc2FnZSIsIlF1ZXJ5IiwiTXV0YXRpb24iLCJwYXJzZURhdGEiLCJzY2hlbWEiLCJidWlsZFNjaGVtYSIsImJvZHkiLCJxdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwiZXJyb3JzIiwiaGVhZGVycyIsInN0YXR1c0NvZGUiLCJyZXN1bHQiLCJQcm9taXNlIiwiY29udGV4dFZhbHVlIiwidmFyaWFibGVWYWx1ZXMiLCJ2YXJpYWJsZXMiLCJsZW5ndGgiLCJncmFwaHFsRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJFcnJvciIsImVycm9yU3RhY2siLCJzdGFjayIsInVuZGVmaW5lZCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImVyciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsT0FBTyxRQUFPLFVBQVU7QUFDaEMsU0FBNEJDLGNBQWMsUUFBTyxrQkFBa0I7QUFFbkUsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFDcEMsU0FBUUMsc0JBQXNCLFFBQU8sMkJBQTJCO0FBQ2hFLFNBQVFDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQXdCLG9CQUFvQjtBQU05RixNQUFNQyxzQkFB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
|
package/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,OAAO,EAAE,cAAc,EACvB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAC3E,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAE3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ export { graphql, GraphQLBoolean, GraphQLFloat, GraphQLID, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, graphqlSync } from 'graphql';
|
|
5
|
+
export { schemaComposer } from 'graphql-compose';
|
|
6
|
+
export * from './actions/index.js';
|
|
7
|
+
export * from './adapters/index.js';
|
|
8
|
+
export * from './config.js';
|
|
9
|
+
export * from './handlers/graphqlHandler.js';
|
|
10
|
+
export * from './lambdas/authorizer.js';
|
|
11
|
+
export * from './lambdas/connection.js';
|
|
12
|
+
export * from './mutations/index.js';
|
|
13
|
+
export * from './objectTypes/index.js';
|
|
14
|
+
export * from './queries/index.js';
|
|
15
|
+
export * from './types/index.js';
|
|
16
|
+
export * from './utils/index.js';
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQge1xuICBncmFwaHFsLCBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSUQsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LCBHcmFwaFFMTm9uTnVsbCwgR3JhcGhRTE9iamVjdFR5cGUsIEdyYXBoUUxTdHJpbmcsIGdyYXBocWxTeW5jXG59IGZyb20gJ2dyYXBocWwnO1xuZXhwb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuZXhwb3J0IHR5cGUge0V4ZWN1dGlvblJlc3VsdH0gZnJvbSAnZ3JhcGhxbCc7XG5leHBvcnQgdHlwZSB7SW5wdXRUeXBlQ29tcG9zZXIsIE9iamVjdFR5cGVDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlcnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGVycy9ncmFwaHFsSGFuZGxlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYXMvYXV0aG9yaXplci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYXMvY29ubmVjdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL211dGF0aW9ucy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdFR5cGVzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllcy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvaW5kZXguanMnO1xuXG4iXSwibmFtZXMiOlsiZ3JhcGhxbCIsIkdyYXBoUUxCb29sZWFuIiwiR3JhcGhRTEZsb2F0IiwiR3JhcGhRTElEIiwiR3JhcGhRTEludCIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJHcmFwaFFMT2JqZWN0VHlwZSIsIkdyYXBoUUxTdHJpbmciLCJncmFwaHFsU3luYyIsInNjaGVtYUNvbXBvc2VyIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUNFQSxPQUFPLEVBQUVDLGNBQWMsRUFDdkJDLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxVQUFVLEVBQ1ZDLFdBQVcsRUFBRUMsY0FBYyxFQUFFQyxpQkFBaUIsRUFBRUMsYUFBYSxFQUFFQyxXQUFXLFFBQ3JFLFVBQVU7QUFDakIsU0FBUUMsY0FBYyxRQUFPLGtCQUFrQjtBQUsvQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLGNBQWM7QUFDNUIsY0FBYywrQkFBK0I7QUFDN0MsY0FBYywwQkFBMEI7QUFDeEMsY0FBYywwQkFBMEI7QUFDeEMsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxtQkFBbUIifQ==
|
|
@@ -5,3 +5,4 @@ export declare const getConnectionByUserId: (userId?: string) => Promise<Websock
|
|
|
5
5
|
export declare const getConnectionById: (socketId: string) => Promise<WebsocketConnection>;
|
|
6
6
|
export declare const getConnectionByConvo: (context: ApiContext, convoId: string) => Promise<WebsocketConnection[]>;
|
|
7
7
|
export declare const removeConnection: (connectionId: string) => Promise<WebsocketConnection>;
|
|
8
|
+
//# sourceMappingURL=websockets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websockets.d.ts","sourceRoot":"","sources":["../../../src/lambdas/actions/websockets.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAGzE,eAAO,MAAM,aAAa,GAAU,cAAc,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAwCpG,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAalF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAmB/E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,UAAU,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,mBAAmB,EAAE,CAqBxG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAelF,CAAC"}
|
|
@@ -1,11 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { aql } from 'arangojs';
|
|
5
|
+
import { createHash, parseId, parseString } from '@nlabs/utils/parsers/strings';
|
|
6
|
+
import { useDb } from '../../utils/arangodbUtils.js';
|
|
7
|
+
import { getSession } from '../../utils/sessionUtils.js';
|
|
8
|
+
const { ARANGODB_DATABASE: databaseName } = process.env;
|
|
9
|
+
export const addConnection = async (connectionId, token)=>{
|
|
10
|
+
// const action: string = 'delete';
|
|
11
|
+
const formatConnId = parseString(connectionId, 32);
|
|
12
|
+
// Verifies token
|
|
13
|
+
const { userId } = getSession(token);
|
|
14
|
+
if (!userId) {
|
|
15
|
+
return {
|
|
16
|
+
_key: '',
|
|
17
|
+
socketId: '',
|
|
18
|
+
userId: ''
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const db = useDb(databaseName);
|
|
23
|
+
const update = {
|
|
24
|
+
connectionId: formatConnId,
|
|
25
|
+
modified: Date.now()
|
|
26
|
+
};
|
|
27
|
+
const insert = {
|
|
28
|
+
...update,
|
|
29
|
+
_key: createHash(`connection-${formatConnId}`),
|
|
30
|
+
userId
|
|
31
|
+
};
|
|
32
|
+
const aqlQry = aql`UPSERT {userId: ${insert.userId}}
|
|
33
|
+
INSERT ${insert}
|
|
34
|
+
UPDATE ${update}
|
|
35
|
+
IN connections RETURN NEW`;
|
|
36
|
+
return db.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
|
|
37
|
+
throw error;
|
|
38
|
+
});
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.log('parseContext::error', error);
|
|
41
|
+
throw new Error('Unauthorized Context');
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
export const getConnectionByUserId = (userId)=>{
|
|
45
|
+
const formatUserId = parseId(userId);
|
|
46
|
+
const db = useDb(databaseName);
|
|
47
|
+
const aqlQry = aql`FOR c IN connections
|
|
48
|
+
FILTER c.userId == ${formatUserId}
|
|
6
49
|
LIMIT 1
|
|
7
|
-
RETURN c`;
|
|
8
|
-
|
|
50
|
+
RETURN c`;
|
|
51
|
+
return db.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
|
|
52
|
+
throw error;
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
export const getConnectionById = (socketId)=>{
|
|
56
|
+
const formatSocketId = parseString(socketId, 32);
|
|
57
|
+
const db = useDb(databaseName);
|
|
58
|
+
const aqlQry = aql`FOR c IN connections
|
|
59
|
+
FILTER c.connectionId == ${formatSocketId}
|
|
9
60
|
LET user = FIRST(
|
|
10
61
|
FOR u IN users
|
|
11
62
|
FILTER u.userId == c.userId
|
|
@@ -13,18 +64,42 @@ import{aql as c}from"arangojs";import{createHash as m,parseId as R,parseString a
|
|
|
13
64
|
RETURN u;
|
|
14
65
|
)
|
|
15
66
|
LIMIT 1
|
|
16
|
-
RETURN MERGE(c, {user:user}`;
|
|
17
|
-
|
|
67
|
+
RETURN MERGE(c, {user:user}`;
|
|
68
|
+
return db.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
|
|
69
|
+
throw error;
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
export const getConnectionByConvo = (context, convoId)=>{
|
|
73
|
+
const { session: { userId: sessionId = '' } = {} } = context;
|
|
74
|
+
const sessionDocId = `users/${parseId(sessionId)}`;
|
|
75
|
+
const convoDocId = `conversations/${parseId(convoId)}`;
|
|
76
|
+
const db = useDb(databaseName);
|
|
77
|
+
const aqlQry = aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversation
|
|
78
|
+
FILTER c._id == ${convoDocId}
|
|
18
79
|
LIMIT 1
|
|
19
80
|
LET u = (
|
|
20
|
-
FOR inUser, inEdge IN 1..1 INBOUND ${
|
|
81
|
+
FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversation
|
|
21
82
|
FOR n IN connections
|
|
22
83
|
FILTER inUser.userId == n.userId
|
|
23
84
|
RETURN n.connectionId
|
|
24
85
|
)
|
|
25
|
-
RETURN u`;
|
|
26
|
-
|
|
86
|
+
RETURN u`;
|
|
87
|
+
return db.query(aqlQry).then((cursor)=>cursor.all()).catch((error)=>{
|
|
88
|
+
throw error;
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
export const removeConnection = (connectionId)=>{
|
|
92
|
+
// const action: string = 'delete';
|
|
93
|
+
const formatConnId = parseString(connectionId, 32);
|
|
94
|
+
const db = useDb(databaseName);
|
|
95
|
+
const aqlQry = aql`FOR c IN connections
|
|
96
|
+
FILTER c.connectionId == ${formatConnId}
|
|
27
97
|
LIMIT 1
|
|
28
98
|
REMOVE c IN connections
|
|
29
|
-
RETURN OLD`;
|
|
30
|
-
|
|
99
|
+
RETURN OLD`;
|
|
100
|
+
return db.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
|
|
101
|
+
throw error;
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvYWN0aW9ucy93ZWJzb2NrZXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIxLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcblxuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi8uLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcbmltcG9ydCB7Z2V0U2Vzc2lvbn0gZnJvbSAnLi4vLi4vdXRpbHMvc2Vzc2lvblV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uLy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1dlYnNvY2tldENvbm5lY3Rpb259IGZyb20gJy4uLy4uL3R5cGVzL3dlYnNvY2tldHMudHlwZXMuanMnO1xuY29uc3Qge0FSQU5HT0RCX0RBVEFCQVNFOiBkYXRhYmFzZU5hbWV9ID0gcHJvY2Vzcy5lbnY7XG5cbmV4cG9ydCBjb25zdCBhZGRDb25uZWN0aW9uID0gYXN5bmMgKGNvbm5lY3Rpb25JZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIC8vIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IGZvcm1hdENvbm5JZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoY29ubmVjdGlvbklkLCAzMik7XG5cbiAgLy8gVmVyaWZpZXMgdG9rZW5cbiAgY29uc3Qge3VzZXJJZH0gPSBnZXRTZXNzaW9uKHRva2VuKTtcblxuICBpZighdXNlcklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9rZXk6ICcnLFxuICAgICAgc29ja2V0SWQ6ICcnLFxuICAgICAgdXNlcklkOiAnJ1xuICAgIH07XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgY29ubmVjdGlvbklkOiBmb3JtYXRDb25uSWQsXG4gICAgICBtb2RpZmllZDogRGF0ZS5ub3coKVxuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgLi4udXBkYXRlLFxuICAgICAgX2tleTogY3JlYXRlSGFzaChgY29ubmVjdGlvbi0ke2Zvcm1hdENvbm5JZH1gKSxcbiAgICAgIHVzZXJJZFxuICAgIH07XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3VzZXJJZDogJHtpbnNlcnQudXNlcklkfX1cbiAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgIElOIGNvbm5lY3Rpb25zIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coJ3BhcnNlQ29udGV4dDo6ZXJyb3InLCBlcnJvcik7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQgQ29udGV4dCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5VXNlcklkID0gKHVzZXJJZD86IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGMudXNlcklkID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gY2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uQnlJZCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFNvY2tldElkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhzb2NrZXRJZCwgMzIpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy5jb25uZWN0aW9uSWQgPT0gJHtmb3JtYXRTb2NrZXRJZH1cbiAgICBMRVQgdXNlciA9IEZJUlNUKFxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiB1LnVzZXJJZCA9PSBjLnVzZXJJZFxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHU7XG4gICAgKVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXI6dXNlcn1gO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5Q29udm8gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uW10+ID0+IHtcbiAgY29uc3Qge3Nlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCA9ICcnfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7cGFyc2VJZChjb252b0lkKX1gO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uXG4gIEZJTFRFUiBjLl9pZCA9PSAke2NvbnZvRG9jSWR9XG4gIExJTUlUIDFcbiAgTEVUIHUgPSAoXG4gICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICAgIEZPUiBuIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGluVXNlci51c2VySWQgPT0gbi51c2VySWRcbiAgICBSRVRVUk4gbi5jb25uZWN0aW9uSWRcbiAgKVxuICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbm5lY3Rpb24gPSAoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24+ID0+IHtcbiAgLy8gY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlJztcbiAgY29uc3QgZm9ybWF0Q29ubklkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhjb25uZWN0aW9uSWQsIDMyKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgICBGSUxURVIgYy5jb25uZWN0aW9uSWQgPT0gJHtmb3JtYXRDb25uSWR9XG4gICAgICBMSU1JVCAxXG4gICAgICBSRU1PVkUgYyBJTiBjb25uZWN0aW9uc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXSwibmFtZXMiOlsiYXFsIiwiY3JlYXRlSGFzaCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInVzZURiIiwiZ2V0U2Vzc2lvbiIsIkFSQU5HT0RCX0RBVEFCQVNFIiwiZGF0YWJhc2VOYW1lIiwicHJvY2VzcyIsImVudiIsImFkZENvbm5lY3Rpb24iLCJjb25uZWN0aW9uSWQiLCJ0b2tlbiIsImZvcm1hdENvbm5JZCIsInVzZXJJZCIsIl9rZXkiLCJzb2NrZXRJZCIsImRiIiwidXBkYXRlIiwibW9kaWZpZWQiLCJEYXRlIiwibm93IiwiaW5zZXJ0IiwiYXFsUXJ5IiwicXVlcnkiLCJ0aGVuIiwiY3Vyc29yIiwibmV4dCIsImNhdGNoIiwiZXJyb3IiLCJjb25zb2xlIiwibG9nIiwiRXJyb3IiLCJnZXRDb25uZWN0aW9uQnlVc2VySWQiLCJmb3JtYXRVc2VySWQiLCJnZXRDb25uZWN0aW9uQnlJZCIsImZvcm1hdFNvY2tldElkIiwiZ2V0Q29ubmVjdGlvbkJ5Q29udm8iLCJjb250ZXh0IiwiY29udm9JZCIsInNlc3Npb24iLCJzZXNzaW9uSWQiLCJzZXNzaW9uRG9jSWQiLCJjb252b0RvY0lkIiwiYWxsIiwicmVtb3ZlQ29ubmVjdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsR0FBRyxRQUFpQixXQUFXO0FBRXZDLFNBQVFDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxXQUFXLFFBQU8sK0JBQStCO0FBQzlFLFNBQVFDLEtBQUssUUFBTywrQkFBK0I7QUFDbkQsU0FBUUMsVUFBVSxRQUFPLDhCQUE4QjtBQUt2RCxNQUFNLEVBQUNDLG1CQUFtQkMsWUFBWSxFQUFDLEdBQUdDLFFBQVFDLEdBQUc7QUFFckQsT0FBTyxNQUFNQyxnQkFBZ0IsT0FBT0MsY0FBc0JDO0lBQ3hELG1DQUFtQztJQUNuQyxNQUFNQyxlQUF1QlYsWUFBWVEsY0FBYztJQUV2RCxpQkFBaUI7SUFDakIsTUFBTSxFQUFDRyxNQUFNLEVBQUMsR0FBR1QsV0FBV087SUFFNUIsSUFBRyxDQUFDRSxRQUFRO1FBQ1YsT0FBTztZQUNMQyxNQUFNO1lBQ05DLFVBQVU7WUFDVkYsUUFBUTtRQUNWO0lBQ0Y7SUFFQSxJQUFJO1FBQ0YsTUFBTUcsS0FBZWIsTUFBTUc7UUFDM0IsTUFBTVcsU0FBUztZQUNiUCxjQUFjRTtZQUNkTSxVQUFVQyxLQUFLQyxHQUFHO1FBQ3BCO1FBQ0EsTUFBTUMsU0FBUztZQUNiLEdBQUdKLE1BQU07WUFDVEgsTUFBTWQsV0FBVyxDQUFDLFdBQVcsRUFBRVksY0FBYztZQUM3Q0M7UUFDRjtRQUNBLE1BQU1TLFNBQW1CdkIsR0FBRyxDQUFDLGdCQUFnQixFQUFFc0IsT0FBT1IsTUFBTSxDQUFDO2FBQ3BELEVBQUVRLE9BQU87YUFDVCxFQUFFSixPQUFPOytCQUNTLENBQUM7UUFFNUIsT0FBT0QsR0FBR08sS0FBSyxDQUFDRCxRQUNiRSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsSUFBSSxJQUM1QkMsS0FBSyxDQUFDLENBQUNDO1lBQ04sTUFBTUE7UUFDUjtJQUNKLEVBQUUsT0FBTUEsT0FBTztRQUNiQyxRQUFRQyxHQUFHLENBQUMsdUJBQXVCRjtRQUNuQyxNQUFNLElBQUlHLE1BQU07SUFDbEI7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNQyx3QkFBd0IsQ0FBQ25CO0lBQ3BDLE1BQU1vQixlQUF1QmhDLFFBQVFZO0lBQ3JDLE1BQU1HLEtBQWViLE1BQU1HO0lBQzNCLE1BQU1nQixTQUFTdkIsR0FBRyxDQUFDO3VCQUNFLEVBQUVrQyxhQUFhOztZQUUxQixDQUFDO0lBRVgsT0FBT2pCLEdBQUdPLEtBQUssQ0FBQ0QsUUFDYkUsSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLElBQUksSUFDNUJDLEtBQUssQ0FBQyxDQUFDQztRQUNOLE1BQU1BO0lBQ1I7QUFDSixFQUFFO0FBRUYsT0FBTyxNQUFNTSxvQkFBb0IsQ0FBQ25CO0lBQ2hDLE1BQU1vQixpQkFBeUJqQyxZQUFZYSxVQUFVO0lBQ3JELE1BQU1DLEtBQWViLE1BQU1HO0lBQzNCLE1BQU1nQixTQUFTdkIsR0FBRyxDQUFDOzZCQUNRLEVBQUVvQyxlQUFlOzs7Ozs7OzsrQkFRZixDQUFDO0lBRTlCLE9BQU9uQixHQUFHTyxLQUFLLENBQUNELFFBQ2JFLElBQUksQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxJQUFJLElBQzVCQyxLQUFLLENBQUMsQ0FBQ0M7UUFDTixNQUFNQTtJQUNSO0FBQ0osRUFBRTtBQUVGLE9BQU8sTUFBTVEsdUJBQXVCLENBQUNDLFNBQXFCQztJQUN4RCxNQUFNLEVBQUNDLFNBQVMsRUFBQzFCLFFBQVEyQixZQUFZLEVBQUUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEdBQUdIO0lBQ2pELE1BQU1JLGVBQXVCLENBQUMsTUFBTSxFQUFFeEMsUUFBUXVDLFlBQVk7SUFDMUQsTUFBTUUsYUFBcUIsQ0FBQyxjQUFjLEVBQUV6QyxRQUFRcUMsVUFBVTtJQUM5RCxNQUFNdEIsS0FBZWIsTUFBTUc7SUFDM0IsTUFBTWdCLFNBQVN2QixHQUFHLENBQUMsMEJBQTBCLEVBQUUwQyxhQUFhO2tCQUM1QyxFQUFFQyxXQUFXOzs7dUNBR1EsRUFBRUEsV0FBVzs7Ozs7VUFLMUMsQ0FBQztJQUVULE9BQU8xQixHQUFHTyxLQUFLLENBQUNELFFBQ2JFLElBQUksQ0FBQyxDQUFDQyxTQUFXQSxPQUFPa0IsR0FBRyxJQUMzQmhCLEtBQUssQ0FBQyxDQUFDQztRQUNOLE1BQU1BO0lBQ1I7QUFDSixFQUFFO0FBRUYsT0FBTyxNQUFNZ0IsbUJBQW1CLENBQUNsQztJQUMvQixtQ0FBbUM7SUFDbkMsTUFBTUUsZUFBdUJWLFlBQVlRLGNBQWM7SUFDdkQsTUFBTU0sS0FBZWIsTUFBTUc7SUFDM0IsTUFBTWdCLFNBQVN2QixHQUFHLENBQUM7K0JBQ1UsRUFBRWEsYUFBYTs7O2dCQUc5QixDQUFDO0lBRWYsT0FBT0ksR0FBR08sS0FBSyxDQUFDRCxRQUNiRSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsSUFBSSxJQUM1QkMsS0FBSyxDQUFDLENBQUNDO1FBQ04sTUFBTUE7SUFDUjtBQUNKLEVBQUUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.d.ts","sourceRoot":"","sources":["../../src/lambdas/authorizer.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB,GAAI,WAAM,EAAE,cAAS;;;;;;;CAiBvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,gBAAW,EAAE,WAAM,EAAE,cAAS;;;;;;;;;;CAOlE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAK,EAAE,YAAO,EAAE,aAAQ,QAelD,CAAC"}
|
|
@@ -1,2 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { getSession } from '../utils/sessionUtils.js';
|
|
5
|
+
export const generatePolicyDocument = (effect, methodArn)=>{
|
|
6
|
+
if (!effect || !methodArn) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const policyDocument = {
|
|
10
|
+
Version: '2012-10-17',
|
|
11
|
+
Statement: [
|
|
12
|
+
{
|
|
13
|
+
Action: 'execute-api:Invoke',
|
|
14
|
+
Effect: effect,
|
|
15
|
+
Resource: methodArn
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
return policyDocument;
|
|
20
|
+
};
|
|
21
|
+
export const generateAuthResponse = (principalId, effect, methodArn)=>{
|
|
22
|
+
const policyDocument = generatePolicyDocument(effect, methodArn);
|
|
23
|
+
return {
|
|
24
|
+
principalId,
|
|
25
|
+
policyDocument
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const authorizer = (event, context, callback)=>{
|
|
29
|
+
const { authorizationToken = '', methodArn } = event;
|
|
30
|
+
const token = authorizationToken.replace(/bearer/i, '').trim();
|
|
31
|
+
if (!token || !methodArn) {
|
|
32
|
+
return callback(null, 'Unauthorized');
|
|
33
|
+
}
|
|
34
|
+
const session = getSession(token);
|
|
35
|
+
if (session?.userId) {
|
|
36
|
+
return callback(null, generateAuthResponse(session.userId, 'Allow', methodArn));
|
|
37
|
+
}
|
|
38
|
+
return callback(null, generateAuthResponse(session?.userId, 'Deny', methodArn));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvYXV0aG9yaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXRTZXNzaW9ufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVQb2xpY3lEb2N1bWVudCA9IChlZmZlY3QsIG1ldGhvZEFybikgPT4ge1xuICBpZighZWZmZWN0IHx8ICFtZXRob2RBcm4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHBvbGljeURvY3VtZW50ID0ge1xuICAgIFZlcnNpb246ICcyMDEyLTEwLTE3JyxcbiAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgIHtcbiAgICAgICAgQWN0aW9uOiAnZXhlY3V0ZS1hcGk6SW52b2tlJyxcbiAgICAgICAgRWZmZWN0OiBlZmZlY3QsXG4gICAgICAgIFJlc291cmNlOiBtZXRob2RBcm5cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHBvbGljeURvY3VtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQXV0aFJlc3BvbnNlID0gKHByaW5jaXBhbElkLCBlZmZlY3QsIG1ldGhvZEFybikgPT4ge1xuICBjb25zdCBwb2xpY3lEb2N1bWVudCA9IGdlbmVyYXRlUG9saWN5RG9jdW1lbnQoZWZmZWN0LCBtZXRob2RBcm4pO1xuXG4gIHJldHVybiB7XG4gICAgcHJpbmNpcGFsSWQsXG4gICAgcG9saWN5RG9jdW1lbnRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVyID0gKGV2ZW50LCBjb250ZXh0LCBjYWxsYmFjaykgPT4ge1xuICBjb25zdCB7YXV0aG9yaXphdGlvblRva2VuID0gJycsIG1ldGhvZEFybn0gPSBldmVudDtcbiAgY29uc3QgdG9rZW4gPSBhdXRob3JpemF0aW9uVG9rZW4ucmVwbGFjZSgvYmVhcmVyL2ksICcnKS50cmltKCk7XG5cbiAgaWYoIXRva2VuIHx8ICFtZXRob2RBcm4pIHtcbiAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgJ1VuYXV0aG9yaXplZCcpO1xuICB9XG5cbiAgY29uc3Qgc2Vzc2lvbiA9IGdldFNlc3Npb24odG9rZW4pO1xuXG4gIGlmKHNlc3Npb24/LnVzZXJJZCkge1xuICAgIHJldHVybiBjYWxsYmFjayhudWxsLCBnZW5lcmF0ZUF1dGhSZXNwb25zZShzZXNzaW9uLnVzZXJJZCwgJ0FsbG93JywgbWV0aG9kQXJuKSk7XG4gIH1cblxuICByZXR1cm4gY2FsbGJhY2sobnVsbCwgZ2VuZXJhdGVBdXRoUmVzcG9uc2Uoc2Vzc2lvbj8udXNlcklkLCAnRGVueScsIG1ldGhvZEFybikpO1xufTtcbiJdLCJuYW1lcyI6WyJnZXRTZXNzaW9uIiwiZ2VuZXJhdGVQb2xpY3lEb2N1bWVudCIsImVmZmVjdCIsIm1ldGhvZEFybiIsInBvbGljeURvY3VtZW50IiwiVmVyc2lvbiIsIlN0YXRlbWVudCIsIkFjdGlvbiIsIkVmZmVjdCIsIlJlc291cmNlIiwiZ2VuZXJhdGVBdXRoUmVzcG9uc2UiLCJwcmluY2lwYWxJZCIsImF1dGhvcml6ZXIiLCJldmVudCIsImNvbnRleHQiLCJjYWxsYmFjayIsImF1dGhvcml6YXRpb25Ub2tlbiIsInRva2VuIiwicmVwbGFjZSIsInRyaW0iLCJzZXNzaW9uIiwidXNlcklkIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxVQUFVLFFBQU8sMkJBQTJCO0FBRXBELE9BQU8sTUFBTUMseUJBQXlCLENBQUNDLFFBQVFDO0lBQzdDLElBQUcsQ0FBQ0QsVUFBVSxDQUFDQyxXQUFXO1FBQ3hCLE9BQU87SUFDVDtJQUVBLE1BQU1DLGlCQUFpQjtRQUNyQkMsU0FBUztRQUNUQyxXQUFXO1lBQ1Q7Z0JBQ0VDLFFBQVE7Z0JBQ1JDLFFBQVFOO2dCQUNSTyxVQUFVTjtZQUNaO1NBQ0Q7SUFDSDtJQUVBLE9BQU9DO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTU0sdUJBQXVCLENBQUNDLGFBQWFULFFBQVFDO0lBQ3hELE1BQU1DLGlCQUFpQkgsdUJBQXVCQyxRQUFRQztJQUV0RCxPQUFPO1FBQ0xRO1FBQ0FQO0lBQ0Y7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNUSxhQUFhLENBQUNDLE9BQU9DLFNBQVNDO0lBQ3pDLE1BQU0sRUFBQ0MscUJBQXFCLEVBQUUsRUFBRWIsU0FBUyxFQUFDLEdBQUdVO0lBQzdDLE1BQU1JLFFBQVFELG1CQUFtQkUsT0FBTyxDQUFDLFdBQVcsSUFBSUMsSUFBSTtJQUU1RCxJQUFHLENBQUNGLFNBQVMsQ0FBQ2QsV0FBVztRQUN2QixPQUFPWSxTQUFTLE1BQU07SUFDeEI7SUFFQSxNQUFNSyxVQUFVcEIsV0FBV2lCO0lBRTNCLElBQUdHLFNBQVNDLFFBQVE7UUFDbEIsT0FBT04sU0FBUyxNQUFNTCxxQkFBcUJVLFFBQVFDLE1BQU0sRUFBRSxTQUFTbEI7SUFDdEU7SUFFQSxPQUFPWSxTQUFTLE1BQU1MLHFCQUFxQlUsU0FBU0MsUUFBUSxRQUFRbEI7QUFDdEUsRUFBRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/lambdas/connection.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,cAAc,GAAU,UAAK;;;;;EAqBzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,UAAK;;EAOzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,UAAK;;EA+BzC,CAAC"}
|
|
@@ -1,2 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { getConversation } from '../actions/conversations.js';
|
|
5
|
+
import { Config } from '../config.js';
|
|
6
|
+
import { useDb } from '../utils/arangodbUtils.js';
|
|
7
|
+
import { addConnection, getConnectionById, getConnectionByUserId, removeConnection } from './actions/websockets.js';
|
|
8
|
+
import { parseMessage } from './utils/message.js';
|
|
9
|
+
import { wsClient } from './utils/websocket.js';
|
|
10
|
+
const successStatus = {
|
|
11
|
+
statusCode: 200
|
|
12
|
+
};
|
|
13
|
+
const errorStatus = {
|
|
14
|
+
statusCode: 500
|
|
15
|
+
};
|
|
16
|
+
const { ARANGODB_DATABASE: databaseName } = process.env;
|
|
17
|
+
const getBasicContext = (userId)=>({
|
|
18
|
+
config: Config.get(),
|
|
19
|
+
database: useDb(databaseName),
|
|
20
|
+
session: {
|
|
21
|
+
userId
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export const connectHandler = async (event)=>{
|
|
25
|
+
// We do this so first connect EVER sets up some needed config state in db
|
|
26
|
+
// this goes away after CloudFormation support is added for web sockets
|
|
27
|
+
wsClient.setupClient(event);
|
|
28
|
+
const { queryStringParameters = {}, requestContext } = event;
|
|
29
|
+
const { connectionId, eventType } = requestContext;
|
|
30
|
+
const { token } = queryStringParameters;
|
|
31
|
+
try {
|
|
32
|
+
if (eventType === 'CONNECT') {
|
|
33
|
+
await addConnection(connectionId, token);
|
|
34
|
+
return successStatus;
|
|
35
|
+
} else if (eventType === 'DISCONNECT') {
|
|
36
|
+
await removeConnection(connectionId);
|
|
37
|
+
return successStatus;
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
...errorStatus,
|
|
41
|
+
message: 'Unknown type'
|
|
42
|
+
};
|
|
43
|
+
} catch (error) {
|
|
44
|
+
return {
|
|
45
|
+
...errorStatus,
|
|
46
|
+
message: error.message
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export const defaultHandler = async (event)=>{
|
|
51
|
+
await wsClient.send(event, {
|
|
52
|
+
event: 'error',
|
|
53
|
+
message: 'invalid action type'
|
|
54
|
+
});
|
|
55
|
+
return successStatus;
|
|
56
|
+
};
|
|
57
|
+
export const messageHandler = async (event)=>{
|
|
58
|
+
const { body, requestContext } = event;
|
|
59
|
+
const { socketId } = requestContext;
|
|
60
|
+
const message = JSON.parse(body).data;
|
|
61
|
+
const { conversationId = '', content = '' } = message;
|
|
62
|
+
const formatContent = parseMessage(content);
|
|
63
|
+
// Get current user by connection
|
|
64
|
+
const connection = await getConnectionById(socketId);
|
|
65
|
+
const { userId } = connection;
|
|
66
|
+
const authContext = getBasicContext(userId);
|
|
67
|
+
const conversation = await getConversation(authContext, conversationId);
|
|
68
|
+
const { users = [] } = conversation;
|
|
69
|
+
await Promise.all(users.map(async (user)=>{
|
|
70
|
+
const { userId } = user;
|
|
71
|
+
const connection = await getConnectionByUserId(userId);
|
|
72
|
+
if (connection) {
|
|
73
|
+
const { socketId } = connection;
|
|
74
|
+
if (socketId) {
|
|
75
|
+
wsClient.send(socketId, {
|
|
76
|
+
action: 'reaktorMessage',
|
|
77
|
+
data: formatContent
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}));
|
|
82
|
+
return successStatus;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvY29ubmVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb259IGZyb20gJy4uL2FjdGlvbnMvY29udmVyc2F0aW9ucy5qcyc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHthZGRDb25uZWN0aW9uLCBnZXRDb25uZWN0aW9uQnlJZCwgZ2V0Q29ubmVjdGlvbkJ5VXNlcklkLCByZW1vdmVDb25uZWN0aW9ufSBmcm9tICcuL2FjdGlvbnMvd2Vic29ja2V0cy5qcyc7XG5pbXBvcnQge3BhcnNlTWVzc2FnZX0gZnJvbSAnLi91dGlscy9tZXNzYWdlLmpzJztcbmltcG9ydCB7d3NDbGllbnR9IGZyb20gJy4vdXRpbHMvd2Vic29ja2V0LmpzJztcblxuaW1wb3J0IHR5cGUge1dlYnNvY2tldE1lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy93ZWJzb2NrZXRzLnR5cGVzLmpzJztcblxuY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IHtzdGF0dXNDb2RlOiAyMDB9O1xuY29uc3QgZXJyb3JTdGF0dXMgPSB7c3RhdHVzQ29kZTogNTAwfTtcbmNvbnN0IHtBUkFOR09EQl9EQVRBQkFTRTogZGF0YWJhc2VOYW1lfSA9IHByb2Nlc3MuZW52O1xuY29uc3QgZ2V0QmFzaWNDb250ZXh0ID0gKHVzZXJJZDogc3RyaW5nKSA9PiAoe2NvbmZpZzogQ29uZmlnLmdldCgpLCBkYXRhYmFzZTogdXNlRGIoZGF0YWJhc2VOYW1lKSwgc2Vzc2lvbjoge3VzZXJJZH19KTtcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3RIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIC8vIFdlIGRvIHRoaXMgc28gZmlyc3QgY29ubmVjdCBFVkVSIHNldHMgdXAgc29tZSBuZWVkZWQgY29uZmlnIHN0YXRlIGluIGRiXG4gIC8vIHRoaXMgZ29lcyBhd2F5IGFmdGVyIENsb3VkRm9ybWF0aW9uIHN1cHBvcnQgaXMgYWRkZWQgZm9yIHdlYiBzb2NrZXRzXG4gIHdzQ2xpZW50LnNldHVwQ2xpZW50KGV2ZW50KTtcbiAgY29uc3Qge3F1ZXJ5U3RyaW5nUGFyYW1ldGVycyA9IHt9LCByZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZCwgZXZlbnRUeXBlfSA9IHJlcXVlc3RDb250ZXh0O1xuICBjb25zdCB7dG9rZW59ID0gcXVlcnlTdHJpbmdQYXJhbWV0ZXJzO1xuXG4gIHRyeSB7XG4gICAgaWYoZXZlbnRUeXBlID09PSAnQ09OTkVDVCcpIHtcbiAgICAgIGF3YWl0IGFkZENvbm5lY3Rpb24oY29ubmVjdGlvbklkLCB0b2tlbik7XG4gICAgICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbiAgICB9IGVsc2UgaWYoZXZlbnRUeXBlID09PSAnRElTQ09OTkVDVCcpIHtcbiAgICAgIGF3YWl0IHJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICAgIHJldHVybiBzdWNjZXNzU3RhdHVzO1xuICAgIH1cblxuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6ICdVbmtub3duIHR5cGUnfTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2V9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgYXdhaXQgd3NDbGllbnQuc2VuZChldmVudCwge1xuICAgIGV2ZW50OiAnZXJyb3InLFxuICAgIG1lc3NhZ2U6ICdpbnZhbGlkIGFjdGlvbiB0eXBlJ1xuICB9KTtcblxuICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbn07XG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlSGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCB7Ym9keSwgcmVxdWVzdENvbnRleHR9ID0gZXZlbnQ7XG4gIGNvbnN0IHtzb2NrZXRJZH0gPSByZXF1ZXN0Q29udGV4dDtcbiAgY29uc3QgbWVzc2FnZTogV2Vic29ja2V0TWVzc2FnZVR5cGUgPSBKU09OLnBhcnNlKGJvZHkpLmRhdGE7XG4gIGNvbnN0IHtjb252ZXJzYXRpb25JZCA9ICcnLCBjb250ZW50ID0gJyd9ID0gbWVzc2FnZTtcbiAgY29uc3QgZm9ybWF0Q29udGVudDogc3RyaW5nID0gcGFyc2VNZXNzYWdlKGNvbnRlbnQpO1xuXG4gIC8vIEdldCBjdXJyZW50IHVzZXIgYnkgY29ubmVjdGlvblxuICBjb25zdCBjb25uZWN0aW9uID0gYXdhaXQgZ2V0Q29ubmVjdGlvbkJ5SWQoc29ja2V0SWQpO1xuICBjb25zdCB7dXNlcklkfSA9IGNvbm5lY3Rpb247XG4gIGNvbnN0IGF1dGhDb250ZXh0ID0gZ2V0QmFzaWNDb250ZXh0KHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IGdldENvbnZlcnNhdGlvbihhdXRoQ29udGV4dCwgY29udmVyc2F0aW9uSWQpO1xuICBjb25zdCB7dXNlcnMgPSBbXX0gPSBjb252ZXJzYXRpb247XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwodXNlcnMubWFwKGFzeW5jICh1c2VyKSA9PiB7XG4gICAgY29uc3Qge3VzZXJJZH0gPSB1c2VyO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBnZXRDb25uZWN0aW9uQnlVc2VySWQodXNlcklkKTtcblxuICAgIGlmKGNvbm5lY3Rpb24pIHtcbiAgICAgIGNvbnN0IHtzb2NrZXRJZH0gPSBjb25uZWN0aW9uO1xuXG4gICAgICBpZihzb2NrZXRJZCkge1xuICAgICAgICB3c0NsaWVudC5zZW5kKHNvY2tldElkLCB7XG4gICAgICAgICAgYWN0aW9uOiAncmVha3Rvck1lc3NhZ2UnLFxuICAgICAgICAgIGRhdGE6IGZvcm1hdENvbnRlbnRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9KSk7XG5cbiAgcmV0dXJuIHN1Y2Nlc3NTdGF0dXM7XG59O1xuIl0sIm5hbWVzIjpbImdldENvbnZlcnNhdGlvbiIsIkNvbmZpZyIsInVzZURiIiwiYWRkQ29ubmVjdGlvbiIsImdldENvbm5lY3Rpb25CeUlkIiwiZ2V0Q29ubmVjdGlvbkJ5VXNlcklkIiwicmVtb3ZlQ29ubmVjdGlvbiIsInBhcnNlTWVzc2FnZSIsIndzQ2xpZW50Iiwic3VjY2Vzc1N0YXR1cyIsInN0YXR1c0NvZGUiLCJlcnJvclN0YXR1cyIsIkFSQU5HT0RCX0RBVEFCQVNFIiwiZGF0YWJhc2VOYW1lIiwicHJvY2VzcyIsImVudiIsImdldEJhc2ljQ29udGV4dCIsInVzZXJJZCIsImNvbmZpZyIsImdldCIsImRhdGFiYXNlIiwic2Vzc2lvbiIsImNvbm5lY3RIYW5kbGVyIiwiZXZlbnQiLCJzZXR1cENsaWVudCIsInF1ZXJ5U3RyaW5nUGFyYW1ldGVycyIsInJlcXVlc3RDb250ZXh0IiwiY29ubmVjdGlvbklkIiwiZXZlbnRUeXBlIiwidG9rZW4iLCJtZXNzYWdlIiwiZXJyb3IiLCJkZWZhdWx0SGFuZGxlciIsInNlbmQiLCJtZXNzYWdlSGFuZGxlciIsImJvZHkiLCJzb2NrZXRJZCIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJjb252ZXJzYXRpb25JZCIsImNvbnRlbnQiLCJmb3JtYXRDb250ZW50IiwiY29ubmVjdGlvbiIsImF1dGhDb250ZXh0IiwiY29udmVyc2F0aW9uIiwidXNlcnMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwidXNlciIsImFjdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsZUFBZSxRQUFPLDhCQUE4QjtBQUM1RCxTQUFRQyxNQUFNLFFBQU8sZUFBZTtBQUNwQyxTQUFRQyxLQUFLLFFBQU8sNEJBQTRCO0FBQ2hELFNBQVFDLGFBQWEsRUFBRUMsaUJBQWlCLEVBQUVDLHFCQUFxQixFQUFFQyxnQkFBZ0IsUUFBTywwQkFBMEI7QUFDbEgsU0FBUUMsWUFBWSxRQUFPLHFCQUFxQjtBQUNoRCxTQUFRQyxRQUFRLFFBQU8sdUJBQXVCO0FBSTlDLE1BQU1DLGdCQUFnQjtJQUFDQyxZQUFZO0FBQUc7QUFDdEMsTUFBTUMsY0FBYztJQUFDRCxZQUFZO0FBQUc7QUFDcEMsTUFBTSxFQUFDRSxtQkFBbUJDLFlBQVksRUFBQyxHQUFHQyxRQUFRQyxHQUFHO0FBQ3JELE1BQU1DLGtCQUFrQixDQUFDQyxTQUFvQixDQUFBO1FBQUNDLFFBQVFqQixPQUFPa0IsR0FBRztRQUFJQyxVQUFVbEIsTUFBTVc7UUFBZVEsU0FBUztZQUFDSjtRQUFNO0lBQUMsQ0FBQTtBQUVwSCxPQUFPLE1BQU1LLGlCQUFpQixPQUFPQztJQUNuQywwRUFBMEU7SUFDMUUsdUVBQXVFO0lBQ3ZFZixTQUFTZ0IsV0FBVyxDQUFDRDtJQUNyQixNQUFNLEVBQUNFLHdCQUF3QixDQUFDLENBQUMsRUFBRUMsY0FBYyxFQUFDLEdBQUdIO0lBQ3JELE1BQU0sRUFBQ0ksWUFBWSxFQUFFQyxTQUFTLEVBQUMsR0FBR0Y7SUFDbEMsTUFBTSxFQUFDRyxLQUFLLEVBQUMsR0FBR0o7SUFFaEIsSUFBSTtRQUNGLElBQUdHLGNBQWMsV0FBVztZQUMxQixNQUFNekIsY0FBY3dCLGNBQWNFO1lBQ2xDLE9BQU9wQjtRQUNULE9BQU8sSUFBR21CLGNBQWMsY0FBYztZQUNwQyxNQUFNdEIsaUJBQWlCcUI7WUFDdkIsT0FBT2xCO1FBQ1Q7UUFFQSxPQUFPO1lBQUMsR0FBR0UsV0FBVztZQUFFbUIsU0FBUztRQUFjO0lBQ2pELEVBQUUsT0FBTUMsT0FBTztRQUNiLE9BQU87WUFBQyxHQUFHcEIsV0FBVztZQUFFbUIsU0FBU0MsTUFBTUQsT0FBTztRQUFBO0lBQ2hEO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTUUsaUJBQWlCLE9BQU9UO0lBQ25DLE1BQU1mLFNBQVN5QixJQUFJLENBQUNWLE9BQU87UUFDekJBLE9BQU87UUFDUE8sU0FBUztJQUNYO0lBRUEsT0FBT3JCO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTXlCLGlCQUFpQixPQUFPWDtJQUNuQyxNQUFNLEVBQUNZLElBQUksRUFBRVQsY0FBYyxFQUFDLEdBQUdIO0lBQy9CLE1BQU0sRUFBQ2EsUUFBUSxFQUFDLEdBQUdWO0lBQ25CLE1BQU1JLFVBQWdDTyxLQUFLQyxLQUFLLENBQUNILE1BQU1JLElBQUk7SUFDM0QsTUFBTSxFQUFDQyxpQkFBaUIsRUFBRSxFQUFFQyxVQUFVLEVBQUUsRUFBQyxHQUFHWDtJQUM1QyxNQUFNWSxnQkFBd0JuQyxhQUFha0M7SUFFM0MsaUNBQWlDO0lBQ2pDLE1BQU1FLGFBQWEsTUFBTXZDLGtCQUFrQmdDO0lBQzNDLE1BQU0sRUFBQ25CLE1BQU0sRUFBQyxHQUFHMEI7SUFDakIsTUFBTUMsY0FBYzVCLGdCQUFnQkM7SUFDcEMsTUFBTTRCLGVBQWUsTUFBTTdDLGdCQUFnQjRDLGFBQWFKO0lBQ3hELE1BQU0sRUFBQ00sUUFBUSxFQUFFLEVBQUMsR0FBR0Q7SUFFckIsTUFBTUUsUUFBUUMsR0FBRyxDQUFDRixNQUFNRyxHQUFHLENBQUMsT0FBT0M7UUFDakMsTUFBTSxFQUFDakMsTUFBTSxFQUFDLEdBQUdpQztRQUNqQixNQUFNUCxhQUFhLE1BQU10QyxzQkFBc0JZO1FBRS9DLElBQUcwQixZQUFZO1lBQ2IsTUFBTSxFQUFDUCxRQUFRLEVBQUMsR0FBR087WUFFbkIsSUFBR1AsVUFBVTtnQkFDWDVCLFNBQVN5QixJQUFJLENBQUNHLFVBQVU7b0JBQ3RCZSxRQUFRO29CQUNSWixNQUFNRztnQkFDUjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLE9BQU9qQztBQUNULEVBQUUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/lambdas/utils/message.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAG7C,CAAC"}
|
|
@@ -1,2 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import sanitize from 'sanitize-html';
|
|
5
|
+
export const parseMessage = (content)=>sanitize(content, {
|
|
6
|
+
allowedAttributes: {},
|
|
7
|
+
allowedTags: [
|
|
8
|
+
'ul',
|
|
9
|
+
'ol',
|
|
10
|
+
'b',
|
|
11
|
+
'i',
|
|
12
|
+
'em',
|
|
13
|
+
'strike',
|
|
14
|
+
'pre',
|
|
15
|
+
'strong',
|
|
16
|
+
'li'
|
|
17
|
+
]
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvdXRpbHMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWh0bWwnO1xuXG5leHBvcnQgY29uc3QgcGFyc2VNZXNzYWdlID0gKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyA9PiBzYW5pdGl6ZShjb250ZW50LCB7XG4gIGFsbG93ZWRBdHRyaWJ1dGVzOiB7fSxcbiAgYWxsb3dlZFRhZ3M6IFsndWwnLCAnb2wnLCAnYicsICdpJywgJ2VtJywgJ3N0cmlrZScsICdwcmUnLCAnc3Ryb25nJywgJ2xpJ11cbn0pO1xuIl0sIm5hbWVzIjpbInNhbml0aXplIiwicGFyc2VNZXNzYWdlIiwiY29udGVudCIsImFsbG93ZWRBdHRyaWJ1dGVzIiwiYWxsb3dlZFRhZ3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELE9BQU9BLGNBQWMsZ0JBQWdCO0FBRXJDLE9BQU8sTUFBTUMsZUFBZSxDQUFDQyxVQUE0QkYsU0FBU0UsU0FBUztRQUN6RUMsbUJBQW1CLENBQUM7UUFDcEJDLGFBQWE7WUFBQztZQUFNO1lBQU07WUFBSztZQUFLO1lBQU07WUFBVTtZQUFPO1lBQVU7U0FBSztJQUM1RSxHQUFHIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/lambdas/utils/websocket.ts"],"names":[],"mappings":"AAYA,qBAAa,eAAe;IAC1B,MAAM,MAAC;gBAEK,MAAM,CAAC,KAAA;IASnB,WAAW,CAAC,MAAM,KAAA;IA+BZ,IAAI,CAAC,WAAW,KAAA,EAAE,OAAO,KAAA;CA8BhC;AAED,eAAO,MAAM,QAAQ,iBAAwB,CAAC"}
|