@nlabs/reaktor 0.10.5 → 0.10.7
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/lib/actions/apps.d.ts +1 -0
- package/lib/actions/apps.d.ts.map +1 -0
- package/lib/actions/apps.js +221 -0
- package/lib/actions/connections.d.ts +1 -0
- package/lib/actions/connections.d.ts.map +1 -0
- package/lib/actions/connections.js +62 -0
- package/lib/actions/content.d.ts +1 -0
- package/lib/actions/content.d.ts.map +1 -0
- package/lib/actions/content.js +240 -0
- package/lib/actions/conversations.d.ts +1 -0
- package/lib/actions/conversations.d.ts.map +1 -0
- package/lib/actions/conversations.js +335 -0
- package/lib/actions/dynamodb.d.ts +1 -0
- package/lib/actions/dynamodb.d.ts.map +1 -0
- package/lib/actions/dynamodb.js +119 -0
- package/lib/actions/email.d.ts +1 -0
- package/lib/actions/email.d.ts.map +1 -0
- package/lib/actions/email.js +56 -0
- package/lib/actions/files.d.ts +1 -0
- package/lib/actions/files.d.ts.map +1 -0
- package/lib/actions/files.js +226 -0
- package/lib/actions/groups.d.ts +1 -0
- package/lib/actions/groups.d.ts.map +1 -0
- package/lib/actions/groups.js +267 -0
- package/lib/actions/images.d.ts +1 -0
- package/lib/actions/images.d.ts.map +1 -0
- package/lib/actions/images.js +723 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +29 -0
- package/lib/actions/ios.d.ts +1 -0
- package/lib/actions/ios.d.ts.map +1 -0
- package/lib/actions/ios.js +230 -0
- package/lib/actions/locations.d.ts +1 -0
- package/lib/actions/locations.d.ts.map +1 -0
- package/lib/actions/locations.js +111 -0
- package/lib/actions/messages.d.ts +1 -0
- package/lib/actions/messages.d.ts.map +1 -0
- package/lib/actions/messages.js +167 -0
- package/lib/actions/notifications.d.ts +3 -2
- package/lib/actions/notifications.d.ts.map +1 -0
- package/lib/actions/notifications.js +37 -0
- package/lib/actions/payments.d.ts +1 -0
- package/lib/actions/payments.d.ts.map +1 -0
- package/lib/actions/payments.js +449 -0
- package/lib/actions/posts.d.ts +1 -0
- package/lib/actions/posts.d.ts.map +1 -0
- package/lib/actions/posts.js +608 -0
- package/lib/actions/profiles.d.ts +1 -0
- package/lib/actions/profiles.d.ts.map +1 -0
- package/lib/actions/profiles.js +58 -0
- package/lib/actions/reactions.d.ts +1 -0
- package/lib/actions/reactions.d.ts.map +1 -0
- package/lib/actions/reactions.js +286 -0
- package/lib/actions/s3.d.ts +1 -0
- package/lib/actions/s3.d.ts.map +1 -0
- package/lib/actions/s3.js +102 -0
- package/lib/actions/search.d.ts +1 -0
- package/lib/actions/search.d.ts.map +1 -0
- package/lib/actions/search.js +81 -0
- package/lib/actions/sms.d.ts +1 -0
- package/lib/actions/sms.d.ts.map +1 -0
- package/lib/actions/sms.js +52 -0
- package/lib/actions/statistics.d.ts +1 -0
- package/lib/actions/statistics.d.ts.map +1 -0
- package/lib/actions/statistics.js +43 -0
- package/lib/actions/subscriptions.d.ts +1 -0
- package/lib/actions/subscriptions.d.ts.map +1 -0
- package/lib/actions/subscriptions.js +202 -0
- package/lib/actions/tags.d.ts +1 -0
- package/lib/actions/tags.d.ts.map +1 -0
- package/lib/actions/tags.js +263 -0
- package/lib/actions/users.d.ts +1 -0
- package/lib/actions/users.d.ts.map +1 -0
- package/lib/actions/users.js +802 -0
- package/lib/actions/videos.d.ts +1 -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 +164 -0
- package/lib/adapters/arangoAdapter.d.ts +1 -0
- package/lib/adapters/arangoAdapter.d.ts.map +1 -0
- package/lib/adapters/arangoAdapter.js +70 -0
- package/lib/adapters/contentAdapter.d.ts +1 -0
- package/lib/adapters/contentAdapter.d.ts.map +1 -0
- package/lib/adapters/contentAdapter.js +108 -0
- package/lib/adapters/fileAdapter.d.ts +1 -0
- package/lib/adapters/fileAdapter.d.ts.map +1 -0
- package/lib/adapters/fileAdapter.js +119 -0
- package/lib/adapters/imageAdapter.d.ts +1 -0
- package/lib/adapters/imageAdapter.d.ts.map +1 -0
- package/lib/adapters/imageAdapter.js +112 -0
- package/lib/adapters/index.d.ts +1 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +11 -0
- package/lib/adapters/messageAdapter.d.ts +1 -0
- package/lib/adapters/messageAdapter.d.ts.map +1 -0
- package/lib/adapters/messageAdapter.js +82 -0
- package/lib/adapters/postAdapter.d.ts +1 -0
- package/lib/adapters/postAdapter.d.ts.map +1 -0
- package/lib/adapters/postAdapter.js +117 -0
- package/lib/adapters/reaktorAdapter.d.ts +1 -0
- package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
- package/lib/adapters/reaktorAdapter.js +59 -0
- package/lib/adapters/tagAdapter.d.ts +1 -0
- package/lib/adapters/tagAdapter.d.ts.map +1 -0
- package/lib/adapters/tagAdapter.js +99 -0
- package/lib/adapters/userAdapter.d.ts +1 -0
- package/lib/adapters/userAdapter.d.ts.map +1 -0
- package/lib/adapters/userAdapter.js +264 -0
- package/lib/config.d.ts +1 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +161 -0
- package/lib/handlers/graphqlHandler.d.ts +1 -0
- package/lib/handlers/graphqlHandler.d.ts.map +1 -0
- package/lib/handlers/graphqlHandler.js +118 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -0
- 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 +105 -0
- package/lib/lambdas/authorizer.d.ts +1 -0
- package/lib/lambdas/authorizer.d.ts.map +1 -0
- package/lib/lambdas/authorizer.js +41 -0
- package/lib/lambdas/connection.d.ts +1 -0
- package/lib/lambdas/connection.d.ts.map +1 -0
- package/lib/lambdas/connection.js +85 -0
- 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 -0
- 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 -0
- package/lib/mocks/conversation.d.ts +1 -0
- package/lib/mocks/conversation.d.ts.map +1 -0
- package/lib/mocks/conversation.js +10 -0
- package/lib/mocks/file.d.ts +1 -0
- package/lib/mocks/file.d.ts.map +1 -0
- package/lib/mocks/file.js +13 -0
- package/lib/mocks/group.d.ts +1 -0
- package/lib/mocks/group.d.ts.map +1 -0
- package/lib/mocks/group.js +20 -0
- package/lib/mocks/image.d.ts +1 -0
- package/lib/mocks/image.d.ts.map +1 -0
- package/lib/mocks/image.js +17 -0
- package/lib/mocks/post.d.ts +1 -0
- package/lib/mocks/post.d.ts.map +1 -0
- package/lib/mocks/post.js +28 -0
- package/lib/mocks/tag.d.ts +1 -0
- package/lib/mocks/tag.d.ts.map +1 -0
- package/lib/mocks/tag.js +12 -0
- package/lib/mocks/user.d.ts +1 -0
- package/lib/mocks/user.d.ts.map +1 -0
- package/lib/mocks/user.js +61 -0
- package/lib/mocks/video.d.ts +1 -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 -0
- package/lib/mutations/index.d.ts +1 -0
- package/lib/mutations/index.d.ts.map +1 -0
- package/lib/mutations/index.js +29 -0
- package/lib/mutations/locations.d.ts +1 -0
- package/lib/mutations/locations.d.ts.map +1 -0
- package/lib/mutations/locations.js +22 -0
- package/lib/mutations/messages.d.ts +1 -0
- package/lib/mutations/messages.d.ts.map +1 -0
- package/lib/mutations/messages.js +75 -0
- package/lib/mutations/posts.d.ts +1 -0
- package/lib/mutations/posts.d.ts.map +1 -0
- package/lib/mutations/posts.js +31 -0
- package/lib/mutations/profiles.d.ts +1 -0
- package/lib/mutations/profiles.d.ts.map +1 -0
- package/lib/mutations/profiles.js +78 -0
- package/lib/mutations/reactions.d.ts +1 -0
- package/lib/mutations/reactions.d.ts.map +1 -0
- package/lib/mutations/reactions.js +29 -0
- package/lib/mutations/statistics.d.ts +1 -0
- package/lib/mutations/statistics.d.ts.map +1 -0
- package/lib/mutations/statistics.js +17 -0
- package/lib/mutations/subscriptions.d.ts +1 -0
- package/lib/mutations/subscriptions.d.ts.map +1 -0
- package/lib/mutations/subscriptions.js +38 -0
- package/lib/mutations/tags.d.ts +1 -0
- package/lib/mutations/tags.d.ts.map +1 -0
- package/lib/mutations/tags.js +109 -0
- package/lib/mutations/users.d.ts +1 -0
- package/lib/mutations/users.d.ts.map +1 -0
- package/lib/mutations/users.js +129 -0
- package/lib/objectTypes/app.d.ts +1 -0
- package/lib/objectTypes/app.d.ts.map +1 -0
- package/lib/objectTypes/app.js +147 -0
- package/lib/objectTypes/bankAccount.d.ts +1 -0
- package/lib/objectTypes/bankAccount.d.ts.map +1 -0
- package/lib/objectTypes/bankAccount.js +54 -0
- package/lib/objectTypes/connection.d.ts +1 -0
- package/lib/objectTypes/connection.d.ts.map +1 -0
- package/lib/objectTypes/connection.js +26 -0
- package/lib/objectTypes/content.d.ts +1 -0
- package/lib/objectTypes/content.d.ts.map +1 -0
- package/lib/objectTypes/content.js +79 -0
- package/lib/objectTypes/conversation.d.ts +1 -0
- package/lib/objectTypes/conversation.d.ts.map +1 -0
- package/lib/objectTypes/conversation.js +53 -0
- package/lib/objectTypes/creditCard.d.ts +1 -0
- package/lib/objectTypes/creditCard.d.ts.map +1 -0
- package/lib/objectTypes/creditCard.js +64 -0
- package/lib/objectTypes/document.d.ts +1 -0
- package/lib/objectTypes/document.d.ts.map +1 -0
- package/lib/objectTypes/document.js +21 -0
- package/lib/objectTypes/error.d.ts +1 -0
- package/lib/objectTypes/error.d.ts.map +1 -0
- package/lib/objectTypes/error.js +24 -0
- package/lib/objectTypes/external.d.ts +1 -0
- package/lib/objectTypes/external.d.ts.map +1 -0
- package/lib/objectTypes/external.js +52 -0
- package/lib/objectTypes/file.d.ts +1 -0
- package/lib/objectTypes/file.d.ts.map +1 -0
- package/lib/objectTypes/file.js +76 -0
- package/lib/objectTypes/filter.d.ts +1 -0
- package/lib/objectTypes/filter.d.ts.map +1 -0
- package/lib/objectTypes/filter.js +21 -0
- package/lib/objectTypes/group.d.ts +1 -0
- package/lib/objectTypes/group.d.ts.map +1 -0
- package/lib/objectTypes/group.js +97 -0
- package/lib/objectTypes/iapSubscription.d.ts +1 -0
- package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
- package/lib/objectTypes/iapSubscription.js +18 -0
- package/lib/objectTypes/image.d.ts +1 -0
- package/lib/objectTypes/image.d.ts.map +1 -0
- package/lib/objectTypes/image.js +105 -0
- package/lib/objectTypes/index.d.ts +1 -0
- package/lib/objectTypes/index.d.ts.map +1 -0
- package/lib/objectTypes/index.js +28 -0
- package/lib/objectTypes/location.d.ts +1 -0
- package/lib/objectTypes/location.d.ts.map +1 -0
- package/lib/objectTypes/location.js +85 -0
- package/lib/objectTypes/message.d.ts +1 -0
- package/lib/objectTypes/message.d.ts.map +1 -0
- package/lib/objectTypes/message.js +72 -0
- package/lib/objectTypes/passcode.d.ts +1 -0
- package/lib/objectTypes/passcode.d.ts.map +1 -0
- package/lib/objectTypes/passcode.js +20 -0
- package/lib/objectTypes/plan.d.ts +1 -0
- package/lib/objectTypes/plan.d.ts.map +1 -0
- package/lib/objectTypes/plan.js +71 -0
- package/lib/objectTypes/post.d.ts +1 -0
- package/lib/objectTypes/post.d.ts.map +1 -0
- package/lib/objectTypes/post.js +101 -0
- package/lib/objectTypes/profile.d.ts +1 -0
- package/lib/objectTypes/profile.d.ts.map +1 -0
- package/lib/objectTypes/profile.js +68 -0
- package/lib/objectTypes/reaction.d.ts +1 -0
- package/lib/objectTypes/reaction.d.ts.map +1 -0
- package/lib/objectTypes/reaction.js +37 -0
- package/lib/objectTypes/relation.d.ts +1 -0
- package/lib/objectTypes/relation.d.ts.map +1 -0
- package/lib/objectTypes/relation.js +27 -0
- package/lib/objectTypes/search.d.ts +1 -0
- package/lib/objectTypes/search.d.ts.map +1 -0
- package/lib/objectTypes/search.js +50 -0
- package/lib/objectTypes/statistics.d.ts +1 -0
- package/lib/objectTypes/statistics.d.ts.map +1 -0
- package/lib/objectTypes/statistics.js +17 -0
- package/lib/objectTypes/subscription.d.ts +1 -0
- package/lib/objectTypes/subscription.d.ts.map +1 -0
- package/lib/objectTypes/subscription.js +102 -0
- package/lib/objectTypes/tag.d.ts +1 -0
- package/lib/objectTypes/tag.d.ts.map +1 -0
- package/lib/objectTypes/tag.js +41 -0
- package/lib/objectTypes/user.d.ts +1 -0
- package/lib/objectTypes/user.d.ts.map +1 -0
- package/lib/objectTypes/user.js +111 -0
- package/lib/queries/content.d.ts +1 -0
- package/lib/queries/content.d.ts.map +1 -0
- package/lib/queries/content.js +50 -0
- package/lib/queries/index.d.ts +1 -0
- package/lib/queries/index.d.ts.map +1 -0
- package/lib/queries/index.js +27 -0
- package/lib/queries/locations.d.ts +1 -0
- package/lib/queries/locations.d.ts.map +1 -0
- package/lib/queries/locations.js +23 -0
- package/lib/queries/messages.d.ts +1 -0
- package/lib/queries/messages.d.ts.map +1 -0
- package/lib/queries/messages.js +35 -0
- package/lib/queries/posts.d.ts +1 -0
- package/lib/queries/posts.d.ts.map +1 -0
- package/lib/queries/posts.js +154 -0
- package/lib/queries/reactions.d.ts +1 -0
- package/lib/queries/reactions.d.ts.map +1 -0
- package/lib/queries/reactions.js +34 -0
- package/lib/queries/statistics.d.ts +1 -0
- package/lib/queries/statistics.d.ts.map +1 -0
- package/lib/queries/statistics.js +17 -0
- package/lib/queries/subscriptions.d.ts +1 -0
- package/lib/queries/subscriptions.d.ts.map +1 -0
- package/lib/queries/subscriptions.js +21 -0
- package/lib/queries/tags.d.ts +1 -0
- package/lib/queries/tags.d.ts.map +1 -0
- package/lib/queries/tags.js +56 -0
- package/lib/queries/users.d.ts +1 -0
- package/lib/queries/users.d.ts.map +1 -0
- package/lib/queries/users.js +39 -0
- 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 +281 -0
- 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 +17 -0
- 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 +14 -0
- 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 +17 -0
- 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 +17 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- package/lib/types/arangodb.types.d.ts +1 -0
- package/lib/types/arangodb.types.d.ts.map +1 -0
- package/lib/types/arangodb.types.js +6 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +28 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- package/lib/types/videos.types.d.ts +1 -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 -0
- package/lib/utils/adapterUtils.d.ts +1 -0
- package/lib/utils/adapterUtils.d.ts.map +1 -0
- package/lib/utils/adapterUtils.js +23 -0
- package/lib/utils/analyticsUtils.d.ts +1 -0
- package/lib/utils/analyticsUtils.d.ts.map +1 -0
- package/lib/utils/analyticsUtils.js +45 -0
- package/lib/utils/arangodbUtils.d.ts +1 -0
- package/lib/utils/arangodbUtils.d.ts.map +1 -0
- package/lib/utils/arangodbUtils.js +130 -0
- package/lib/utils/authUtils.d.ts +1 -0
- package/lib/utils/authUtils.d.ts.map +1 -0
- package/lib/utils/authUtils.js +54 -0
- package/lib/utils/contextUtils.d.ts +1 -0
- package/lib/utils/contextUtils.d.ts.map +1 -0
- package/lib/utils/contextUtils.js +10 -0
- 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 +93 -0
- package/lib/utils/dbI18n.js +28 -0
- package/lib/utils/googleTranslate.d.ts +1 -0
- package/lib/utils/googleTranslate.d.ts.map +1 -0
- package/lib/utils/googleTranslate.js +70 -0
- package/lib/utils/graphqlUtils.d.ts +1 -0
- package/lib/utils/graphqlUtils.d.ts.map +1 -0
- package/lib/utils/graphqlUtils.js +11 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +19 -0
- package/lib/utils/languageDetection.d.ts +1 -0
- package/lib/utils/languageDetection.d.ts.map +1 -0
- package/lib/utils/languageDetection.js +120 -0
- 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 -0
- package/lib/utils/localeUtils.js +71 -0
- package/lib/utils/middlewareUtils.d.ts +1 -0
- package/lib/utils/middlewareUtils.d.ts.map +1 -0
- package/lib/utils/middlewareUtils.js +10 -0
- package/lib/utils/sessionUtils.d.ts +1 -0
- package/lib/utils/sessionUtils.d.ts.map +1 -0
- package/lib/utils/sessionUtils.js +26 -0
- package/lib/utils/stripeUtils.d.ts +2 -1
- package/lib/utils/stripeUtils.d.ts.map +1 -0
- package/lib/utils/stripeUtils.js +12 -0
- package/lib/utils/templateUtils.d.ts +1 -0
- package/lib/utils/templateUtils.d.ts.map +1 -0
- package/lib/utils/templateUtils.js +11 -0
- package/lib/utils/testUtils.d.ts +1 -0
- package/lib/utils/testUtils.d.ts.map +1 -0
- package/lib/utils/testUtils.js +292 -0
- 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 -0
- package/lib/utils/translationQueue.js +113 -0
- package/package.json +54 -24
- package/.env +0 -1
- package/.env.example +0 -1
- package/DATABASE_I18N_GUIDE.md +0 -434
- package/TEST_UTILITIES_GUIDE.md +0 -360
- package/coverage/actions/groups.ts.html +0 -1039
- package/coverage/actions/images.ts.html +0 -2500
- package/coverage/actions/index.html +0 -116
- package/coverage/actions/notifications.ts.html +0 -223
- package/coverage/actions/posts.ts.html +0 -2356
- package/coverage/actions/tags.ts.html +0 -1000
- package/coverage/adapters/arangoAdapter.ts.html +0 -301
- package/coverage/adapters/fileAdapter.ts.html +0 -445
- package/coverage/adapters/index.html +0 -176
- package/coverage/adapters/postAdapter.ts.html +0 -436
- package/coverage/adapters/reaktorAdapter.ts.html +0 -310
- package/coverage/adapters/tagAdapter.ts.html +0 -409
- package/coverage/adapters/userAdapter.ts.html +0 -829
- package/coverage/analyticsUtils.ts.html +0 -286
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -6
- package/coverage/config.ts.html +0 -766
- package/coverage/coverage-final.json +0 -1
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -221
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -101
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -0
- package/coverage/mocks/file.ts.html +0 -118
- package/coverage/mocks/group.ts.html +0 -145
- package/coverage/mocks/image.ts.html +0 -142
- package/coverage/mocks/index.html +0 -176
- package/coverage/mocks/post.ts.html +0 -169
- package/coverage/mocks/tag.ts.html +0 -121
- package/coverage/mocks/user.ts.html +0 -271
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/testUtils.ts.html +0 -1309
- package/coverage/translationQueue.ts.html +0 -592
- package/coverage/types/error.ts.html +0 -145
- package/coverage/types/error.types.ts.html +0 -148
- package/coverage/types/index.html +0 -116
- package/coverage/utils/adapterUtils.ts.html +0 -163
- package/coverage/utils/analyticsUtils.ts.html +0 -286
- package/coverage/utils/arangodbUtils.ts.html +0 -463
- package/coverage/utils/authUtils.ts.html +0 -328
- package/coverage/utils/dbI18n.ts.html +0 -280
- package/coverage/utils/googleTranslate.ts.html +0 -385
- package/coverage/utils/index.html +0 -131
- package/coverage/utils/localeUtils.ts.html +0 -193
- package/coverage/utils/sessionUtils.ts.html +0 -211
- package/coverage/utils/testUtils.ts.html +0 -1309
- package/index.js +0 -5
- package/jpg:- +0 -0
- package/lex.config.mjs +0 -34
- package/tsconfig.build.json +0 -21
- package/tsconfig.lint.json +0 -33
- package/tsconfig.test.json +0 -31
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { createHash, parseArangoId, parseId, parseVarChar } from '@nlabs/utils/parsers/strings';
|
|
5
|
+
import { words } from '@nlabs/utils/strings/words';
|
|
6
|
+
import { aql } from 'arangojs';
|
|
7
|
+
import { parseTag } from '../adapters/tagAdapter.js';
|
|
8
|
+
import { ErrorTypes } from '../types/error.types.js';
|
|
9
|
+
import { logError } from '../utils/analyticsUtils.js';
|
|
10
|
+
import { getDocId, getLimit, useDb } from '../utils/arangodbUtils.js';
|
|
11
|
+
const eventCategory = 'tags';
|
|
12
|
+
export const getTags = (context, options = {})=>{
|
|
13
|
+
const action = 'getList';
|
|
14
|
+
const { databaseName } = context;
|
|
15
|
+
const { search = '', from = 0, to = 30, userId } = options;
|
|
16
|
+
const limit = getLimit(from, to);
|
|
17
|
+
const filters = [];
|
|
18
|
+
if (search) {
|
|
19
|
+
filters.push(`LIKE(t.name, "%${search}%")`);
|
|
20
|
+
}
|
|
21
|
+
if (userId) {
|
|
22
|
+
filters.push(`t.userId == "${userId}"`);
|
|
23
|
+
}
|
|
24
|
+
const aqlQry = `FOR t IN tags
|
|
25
|
+
FILTER ${filters.join(' || ')}
|
|
26
|
+
${limit.aql}
|
|
27
|
+
SORT t.name
|
|
28
|
+
RETURN t`;
|
|
29
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.all()).catch((error)=>{
|
|
30
|
+
logError({
|
|
31
|
+
action,
|
|
32
|
+
category: eventCategory,
|
|
33
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
34
|
+
}, error, {});
|
|
35
|
+
return [];
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
export const getTagsByItem = (context, itemDocId, options = {})=>{
|
|
39
|
+
const action = 'getTagsByItem';
|
|
40
|
+
const { from = 0, to = 30 } = options;
|
|
41
|
+
const { databaseName } = context;
|
|
42
|
+
const limit = getLimit(from, to);
|
|
43
|
+
const formatItemId = parseArangoId(itemDocId);
|
|
44
|
+
const tagQuery = `FOR t, it IN INBOUND "${formatItemId}" isTagged
|
|
45
|
+
${limit.aql}
|
|
46
|
+
SORT it.added
|
|
47
|
+
RETURN t`;
|
|
48
|
+
return useDb(databaseName).query(tagQuery).then((cursor)=>cursor.all()).catch((error)=>{
|
|
49
|
+
logError({
|
|
50
|
+
action,
|
|
51
|
+
category: eventCategory,
|
|
52
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
53
|
+
}, error, {});
|
|
54
|
+
return [];
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
export const getTag = (context, tagId)=>{
|
|
58
|
+
const action = 'getTag';
|
|
59
|
+
const { databaseName } = context;
|
|
60
|
+
const formatId = parseId(tagId);
|
|
61
|
+
const aqlQry = `FOR t IN tags
|
|
62
|
+
FILTER t._key == "${formatId}"
|
|
63
|
+
LIMIT 1
|
|
64
|
+
RETURN t`;
|
|
65
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
66
|
+
action,
|
|
67
|
+
category: eventCategory,
|
|
68
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
69
|
+
}, error, {}));
|
|
70
|
+
};
|
|
71
|
+
export const getTagsByName = (context, tagNames)=>{
|
|
72
|
+
const action = 'getTagsByName';
|
|
73
|
+
const { databaseName } = context;
|
|
74
|
+
const formatTagNames = tagNames.map((tagName)=>parseVarChar(tagName, 32)).filter((tagName)=>!!tagName);
|
|
75
|
+
if (!formatTagNames.length) {
|
|
76
|
+
return Promise.resolve([]);
|
|
77
|
+
}
|
|
78
|
+
const aqlQry = aql`FOR t IN tags
|
|
79
|
+
FILTER POSITION(${JSON.stringify(formatTagNames)}, t.name)
|
|
80
|
+
RETURN t`;
|
|
81
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.all()).catch((error)=>{
|
|
82
|
+
logError({
|
|
83
|
+
action,
|
|
84
|
+
category: eventCategory,
|
|
85
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
86
|
+
}, error, {});
|
|
87
|
+
return [];
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
export const addTag = (context, tag)=>{
|
|
91
|
+
const action = 'addTag';
|
|
92
|
+
const { databaseName } = context;
|
|
93
|
+
const now = Date.now();
|
|
94
|
+
const { description, name } = parseTag(tag);
|
|
95
|
+
const formatId = createHash(`tag-${name?.toLowerCase()}`);
|
|
96
|
+
const insert = {
|
|
97
|
+
_key: formatId,
|
|
98
|
+
added: now,
|
|
99
|
+
description: parseVarChar(description, 64),
|
|
100
|
+
modified: now,
|
|
101
|
+
name: parseVarChar(name, 32)
|
|
102
|
+
};
|
|
103
|
+
const aqlQry = aql`INSERT ${insert} IN tags RETURN NEW`;
|
|
104
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
105
|
+
action,
|
|
106
|
+
category: eventCategory,
|
|
107
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
108
|
+
}, error, {}));
|
|
109
|
+
};
|
|
110
|
+
export const addTagToItem = async (context, { itemDocId, tagBy = '', tagDocId })=>{
|
|
111
|
+
const action = 'addTagToItem';
|
|
112
|
+
const { databaseName, session: { userId: sessionId } = {} } = context;
|
|
113
|
+
const added = Date.now();
|
|
114
|
+
const formatTagDocId = parseArangoId(tagDocId);
|
|
115
|
+
const formatItemDocId = parseArangoId(itemDocId);
|
|
116
|
+
const edgeId = createHash(`isTagged-${formatTagDocId}-${formatItemDocId}`);
|
|
117
|
+
const edgeCollection = useDb(databaseName).collection('isTagged');
|
|
118
|
+
const type = formatItemDocId.split('/')[0];
|
|
119
|
+
const formatTagBy = parseId(tagBy) || sessionId || '';
|
|
120
|
+
const edge = {
|
|
121
|
+
_from: formatTagDocId,
|
|
122
|
+
_key: edgeId,
|
|
123
|
+
_to: formatItemDocId,
|
|
124
|
+
added,
|
|
125
|
+
tagBy: formatTagBy,
|
|
126
|
+
type
|
|
127
|
+
};
|
|
128
|
+
await edgeCollection.save(edge, {
|
|
129
|
+
overwriteMode: 'ignore',
|
|
130
|
+
returnNew: true,
|
|
131
|
+
silent: true
|
|
132
|
+
}).catch((error)=>logError({
|
|
133
|
+
action,
|
|
134
|
+
category: eventCategory,
|
|
135
|
+
params: {
|
|
136
|
+
edge
|
|
137
|
+
},
|
|
138
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
139
|
+
}, error, {}));
|
|
140
|
+
const tagQuery = aql`LET t = DOCUMENT(${formatTagDocId}) RETURN t`;
|
|
141
|
+
return useDb(databaseName).query(tagQuery).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
142
|
+
action,
|
|
143
|
+
category: eventCategory,
|
|
144
|
+
params: {
|
|
145
|
+
edge
|
|
146
|
+
},
|
|
147
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
148
|
+
}, error, {}));
|
|
149
|
+
};
|
|
150
|
+
export const updateTag = (context, tag)=>{
|
|
151
|
+
const action = 'updateTag';
|
|
152
|
+
const { databaseName, session: { userId: sessionId } = {} } = context;
|
|
153
|
+
const now = Date.now();
|
|
154
|
+
const { description, name, tagId } = parseTag(tag);
|
|
155
|
+
const formatName = parseVarChar(name, 32);
|
|
156
|
+
const update = {
|
|
157
|
+
description: parseVarChar(description, 64),
|
|
158
|
+
modified: now,
|
|
159
|
+
name: formatName
|
|
160
|
+
};
|
|
161
|
+
const newTagKey = tagId || createHash(`tag-${formatName.toLowerCase()}`);
|
|
162
|
+
const insert = {
|
|
163
|
+
...update,
|
|
164
|
+
_id: `tags/${newTagKey}`,
|
|
165
|
+
_key: newTagKey,
|
|
166
|
+
added: now,
|
|
167
|
+
tagBy: sessionId
|
|
168
|
+
};
|
|
169
|
+
const aqlQry = aql`UPSERT {name: ${formatName}}
|
|
170
|
+
INSERT ${insert}
|
|
171
|
+
UPDATE ${update}
|
|
172
|
+
IN tags RETURN NEW`;
|
|
173
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
174
|
+
action,
|
|
175
|
+
category: eventCategory,
|
|
176
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
177
|
+
}, error, {}));
|
|
178
|
+
};
|
|
179
|
+
export const deleteTag = async (context, tag)=>{
|
|
180
|
+
const action = 'deleteTag';
|
|
181
|
+
const { databaseName } = context;
|
|
182
|
+
const formatItemId = getDocId('tags', tag);
|
|
183
|
+
const tagQuery = `FOR it FROM isTagged
|
|
184
|
+
FILTER it._from == "${formatItemId}" || it._to == "${formatItemId}"
|
|
185
|
+
REMOVE it IN isTagged
|
|
186
|
+
RETURN OLD`;
|
|
187
|
+
await useDb(databaseName).query(tagQuery).then((cursor)=>cursor.all()).catch((error)=>logError({
|
|
188
|
+
action,
|
|
189
|
+
category: eventCategory,
|
|
190
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
191
|
+
}, error, {}));
|
|
192
|
+
const aqlQry = `LET t = DOCUMENT(${formatItemId})
|
|
193
|
+
REMOVE t IN tags
|
|
194
|
+
RETURN OLD`;
|
|
195
|
+
return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
196
|
+
action,
|
|
197
|
+
category: eventCategory,
|
|
198
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
199
|
+
}, error, {}));
|
|
200
|
+
};
|
|
201
|
+
export const deleteTagFromEdge = async (context, { tagDocId, edgeDocId })=>{
|
|
202
|
+
const action = 'deleteTagFromEdge';
|
|
203
|
+
const { databaseName } = context;
|
|
204
|
+
const formatTagDocId = parseArangoId(tagDocId);
|
|
205
|
+
const formatEdgeDocId = parseArangoId(edgeDocId);
|
|
206
|
+
const edgeCollection = useDb(databaseName).collection('isTagged');
|
|
207
|
+
const edge = {
|
|
208
|
+
_id: formatEdgeDocId
|
|
209
|
+
};
|
|
210
|
+
await edgeCollection.remove(edge, {
|
|
211
|
+
silent: true
|
|
212
|
+
}).catch((error)=>logError({
|
|
213
|
+
action,
|
|
214
|
+
category: eventCategory,
|
|
215
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
216
|
+
}, error, {}));
|
|
217
|
+
const tagQuery = aql`LET t = DOCUMENT(${formatTagDocId}) RETURN t`;
|
|
218
|
+
return useDb(databaseName).query(tagQuery).then((cursor)=>cursor.next()).catch((error)=>logError({
|
|
219
|
+
action,
|
|
220
|
+
category: eventCategory,
|
|
221
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
222
|
+
}, error, {}));
|
|
223
|
+
};
|
|
224
|
+
export const deleteTagFromItem = async (context, { tagId, itemId, itemType })=>{
|
|
225
|
+
const action = 'deleteTagFromItem';
|
|
226
|
+
const { databaseName } = context;
|
|
227
|
+
const formatTagDocId = parseArangoId(`tags/${tagId}`);
|
|
228
|
+
const formatItemDocId = parseArangoId(`${itemType}/${itemId}`);
|
|
229
|
+
const aqlQuery = `FOR it FROM isTagged
|
|
230
|
+
FILTER it._from == "${formatTagDocId}" || it._to == "${formatItemDocId}"
|
|
231
|
+
REMOVE it IN isTagged`;
|
|
232
|
+
return useDb(databaseName).query(aqlQuery).then(()=>true).catch((error)=>{
|
|
233
|
+
logError({
|
|
234
|
+
action,
|
|
235
|
+
category: eventCategory,
|
|
236
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
237
|
+
}, error, {});
|
|
238
|
+
return false;
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
export const extractTags = (content)=>words(content, /#[a-zA-Z\d-]+/g).map((tag)=>parseId(tag));
|
|
242
|
+
export const updateTagsInItem = (context, { itemDocId, tags })=>{
|
|
243
|
+
const action = 'updateTagsInItem';
|
|
244
|
+
const { databaseName } = context;
|
|
245
|
+
const edgeCollection = useDb(databaseName).collection('isTagged');
|
|
246
|
+
return edgeCollection.inEdges(itemDocId, {}).then((edges)=>Promise.all([
|
|
247
|
+
...edges.filter(({ name: existingTagName })=>!tags.find(({ name: tagName })=>existingTagName === tagName)).map(({ _id: edgeDocId, _from: tagDocId })=>deleteTagFromEdge(context, {
|
|
248
|
+
edgeDocId,
|
|
249
|
+
tagDocId
|
|
250
|
+
})),
|
|
251
|
+
...tags.filter(({ name: tagName })=>!edges.find(({ name: existingTagName })=>existingTagName === tagName)).map(({ _id: tagDocId = '', tagBy })=>addTagToItem(context, {
|
|
252
|
+
itemDocId,
|
|
253
|
+
tagBy,
|
|
254
|
+
tagDocId
|
|
255
|
+
}))
|
|
256
|
+
]).then(()=>tags)).catch((error)=>logError({
|
|
257
|
+
action,
|
|
258
|
+
category: eventCategory,
|
|
259
|
+
value: ErrorTypes.DATABASE_ERROR
|
|
260
|
+
}, error, {}));
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvdGFncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHt3b3Jkc30gZnJvbSAnQG5sYWJzL3V0aWxzL3N0cmluZ3Mvd29yZHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0VkZ2V9IGZyb20gJ2FyYW5nb2pzL2RvY3VtZW50cyc7XG5cbmltcG9ydCB7cGFyc2VUYWd9IGZyb20gJy4uL2FkYXB0ZXJzL3RhZ0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldERvY0lkLCBnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuXG5pbXBvcnQgdHlwZSB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb25zJztcbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7SXNUYWdnZWRUeXBlLCBUYWdUeXBlfSBmcm9tICcuLi90eXBlcy90YWdzLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3RhZ3MnO1xuZXhwb3J0IGludGVyZmFjZSBUYWdPcHRpb25zIHtcbiAgcmVhZG9ubHkgZnJvbT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VhcmNoPzogc3RyaW5nO1xuICByZWFkb25seSB0bz86IG51bWJlcjtcbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0VGFncyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3B0aW9uczogVGFnT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFRhZ1R5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCB7c2VhcmNoID0gJycsIGZyb20gPSAwLCB0byA9IDMwLCB1c2VySWR9ID0gb3B0aW9ucztcbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RiTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG5cbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbXTtcblxuICBpZihzZWFyY2gpIHtcbiAgICBmaWx0ZXJzLnB1c2goYExJS0UodC5uYW1lLCBcIiUke3NlYXJjaH0lXCIpYCk7XG4gIH1cblxuICBpZih1c2VySWQpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHQudXNlcklkID09IFwiJHt1c2VySWR9XCJgKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiB0IElOIHRhZ3NcbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyB8fCAnKX1cbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHQubmFtZVxuICAgIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpIGFzIHVua25vd24gYXMgVGFnVHlwZVtdKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuXG4gICAgICByZXR1cm4gW10gYXMgVGFnVHlwZVtdO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhZ3NCeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1Eb2NJZDogc3RyaW5nLFxuICBvcHRpb25zOiBUYWdPcHRpb25zID0ge31cbik6IFByb21pc2U8VGFnVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFRhZ3NCeUl0ZW0nO1xuICBjb25zdCB7ZnJvbSA9IDAsIHRvID0gMzB9ID0gb3B0aW9ucztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1Eb2NJZCk7XG4gIGNvbnN0IHRhZ1F1ZXJ5OiBzdHJpbmcgPSBgRk9SIHQsIGl0IElOIElOQk9VTkQgXCIke2Zvcm1hdEl0ZW1JZH1cIiBpc1RhZ2dlZFxuICAgICR7bGltaXQuYXFsfVxuICAgIFNPUlQgaXQuYWRkZWRcbiAgICBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodGFnUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpIGFzIHVua25vd24gYXMgVGFnVHlwZVtdKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuXG4gICAgICByZXR1cm4gW10gYXMgVGFnVHlwZVtdO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhZyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0YWdJZDogc3RyaW5nKTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFRhZyc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQodGFnSWQpO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdCBJTiB0YWdzXG4gICAgRklMVEVSIHQuX2tleSA9PSBcIiR7Zm9ybWF0SWR9XCJcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFnc0J5TmFtZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0YWdOYW1lczogc3RyaW5nW10pOiBQcm9taXNlPFRhZ1R5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRUYWdzQnlOYW1lJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRUYWdOYW1lcyA9IHRhZ05hbWVzXG4gICAgLm1hcCgodGFnTmFtZSkgPT4gcGFyc2VWYXJDaGFyKHRhZ05hbWUsIDMyKSlcbiAgICAuZmlsdGVyKCh0YWdOYW1lKSA9PiAhIXRhZ05hbWUpO1xuXG4gIGlmKCFmb3JtYXRUYWdOYW1lcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHQgSU4gdGFnc1xuICAgIEZJTFRFUiBQT1NJVElPTigke0pTT04uc3RyaW5naWZ5KGZvcm1hdFRhZ05hbWVzKX0sIHQubmFtZSlcbiAgICBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFRhZ1R5cGVbXSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFRhZ1R5cGVbXTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRUYWcgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdGFnOiBUYWdUeXBlKTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFRhZyc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB7ZGVzY3JpcHRpb24sIG5hbWV9ID0gcGFyc2VUYWcodGFnKTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHRhZy0ke25hbWU/LnRvTG93ZXJDYXNlKCl9YCk7XG4gIGNvbnN0IGluc2VydDogVGFnVHlwZSA9IHtcbiAgICBfa2V5OiBmb3JtYXRJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDY0KSxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IHBhcnNlVmFyQ2hhcihuYW1lLCAzMilcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHRhZ3MgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRUYWdUb0l0ZW0gPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHtpdGVtRG9jSWQsIHRhZ0J5ID0gJycsIHRhZ0RvY0lkfToge2l0ZW1Eb2NJZDogc3RyaW5nLCB0YWdCeT86IHN0cmluZywgdGFnRG9jSWQ6IHN0cmluZ31cbik6IFByb21pc2U8VGFnVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRUYWdUb0l0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3QgYWRkZWQ6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdFRhZ0RvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKHRhZ0RvY0lkKTtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1Eb2NJZCk7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgaXNUYWdnZWQtJHtmb3JtYXRUYWdEb2NJZH0tJHtmb3JtYXRJdGVtRG9jSWR9YCk7XG4gIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaXNUYWdnZWQnKTtcbiAgY29uc3QgdHlwZTogc3RyaW5nID0gZm9ybWF0SXRlbURvY0lkLnNwbGl0KCcvJylbMF07XG4gIGNvbnN0IGZvcm1hdFRhZ0J5OiBzdHJpbmcgPSBwYXJzZUlkKHRhZ0J5KSB8fCBzZXNzaW9uSWQgfHwgJyc7XG4gIGNvbnN0IGVkZ2U6IEVkZ2UgPSB7X2Zyb206IGZvcm1hdFRhZ0RvY0lkLCBfa2V5OiBlZGdlSWQsIF90bzogZm9ybWF0SXRlbURvY0lkLCBhZGRlZCwgdGFnQnk6IGZvcm1hdFRhZ0J5LCB0eXBlfTtcblxuICBhd2FpdCBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtvdmVyd3JpdGVNb2RlOiAnaWdub3JlJywgcmV0dXJuTmV3OiB0cnVlLCBzaWxlbnQ6IHRydWV9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBlZGdlXG4gICAgICB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcblxuICBjb25zdCB0YWdRdWVyeTogQXFsUXVlcnkgPSBhcWxgTEVUIHQgPSBET0NVTUVOVCgke2Zvcm1hdFRhZ0RvY0lkfSkgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHRhZ1F1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGVkZ2VcbiAgICAgIH0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRhZyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0YWc6IFRhZ1R5cGUpOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlVGFnJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qge2Rlc2NyaXB0aW9uLCBuYW1lLCB0YWdJZH0gPSBwYXJzZVRhZyh0YWcpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIobmFtZSwgMzIpO1xuICBjb25zdCB1cGRhdGU6IFRhZ1R5cGUgPSB7XG4gICAgZGVzY3JpcHRpb246IHBhcnNlVmFyQ2hhcihkZXNjcmlwdGlvbiwgNjQpLFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgbmFtZTogZm9ybWF0TmFtZVxuICB9O1xuICBjb25zdCBuZXdUYWdLZXk6IHN0cmluZyA9IHRhZ0lkIHx8IGNyZWF0ZUhhc2goYHRhZy0ke2Zvcm1hdE5hbWUudG9Mb3dlckNhc2UoKX1gKTtcbiAgY29uc3QgaW5zZXJ0OiBUYWdUeXBlID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfaWQ6IGB0YWdzLyR7bmV3VGFnS2V5fWAsXG4gICAgX2tleTogbmV3VGFnS2V5LFxuICAgIGFkZGVkOiBub3csXG4gICAgdGFnQnk6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7bmFtZTogJHtmb3JtYXROYW1lfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIHRhZ3MgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVUYWcgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgdGFnOiBUYWdUeXBlKTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVRhZyc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkID0gZ2V0RG9jSWQoJ3RhZ3MnLCB0YWcpO1xuICBjb25zdCB0YWdRdWVyeTogc3RyaW5nID0gYEZPUiBpdCBGUk9NIGlzVGFnZ2VkXG4gICAgRklMVEVSIGl0Ll9mcm9tID09IFwiJHtmb3JtYXRJdGVtSWR9XCIgfHwgaXQuX3RvID09IFwiJHtmb3JtYXRJdGVtSWR9XCJcbiAgICBSRU1PVkUgaXQgSU4gaXNUYWdnZWRcbiAgICBSRVRVUk4gT0xEYDtcblxuICBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHRhZ1F1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xuXG4gIGNvbnN0IGFxbFFyeSA9IGBMRVQgdCA9IERPQ1VNRU5UKCR7Zm9ybWF0SXRlbUlkfSlcbiAgICBSRU1PVkUgdCBJTiB0YWdzXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVUYWdGcm9tRWRnZSA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCB7dGFnRG9jSWQsIGVkZ2VEb2NJZH0pOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2RlbGV0ZVRhZ0Zyb21FZGdlJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRUYWdEb2NJZCA9IHBhcnNlQXJhbmdvSWQodGFnRG9jSWQpO1xuICBjb25zdCBmb3JtYXRFZGdlRG9jSWQgPSBwYXJzZUFyYW5nb0lkKGVkZ2VEb2NJZCk7XG4gIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaXNUYWdnZWQnKTtcbiAgY29uc3QgZWRnZSA9IHtfaWQ6IGZvcm1hdEVkZ2VEb2NJZH07XG5cbiAgYXdhaXQgZWRnZUNvbGxlY3Rpb24ucmVtb3ZlKGVkZ2UsIHtzaWxlbnQ6IHRydWV9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG5cbiAgY29uc3QgdGFnUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCB0ID0gRE9DVU1FTlQoJHtmb3JtYXRUYWdEb2NJZH0pIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh0YWdRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVGFnRnJvbUl0ZW0gPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwge3RhZ0lkLCBpdGVtSWQsIGl0ZW1UeXBlfSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZGVsZXRlVGFnRnJvbUl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFRhZ0RvY0lkID0gcGFyc2VBcmFuZ29JZChgdGFncy8ke3RhZ0lkfWApO1xuICBjb25zdCBmb3JtYXRJdGVtRG9jSWQgPSBwYXJzZUFyYW5nb0lkKGAke2l0ZW1UeXBlfS8ke2l0ZW1JZH1gKTtcblxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiBpdCBGUk9NIGlzVGFnZ2VkXG4gICAgRklMVEVSIGl0Ll9mcm9tID09IFwiJHtmb3JtYXRUYWdEb2NJZH1cIiB8fCBpdC5fdG8gPT0gXCIke2Zvcm1hdEl0ZW1Eb2NJZH1cIlxuICAgIFJFTU9WRSBpdCBJTiBpc1RhZ2dlZGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RUYWdzID0gKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+XG4gIHdvcmRzKGNvbnRlbnQsIC8jW2EtekEtWlxcZC1dKy9nKS5tYXAoKHRhZzogc3RyaW5nKSA9PiBwYXJzZUlkKHRhZykpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlVGFnc0luSXRlbSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB7aXRlbURvY0lkLCB0YWdzfSk6IFByb21pc2U8VGFnVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICd1cGRhdGVUYWdzSW5JdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaXNUYWdnZWQnKSBhcyBFZGdlQ29sbGVjdGlvbjxUYWdUeXBlPjtcblxuICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uaW5FZGdlcyhpdGVtRG9jSWQsIHt9KVxuICAgIC50aGVuKChlZGdlcykgPT4gUHJvbWlzZS5hbGwoW1xuICAgICAgLi4uKGVkZ2VzIGFzIHVua25vd24gYXMgSXNUYWdnZWRUeXBlW10pXG4gICAgICAgIC5maWx0ZXIoKHtuYW1lOiBleGlzdGluZ1RhZ05hbWV9KSA9PiAhdGFncy5maW5kKCh7bmFtZTogdGFnTmFtZX0pID0+IGV4aXN0aW5nVGFnTmFtZSA9PT0gdGFnTmFtZSkpXG4gICAgICAgIC5tYXAoKHtfaWQ6IGVkZ2VEb2NJZCwgX2Zyb206IHRhZ0RvY0lkfSkgPT4gZGVsZXRlVGFnRnJvbUVkZ2UoY29udGV4dCwge2VkZ2VEb2NJZCwgdGFnRG9jSWR9KSksXG4gICAgICAuLi4odGFncyBhcyB1bmtub3duIGFzIFRhZ1R5cGVbXSlcbiAgICAgICAgLmZpbHRlcigoe25hbWU6IHRhZ05hbWV9KSA9PiAhKGVkZ2VzIGFzIHVua25vd24gYXMgSXNUYWdnZWRUeXBlW10pXG4gICAgICAgICAgLmZpbmQoKHtuYW1lOiBleGlzdGluZ1RhZ05hbWV9KSA9PiBleGlzdGluZ1RhZ05hbWUgPT09IHRhZ05hbWUpKVxuICAgICAgICAubWFwKCh7X2lkOiB0YWdEb2NJZCA9ICcnLCB0YWdCeX0pID0+IGFkZFRhZ1RvSXRlbShjb250ZXh0LCB7aXRlbURvY0lkLCB0YWdCeSwgdGFnRG9jSWR9KSlcbiAgICBdKVxuICAgICAgLnRoZW4oKCkgPT4gdGFncykpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlQXJhbmdvSWQiLCJwYXJzZUlkIiwicGFyc2VWYXJDaGFyIiwid29yZHMiLCJhcWwiLCJwYXJzZVRhZyIsIkVycm9yVHlwZXMiLCJsb2dFcnJvciIsImdldERvY0lkIiwiZ2V0TGltaXQiLCJ1c2VEYiIsImV2ZW50Q2F0ZWdvcnkiLCJnZXRUYWdzIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhY3Rpb24iLCJkYXRhYmFzZU5hbWUiLCJzZWFyY2giLCJmcm9tIiwidG8iLCJ1c2VySWQiLCJsaW1pdCIsImZpbHRlcnMiLCJwdXNoIiwiYXFsUXJ5Iiwiam9pbiIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsImFsbCIsImNhdGNoIiwiZXJyb3IiLCJjYXRlZ29yeSIsInZhbHVlIiwiREFUQUJBU0VfRVJST1IiLCJnZXRUYWdzQnlJdGVtIiwiaXRlbURvY0lkIiwiZm9ybWF0SXRlbUlkIiwidGFnUXVlcnkiLCJnZXRUYWciLCJ0YWdJZCIsImZvcm1hdElkIiwibmV4dCIsImdldFRhZ3NCeU5hbWUiLCJ0YWdOYW1lcyIsImZvcm1hdFRhZ05hbWVzIiwibWFwIiwidGFnTmFtZSIsImZpbHRlciIsImxlbmd0aCIsIlByb21pc2UiLCJyZXNvbHZlIiwiSlNPTiIsInN0cmluZ2lmeSIsImFkZFRhZyIsInRhZyIsIm5vdyIsIkRhdGUiLCJkZXNjcmlwdGlvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIm1vZGlmaWVkIiwiYWRkVGFnVG9JdGVtIiwidGFnQnkiLCJ0YWdEb2NJZCIsInNlc3Npb24iLCJzZXNzaW9uSWQiLCJmb3JtYXRUYWdEb2NJZCIsImZvcm1hdEl0ZW1Eb2NJZCIsImVkZ2VJZCIsImVkZ2VDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsInR5cGUiLCJzcGxpdCIsImZvcm1hdFRhZ0J5IiwiZWRnZSIsIl9mcm9tIiwiX3RvIiwic2F2ZSIsIm92ZXJ3cml0ZU1vZGUiLCJyZXR1cm5OZXciLCJzaWxlbnQiLCJwYXJhbXMiLCJ1cGRhdGVUYWciLCJmb3JtYXROYW1lIiwidXBkYXRlIiwibmV3VGFnS2V5IiwiX2lkIiwiZGVsZXRlVGFnIiwiZGVsZXRlVGFnRnJvbUVkZ2UiLCJlZGdlRG9jSWQiLCJmb3JtYXRFZGdlRG9jSWQiLCJyZW1vdmUiLCJkZWxldGVUYWdGcm9tSXRlbSIsIml0ZW1JZCIsIml0ZW1UeXBlIiwiYXFsUXVlcnkiLCJleHRyYWN0VGFncyIsImNvbnRlbnQiLCJ1cGRhdGVUYWdzSW5JdGVtIiwidGFncyIsImluRWRnZXMiLCJlZGdlcyIsImV4aXN0aW5nVGFnTmFtZSIsImZpbmQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsRUFBRUMsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFlBQVksUUFBTywrQkFBK0I7QUFDOUYsU0FBUUMsS0FBSyxRQUFPLDZCQUE2QjtBQUNqRCxTQUFRQyxHQUFHLFFBQU8sV0FBVztBQUk3QixTQUFRQyxRQUFRLFFBQU8sNEJBQTRCO0FBQ25ELFNBQVFDLFVBQVUsUUFBTywwQkFBMEI7QUFDbkQsU0FBUUMsUUFBUSxRQUFPLDZCQUE2QjtBQUNwRCxTQUFRQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxRQUFPLDRCQUE0QjtBQU9wRSxNQUFNQyxnQkFBd0I7QUFROUIsT0FBTyxNQUFNQyxVQUFVLENBQ3JCQyxTQUNBQyxVQUFzQixDQUFDLENBQUM7SUFFeEIsTUFBTUMsU0FBaUI7SUFDdkIsTUFBTSxFQUFDQyxZQUFZLEVBQUMsR0FBR0g7SUFDdkIsTUFBTSxFQUFDSSxTQUFTLEVBQUUsRUFBRUMsT0FBTyxDQUFDLEVBQUVDLEtBQUssRUFBRSxFQUFFQyxNQUFNLEVBQUMsR0FBR047SUFDakQsTUFBTU8sUUFBdUJaLFNBQVNTLE1BQU1DO0lBRTVDLE1BQU1HLFVBQW9CLEVBQUU7SUFFNUIsSUFBR0wsUUFBUTtRQUNUSyxRQUFRQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUVOLE9BQU8sR0FBRyxDQUFDO0lBQzVDO0lBRUEsSUFBR0csUUFBUTtRQUNURSxRQUFRQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUVILE9BQU8sQ0FBQyxDQUFDO0lBQ3hDO0lBRUEsTUFBTUksU0FBaUIsQ0FBQztXQUNmLEVBQUVGLFFBQVFHLElBQUksQ0FBQyxRQUFRO0lBQzlCLEVBQUVKLE1BQU1qQixHQUFHLENBQUM7O1lBRUosQ0FBQztJQUVYLE9BQU9NLE1BQU1NLGNBQWNVLEtBQUssQ0FBQ0YsUUFD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
|
package/lib/actions/users.d.ts
CHANGED
|
@@ -71,3 +71,4 @@ export declare const signOut: (context: ApiContext) => Promise<boolean>;
|
|
|
71
71
|
export declare const getActiveUserCount: (context: ApiContext) => Promise<number>;
|
|
72
72
|
export declare const getUserByToken: (context: ApiContext, token: string) => Promise<UserType>;
|
|
73
73
|
export {};
|
|
74
|
+
//# sourceMappingURL=users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/actions/users.ts"],"names":[],"mappings":"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"}
|