@nlabs/reaktor 0.10.1 → 0.10.2
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/actions/index.html +21 -36
- package/coverage/actions/notifications.ts.html +223 -0
- package/coverage/actions/posts.ts.html +2356 -0
- package/coverage/adapters/arangoAdapter.ts.html +170 -20
- package/coverage/adapters/fileAdapter.ts.html +445 -0
- package/coverage/adapters/index.html +72 -42
- package/coverage/adapters/postAdapter.ts.html +436 -0
- package/coverage/adapters/reaktorAdapter.ts.html +201 -18
- package/coverage/adapters/tagAdapter.ts.html +274 -25
- package/coverage/adapters/userAdapter.ts.html +829 -0
- package/coverage/analyticsUtils.ts.html +286 -0
- package/coverage/config.ts.html +766 -0
- package/coverage/index.html +81 -51
- package/coverage/mocks/group.ts.html +5 -5
- package/coverage/mocks/image.ts.html +18 -12
- package/coverage/mocks/index.html +37 -7
- package/coverage/mocks/post.ts.html +8 -8
- package/coverage/mocks/tag.ts.html +2 -2
- package/coverage/mocks/user.ts.html +18 -15
- package/coverage/testUtils.ts.html +1309 -0
- package/coverage/translationQueue.ts.html +592 -0
- package/coverage/types/error.types.ts.html +148 -0
- package/coverage/types/index.html +2 -2
- package/coverage/utils/adapterUtils.ts.html +39 -27
- package/coverage/utils/analyticsUtils.ts.html +35 -41
- package/coverage/utils/authUtils.ts.html +328 -0
- package/coverage/utils/dbI18n.ts.html +280 -0
- package/coverage/utils/googleTranslate.ts.html +385 -0
- package/coverage/utils/index.html +29 -44
- package/coverage/utils/localeUtils.ts.html +193 -0
- package/coverage/utils/sessionUtils.ts.html +211 -0
- package/coverage/utils/testUtils.ts.html +1309 -0
- package/lex.config.mjs +34 -0
- package/lib/actions/apps.d.ts +25 -0
- package/lib/actions/apps.js +11 -11
- package/lib/actions/connections.d.ts +5 -0
- package/lib/actions/connections.js +6 -6
- package/lib/actions/content.d.ts +13 -0
- package/lib/actions/content.js +9 -9
- package/lib/actions/conversations.d.ts +16 -0
- package/lib/actions/conversations.js +17 -17
- package/lib/actions/dynamodb.d.ts +12 -0
- package/lib/actions/dynamodb.js +2 -2
- package/lib/actions/email.d.ts +8 -0
- package/lib/actions/email.js +2 -2
- package/lib/actions/files.d.ts +19 -0
- package/lib/actions/files.js +3 -3
- package/lib/actions/groups.d.ts +13 -0
- package/lib/actions/groups.js +15 -15
- package/lib/actions/images.d.ts +33 -0
- package/lib/actions/images.js +22 -22
- package/lib/actions/index.d.ts +27 -0
- package/lib/actions/index.js +2 -2
- package/lib/actions/ios.d.ts +7 -0
- package/lib/actions/ios.js +4 -4
- package/lib/actions/locations.d.ts +6 -0
- package/lib/actions/locations.js +3 -3
- package/lib/actions/messages.d.ts +13 -0
- package/lib/actions/messages.js +3 -3
- package/lib/actions/notifications.d.ts +9 -0
- package/lib/actions/notifications.js +2 -2
- package/lib/actions/payments.d.ts +12 -0
- package/lib/actions/payments.js +6 -6
- package/lib/actions/posts.d.ts +25 -0
- package/lib/actions/posts.js +30 -30
- package/lib/actions/profiles.d.ts +4 -0
- package/lib/actions/profiles.js +4 -4
- package/lib/actions/reactions.d.ts +32 -0
- package/lib/actions/reactions.js +16 -16
- package/lib/actions/s3.d.ts +11 -0
- package/lib/actions/s3.js +2 -2
- package/lib/actions/search.d.ts +3 -0
- package/lib/actions/search.js +3 -3
- package/lib/actions/sms.d.ts +2 -0
- package/lib/actions/sms.js +2 -2
- package/lib/actions/statistics.d.ts +4 -0
- package/lib/actions/statistics.js +4 -4
- package/lib/actions/subscriptions.d.ts +7 -0
- package/lib/actions/subscriptions.js +6 -6
- package/lib/actions/tags.d.ts +34 -0
- package/lib/actions/tags.js +6 -6
- package/lib/actions/users.d.ts +73 -0
- package/lib/actions/users.js +45 -42
- package/lib/actions/websockets.d.ts +20 -0
- package/lib/actions/websockets.js +8 -8
- package/lib/adapters/arangoAdapter.d.ts +8 -0
- package/lib/adapters/arangoAdapter.js +2 -2
- package/lib/adapters/contentAdapter.d.ts +8 -0
- package/lib/adapters/contentAdapter.js +2 -2
- package/lib/adapters/fileAdapter.d.ts +9 -0
- package/lib/adapters/fileAdapter.js +2 -2
- package/lib/adapters/imageAdapter.d.ts +8 -0
- package/lib/adapters/imageAdapter.js +2 -2
- package/lib/adapters/index.d.ts +9 -0
- package/lib/adapters/index.js +2 -0
- package/lib/adapters/messageAdapter.d.ts +8 -0
- package/lib/adapters/messageAdapter.js +2 -2
- package/lib/adapters/postAdapter.d.ts +8 -0
- package/lib/adapters/postAdapter.js +2 -2
- package/lib/adapters/reaktorAdapter.d.ts +16 -0
- package/lib/adapters/reaktorAdapter.js +2 -2
- package/lib/adapters/tagAdapter.d.ts +9 -0
- package/lib/adapters/tagAdapter.js +2 -2
- package/lib/adapters/userAdapter.d.ts +13 -0
- package/lib/adapters/userAdapter.js +2 -2
- package/lib/config.d.ts +57 -0
- package/lib/config.js +2 -2
- package/lib/handlers/graphqlHandler.d.ts +4 -0
- package/lib/handlers/graphqlHandler.js +2 -2
- package/lib/index.d.ts +19 -0
- package/lib/index.js +2 -2
- package/lib/lambdas/actions/websockets.d.ts +7 -0
- package/lib/lambdas/actions/websockets.js +6 -6
- package/lib/lambdas/authorizer.d.ts +20 -0
- package/lib/lambdas/authorizer.js +2 -2
- package/lib/lambdas/connection.d.ts +12 -0
- package/lib/lambdas/connection.js +2 -2
- package/lib/lambdas/utils/message.d.ts +1 -0
- package/lib/lambdas/utils/websocket.d.ts +7 -0
- package/lib/lambdas/utils/websocket.js +2 -2
- package/lib/mocks/conversation.d.ts +8 -0
- package/lib/mocks/file.d.ts +11 -0
- package/lib/mocks/group.d.ts +17 -0
- package/lib/mocks/group.js +2 -2
- package/lib/mocks/image.d.ts +3 -0
- package/lib/mocks/image.js +2 -2
- package/lib/mocks/post.d.ts +38 -0
- package/lib/mocks/post.js +2 -2
- package/lib/mocks/tag.d.ts +2 -0
- package/lib/mocks/tag.js +1 -1
- package/lib/mocks/user.d.ts +4 -0
- package/lib/mocks/user.js +2 -2
- package/lib/mutations/content.d.ts +2 -0
- package/lib/mutations/content.js +2 -0
- package/lib/mutations/index.d.ts +11 -0
- package/lib/mutations/index.js +2 -2
- package/lib/mutations/locations.d.ts +2 -0
- package/lib/mutations/locations.js +2 -2
- package/lib/mutations/messages.d.ts +2 -0
- package/lib/mutations/messages.js +2 -2
- package/lib/mutations/posts.d.ts +2 -0
- package/lib/mutations/posts.js +2 -2
- package/lib/mutations/profiles.d.ts +2 -0
- package/lib/mutations/profiles.js +2 -2
- package/lib/mutations/reactions.d.ts +2 -0
- package/lib/mutations/reactions.js +2 -2
- package/lib/mutations/statistics.d.ts +2 -0
- package/lib/mutations/statistics.js +2 -2
- package/lib/mutations/subscriptions.d.ts +2 -0
- package/lib/mutations/subscriptions.js +2 -2
- package/lib/mutations/tags.d.ts +2 -0
- package/lib/mutations/tags.js +2 -2
- package/lib/mutations/users.d.ts +1 -0
- package/lib/mutations/users.js +2 -2
- package/lib/objectTypes/app.d.ts +3 -0
- package/lib/objectTypes/app.js +2 -2
- package/lib/objectTypes/bankAccount.d.ts +1 -0
- package/lib/objectTypes/connection.d.ts +1 -0
- package/lib/objectTypes/connection.js +2 -2
- package/lib/objectTypes/content.d.ts +2 -0
- package/lib/objectTypes/content.js +2 -0
- package/lib/objectTypes/conversation.d.ts +2 -0
- package/lib/objectTypes/conversation.js +2 -2
- package/lib/objectTypes/creditCard.d.ts +1 -0
- package/lib/objectTypes/document.d.ts +1 -0
- package/lib/objectTypes/error.d.ts +1 -0
- package/lib/objectTypes/external.d.ts +1 -0
- package/lib/objectTypes/external.js +2 -2
- package/lib/objectTypes/file.d.ts +2 -0
- package/lib/objectTypes/file.js +2 -2
- package/lib/objectTypes/filter.d.ts +1 -0
- package/lib/objectTypes/group.d.ts +3 -0
- package/lib/objectTypes/group.js +2 -2
- package/lib/objectTypes/iapSubscription.d.ts +1 -0
- package/lib/objectTypes/image.d.ts +6 -0
- package/lib/objectTypes/image.js +2 -2
- package/lib/objectTypes/index.d.ts +26 -0
- package/lib/objectTypes/index.js +2 -2
- package/lib/objectTypes/location.d.ts +2 -0
- package/lib/objectTypes/location.js +2 -2
- package/lib/objectTypes/message.d.ts +2 -0
- package/lib/objectTypes/message.js +2 -2
- package/lib/objectTypes/passcode.d.ts +1 -0
- package/lib/objectTypes/passcode.js +2 -2
- package/lib/objectTypes/plan.d.ts +2 -0
- package/lib/objectTypes/plan.js +2 -2
- package/lib/objectTypes/post.d.ts +2 -0
- package/lib/objectTypes/post.js +2 -2
- package/lib/objectTypes/profile.d.ts +3 -0
- package/lib/objectTypes/profile.js +2 -2
- package/lib/objectTypes/reaction.d.ts +2 -0
- package/lib/objectTypes/reaction.js +2 -2
- package/lib/objectTypes/relation.d.ts +1 -0
- package/lib/objectTypes/relation.js +2 -2
- package/lib/objectTypes/search.d.ts +1 -0
- package/lib/objectTypes/search.js +2 -2
- package/lib/objectTypes/statistics.d.ts +1 -0
- package/lib/objectTypes/statistics.js +2 -2
- package/lib/objectTypes/subscription.d.ts +2 -0
- package/lib/objectTypes/subscription.js +2 -2
- package/lib/objectTypes/tag.d.ts +2 -0
- package/lib/objectTypes/tag.js +2 -2
- package/lib/objectTypes/user.d.ts +4 -0
- package/lib/objectTypes/user.js +2 -2
- package/lib/queries/content.d.ts +2 -0
- package/lib/queries/content.js +2 -0
- package/lib/queries/index.d.ts +10 -0
- package/lib/queries/index.js +2 -2
- package/lib/queries/locations.d.ts +2 -0
- package/lib/queries/locations.js +2 -2
- package/lib/queries/messages.d.ts +2 -0
- package/lib/queries/messages.js +2 -2
- package/lib/queries/posts.d.ts +2 -0
- package/lib/queries/posts.js +2 -2
- package/lib/queries/reactions.d.ts +2 -0
- package/lib/queries/reactions.js +2 -2
- package/lib/queries/statistics.d.ts +2 -0
- package/lib/queries/statistics.js +2 -2
- package/lib/queries/subscriptions.d.ts +2 -0
- package/lib/queries/subscriptions.js +2 -2
- package/lib/queries/tags.d.ts +2 -0
- package/lib/queries/tags.js +2 -2
- package/lib/queries/users.d.ts +1 -0
- package/lib/queries/users.js +2 -2
- package/lib/templates/email/layout.d.ts +2 -0
- package/lib/templates/email/passwordForgot.d.ts +2 -0
- package/lib/templates/email/passwordRecovery.d.ts +2 -0
- package/lib/templates/email/verifyEmail.d.ts +2 -0
- package/lib/templates/email/welcome.d.ts +2 -0
- package/lib/templates/sms/passwordForgot.d.ts +2 -0
- package/lib/templates/sms/passwordRecovery.d.ts +2 -0
- package/lib/templates/sms/verifyEmail.d.ts +2 -0
- package/lib/templates/sms/verifyPhone.d.ts +2 -0
- package/lib/templates/sms/welcome.d.ts +2 -0
- package/lib/types/apps.types.d.ts +50 -0
- package/lib/types/apps.types.js +1 -1
- package/lib/types/arangodb.types.d.ts +38 -0
- package/lib/types/auth.types.d.ts +15 -0
- package/lib/types/connections.types.d.ts +9 -0
- package/lib/types/content.types.d.ts +31 -0
- package/lib/types/conversations.types.d.ts +31 -0
- package/lib/types/email.types.d.ts +17 -0
- package/lib/types/error.types.d.ts +21 -0
- package/lib/types/files.types.d.ts +27 -0
- package/lib/types/google.types.d.ts +33 -0
- package/lib/types/groups.types.d.ts +22 -0
- package/lib/types/images.types.d.ts +56 -0
- package/lib/types/index.d.ts +26 -0
- package/lib/types/index.js +2 -2
- package/lib/types/locations.types.d.ts +22 -0
- package/lib/types/messages.types.d.ts +20 -0
- package/lib/types/notifications.types.d.ts +23 -0
- package/lib/types/payments.types.d.ts +113 -0
- package/lib/types/posts.types.d.ts +32 -0
- package/lib/types/profiles.types.d.ts +20 -0
- package/lib/types/statistics.types.d.ts +3 -0
- package/lib/types/tags.types.d.ts +19 -0
- package/lib/types/users.types.d.ts +110 -0
- package/lib/types/websockets.types.d.ts +22 -0
- package/lib/utils/adapterUtils.d.ts +5 -0
- package/lib/utils/analyticsUtils.d.ts +25 -0
- package/lib/utils/analyticsUtils.js +2 -2
- package/lib/utils/arangodbUtils.d.ts +70 -0
- package/lib/utils/arangodbUtils.js +3 -3
- package/lib/utils/authUtils.d.ts +23 -0
- package/lib/utils/authUtils.js +2 -2
- package/lib/utils/contextUtils.d.ts +3 -0
- package/lib/utils/contextUtils.js +1 -1
- package/lib/utils/dbI18n.d.ts +10 -0
- package/lib/utils/dbI18n.example.d.ts +20 -0
- package/lib/utils/dbI18n.example.js +3 -3
- package/lib/utils/dbI18n.js +2 -2
- package/lib/utils/googleTranslate.d.ts +6 -0
- package/lib/utils/googleTranslate.js +2 -2
- package/lib/utils/graphqlUtils.d.ts +10 -0
- package/lib/utils/graphqlUtils.js +2 -2
- package/lib/utils/index.d.ts +18 -0
- package/lib/utils/index.js +2 -2
- package/lib/utils/languageDetection.d.ts +8 -0
- package/lib/utils/languageDetection.js +1 -1
- package/lib/utils/localeUtils.d.ts +11 -0
- package/lib/utils/localeUtils.example.d.ts +5 -0
- package/lib/utils/localeUtils.example.js +2 -2
- package/lib/utils/localeUtils.js +1 -1
- package/lib/utils/middlewareUtils.d.ts +2 -0
- package/lib/utils/middlewareUtils.js +2 -2
- package/lib/utils/sessionUtils.d.ts +18 -0
- package/lib/utils/sessionUtils.js +2 -2
- package/lib/utils/stripeUtils.d.ts +7 -0
- package/lib/utils/stripeUtils.js +2 -2
- package/lib/utils/templateUtils.d.ts +3 -0
- package/lib/utils/testUtils.d.ts +95 -0
- package/lib/utils/testUtils.js +2 -2
- package/lib/utils/translationQueue.d.ts +29 -0
- package/lib/utils/translationQueue.example.d.ts +33 -0
- package/lib/utils/translationQueue.example.js +2 -2
- package/lib/utils/translationQueue.js +2 -2
- package/package.json +22 -21
- package/tsconfig.build.json +21 -0
- package/tsconfig.lint.json +33 -0
- package/tsconfig.test.json +31 -0
- package/dist/actions/apps.js +0 -242
- package/dist/actions/connections.js +0 -90
- package/dist/actions/conversations.js +0 -350
- package/dist/actions/dynamodb.js +0 -150
- package/dist/actions/email.js +0 -152
- package/dist/actions/files.js +0 -283
- package/dist/actions/groups.js +0 -292
- package/dist/actions/images.js +0 -735
- package/dist/actions/index.js +0 -66
- package/dist/actions/ios.js +0 -164
- package/dist/actions/locations.js +0 -122
- package/dist/actions/messages.js +0 -208
- package/dist/actions/notifications.js +0 -59
- package/dist/actions/payments.js +0 -497
- package/dist/actions/personas.js +0 -110
- package/dist/actions/posts.js +0 -595
- package/dist/actions/reactions.js +0 -322
- package/dist/actions/s3.js +0 -133
- package/dist/actions/search.js +0 -90
- package/dist/actions/sms.js +0 -108
- package/dist/actions/statistics.js +0 -62
- package/dist/actions/subscription.js +0 -220
- package/dist/actions/tags.js +0 -292
- package/dist/actions/users.js +0 -784
- package/dist/actions/websockets.js +0 -174
- package/dist/adapters/arangoAdapter.js +0 -46
- package/dist/adapters/fileAdapter.js +0 -76
- package/dist/adapters/imageAdapter.js +0 -40
- package/dist/adapters/messageAdapter.js +0 -49
- package/dist/adapters/postAdapter.js +0 -70
- package/dist/adapters/reaktorAdapter.js +0 -44
- package/dist/adapters/tagAdapter.js +0 -50
- package/dist/adapters/userAdapter.js +0 -115
- package/dist/config.js +0 -125
- package/dist/index.js +0 -66
- package/dist/lambdas/actions/websockets.js +0 -132
- package/dist/lambdas/authorizer.js +0 -67
- package/dist/lambdas/connection.js +0 -91
- package/dist/lambdas/utils/message.js +0 -42
- package/dist/lambdas/utils/websocket.js +0 -105
- package/dist/mocks/conversation.js +0 -35
- package/dist/mocks/file.js +0 -38
- package/dist/mocks/group.js +0 -47
- package/dist/mocks/image.js +0 -44
- package/dist/mocks/nlabs.png +0 -0
- package/dist/mocks/post.js +0 -55
- package/dist/mocks/tag.js +0 -37
- package/dist/mocks/user.js +0 -88
- package/dist/mutations/index.js +0 -26
- package/dist/mutations/locations.js +0 -44
- package/dist/mutations/messages.js +0 -86
- package/dist/mutations/personas.js +0 -100
- package/dist/mutations/posts.js +0 -53
- package/dist/mutations/reactions.js +0 -51
- package/dist/mutations/statistics.js +0 -39
- package/dist/mutations/subscriptions.js +0 -56
- package/dist/mutations/tags.js +0 -120
- package/dist/mutations/users.js +0 -116
- package/dist/objectTypes/app.js +0 -173
- package/dist/objectTypes/bankAccount.js +0 -76
- package/dist/objectTypes/connection.js +0 -48
- package/dist/objectTypes/conversation.js +0 -77
- package/dist/objectTypes/creditCard.js +0 -86
- package/dist/objectTypes/document.js +0 -46
- package/dist/objectTypes/error.js +0 -46
- package/dist/objectTypes/external.js +0 -74
- package/dist/objectTypes/file.js +0 -100
- package/dist/objectTypes/filter.js +0 -43
- package/dist/objectTypes/group.js +0 -123
- package/dist/objectTypes/iapSubscription.js +0 -40
- package/dist/objectTypes/image.js +0 -129
- package/dist/objectTypes/index.js +0 -68
- package/dist/objectTypes/location.js +0 -109
- package/dist/objectTypes/message.js +0 -96
- package/dist/objectTypes/passcode.js +0 -42
- package/dist/objectTypes/persona.js +0 -87
- package/dist/objectTypes/plan.js +0 -95
- package/dist/objectTypes/post.js +0 -125
- package/dist/objectTypes/reaction.js +0 -61
- package/dist/objectTypes/relation.js +0 -49
- package/dist/objectTypes/search.js +0 -72
- package/dist/objectTypes/statistics.js +0 -39
- package/dist/objectTypes/subscription.js +0 -117
- package/dist/objectTypes/tag.js +0 -65
- package/dist/objectTypes/user.js +0 -144
- package/dist/queries/index.js +0 -33
- package/dist/queries/locations.js +0 -45
- package/dist/queries/messages.js +0 -52
- package/dist/queries/posts.js +0 -154
- package/dist/queries/reactions.js +0 -56
- package/dist/queries/statistics.js +0 -39
- package/dist/queries/subscriptions.js +0 -44
- package/dist/queries/tags.js +0 -75
- package/dist/queries/users.js +0 -64
- package/dist/templates/email/layout.js +0 -302
- package/dist/templates/email/passwordForgot.js +0 -38
- package/dist/templates/email/passwordRecovery.js +0 -35
- package/dist/templates/email/verifyEmail.js +0 -38
- package/dist/templates/email/welcome.js +0 -38
- package/dist/templates/sms/passwordForgot.js +0 -24
- package/dist/templates/sms/passwordRecovery.js +0 -24
- package/dist/templates/sms/verifyEmail.js +0 -24
- package/dist/templates/sms/verifyPhone.js +0 -24
- package/dist/templates/sms/welcome.js +0 -24
- package/dist/types/apps.js +0 -32
- package/dist/types/arangodb.js +0 -16
- package/dist/types/auth.js +0 -16
- package/dist/types/connections.js +0 -16
- package/dist/types/conversations.js +0 -16
- package/dist/types/email.js +0 -16
- package/dist/types/error.js +0 -44
- package/dist/types/files.js +0 -16
- package/dist/types/google.js +0 -16
- package/dist/types/groups.js +0 -16
- package/dist/types/images.js +0 -16
- package/dist/types/index.js +0 -60
- package/dist/types/locations.js +0 -16
- package/dist/types/messages.js +0 -16
- package/dist/types/notifications.js +0 -16
- package/dist/types/payments.js +0 -16
- package/dist/types/personas.js +0 -16
- package/dist/types/posts.js +0 -16
- package/dist/types/statistics.js +0 -16
- package/dist/types/tags.js +0 -16
- package/dist/types/users.js +0 -16
- package/dist/types/websockets.js +0 -16
- package/dist/utils/adapterUtils.js +0 -45
- package/dist/utils/analyticsUtils.js +0 -72
- package/dist/utils/arangodbUtils.js +0 -165
- package/dist/utils/auth.js +0 -57
- package/dist/utils/index.js +0 -30
- package/dist/utils/session.js +0 -60
- package/jest.config.js +0 -17
- package/jest.setup.js +0 -36
- package/lex.config.cjs +0 -13
- package/lib/mutations/locations.integration.js +0 -2
- package/lib/mutations/messages.integration.js +0 -2
- package/lib/mutations/posts.integration.js +0 -2
- package/lib/mutations/profiles.integration.js +0 -2
- package/lib/mutations/reactions.integration.js +0 -2
- package/lib/mutations/statistics.integration.js +0 -2
- package/lib/mutations/subscriptions.integration.js +0 -2
- package/lib/mutations/tags.integration.js +0 -2
- package/lib/mutations/users.integration.js +0 -2
- package/lib/queries/locations.integration.js +0 -2
- package/lib/queries/messages.integration.js +0 -2
- package/lib/queries/posts.integration.js +0 -2
- package/lib/queries/reactions.integration.js +0 -2
- package/lib/queries/tags.integration.js +0 -2
- package/lib/queries/users.integration.js +0 -2
package/lib/actions/reactions.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import{createHash as $,parseArangoId as
|
|
2
|
-
FILTER r._from == ${
|
|
1
|
+
import{parseNum as B}from"@nlabs/utils/parsers/numbers";import{createHash as $,parseArangoId as N,parseChar as f,parseId as U,parseString as b}from"@nlabs/utils/parsers/strings";import{aql as T}from"arangojs";import{ErrorTypes as p}from"../types/error.types.js";import{logError as E,logException as O}from"../utils/analyticsUtils.js";import{getLimit as q,useDb as g}from"../utils/arangodbUtils.js";const u="reactions",_=(e={})=>{const{from:o=0,to:r=30}=e;return{limit:q(o,r)}},S=(e,o,r={},a=!1)=>{const n="addReaction",{databaseName:s,session:{userId:i}={}}=e;if(!i)throw O({action:n,category:u,label:"unauthorized",value:"invalid_session"},e);const{name:l="like",value:t}=r,m=N(o),c=f(l,32),d=b(t,32),R=g(s).collection("hasReaction"),y=`users/${i}`,A=$(`reaction-${m}-${i}`),I={_from:y,_key:A,_to:m,added:Date.now(),name:c,value:t!==void 0?d:void 0};if(!a){const D=T`FOR r IN hasReaction
|
|
2
|
+
FILTER r._from == ${y} && r._to == ${m} && r.name == ${c}
|
|
3
3
|
LIMIT 1
|
|
4
|
-
RETURN r`;return g(s).query(D).then(
|
|
4
|
+
RETURN r`;return g(s).query(D).then(h=>h.next()).then(h=>h||R.save(I,{returnNew:!0}).then(()=>I)).catch(h=>E({action:n,category:u,label:p.DATABASE_ERROR},h,e).then(()=>null))}return R.save(I,{returnNew:!0}).then(()=>I)},P=(e,o)=>{const r="deleteReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const s=`users/${U(n)}`,i=`hasReaction/${U(o)}`,l=T`LET r = DOCUMENT(${i})
|
|
5
5
|
FILTER r._from == ${s}
|
|
6
6
|
LIMIT 1
|
|
7
7
|
REMOVE r IN hasReaction
|
|
8
|
-
RETURN OLD`;return g(a).query(l).then(t=>t.next()).catch(t=>
|
|
8
|
+
RETURN OLD`;return g(a).query(l).then(t=>t.next()).catch(t=>E({action:r,category:u,label:p.DATABASE_ERROR},t,e).then(()=>null))},M=(e,o,r)=>{const a="deleteReactionByItem",{databaseName:n,session:{userId:s}={}}=e;if(!s)throw O({action:a,category:u,label:"unauthorized",value:"invalid_session"},e);const i=`users/${U(s)}`,l=N(o),t=f(r),m=T`FOR r in hasReaction
|
|
9
9
|
FILTER r._from == ${i} && r._to == ${l} && r.name == ${t}
|
|
10
10
|
LIMIT 1
|
|
11
11
|
REMOVE r IN hasReaction
|
|
12
|
-
RETURN OLD`;return g(
|
|
13
|
-
INSERT ${
|
|
12
|
+
RETURN OLD`;return g(n).query(m).then(c=>c.next()).catch(c=>E({action:a,category:u,label:p.DATABASE_ERROR},c,e).then(()=>null))},w=(e,o={})=>{const r="updateReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e);const{id:s,name:i,value:l}=o,t=N(s),m=f(i,32),c=b(l,32),d=$(`reaction-${t}-${n}`),R={name:m,value:c},y={...R,_key:d,added:Date.now()},A=T`UPSERT ${{_id:t}}
|
|
13
|
+
INSERT ${y}
|
|
14
14
|
UPDATE ${R}
|
|
15
15
|
LIMIT 1
|
|
16
|
-
RETURN NEW`;return g(a).query(A).then(
|
|
16
|
+
RETURN NEW`;return g(a).query(A).then(I=>I.next()).catch(I=>E({action:r,category:u,label:p.DATABASE_ERROR},I,e).then(()=>null))},V=(e,o,r)=>{const a="getReactionCount",{databaseName:n}=e,s=N(o),i=f(r,32),l=T`FOR i, r IN INBOUND ${s} hasReaction
|
|
17
17
|
FILTER r.name == ${i}
|
|
18
18
|
COLLECT WITH COUNT INTO count
|
|
19
|
-
RETURN count`;return g(
|
|
20
|
-
FILTER r.name == ${t} && r._from == ${
|
|
19
|
+
RETURN count`;return g(n).query(l).then(t=>t.next()).catch(t=>E({action:a,category:u,label:p.DATABASE_ERROR},t,e).then(()=>{}))},j=(e,o,r,a)=>{const n="getReactionCountByUser",{databaseName:s,session:{userId:i}={}}=e,l=N(o),t=f(a,32),m=`users/${i}`,c=T`FOR i, r IN INBOUND ${l} hasReaction
|
|
20
|
+
FILTER r.name == ${t} && r._from == ${m}
|
|
21
21
|
COLLECT reactionValue = r.value INTO reactionItems
|
|
22
|
-
RETURN MERGE(r, {count: LENGTH(reactionItems[*].r.value)})`;return g(s).query(c).then(d=>d.all()).catch(d=>
|
|
22
|
+
RETURN MERGE(r, {count: LENGTH(reactionItems[*].r.value)})`;return g(s).query(c).then(d=>d.all()).catch(d=>E({action:n,category:u,label:p.DATABASE_ERROR},d,e).then(()=>[]))},G=(e,o={})=>{const r="getGroupUsersByReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e);const{filters:s=[],id:i,value:l}=o,t=f(l,32),m=N(i),c=s.map(R=>{const{conditional:y="",name:A,value:I}=R;let D=y;switch(y!==">="&&y!=="<="&&y!==">"&&y!=="<"&&(D="=="),A){case"added":return`r.added ${D} ${B(I)}`;default:return""}}).concat([`r.value == "${t}"`,"u._id == r._from"]).join(" && "),d=`FOR g, r IN INBOUND "${m}" hasReaction
|
|
23
23
|
FOR u IN users
|
|
24
24
|
FILTER ${c}
|
|
25
|
-
RETURN u`;return g(a).query(d).then(R=>R.all()).catch(R=>
|
|
25
|
+
RETURN u`;return g(a).query(d).then(R=>R.all()).catch(R=>E({action:r,category:u,label:p.DATABASE_ERROR},R,e).then(()=>[]))},z=(e,o,r,a)=>{const n="getReactionsByItem",{databaseName:s}=e,i=N(o),l=f(r,32),{limit:t}=_(a),m=`FOR i, r IN INBOUND "${i}" hasReaction
|
|
26
26
|
FILTER r.name == "${l}"
|
|
27
27
|
${t.aql}
|
|
28
|
-
RETURN MERGE(i, {reaction: r})`;return g(s).query(
|
|
28
|
+
RETURN MERGE(i, {reaction: r})`;return g(s).query(m).then(c=>c.all()).catch(c=>E({action:n,category:u,label:p.DATABASE_ERROR},c,e).then(()=>[]))},k=(e,o,r,a)=>{const n="getItemsByReaction",{databaseName:s}=e,i=N(o),l=f(r,32),{limit:t}=_(a),m=`FOR u, r IN OUTBOUND "${i}" hasReaction
|
|
29
29
|
FILTER r.name == ${l}
|
|
30
30
|
${t.aql}
|
|
31
|
-
RETURN MERGE(u, {reaction: r})`;return g(s).query(
|
|
32
|
-
FILTER r.name == "${
|
|
31
|
+
RETURN MERGE(u, {reaction: r})`;return g(s).query(m).then(c=>c.all()).catch(c=>E({action:n,category:u,label:p.DATABASE_ERROR},c,e).then(()=>[]))},H=(e,o,r,a="OUTBOUND")=>{const n="hasReaction",{databaseName:s,session:{userId:i}={}}=e,l=`users/${i}`,t=N(o),d=`FOR i, r IN ${a==="OUTBOUND"?"OUTBOUND":"INBOUND"} "${l}" hasReaction
|
|
32
|
+
FILTER r.name == "${r}" && ${a==="OUTBOUND"?"r._to":"r._from"} == "${t}"
|
|
33
33
|
LIMIT 1
|
|
34
|
-
RETURN r`;return g(s).query(d).then(R=>R.next()).then(R=>R?R.value==="true":!1).catch(R=>
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvcmVhY3Rpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUFyYW5nb0lkLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dCwgQXJhbmdvRGJDb2xsZWN0aW9uLCBBcmFuZ29EYkxpbWl0LCBRdWVyeUZpbHRlciwgVXNlclR5cGUsIFVzZXJSZWFjdGlvblF1ZXJ5fSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFJlYWN0aW9uRGlyZWN0aW9uID0gJ0lOQk9VTkQnIHwgJ09VVEJPVU5EJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIHJlYWRvbmx5IF9mcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBfa2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBfdG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGU/OiBBcmFuZ29EYkNvbGxlY3Rpb247XG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFjdGlvbk9wdGlvbnMgPSAob3B0aW9uczogUmVhY3Rpb25PcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBsaW1pdDogZ2V0TGltaXQoZnJvbSwgdG8pIGFzIEFyYW5nb0RiTGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9LFxuICBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lOiBpdGVtTmFtZSA9ICdsaWtlJyxcbiAgICB2YWx1ZTogaXRlbVZhbHVlXG4gIH0gPSByZWFjdGlvbjtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1OYW1lLCAzMik7XG4gIGNvbnN0IGZvcm1hdFZhbHVlOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhpdGVtVmFsdWUsIDMyKTtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gdXNlRGIoZGF0YWJhc2VOYW1lKS5jb2xsZWN0aW9uKCdoYXNSZWFjdGlvbicpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SXRlbUlkfS0ke3Nlc3Npb25JZH1gKTtcbiAgY29uc3QgZWRnZTogUmVhY3Rpb24gPSB7XG4gICAgX2Zyb206IHNlc3Npb25Eb2NJZCxcbiAgICBfa2V5OiBlZGdlSWQsXG4gICAgX3RvOiBmb3JtYXRJdGVtSWQsXG4gICAgYWRkZWQ6IERhdGUubm93KCksXG4gICAgbmFtZTogZm9ybWF0UmVhY3Rpb25OYW1lLFxuICAgIHZhbHVlOiBpdGVtVmFsdWUgIT09IHVuZGVmaW5lZCA/IGZvcm1hdFZhbHVlIDogdW5kZWZpbmVkXG4gIH07XG5cbiAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZXMgaWYgbm90IGFsbG93ZWRcbiAgaWYoIWFsbG93RHVwbGljYXRlKSB7XG4gICAgLy8gUXVlcnlcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke3Nlc3Npb25Eb2NJZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtSWR9ICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAudGhlbigocmVhY3Rpb24pID0+IHtcbiAgICAgICAgaWYoISFyZWFjdGlvbikge1xuICAgICAgICAgIHJldHVybiByZWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IGVkZ2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdhZGRSZWFjdGlvbjo6ZXJyb3InLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBsb2dFcnJvcih7XG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCByZWFjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uSWQ6IHN0cmluZyA9IGBoYXNSZWFjdGlvbi8ke3BhcnNlSWQocmVhY3Rpb25JZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByID0gRE9DVU1FTlQoJHtmb3JtYXRSZWFjdGlvbklkfSlcbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbkJ5SXRlbSA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1Eb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHIgaW4gaGFzUmVhY3Rpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtRG9jSWR9ICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCByZWFjdGlvbjogUmVhY3Rpb24gPSB7fSk6IFByb21pc2U8UmVhY3Rpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlkOiBpdGVtSWQsXG4gICAgbmFtZTogaXRlbU5hbWUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICB9ID0gcmVhY3Rpb247XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtTmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VTdHJpbmcoaXRlbVZhbHVlLCAzMik7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJZH0tJHtzZXNzaW9uSWR9YCk7XG4gIGNvbnN0IHVwZGF0ZTogUmVhY3Rpb24gPSB7XG4gICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICB2YWx1ZTogZm9ybWF0VmFsdWVcbiAgfTtcbiAgY29uc3QgaW5zZXJ0OiBSZWFjdGlvbiA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2tleTogZWRnZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gIH07XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQgJHt7X2lkOiBmb3JtYXRJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uQ291bnQnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWUgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgaSwgciBJTiBJTkJPVU5EICR7Zm9ybWF0SXRlbUlkfSBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9XG4gICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICBSRVRVUk4gY291bnRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gdW5kZWZpbmVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldFJlYWN0aW9uQ291bnRCeVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBpLCByIElOIElOQk9VTkQgJHtmb3JtYXRJdGVtSWR9IGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfSAmJiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvblZhbHVlID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgIFJFVFVSTiBNRVJHRShyLCB7Y291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwVXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge2ZpbHRlcnMgPSBbXSwgaWQ6IGdyb3VwSWQsIHZhbHVlfTogVXNlclJlYWN0aW9uUXVlcnkgPSBwYXJhbXM7XG4gIGNvbnN0IHJlYWN0aW9uID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGdyb3VwRG9jSWQgPSBwYXJzZUFyYW5nb0lkKGdyb3VwSWQpO1xuICBjb25zdCBmaWx0ZXJTdHI6IHN0cmluZyA9IGZpbHRlcnNcbiAgICAubWFwKChmaWx0ZXI6IFF1ZXJ5RmlsdGVyKSA9PiB7XG4gICAgICBjb25zdCB7Y29uZGl0aW9uYWwsIG5hbWUsIHZhbHVlOiBxdWVyeVZhbHVlfTogUXVlcnlGaWx0ZXIgPSBmaWx0ZXI7XG4gICAgICBsZXQgZmlsdGVyQ29uZDogc3RyaW5nID0gY29uZGl0aW9uYWw7XG5cbiAgICAgIGlmKGNvbmRpdGlvbmFsICE9PSAnPj0nICYmIGNvbmRpdGlvbmFsICE9PSAnPD0nICYmIGNvbmRpdGlvbmFsICE9PSAnPicgJiYgY29uZGl0aW9uYWwgIT09ICc8Jykge1xuICAgICAgICBmaWx0ZXJDb25kID0gJz09JztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAnYWRkZWQnOlxuICAgICAgICAgIHJldHVybiBgci5hZGRlZCAke2ZpbHRlckNvbmR9ICR7cGFyc2VOdW0ocXVlcnlWYWx1ZSl9YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29uY2F0KFtcbiAgICAgIGByLnZhbHVlID09IFwiJHtyZWFjdGlvbn1cImAsXG4gICAgICAndS5faWQgPT0gci5fZnJvbSdcbiAgICBdKVxuICAgIC5qb2luKCcgJiYgJyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGcsIHIgSU4gSU5CT1VORCBcIiR7Z3JvdXBEb2NJZH1cIiBoYXNSZWFjdGlvblxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAke2ZpbHRlclN0cn1cbiAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWFjdGlvbnNCeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25PcHRpb25zXG4pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVhY3Rpb25zQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGksIHIgSU4gSU5CT1VORCBcIiR7Zm9ybWF0SXRlbUlkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7Zm9ybWF0UmVhY3Rpb25OYW1lfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIE1FUkdFKGksIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJdGVtc0J5UmVhY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25PcHRpb25zXG4pOiBQcm9taXNlPFJlYWN0aW9uW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbXNCeVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSwgciBJTiBPVVRCT1VORCBcIiR7Zm9ybWF0SXRlbUlkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICAke2xpbWl0LmFxbH1cbiAgICBSRVRVUk4gTUVSR0UodSwge3JlYWN0aW9uOiByfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhc1JlYWN0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIGRpcmVjdGlvbjogUmVhY3Rpb25EaXJlY3Rpb24gPSAnT1VUQk9VTkQnXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnaGFzUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXREaXJlY3Rpb24gPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnT1VUQk9VTkQnIDogJ0lOQk9VTkQnO1xuICBjb25zdCBpdGVtRGlyZWN0aW9uOiBzdHJpbmcgPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnci5fdG8nIDogJ3IuX2Zyb20nO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOICR7Zm9ybWF0RGlyZWN0aW9ufSBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmICR7aXRlbURpcmVjdGlvbn0gPT0gXCIke2Zvcm1hdEl0ZW1JZH1cIlxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHJlYWN0aW9ucykgPT4gKHJlYWN0aW9ucyA/IHJlYWN0aW9ucy52YWx1ZSA9PT0gJ3RydWUnIDogZmFsc2UpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gZmFsc2UpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLGNBQUFBLEVBQVksaUJBQUFDLEVBQWUsYUFBQUMsRUFBVyxXQUFBQyxFQUFTLFlBQUFDLEVBQVUsZUFBQUMsTUFBa0IsZUFDbkYsT0FBUSxPQUFBQyxNQUFVLFdBR2xCLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsWUFBQUMsRUFBVSxnQkFBQUMsTUFBbUIsMEJBQ3JDLE9BQVEsWUFBQUMsRUFBVSxTQUFBQyxNQUFZLHlCQUs5QixNQUFNQyxFQUF3QixZQXFCakJDLEVBQXVCLENBQUNDLEVBQTJCLENBQUMsSUFBTSxDQUNyRSxLQUFNLENBQ0osS0FBQUMsRUFBTyxFQUNQLEdBQUFDLEVBQUssRUFDUCxFQUFJ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QU9sQixDQUFPLEVBQUUsS0FBSyxJQUFNLEVBQUssQ0FBQyxDQUN4QyIsCiAgIm5hbWVzIjogWyJjcmVhdGVIYXNoIiwgInBhcnNlQXJhbmdvSWQiLCAicGFyc2VDaGFyIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAibG9nRXhjZXB0aW9uIiwgImdldExpbWl0IiwgInVzZURiIiwgImV2ZW50Q2F0ZWdvcnkiLCAicGFyc2VSZWFjdGlvbk9wdGlvbnMiLCAib3B0aW9ucyIsICJmcm9tIiwgInRvIiwgImFkZFJlYWN0aW9uIiwgImNvbnRleHQiLCAiaXRlbUlkIiwgInJlYWN0aW9uIiwgImFsbG93RHVwbGljYXRlIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAic2Vzc2lvbklkIiwgIml0ZW1OYW1lIiwgIml0ZW1WYWx1ZSIsICJmb3JtYXRJdGVtSWQiLCAiZm9ybWF0UmVhY3Rpb25OYW1lIiwgImZvcm1hdFZhbHVlIiwgImVkZ2VDb2xsZWN0aW9uIiwgInNlc3Npb25Eb2NJZCIsICJlZGdlSWQiLCAiZWRnZSIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImVycm9yIiwgImRlbGV0ZVJlYWN0aW9uIiwgInJlYWN0aW9uSWQiLCAiZm9ybWF0U2Vzc2lvbklkIiwgImZvcm1hdFJlYWN0aW9uSWQiLCAiZGVsZXRlUmVhY3Rpb25CeUl0ZW0iLCAicmVhY3Rpb25OYW1lIiwgImZvcm1hdEl0ZW1Eb2NJZCIsICJ1cGRhdGVSZWFjdGlvbiIsICJmb3JtYXRJZCIsICJmb3JtYXROYW1lIiwgInVwZGF0ZSIsICJpbnNlcnQiLCAiZ2V0UmVhY3Rpb25Db3VudCIsICJnZXRSZWFjdGlvbkNvdW50QnlVc2VyIiwgIml0ZW1UeXBlIiwgImdldEdyb3VwVXNlcnNCeVJlYWN0aW9uIiwgInBhcmFtcyIsICJmaWx0ZXJzIiwgImdyb3VwSWQiLCAidmFsdWUiLCAiZ3JvdXBEb2NJZCIsICJmaWx0ZXJTdHIiLCAiZmlsdGVyIiwgImNvbmRpdGlvbmFsIiwgIm5hbWUiLCAicXVlcnlWYWx1ZSIsICJmaWx0ZXJDb25kIiwgImdldFJlYWN0aW9uc0J5SXRlbSIsICJsaW1pdCIsICJnZXRJdGVtc0J5UmVhY3Rpb24iLCAiaGFzUmVhY3Rpb24iLCAiZGlyZWN0aW9uIiwgInJlYWN0aW9ucyJdCn0K
|
|
34
|
+
RETURN r`;return g(s).query(d).then(R=>R.next()).then(R=>R?R.value==="true":!1).catch(R=>E({action:n,category:u,label:p.DATABASE_ERROR},R,e).then(()=>!1))};export{S as addReaction,P as deleteReaction,M as deleteReactionByItem,G as getGroupUsersByReaction,k as getItemsByReaction,V as getReactionCount,j as getReactionCountByUser,z as getReactionsByItem,H as hasReaction,_ as parseReactionOptions,w as updateReaction};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvcmVhY3Rpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvbnVtYmVycyc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQXJhbmdvSWQsIHBhcnNlQ2hhciwgcGFyc2VJZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHR5cGUge1F1ZXJ5RmlsdGVyfSBmcm9tICcuLi90eXBlcy9hcHBzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcmFuZ29EYkNvbGxlY3Rpb24sIEFyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyUmVhY3Rpb25RdWVyeSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFJlYWN0aW9uRGlyZWN0aW9uID0gJ0lOQk9VTkQnIHwgJ09VVEJPVU5EJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIHJlYWRvbmx5IF9mcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBfa2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBfdG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGU/OiBBcmFuZ29EYkNvbGxlY3Rpb247XG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFjdGlvbk9wdGlvbnMgPSAob3B0aW9uczogUmVhY3Rpb25PcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBsaW1pdDogZ2V0TGltaXQoZnJvbSwgdG8pIGFzIEFyYW5nb0RiTGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9LFxuICBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIG5hbWU6IGl0ZW1OYW1lID0gJ2xpa2UnLFxuICAgIHZhbHVlOiBpdGVtVmFsdWVcbiAgfSA9IHJlYWN0aW9uO1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbU5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2hhc1JlYWN0aW9uJyk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJdGVtSWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCBlZGdlOiBSZWFjdGlvbiA9IHtcbiAgICBfZnJvbTogc2Vzc2lvbkRvY0lkLFxuICAgIF9rZXk6IGVkZ2VJZCxcbiAgICBfdG86IGZvcm1hdEl0ZW1JZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICBuYW1lOiBmb3JtYXRSZWFjdGlvbk5hbWUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZSAhPT0gdW5kZWZpbmVkID8gZm9ybWF0VmFsdWUgOiB1bmRlZmluZWRcbiAgfTtcblxuICAvLyBDaGVjayBmb3IgZHVwbGljYXRlcyBpZiBub3QgYWxsb3dlZFxuICBpZighYWxsb3dEdXBsaWNhdGUpIHtcbiAgICAvLyBRdWVyeVxuICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHIgSU4gaGFzUmVhY3Rpb25cbiAgICAgIEZJTFRFUiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiByLl90byA9PSAke2Zvcm1hdEl0ZW1JZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHJgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChyZWFjdGlvbikgPT4ge1xuICAgICAgICBpZighIXJlYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gZWRnZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ2FkZFJlYWN0aW9uOjplcnJvcicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IGVkZ2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHJlYWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8UmVhY3Rpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uSWQ6IHN0cmluZyA9IGBoYXNSZWFjdGlvbi8ke3BhcnNlSWQocmVhY3Rpb25JZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByID0gRE9DVU1FTlQoJHtmb3JtYXRSZWFjdGlvbklkfSlcbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbkJ5SXRlbSA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0U2Vzc2lvbklkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgciBpbiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLl9mcm9tID09ICR7Zm9ybWF0U2Vzc2lvbklkfSAmJiByLl90byA9PSAke2Zvcm1hdEl0ZW1Eb2NJZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgciBJTiBoYXNSZWFjdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9KTogUHJvbWlzZTxSZWFjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpZDogaXRlbUlkLFxuICAgIG5hbWU6IGl0ZW1OYW1lLFxuICAgIHZhbHVlOiBpdGVtVmFsdWVcbiAgfSA9IHJlYWN0aW9uO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbU5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCB1cGRhdGU6IFJlYWN0aW9uID0ge1xuICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG4gIGNvbnN0IGluc2VydDogUmVhY3Rpb24gPSB7XG4gICAgLi4udXBkYXRlLFxuICAgIF9rZXk6IGVkZ2VJZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKVxuICB9O1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUICR7e19pZDogZm9ybWF0SWR9fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uQ291bnQgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbkNvdW50JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGksIHIgSU4gSU5CT1VORCAke2Zvcm1hdEl0ZW1JZH0gaGFzUmVhY3Rpb25cbiAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgIENPTExFQ1QgV0lUSCBDT1VOVCBJTlRPIGNvdW50XG4gICAgUkVUVVJOIGNvdW50YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHVuZGVmaW5lZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uQ291bnRCeVVzZXIgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRSZWFjdGlvbkNvdW50QnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBpLCByIElOIElOQk9VTkQgJHtmb3JtYXRJdGVtSWR9IGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfSAmJiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvblZhbHVlID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgIFJFVFVSTiBNRVJHRShyLCB7Y291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwVXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCB7ZmlsdGVycyA9IFtdLCBpZDogZ3JvdXBJZCwgdmFsdWV9OiBVc2VyUmVhY3Rpb25RdWVyeSA9IHBhcmFtcztcbiAgY29uc3QgcmVhY3Rpb24gPSBwYXJzZUNoYXIodmFsdWUsIDMyKTtcbiAgY29uc3QgZ3JvdXBEb2NJZCA9IHBhcnNlQXJhbmdvSWQoZ3JvdXBJZCk7XG4gIGNvbnN0IGZpbHRlclN0cjogc3RyaW5nID0gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcjogUXVlcnlGaWx0ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtjb25kaXRpb25hbCA9ICcnLCBuYW1lLCB2YWx1ZTogcXVlcnlWYWx1ZX06IFF1ZXJ5RmlsdGVyID0gZmlsdGVyO1xuICAgICAgbGV0IGZpbHRlckNvbmQ6IHN0cmluZyA9IGNvbmRpdGlvbmFsO1xuXG4gICAgICBpZihjb25kaXRpb25hbCAhPT0gJz49JyAmJiBjb25kaXRpb25hbCAhPT0gJzw9JyAmJiBjb25kaXRpb25hbCAhPT0gJz4nICYmIGNvbmRpdGlvbmFsICE9PSAnPCcpIHtcbiAgICAgICAgZmlsdGVyQ29uZCA9ICc9PSc7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaChuYW1lKSB7XG4gICAgICAgIGNhc2UgJ2FkZGVkJzpcbiAgICAgICAgICByZXR1cm4gYHIuYWRkZWQgJHtmaWx0ZXJDb25kfSAke3BhcnNlTnVtKHF1ZXJ5VmFsdWUpfWA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbmNhdChbXG4gICAgICBgci52YWx1ZSA9PSBcIiR7cmVhY3Rpb259XCJgLFxuICAgICAgJ3UuX2lkID09IHIuX2Zyb20nXG4gICAgXSlcbiAgICAuam9pbignICYmICcpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBnLCByIElOIElOQk9VTkQgXCIke2dyb3VwRG9jSWR9XCIgaGFzUmVhY3Rpb25cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25zQnlJdGVtID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOIElOQk9VTkQgXCIke2Zvcm1hdEl0ZW1JZH1cIiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gXCIke2Zvcm1hdFJlYWN0aW9uTmFtZX1cIlxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBNRVJHRShpLCB7cmVhY3Rpb246IHJ9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SXRlbXNCeVJlYWN0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxSZWFjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW1zQnlSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gT1VUQk9VTkQgXCIke2Zvcm1hdEl0ZW1JZH1cIiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9XG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIE1FUkdFKHUsIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBkaXJlY3Rpb246IFJlYWN0aW9uRGlyZWN0aW9uID0gJ09VVEJPVU5EJ1xuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2hhc1JlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXREaXJlY3Rpb24gPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnT1VUQk9VTkQnIDogJ0lOQk9VTkQnO1xuICBjb25zdCBpdGVtRGlyZWN0aW9uOiBzdHJpbmcgPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnci5fdG8nIDogJ3IuX2Zyb20nO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOICR7Zm9ybWF0RGlyZWN0aW9ufSBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmICR7aXRlbURpcmVjdGlvbn0gPT0gXCIke2Zvcm1hdEl0ZW1JZH1cIlxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHJlYWN0aW9ucykgPT4gKHJlYWN0aW9ucyA/IHJlYWN0aW9ucy52YWx1ZSA9PT0gJ3RydWUnIDogZmFsc2UpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gZmFsc2UpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQVEsY0FBQUMsRUFBWSxpQkFBQUMsRUFBZSxhQUFBQyxFQUFXLFdBQUFDLEVBQVMsZUFBQUMsTUFBa0IsK0JBQ3pFLE9BQVEsT0FBQUMsTUFBVSxXQUdsQixPQUFRLGNBQUFDLE1BQWlCLDBCQUN6QixPQUFRLFlBQUFDLEVBQVUsZ0JBQUFDLE1BQW1CLDZCQUNyQyxPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSw0QkFROUIsTUFBTUMsRUFBd0IsWUFxQmpCQyxFQUF1QixDQUFDQyxFQUEyQixDQUFDLElBQU0sQ0FDckUsS0FBTSxDQUNKLEtBQUFDLEVBQU8sRUFDUCxHQUFBQyxFQUFLLEVBQ1AsRUFBSUYsRUFFSixNQUFPLENBQ0wsTUFBT0osRUFBU0ssRUFBTUMsQ0FBRSxDQUMxQixDQUNGLEVBRWFDLEVBQWMsQ0FDekJDLEVBQ0FDLEVBQ0FDLEVBQXFCLENBQUMsRUFDdEJDLEVBQTBCLEtBQ0osQ0FDdEIsTUFBTUMsRUFBaUIsY0FDakIsQ0FBQyxhQUFBQyxFQUFjLFFBQVMsQ0FBQyxPQUFRQyxDQUFTLEVBQUksQ0FBQyxDQUFDLEVBQUlOLEVBRTFELEdBQUcsQ0FBQ00sRUFDRixNQUFNZixFQUFhLENBQ2pCLE9BQUFhLEVBQ0EsU0FBVVYsRUFDVixNQUFPLGVBQ1AsTUFBTyxpQkFDVCxFQUFHTSxDQUFPLEVBR1osS0FBTSxDQUNKLEtBQU1PLEVBQVcsT0FDakIsTUFBT0MsQ0FDVCxFQUFJTixFQUNFTyxFQUF1QnpCLEVBQWNpQixDQUFNLEVBQzNDUyxFQUE2QnpCLEVBQVVzQixFQUFVLEVBQUUsRUFDbkRJLEVBQXNCeEIsRUFBWXFCLEVBQVcsRUFBRSxFQUMvQ0ksRUFBaUNuQixFQUFNWSxDQUFZLEVBQUUsV0FBVyxhQUFhLEVBQzdFUSxFQUF1QixTQUFTUCxDQUFTLEdBQ3pDUSxFQUFpQi9CLEVBQVcsWUFBWTBCLENBQVksSUFBSUgsQ0FBUyxFQUFFLEVBQ25FUyxFQUFpQixDQUNyQixNQUFPRixFQUNQLEtBQU1DLEVBQ04sSUFBS0wsRUFDTCxNQUFPLEtBQUssSUFBSSxFQUNoQixLQUFNQyxFQUNOLE1BQU9GLElBQWMsT0FBWUcsRUFBYyxNQUNqRCxFQUdBLEdBQUcsQ0FBQ1IsRUFBZ0IsQ0FFbEIsTUFBTWEsRUFBbUI1QjtBQUFBLDBCQUNIeUIsQ0FBWSxnQkFBZ0JKLENBQVksaUJBQWlCQyxDQUFrQjtBQUFBO0FBQUEsZ0JBSWpHLE9BQU9qQixFQUFNWSxDQUFZLEVBQUUsTUFBTVcsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixLQUFNZixHQUNBQSxHQUlFVSxFQUFlLEtBQUtHLEVBQU0sQ0FBQyxVQUFXLEVBQUksQ0FBQyxFQUFFLEtBQUssSUFBTUEsQ0FBSSxDQUNwRSxFQUNBLE1BQU9HLEdBRUM1QixFQUFTLENBQ2QsT0FBQWMsRUFDQSxTQUFVVixFQUNWLE1BQU9MLEVBQVcsY0FDcEIsRUFBRzZCLEVBQU9sQixDQUFPLEVBQUUsS0FBSyxJQUFNLElBQUksQ0FDbkMsQ0FDTCxDQUVBLE9BQU9ZLEVBQWUsS0FBS0csRUFBTSxDQUFDLFVBQVcsRUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFNQSxDQUFJLENBQ3JFLEVBRWFJLEVBQWlCLENBQUNuQixFQUFxQm9CLElBQTBDLENBQzVGLE1BQU1oQixFQUFpQixpQkFDakIsQ0FBQyxhQUFBQyxFQUFjLFFBQVMsQ0FBQyxPQUFRQyxDQUFTLEVBQUksQ0FBQyxDQUFDLEVBQUlOLEVBRTFELEdBQUcsQ0FBQ00sRUFDRixNQUFNZixFQUFhLENBQ2pCLE9BQUFhLEVBQ0EsU0FBVVYsRUFDVixNQUFPLGVBQ1AsTUFBTyxpQkFDVCxFQUFHTSxDQUFPLEVBQUUsS0FBSyxJQUFNLElBQUksRUFHN0IsTUFBTXFCLEVBQTBCLFNBQVNuQyxFQUFRb0IsQ0FBUyxDQUFDLEdBQ3JEZ0IsRUFBMkIsZUFBZXBDLEVBQVFrQyxDQUFVLENBQUMsR0FHN0RKLEVBQW1CNUIscUJBQXVCa0MsQ0FBZ0I7QUFBQSx3QkFDMUNELENBQWU7QUFBQTtBQUFBO0FBQUEsZ0JBS3JDLE9BQU81QixFQUFNWSxDQUFZLEVBQUUsTUFBTVcsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPQyxHQUFpQjVCLEVBQVMsQ0FDaEMsT0FBQWMsRUFDQSxTQUFVVixFQUNWLE1BQU9MLEVBQVcsY0FDcEIsRUFBRzZCLEVBQU9sQixDQUFPLEVBQUUsS0FBSyxJQUFNLElBQUksQ0FBQyxDQUN2QyxFQUVhdUIsRUFBdUIsQ0FDbEN2QixFQUNBQyxFQUNBdUIsSUFDc0IsQ0FDdEIsTUFBTXBCLEVBQWlCLHVCQUNqQixDQUFDLGFBQUFDLEVBQWMsUUFBUyxDQUFDLE9BQVFDLENBQVMsRUFBSSxDQUFDLENBQUMsRUFBSU4sRUFFMUQsR0FBRyxDQUFDTSxFQUNGLE1BQU1mLEVBQWEsQ0FDakIsT0FBQWEsRUFDQSxTQUFVVixFQUNWLE1BQU8sZUFDUCxNQUFPLGlCQUNULEVBQUdNLENBQU8sRUFHWixNQUFNcUIsRUFBMEIsU0FBU25DLEVBQVFvQixDQUFTLENBQUMsR0FDckRtQixFQUEwQnpDLEVBQWNpQixDQUFNLEVBQzlDUyxFQUE2QnpCLEVBQVV1QyxDQUFZLEVBR25EUixFQUFtQjVCO0FBQUEsd0JBQ0hpQyxDQUFlLGdCQUFnQkksQ0FBZSxpQkFBaUJmLENBQWtCO0FBQUE7QUFBQTtBQUFBLGdCQUt2RyxPQUFPakIsRUFBTVksQ0FBWSxFQUFFLE1BQU1XLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxJQUFJLENBQUMsQ0FDdkMsRUFFYTBCLEVBQWlCLENBQUMxQixFQUFxQkUsRUFBcUIsQ0FBQyxJQUF5QixDQUNqRyxNQUFNRSxFQUFpQixpQkFDakIsQ0FBQyxhQUFBQyxFQUFjLFFBQVMsQ0FBQyxPQUFRQyxDQUFTLEVBQUksQ0FBQyxDQUFDLEVBQUlOLEVBRTFELEdBQUcsQ0FBQ00sRUFDRixNQUFNZixFQUFhLENBQ2pCLE9BQUFhLEVBQ0EsU0FBVVYsRUFDVixNQUFPLGVBQ1AsTUFBTyxpQkFDVCxFQUFHTSxDQUFPLEVBR1osS0FBTSxDQUNKLEdBQUlDLEVBQ0osS0FBTU0sRUFDTixNQUFPQyxDQUNULEVBQUlOLEVBQ0V5QixFQUFtQjNDLEVBQWNpQixDQUFNLEVBQ3ZDMkIsRUFBcUIzQyxFQUFVc0IsRUFBVSxFQUFFLEVBQzNDSSxFQUFzQnhCLEVBQVlxQixFQUFXLEVBQUUsRUFDL0NNLEVBQWlCL0IsRUFBVyxZQUFZNEMsQ0FBUSxJQUFJckIsQ0FBUyxFQUFFLEVBQy9EdUIsRUFBbUIsQ0FDdkIsS0FBTUQsRUFDTixNQUFPakIsQ0FDVCxFQUNNbUIsRUFBbUIsQ0FDdkIsR0FBR0QsRUFDSCxLQUFNZixFQUNOLE1BQU8sS0FBSyxJQUFJLENBQ2xCLEVBR01FLEVBQW1CNUIsV0FBYSxDQUFDLElBQUt1QyxDQUFRLENBQUM7QUFBQSxhQUMxQ0csQ0FBTTtBQUFBLGFBQ05ELENBQU07QUFBQTtBQUFBLGdCQUlqQixPQUFPcEMsRUFBTVksQ0FBWSxFQUFFLE1BQU1XLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxJQUFJLENBQUMsQ0FDdkMsRUFFYStCLEVBQW1CLENBQzlCL0IsRUFDQUMsRUFDQXVCLElBQ3NCLENBQ3RCLE1BQU1wQixFQUFpQixtQkFDakIsQ0FBQyxhQUFBQyxDQUFZLEVBQUlMLEVBQ2pCUyxFQUF1QnpCLEVBQWNpQixDQUFNLEVBQzNDUyxFQUFxQnpCLEVBQVV1QyxFQUFjLEVBQUUsRUFHL0NSLEVBQW1CNUIsd0JBQTBCcUIsQ0FBWTtBQUFBLHVCQUMxQ0MsQ0FBa0I7QUFBQTtBQUFBLGtCQUl2QyxPQUFPakIsRUFBTVksQ0FBWSxFQUFFLE1BQU1XLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBRyxFQUFZLENBQUMsQ0FDNUMsRUFFYWdDLEVBQXlCLENBQ3BDaEMsRUFDQUMsRUFDQWdDLEVBQ0FULElBQ3dCLENBQ3hCLE1BQU1wQixFQUFTLHlCQUNULENBQUMsYUFBQUMsRUFBYyxRQUFTLENBQUMsT0FBUUMsQ0FBUyxFQUFJLENBQUMsQ0FBQyxFQUFJTixFQUNwRFMsRUFBZXpCLEVBQWNpQixDQUFNLEVBQ25DUyxFQUFxQnpCLEVBQVV1QyxFQUFjLEVBQUUsRUFDL0NYLEVBQWUsU0FBU1AsQ0FBUyxHQUdqQ1UsRUFBbUI1Qix3QkFBMEJxQixDQUFZO0FBQUEseUJBQ3hDQyxDQUFrQixrQkFBa0JHLENBQVk7QUFBQTtBQUFBLGtFQUl2RSxPQUFPcEIsRUFBTVksQ0FBWSxFQUFFLE1BQU1XLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsTUFBT0MsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNyQyxFQUVha0MsRUFBMEIsQ0FBQ2xDLEVBQXFCbUMsRUFBNEIsQ0FBQyxJQUEyQixDQUNuSCxNQUFNL0IsRUFBUywwQkFDVCxDQUFDLGFBQUFDLEVBQWMsUUFBUyxDQUFDLE9BQVFDLENBQVMsRUFBSSxDQUFDLENBQUMsRUFBSU4sRUFFMUQsR0FBRyxDQUFDTSxFQUNGLE1BQU1mLEVBQWEsQ0FDakIsT0FBQWEsRUFDQSxTQUFVVixFQUNWLE1BQU8sZUFDUCxNQUFPLGlCQUNULEVBQUdNLENBQU8sRUFHWixLQUFNLENBQUMsUUFBQW9DLEVBQVUsQ0FBQyxFQUFHLEdBQUlDLEVBQVMsTUFBQUMsQ0FBSyxFQUF1QkgsRUFDeERqQyxFQUFXakIsRUFBVXFELEVBQU8sRUFBRSxFQUM5QkMsRUFBYXZELEVBQWNxRCxDQUFPLEVBQ2xDRyxFQUFvQkosRUFDdkIsSUFBS0ssR0FBd0IsQ0FDNUIsS0FBTSxDQUFDLFlBQUFDLEVBQWMsR0FBSSxLQUFBQyxFQUFNLE1BQU9DLENBQVUsRUFBaUJILEVBQ2pFLElBQUlJLEVBQXFCSCxFQU16QixPQUpHQSxJQUFnQixNQUFRQSxJQUFnQixNQUFRQSxJQUFnQixLQUFPQSxJQUFnQixNQUN4RkcsRUFBYSxNQUdSRixFQUFNLENBQ1gsSUFBSyxRQUNILE1BQU8sV0FBV0UsQ0FBVSxJQUFJL0QsRUFBUzhELENBQVUsQ0FBQyxHQUN0RCxRQUNFLE1BQU8sRUFDWCxDQUNGLENBQUMsRUFDQSxPQUFPLENBQ04sZUFBZTFDLENBQVEsSUFDdkIsa0JBQ0YsQ0FBQyxFQUNBLEtBQUssTUFBTSxFQUdSYyxFQUFpQix3QkFBd0J1QixDQUFVO0FBQUE7QUFBQSxlQUU1Q0MsQ0FBUztBQUFBLGdCQUd0QixPQUFPL0MsRUFBTVksQ0FBWSxFQUFFLE1BQU1XLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsTUFBT0MsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNyQyxFQUVhOEMsRUFBcUIsQ0FDaEM5QyxFQUNBQyxFQUNBdUIsRUFDQTVCLElBQ3dCLENBQ3hCLE1BQU1RLEVBQWlCLHFCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUwsRUFDakJTLEVBQXVCekIsRUFBY2lCLENBQU0sRUFDM0NTLEVBQTZCekIsRUFBVXVDLEVBQWMsRUFBRSxFQUN2RCxDQUFDLE1BQUF1QixDQUFLLEVBQUlwRCxFQUFxQkMsQ0FBTyxFQUN0Q29CLEVBQWlCLHdCQUF3QlAsQ0FBWTtBQUFBLHdCQUNyQ0MsQ0FBa0I7QUFBQSxNQUNwQ3FDLEVBQU0sR0FBRztBQUFBLG9DQUdiLE9BQU90RCxFQUFNWSxDQUFZLEVBQUUsTUFBTVcsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLElBQUksQ0FBQyxFQUM3QixNQUFPQyxHQUFpQjVCLEVBQVMsQ0FDaEMsT0FBQWMsRUFDQSxTQUFVVixFQUNWLE1BQU9MLEVBQVcsY0FDcEIsRUFBRzZCLEVBQU9sQixDQUFPLEVBQUUsS0FBSyxJQUFNLENBQUMsQ0FBQyxDQUFDLENBQ3JDLEVBRWFnRCxFQUFxQixDQUNoQ2hELEVBQ0FDLEVBQ0F1QixFQUNBNUIsSUFDd0IsQ0FDeEIsTUFBTVEsRUFBaUIscUJBQ2pCLENBQUMsYUFBQUMsQ0FBWSxFQUFJTCxFQUNqQlMsRUFBdUJ6QixFQUFjaUIsQ0FBTSxFQUMzQ1MsRUFBNkJ6QixFQUFVdUMsRUFBYyxFQUFFLEVBQ3ZELENBQUMsTUFBQXVCLENBQUssRUFBSXBELEVBQXFCQyxDQUFPLEVBR3RDb0IsRUFBaUIseUJBQXlCUCxDQUFZO0FBQUEsdUJBQ3ZDQyxDQUFrQjtBQUFBLE1BQ25DcUMsRUFBTSxHQUFHO0FBQUEsb0NBR2IsT0FBT3RELEVBQU1ZLENBQVksRUFBRSxNQUFNVyxDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLE1BQU9DLEdBQWlCNUIsRUFBUyxDQUNoQyxPQUFBYyxFQUNBLFNBQVVWLEVBQ1YsTUFBT0wsRUFBVyxjQUNwQixFQUFHNkIsRUFBT2xCLENBQU8sRUFBRSxLQUFLLElBQU0sQ0FBQyxDQUFDLENBQUMsQ0FDckMsRUFFYWlELEVBQWMsQ0FDekJqRCxFQUNBQyxFQUNBdUIsRUFDQTBCLEVBQStCLGFBQ1YsQ0FDckIsTUFBTTlDLEVBQWlCLGNBQ2pCLENBQUMsYUFBQUMsRUFBYyxRQUFTLENBQUMsT0FBUUMsQ0FBUyxFQUFJLENBQUMsQ0FBQyxFQUFJTixFQUNwRGEsRUFBdUIsU0FBU1AsQ0FBUyxHQUN6Q0csRUFBdUJ6QixFQUFjaUIsQ0FBTSxFQUszQ2UsRUFBaUIsZUFKQ2tDLElBQWMsV0FBYSxXQUFhLFNBSVgsS0FBS3JDLENBQVk7QUFBQSx3QkFDaERXLENBQVksUUFKSjBCLElBQWMsV0FBYSxRQUFVLFNBSVosUUFBUXpDLENBQVk7QUFBQTtBQUFBLGNBSTNFLE9BQU9oQixFQUFNWSxDQUFZLEVBQUUsTUFBTVcsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixLQUFNa0MsR0FBZUEsRUFBWUEsRUFBVSxRQUFVLE9BQVMsRUFBTSxFQUNwRSxNQUFPakMsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxFQUFLLENBQUMsQ0FDeEMiLAogICJuYW1lcyI6IFsicGFyc2VOdW0iLCAiY3JlYXRlSGFzaCIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlQ2hhciIsICJwYXJzZUlkIiwgInBhcnNlU3RyaW5nIiwgImFxbCIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgImxvZ0V4Y2VwdGlvbiIsICJnZXRMaW1pdCIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgInBhcnNlUmVhY3Rpb25PcHRpb25zIiwgIm9wdGlvbnMiLCAiZnJvbSIsICJ0byIsICJhZGRSZWFjdGlvbiIsICJjb250ZXh0IiwgIml0ZW1JZCIsICJyZWFjdGlvbiIsICJhbGxvd0R1cGxpY2F0ZSIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInNlc3Npb25JZCIsICJpdGVtTmFtZSIsICJpdGVtVmFsdWUiLCAiZm9ybWF0SXRlbUlkIiwgImZvcm1hdFJlYWN0aW9uTmFtZSIsICJmb3JtYXRWYWx1ZSIsICJlZGdlQ29sbGVjdGlvbiIsICJzZXNzaW9uRG9jSWQiLCAiZWRnZUlkIiwgImVkZ2UiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJlcnJvciIsICJkZWxldGVSZWFjdGlvbiIsICJyZWFjdGlvbklkIiwgImZvcm1hdFNlc3Npb25JZCIsICJmb3JtYXRSZWFjdGlvbklkIiwgImRlbGV0ZVJlYWN0aW9uQnlJdGVtIiwgInJlYWN0aW9uTmFtZSIsICJmb3JtYXRJdGVtRG9jSWQiLCAidXBkYXRlUmVhY3Rpb24iLCAiZm9ybWF0SWQiLCAiZm9ybWF0TmFtZSIsICJ1cGRhdGUiLCAiaW5zZXJ0IiwgImdldFJlYWN0aW9uQ291bnQiLCAiZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciIsICJpdGVtVHlwZSIsICJnZXRHcm91cFVzZXJzQnlSZWFjdGlvbiIsICJwYXJhbXMiLCAiZmlsdGVycyIsICJncm91cElkIiwgInZhbHVlIiwgImdyb3VwRG9jSWQiLCAiZmlsdGVyU3RyIiwgImZpbHRlciIsICJjb25kaXRpb25hbCIsICJuYW1lIiwgInF1ZXJ5VmFsdWUiLCAiZmlsdGVyQ29uZCIsICJnZXRSZWFjdGlvbnNCeUl0ZW0iLCAibGltaXQiLCAiZ2V0SXRlbXNCeVJlYWN0aW9uIiwgImhhc1JlYWN0aW9uIiwgImRpcmVjdGlvbiIsICJyZWFjdGlvbnMiXQp9Cg==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
import { DeleteObjectCommandInput, DeleteObjectCommandOutput, DeleteObjectsCommandInput, DeleteObjectsCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, HeadObjectCommandInput, HeadObjectCommandOutput, PutObjectCommandInput, PutObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
6
|
+
export declare const s3Get: (params: GetObjectCommandInput) => Promise<GetObjectCommandOutput>;
|
|
7
|
+
export declare const s3Head: (params: HeadObjectCommandInput) => Promise<HeadObjectCommandOutput>;
|
|
8
|
+
export declare const s3Put: (params: PutObjectCommandInput) => Promise<PutObjectCommandOutput>;
|
|
9
|
+
export declare const s3Delete: (params: DeleteObjectCommandInput) => Promise<DeleteObjectCommandOutput>;
|
|
10
|
+
export declare const s3DeleteList: (params: DeleteObjectsCommandInput) => Promise<DeleteObjectsCommandOutput>;
|
|
11
|
+
export declare const s3GetSignedUrl: (params?: any) => Promise<string>;
|
package/lib/actions/s3.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{GetObjectCommand as
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import{GetObjectCommand as i,S3 as m}from"@aws-sdk/client-s3";import{getSignedUrl as r}from"@aws-sdk/s3-request-presigner";import{Config as t}from"../config.js";const f=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.getObject(e,(n,s)=>n?o(n):u(s))}),B=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.headObject(e,(n,s)=>n?o(n):u(s))}),I=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),e.StorageClass||(e.StorageClass="REDUCED_REDUNDANCY"),c.putObject(e,(n,s)=>n?o(n):u(s))}),x=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObject(e,(n,s)=>n?o(n):u(s))}),E=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObjects(e,(n,s)=>n?o(n):u(s))}),S=async(e={})=>{const u=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});return e.Expires||(e.Expires=720*60),e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),await r(u,new i(e),{expiresIn:e.Expires})};export{x as s3Delete,E as s3DeleteList,f as s3Get,S as s3GetSignedUrl,B as s3Head,I as s3Put};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvczMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge1xuICBEZWxldGVPYmplY3RDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kT3V0cHV0LFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIFB1dE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIFMzXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQge2dldFNpZ25lZFVybH0gZnJvbSAnQGF3cy1zZGsvczMtcmVxdWVzdC1wcmVzaWduZXInO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3MzJztcbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0T2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZ2V0T2JqZWN0KHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0PzogR2V0T2JqZWN0Q29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBHZXRPYmplY3RDb21tYW5kT3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxIZWFkT2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuaGVhZE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dD86IEhlYWRPYmplY3RDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBIZWFkT2JqZWN0Q29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNQdXQgPSAocGFyYW1zOiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPFB1dE9iamVjdENvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBzMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgaWYoIXBhcmFtcy5TdG9yYWdlQ2xhc3MpIHtcbiAgICAgIHBhcmFtcy5TdG9yYWdlQ2xhc3MgPSAnUkVEVUNFRF9SRURVTkRBTkNZJztcbiAgICB9XG5cbiAgICBzMy5wdXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ/OiBQdXRPYmplY3RDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0IGFzIFB1dE9iamVjdENvbW1hbmRPdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RDb21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5kZWxldGVPYmplY3QocGFyYW1zLCAoZXJyb3IsIG91dHB1dD86IERlbGV0ZU9iamVjdENvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQgYXMgRGVsZXRlT2JqZWN0Q29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNEZWxldGVMaXN0ID0gKHBhcmFtczogRGVsZXRlT2JqZWN0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0c0NvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoe1xuICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICB9KTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLnMzLmJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmRlbGV0ZU9iamVjdHMocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ/OiBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNHZXRTaWduZWRVcmwgPSBhc3luYyAocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gIH0pO1xuXG4gIGlmKCFwYXJhbXMuRXhwaXJlcykge1xuICAgIHBhcmFtcy5FeHBpcmVzID0gMTIgKiA2MCAqIDYwO1xuICB9XG5cbiAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLnMzLmJ1Y2tldCcpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldFNpZ25lZFVybChzMywgbmV3IEdldE9iamVjdENvbW1hbmQocGFyYW1zKSwge1xuICAgIGV4cGlyZXNJbjogcGFyYW1zLkV4cGlyZXNcbiAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FLRSxvQkFBQUEsRUFPQSxNQUFBQyxNQUNLLHFCQUNQLE9BQVEsZ0JBQUFDLE1BQW1CLGdDQUUzQixPQUFRLFVBQUFDLE1BQWEsZUFHZCxNQUFNQyxFQUFTQyxHQUNwQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxVQUFVSCxFQUFRLENBQUNJLEVBQWNDLElBQy9CRCxFQUNNRixFQUFPRSxDQUFLLEVBR2RILEVBQVFJLENBQWdDLENBQ2hELENBQ0gsQ0FBQyxFQUVVQyxFQUFVTixHQUNyQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxXQUFXSCxFQUFRLENBQUNJLEVBQWNDLElBQ2hDRCxFQUNNRixFQUFPRSxDQUFLLEVBRWRILEVBQVFJLENBQWlDLENBQ2pELENBQ0gsQ0FBQyxFQUVVRSxFQUFTUCxHQUNwQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFLLElBQUlQLEVBQUcsQ0FDaEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUd4Q0UsRUFBTyxlQUNUQSxFQUFPLGFBQWUsc0JBR3hCRyxFQUFHLFVBQVVILEVBQVEsQ0FBQ0ksRUFBY0MsSUFDL0JELEVBQ01GLEVBQU9FLENBQUssRUFHZEgsRUFBUUksQ0FBZ0MsQ0FDaEQsQ0FDSCxDQUFDLEVBRVVHLEVBQVlSLEdBQ3ZCLElBQUksUUFBUSxDQUFDQyxFQUFTQyxJQUFXLENBQy9CLE1BQU1DLEVBQVMsSUFBSVAsRUFBRyxDQUNwQixZQUFhRSxFQUFPLElBQUksaUJBQWlCLEVBQ3pDLE9BQVFBLEVBQU8sSUFBSSxZQUFZLENBQ2pDLENBQUMsRUFFR0UsRUFBTyxTQUNUQSxFQUFPLE9BQVNGLEVBQU8sSUFBSSxlQUFlLEdBRzVDSyxFQUFHLGFBQWFILEVBQVEsQ0FBQ0ksRUFBT0MsSUFDM0JELEVBQ01GLEVBQU9FLENBQUssRUFHZEgsRUFBUUksQ0FBbUMsQ0FDbkQsQ0FDSCxDQUFDLEVBRVVJLEVBQWdCVCxHQUMzQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxjQUFjSCxFQUFRLENBQUNJLEVBQWNDLElBQ25DRCxFQUNNRixFQUFPRSxDQUFLLEVBR2RILEVBQVFJLENBQW9DLENBQ3BELENBQ0gsQ0FBQyxFQUVVSyxFQUFpQixNQUFPVixFQUFjLENBQUMsSUFBdUIsQ0FDekUsTUFBTUcsRUFBUyxJQUFJUCxFQUFHLENBQ3BCLFlBQWFFLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsT0FBUUEsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxFQUVELE9BQUlFLEVBQU8sVUFDVEEsRUFBTyxRQUFVLElBQVUsSUFHekJBLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUdyQyxNQUFNRCxFQUFhTSxFQUFJLElBQUlSLEVBQWlCSyxDQUFNLEVBQUcsQ0FDMUQsVUFBV0EsRUFBTyxPQUNwQixDQUFDLENBQ0giLAogICJuYW1lcyI6IFsiR2V0T2JqZWN0Q29tbWFuZCIsICJTMyIsICJnZXRTaWduZWRVcmwiLCAiQ29uZmlnIiwgInMzR2V0IiwgInBhcmFtcyIsICJyZXNvbHZlIiwgInJlamVjdCIsICJzMyIsICJlcnJvciIsICJvdXRwdXQiLCAiczNIZWFkIiwgInMzUHV0IiwgInMzRGVsZXRlIiwgInMzRGVsZXRlTGlzdCIsICJzM0dldFNpZ25lZFVybCJdCn0K
|
package/lib/actions/search.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{flatten as h}from"@nlabs/utils/arrays/flatten";import{uniqBy as R}from"@nlabs/utils/arrays/uniq";import{aql as T}from"arangojs";import{ErrorTypes as q}from"../types/error.types.js";import{logException as A}from"../utils/analyticsUtils.js";import{getLimit as E,useDb as m}from"../utils/arangodbUtils.js";import{getDisplayName as p}from"./users.js";const I="search",_=(i,n,u,g)=>{const y="getList",{databaseName:l}=i;if(!0){const e=[{collection:"users",field:"first"},{collection:"users",field:"last"},{collection:"users",field:"email"},{collection:"users",field:"username"},{collection:"users",field:"name"}];return Promise.all(e.map(t=>{const s=`prefix:${n}`,r=T`FOR u IN FULLTEXT(${t.collection}, ${t.field}, ${s}, 50) RETURN u`;return m(l).query(r).then(o=>o.all())})).then(t=>R(h(t),"_key").map(r=>{const{_id:o,name:c}=r||{},L=((o?.split("/")||[])[0]||"")==="users"?p(r):c||"";return{...r,name:L}}))}const f=E(u,g),d=`FOR u IN users
|
|
2
2
|
FILTER u.phone == "${n}"
|
|
3
3
|
${f.aql}
|
|
4
|
-
RETURN u`;return
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
RETURN u`;return m(l).query(d).then(e=>e.all()).then((e=[])=>e.map(t=>{const{_id:s,name:r}=t,a=((s?.split("/")||[])[0]||"")==="users"?p(t):r||"";return{...t,name:a}})).catch(e=>{throw A({action:y,category:I,label:q.DATABASE_ERROR,value:e.message},i)})};export{_ as getSearchList};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc2VhcmNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtmbGF0dGVufSBmcm9tICdAbmxhYnMvdXRpbHMvYXJyYXlzL2ZsYXR0ZW4nO1xuaW1wb3J0IHt1bmlxQnl9IGZyb20gJ0BubGFicy91dGlscy9hcnJheXMvdW5pcSc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzLmpzJztcblxuaW1wb3J0IHR5cGUge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHR5cGUge0FyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMudHlwZXMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc2VhcmNoJztcblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaExpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzU3RyaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBpZihpc1N0cmluZykge1xuICAgIGNvbnN0IGZpZWxkczoge2NvbGxlY3Rpb246IHN0cmluZywgZmllbGQ6IHN0cmluZ31bXSA9IFtcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2ZpcnN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdsYXN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdlbWFpbCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAndXNlcm5hbWUnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ25hbWUnfVxuICAgIF07XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmllbGRzLm1hcCgob2JqKSA9PiB7XG4gICAgICBjb25zdCBxcnk6IHN0cmluZyA9IGBwcmVmaXg6JHtxdWVyeX1gO1xuICAgICAgY29uc3QgdXNlclFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gRlVMTFRFWFQoJHtvYmouY29sbGVjdGlvbn0sICR7b2JqLmZpZWxkfSwgJHtxcnl9LCA1MCkgUkVUVVJOIHVgO1xuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXNlclFyeSkudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuICAgIH0pKVxuICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHVuaXFCeShmbGF0dGVuKHJlc3VsdHMpLCAnX2tleScgYXMgYW55KTtcblxuICAgICAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtfaWQ6IGl0ZW1JZCwgbmFtZTogaXRlbU5hbWV9ID0gaXRlbSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZD8uc3BsaXQoJy8nKSB8fCBbXTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdIHx8ICcnO1xuICAgICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lIHx8ICcnO1xuXG4gICAgICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICBGSUxURVIgdS5waG9uZSA9PSBcIiR7cXVlcnl9XCJcbiAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBVc2VyVHlwZVtdID0gW10pID0+IGxpc3QubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZD8uc3BsaXQoJy8nKSB8fCBbXTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb246IHN0cmluZyA9IGNvbGxlY3Rpb25JZExpc3RbMF0gfHwgJyc7XG4gICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBjb2xsZWN0aW9uID09PSAndXNlcnMnID8gZ2V0RGlzcGxheU5hbWUoaXRlbSkgOiBpdGVtTmFtZSB8fCAnJztcblxuICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICB9KSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICAgIHZhbHVlOiBlcnJvci5tZXNzYWdlXG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFdBQUFBLE1BQWMsOEJBQ3RCLE9BQVEsVUFBQUMsTUFBYSwyQkFDckIsT0FBUSxPQUFBQyxNQUFVLFdBRWxCLE9BQVEsY0FBQUMsTUFBaUIsMEJBQ3pCLE9BQVEsZ0JBQUFDLE1BQW1CLDZCQUMzQixPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSw0QkFDOUIsT0FBUSxrQkFBQUMsTUFBcUIsYUFPN0IsTUFBTUMsRUFBd0IsU0FFakJDLEVBQWdCLENBQUNDLEVBQXFCQyxFQUFlQyxFQUFjQyxJQUFvQyxDQUNsSCxNQUFNQyxFQUFpQixVQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUwsRUFHdkIsR0FGMEIsR0FFYixDQUNYLE1BQU1NLEVBQWdELENBQ3BELENBQUMsV0FBWSxRQUFTLE1BQU8sT0FBTyxFQUNwQyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sRUFDbkMsQ0FBQyxXQUFZLFFBQVMsTUFBTyxPQUFPLEVBQ3BDLENBQUMsV0FBWSxRQUFTLE1BQU8sVUFBVSxFQUN2QyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sQ0FDckMsRUFFQSxPQUFPLFFBQVEsSUFBSUEsRUFBTyxJQUFLQyxHQUFRLENBQ3JDLE1BQU1DLEVBQWMsVUFBVVAsQ0FBSyxHQUM3QlEsRUFBb0JqQixzQkFBd0JlLEVBQUksVUFBVSxLQUFLQSxFQUFJLEtBQUssS0FBS0MsQ0FBRyxpQkFDdEYsT0FBT1osRUFBTVMsQ0FBWSxFQUFFLE1BQU1JLENBQU8sRUFBRSxLQUFNQyxHQUFXQSxFQUFPLElBQUksQ0FBQyxDQUN6RSxDQUFDLENBQUMsRUFDQyxLQUFNQyxHQUNRcEIsRUFBT0QsRUFBUXFCLENBQU8sRUFBRyxNQUFhLEVBRXZDLElBQUtDLEdBQWMsQ0FDN0IsS0FBTSxDQUFDLElBQUtDLEVBQVEsS0FBTUMsQ0FBUSxFQUFJRixHQUFRLENBQUMsRUFHekNHLElBRjZCRixHQUFRLE1BQU0sR0FBRyxHQUFLLENBQUMsR0FDZCxDQUFDLEdBQUssTUFDZCxRQUFVaEIsRUFBZWUsQ0FBSSxFQUFJRSxHQUFZLEdBRWpGLE1BQU8sQ0FBQyxHQUFHRixFQUFNLEtBQUFHLENBQUksQ0FDdkIsQ0FBQyxDQUNGLENBQ0wsQ0FFQSxNQUFNQyxFQUF1QnJCLEVBQVNPLEVBQU1DLENBQUUsRUFDeENjLEVBQWlCO0FBQUEsNkJBQ0loQixDQUFLO0FBQUEsVUFDeEJlLEVBQU0sR0FBRztBQUFBLGtCQUdqQixPQUFPcEIsRUFBTVMsQ0FBWSxFQUFFLE1BQU1ZLENBQU0sRUFDcEMsS0FBTVAsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsS0FBSyxDQUFDUSxFQUFtQixDQUFDLElBQU1BLEVBQUssSUFBS04sR0FBUyxDQUNsRCxLQUFNLENBQUMsSUFBS0MsRUFBUSxLQUFNQyxDQUFRLEVBQUlGLEVBR2hDRyxJQUY2QkYsR0FBUSxNQUFNLEdBQUcsR0FBSyxDQUFDLEdBQ2QsQ0FBQyxHQUFLLE1BQ2QsUUFBVWhCLEVBQWVlLENBQUksRUFBSUUsR0FBWSxHQUVqRixNQUFPLENBQUMsR0FBR0YsRUFBTSxLQUFBRyxDQUFJLENBQ3ZCLENBQUMsQ0FBQyxFQUNELE1BQU9JLEdBQWlCLENBQ3ZCLE1BQU16QixFQUFhLENBQ2pCLE9BQUFVLEVBQ0EsU0FBVU4sRUFDVixNQUFPTCxFQUFXLGVBQ2xCLE1BQU8wQixFQUFNLE9BQ2YsRUFBR25CLENBQU8sQ0FDWixDQUFDLENBQ0wiLAogICJuYW1lcyI6IFsiZmxhdHRlbiIsICJ1bmlxQnkiLCAiYXFsIiwgIkVycm9yVHlwZXMiLCAibG9nRXhjZXB0aW9uIiwgImdldExpbWl0IiwgInVzZURiIiwgImdldERpc3BsYXlOYW1lIiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0U2VhcmNoTGlzdCIsICJjb250ZXh0IiwgInF1ZXJ5IiwgImZyb20iLCAidG8iLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJmaWVsZHMiLCAib2JqIiwgInFyeSIsICJ1c2VyUXJ5IiwgImN1cnNvciIsICJyZXN1bHRzIiwgIml0ZW0iLCAiaXRlbUlkIiwgIml0ZW1OYW1lIiwgIm5hbWUiLCAibGltaXQiLCAiYXFsUXJ5IiwgImxpc3QiLCAiZXJyb3IiXQp9Cg==
|
package/lib/actions/sms.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PublishCommand as p,SNSClient as c}from"@aws-sdk/client-sns";import{parsePhone as u,parseTemplate as f}from"@nlabs/utils";import{Config as t}from"../config";import{ErrorTypes as y}from"../types/error.types";import{logError as d}from"../utils/analyticsUtils";const M="sms",w=async({context:n,text:o,user:e,variables:s={}})=>{const a="sendSms",i=new c({credentials:t.get("aws.credentials"),region:t.get("aws.region")}),{country:S="US",phone:m}=e,g=u(m,S),l=f(o,s);return await i.send(new p({Message:l,MessageAttributes:{"AWS.SNS.SMS.SMSType":{DataType:"String",StringValue:"Transactional"},"AWS.SNS.SMS.SenderID":{DataType:"String",StringValue:n.config
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import{PublishCommand as p,SNSClient as c}from"@aws-sdk/client-sns";import{parsePhone as u,parseTemplate as f}from"@nlabs/utils/parsers/strings";import{Config as t}from"../config.js";import{ErrorTypes as y}from"../types/error.types.js";import{logError as d}from"../utils/analyticsUtils.js";const M="sms",w=async({context:n,text:o,user:e,variables:s={}})=>{const a="sendSms",i=new c({credentials:t.get("aws.credentials"),region:t.get("aws.region")}),{country:S="US",phone:m=""}=e||{},g=u(m,S),l=f(o||"",s);return await i.send(new p({Message:l,MessageAttributes:{"AWS.SNS.SMS.SMSType":{DataType:"String",StringValue:"Transactional"},"AWS.SNS.SMS.SenderID":{DataType:"String",StringValue:n.config?.details?.id?.trim().replace(/ /g,"").substring(0,11)||""}},PhoneNumber:g})).then(r=>!0).catch(r=>(d({action:a,category:M,label:y.SMS_ERROR},r,{session:e}),!1))};export{w as sendSms};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc21zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtQdWJsaXNoQ29tbWFuZCwgU05TQ2xpZW50fSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcbmltcG9ydCB7cGFyc2VQaG9uZSwgcGFyc2VUZW1wbGF0ZX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge1NNU1BhcmFtc1R5cGV9IGZyb20gJy4uL3R5cGVzL25vdGlmaWNhdGlvbnMudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHtTZXNzaW9ufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc21zJztcblxuZXhwb3J0IGNvbnN0IHNlbmRTbXMgPSBhc3luYyAoe1xuICBjb250ZXh0LFxuICB0ZXh0LFxuICB1c2VyLFxuICB2YXJpYWJsZXMgPSB7fVxufTogU01TUGFyYW1zVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdzZW5kU21zJztcbiAgY29uc3Qgc25zQ2xpZW50ID0gbmV3IFNOU0NsaWVudCh7XG4gICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gIH0pO1xuICBjb25zdCB7Y291bnRyeSA9ICdVUycsIHBob25lID0gJyd9ID0gdXNlciB8fCB7fTtcbiAgY29uc3QgcGhvbmVOdW1iZXIgPSBwYXJzZVBob25lKHBob25lLCBjb3VudHJ5KTtcbiAgY29uc3QgdGVtcGxhdGVDb250ZW50OiBzdHJpbmcgPSBwYXJzZVRlbXBsYXRlKHRleHQgfHwgJycsIHZhcmlhYmxlcyk7XG5cbiAgcmV0dXJuIGF3YWl0IHNuc0NsaWVudFxuICAgIC5zZW5kKFxuICAgICAgbmV3IFB1Ymxpc2hDb21tYW5kKHtcbiAgICAgICAgTWVzc2FnZTogdGVtcGxhdGVDb250ZW50LFxuICAgICAgICBNZXNzYWdlQXR0cmlidXRlczoge1xuICAgICAgICAgICdBV1MuU05TLlNNUy5TTVNUeXBlJzoge1xuICAgICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgICAgU3RyaW5nVmFsdWU6ICdUcmFuc2FjdGlvbmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgJ0FXUy5TTlMuU01TLlNlbmRlcklEJzoge1xuICAgICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQuY29uZmlnPy5kZXRhaWxzPy5pZD8udHJpbSgpLnJlcGxhY2UoLyAvZywgJycpLnN1YnN0cmluZygwLCAxMSkgfHwgJydcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFBob25lTnVtYmVyOiBwaG9uZU51bWJlclxuICAgICAgfSlcbiAgICApXG4gICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgY29uc29sZS5sb2coe3Jlc30pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyh7ZXJyb3J9KTtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuU01TX0VSUk9SXG4gICAgICB9LCBlcnJvciwge3Nlc3Npb246IHVzZXIgYXMgU2Vzc2lvbn0pO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxrQkFBQUEsRUFBZ0IsYUFBQUMsTUFBZ0Isc0JBQ3hDLE9BQVEsY0FBQUMsRUFBWSxpQkFBQUMsTUFBb0IsK0JBRXhDLE9BQVEsVUFBQUMsTUFBYSxlQUNyQixPQUFRLGNBQUFDLE1BQWlCLDBCQUV6QixPQUFRLFlBQUFDLE1BQWUsNkJBR3ZCLE1BQU1DLEVBQXdCLE1BRWpCQyxFQUFVLE1BQU8sQ0FDNUIsUUFBQUMsRUFDQSxLQUFBQyxFQUNBLEtBQUFDLEVBQ0EsVUFBQUMsRUFBWSxDQUFDLENBQ2YsSUFBdUMsQ0FDckMsTUFBTUMsRUFBaUIsVUFDakJDLEVBQVksSUFBSWIsRUFBVSxDQUM5QixZQUFhRyxFQUFPLElBQUksaUJBQWlCLEVBQ3pDLE9BQVFBLEVBQU8sSUFBSSxZQUFZLENBQ2pDLENBQUMsRUFDSyxDQUFDLFFBQUFXLEVBQVUsS0FBTSxNQUFBQyxFQUFRLEVBQUUsRUFBSUwsR0FBUSxDQUFDLEVBQ3hDTSxFQUFjZixFQUFXYyxFQUFPRCxDQUFPLEVBQ3ZDRyxFQUEwQmYsRUFBY08sR0FBUSxHQUFJRSxDQUFTLEVBRW5FLE9BQU8sTUFBTUUsRUFDVixLQUNDLElBQUlkLEVBQWUsQ0FDakIsUUFBU2tCLEVBQ1Qsa0JBQW1CLENBQ2pCLHNCQUF1QixDQUNyQixTQUFVLFNBQ1YsWUFBYSxlQUNmLEVBQ0EsdUJBQXdCLENBQ3RCLFNBQVUsU0FDVixZQUFhVCxFQUFRLFFBQVEsU0FBUyxJQUFJLEtBQUssRUFBRSxRQUFRLEtBQU0sRUFBRSxFQUFFLFVBQVUsRUFBRyxFQUFFLEdBQUssRUFDekYsQ0FDRixFQUNBLFlBQWFRLENBQ2YsQ0FBQyxDQUNILEVBQ0MsS0FBTUUsR0FFRSxFQUNSLEVBQ0EsTUFBT0MsSUFFTmQsRUFBUyxDQUNQLE9BQUFPLEVBQ0EsU0FBVU4sRUFDVixNQUFPRixFQUFXLFNBQ3BCLEVBQUdlLEVBQU8sQ0FBQyxRQUFTVCxDQUFlLENBQUMsRUFFN0IsR0FDUixDQUNMIiwKICAibmFtZXMiOiBbIlB1Ymxpc2hDb21tYW5kIiwgIlNOU0NsaWVudCIsICJwYXJzZVBob25lIiwgInBhcnNlVGVtcGxhdGUiLCAiQ29uZmlnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAiZXZlbnRDYXRlZ29yeSIsICJzZW5kU21zIiwgImNvbnRleHQiLCAidGV4dCIsICJ1c2VyIiwgInZhcmlhYmxlcyIsICJhY3Rpb24iLCAic25zQ2xpZW50IiwgImNvdW50cnkiLCAicGhvbmUiLCAicGhvbmVOdW1iZXIiLCAidGVtcGxhdGVDb250ZW50IiwgInJlcyIsICJlcnJvciJdCn0K
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
2
|
+
import type { StatisticsType } from '../types/statistics.types.js';
|
|
3
|
+
export declare const getGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
|
|
4
|
+
export declare const updateGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{aql as a}from"arangojs";import{
|
|
1
|
+
import{aql as a}from"arangojs";import{ErrorTypes as c}from"../types/error.types.js";import{logError as p}from"../utils/analyticsUtils.js";import{useDb as n}from"../utils/arangodbUtils.js";import{getActiveUserCount as y}from"./users.js";const l="statistics",b=t=>{const r="getGlobalStatistics",{databaseName:e}=t,i=a`FOR s IN statistics
|
|
2
2
|
FILTER s.isGlobal == true
|
|
3
3
|
LIMIT 1
|
|
4
|
-
RETURN s`;return
|
|
4
|
+
RETURN s`;return n(e).query(i).then(s=>s.next()).catch(s=>{throw p({action:r,category:l,label:c.DATABASE_ERROR},s,t)})},S=t=>{const r="updateGlobalStatistics",{databaseName:e}=t,s={activeUsers:y(t)},m=a`UPSERT {isGlobal: true}
|
|
5
5
|
INSERT ${s}
|
|
6
6
|
UPDATE ${s}
|
|
7
|
-
IN statistics RETURN NEW`;return
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
IN statistics RETURN NEW`;return n(e).query(m).then(o=>o.next()).catch(o=>p({action:r,category:l,label:c.DATABASE_ERROR},o,t))};export{b as getGlobalStatistics,S as updateGlobalStatistics};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3RhdGlzdGljcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRBY3RpdmVVc2VyQ291bnR9IGZyb20gJy4vdXNlcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7U3RhdGlzdGljc1R5cGV9IGZyb20gJy4uL3R5cGVzL3N0YXRpc3RpY3MudHlwZXMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc3RhdGlzdGljcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxTdGF0aXN0aWNzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFN0YXRpc3RpY3NUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEdsb2JhbFN0YXRpc3RpY3MnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHN0YXRpc3RpY3NRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3RhdGlzdGljc1xuICAgIEZJTFRFUiBzLmlzR2xvYmFsID09IHRydWVcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHN0YXRpc3RpY3NRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlR2xvYmFsU3RhdGlzdGljcyA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxTdGF0aXN0aWNzVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVHbG9iYWxTdGF0aXN0aWNzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBhY3RpdmVVc2VycyA9IGdldEFjdGl2ZVVzZXJDb3VudChjb250ZXh0KTtcbiAgY29uc3QgdXBkYXRlZERhdGEgPSB7YWN0aXZlVXNlcnN9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2lzR2xvYmFsOiB0cnVlfVxuICBJTlNFUlQgJHt1cGRhdGVkRGF0YX1cbiAgVVBEQVRFICR7dXBkYXRlZERhdGF9XG4gIElOIHN0YXRpc3RpY3MgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXBkYXRlUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBR2xCLE9BQVEsY0FBQUMsTUFBaUIsMEJBQ3pCLE9BQVEsWUFBQUMsTUFBZSw2QkFDdkIsT0FBUSxTQUFBQyxNQUFZLDRCQUNwQixPQUFRLHNCQUFBQyxNQUF5QixhQUtqQyxNQUFNQyxFQUF3QixhQUVqQkMsRUFBdUJDLEdBQWlELENBQ25GLE1BQU1DLEVBQWlCLHNCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFDakJHLEVBQTRCVjtBQUFBO0FBQUE7QUFBQSxjQUtsQyxPQUFPRyxFQUFNTSxDQUFZLEVBQUUsTUFBTUMsQ0FBZSxFQUM3QyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPQyxHQUFpQixDQUN2QixNQUFNVixFQUFTLENBQ2IsT0FBQU0sRUFDQSxTQUFVSCxFQUNWLE1BQU9KLEVBQVcsY0FDcEIsRUFBR1csRUFBT0wsQ0FBTyxDQUNuQixDQUFDLENBQ0wsRUFFYU0sRUFBMEJOLEdBQWlELENBQ3RGLE1BQU1DLEVBQWlCLHlCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFFakJPLEVBQWMsQ0FBQyxZQUREVixFQUFtQkcsQ0FBTyxDQUNkLEVBRTFCUSxFQUF3QmY7QUFBQSxXQUNyQmMsQ0FBVztBQUFBLFdBQ1hBLENBQVc7QUFBQSw0QkFHcEIsT0FBT1gsRUFBTU0sQ0FBWSxFQUFFLE1BQU1NLENBQVcsRUFDekMsS0FBTUosR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUJWLEVBQVMsQ0FDaEMsT0FBQU0sRUFDQSxTQUFVSCxFQUNWLE1BQU9KLEVBQVcsY0FDcEIsRUFBR1csRUFBT0wsQ0FBTyxDQUFDLENBQ3RCIiwKICAibmFtZXMiOiBbImFxbCIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgInVzZURiIiwgImdldEFjdGl2ZVVzZXJDb3VudCIsICJldmVudENhdGVnb3J5IiwgImdldEdsb2JhbFN0YXRpc3RpY3MiLCAiY29udGV4dCIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInN0YXRpc3RpY3NRdWVyeSIsICJjdXJzb3IiLCAiZXJyb3IiLCAidXBkYXRlR2xvYmFsU3RhdGlzdGljcyIsICJ1cGRhdGVkRGF0YSIsICJ1cGRhdGVRdWVyeSJdCn0K
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
2
|
+
import type { PaymentPlan, PaymentSubscription } from '../types/payments.types.js';
|
|
3
|
+
export declare const getPlanList: (context: ApiContext, from?: number, to?: number) => Promise<PaymentPlan[]>;
|
|
4
|
+
export declare const getSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
|
|
5
|
+
export declare const addPlan: (context: ApiContext, item: PaymentPlan) => Promise<PaymentPlan>;
|
|
6
|
+
export declare const addSubscription: (context: ApiContext, item: any) => Promise<PaymentSubscription>;
|
|
7
|
+
export declare const deleteSubscription: (context: ApiContext) => Promise<boolean>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{
|
|
2
|
-
${
|
|
1
|
+
import{aql as T}from"arangojs";import{DateTime as Q}from"luxon";import{ErrorTypes as d}from"../types/error.types.js";import{logError as I,logException as D}from"../utils/analyticsUtils.js";import{getLimit as U,useDb as f}from"../utils/arangodbUtils.js";import{isAdminUser as $}from"../utils/sessionUtils.js";import{getStripeClient as w}from"../utils/stripeUtils.js";import{getUser as F}from"./users.js";import{parseNum as C}from"@nlabs/utils/parsers/numbers";import{createHash as v,parseChar as B,parseId as N,parseVarChar as q}from"@nlabs/utils/parsers/strings";const l="subscription",Y=(t,e=0,o=30)=>{const a="getList",{databaseName:n}=t,c=`FOR p IN plans
|
|
2
|
+
${U(e,o).aql}
|
|
3
3
|
SORT p.amount
|
|
4
|
-
RETURN p`;return
|
|
5
|
-
FILTER s.userId == ${
|
|
4
|
+
RETURN p`;return f(n).query(c).then(r=>r.all()).then((r=[])=>r).catch(r=>{throw I({action:a,category:l,label:d.DATABASE_ERROR},r,{})})},j=t=>{const e="getItem",{databaseName:o,session:{userId:a}={}}=t,n=`FOR s IN subscriptions
|
|
5
|
+
FILTER s.userId == ${a} && s.cancelled > 0
|
|
6
6
|
LET plan = FIRST(
|
|
7
7
|
FOR p IN plans
|
|
8
8
|
FILTER p._key == s.planId
|
|
9
9
|
)
|
|
10
10
|
LIMIT 1
|
|
11
|
-
RETURN MERGE(s, {plan: plan})`;return
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3Vic2NyaXB0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7Z2V0VXNlcn0gZnJvbSAnLi91c2Vycyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzJztcbmltcG9ydCB7Z2V0U3RyaXBlQ2xpZW50fSBmcm9tICcuLi91dGlscy9zdHJpcGVVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7UGF5bWVudEludGVydmFsLCBQYXltZW50UGxhbiwgUGF5bWVudFN1YnNjcmlwdGlvbn0gZnJvbSAnLi4vdHlwZXMvcGF5bWVudHMudHlwZXMnO1xuXG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IGNvbnN0IGdldFBsYW5MaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGZyb206IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IFByb21pc2U8UGF5bWVudFBsYW5bXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHAgSU4gcGxhbnNcbiAgICAgICR7bGltaXQuYXFsfVxuICAgICAgU09SVCBwLmFtb3VudFxuICAgICAgUkVUVVJOIHBgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGxpc3QgPSBbXSkgPT4gbGlzdClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBzIElOIHN1YnNjcmlwdGlvbnNcbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy5jYW5jZWxsZWQgPiAwXG4gICAgICBMRVQgcGxhbiA9IEZJUlNUKFxuICAgICAgICBGT1IgcCBJTiBwbGFuc1xuICAgICAgICBGSUxURVIgcC5fa2V5ID09IHMucGxhbklkXG4gICAgICApXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gTUVSR0Uocywge3BsYW46IHBsYW59KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbiA9IHt9KSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRQbGFuID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IFBheW1lbnRQbGFuKTogUHJvbWlzZTxQYXltZW50UGxhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRQbGFuJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbn0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbS5pZCk7XG4gIGNvbnN0IHBsYW5JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbi51c2VySWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge2Ftb3VudCwgY3VycmVuY3kgPSAnVVNEJywgZGVzY3JpcHRpb24sIGludGVydmFsLCBpbnRlcnZhbENvdW50LCBuYW1lfSA9IGl0ZW07XG4gIGNvbnN0IGZvcm1hdEFtb3VudDogbnVtYmVyID0gcGFyc2VOdW0oYW1vdW50KTtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWw6IFBheW1lbnRJbnRlcnZhbCA9IHBhcnNlQ2hhcihpbnRlcnZhbCwgNSkudG9Mb3dlckNhc2UoKSBhcyBQYXltZW50SW50ZXJ2YWw7XG4gIGNvbnN0IGZvcm1hdEludGVydmFsQ250OiBudW1iZXIgPSBwYXJzZU51bShpbnRlcnZhbENvdW50LCA1KTtcbiAgY29uc3QgZm9ybWF0TmFtZTogc3RyaW5nID0gcGFyc2VWYXJDaGFyKG5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0RGVzYzogc3RyaW5nID0gcGFyc2VWYXJDaGFyKGRlc2NyaXB0aW9uLCAzMik7XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFBsYW4gPSB7XG4gICAgX2tleTogcGxhbklkLFxuICAgIGFkZGVkOiBub3csXG4gICAgYW1vdW50OiBmb3JtYXRBbW91bnQsXG4gICAgY3VycmVuY3ksXG4gICAgZGVzY3JpcHRpb246IGZvcm1hdERlc2MsXG4gICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgIGludGVydmFsQ291bnQ6IGZvcm1hdEludGVydmFsQ250LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgbmFtZTogZm9ybWF0TmFtZVxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gcGxhbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHBsYW46IFBheW1lbnRQbGFuKSA9PiB7XG4gICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcbiAgICAgIGNvbnN0IHN0cmlwZVBsYW46IHN0cmlwZS5QbGFuQ3JlYXRlUGFyYW1zID0ge1xuICAgICAgICBhbW91bnQ6IGZvcm1hdEFtb3VudCAqIDEwMCxcbiAgICAgICAgY3VycmVuY3ksXG4gICAgICAgIGlkOiBwbGFuSWQsXG4gICAgICAgIGludGVydmFsOiBmb3JtYXRJbnRlcnZhbCxcbiAgICAgICAgaW50ZXJ2YWxfY291bnQ6IGZvcm1hdEludGVydmFsQ250LFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0OiB7XG4gICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICBzdGF0ZW1lbnRfZGVzY3JpcHRvcjogZm9ybWF0RGVzY1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnBsYW5zXG4gICAgICAgIC5jcmVhdGUoc3RyaXBlUGxhbilcbiAgICAgICAgLnRoZW4oKCkgPT4gcGxhbik7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc319ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbjogYm9vbGVhbiA9IHVzZXJBY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBzdWJzY3JpcHRpb25JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbklkfWApIDogZm9ybWF0SWQ7XG4gIGNvbnN0IHtwbGFuSWQsIHRyaWFsRW5kLCB0cmlhbFBlcmlvZH0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRQbGFuSWQ6IHN0cmluZyA9IHBhcnNlSWQocGxhbklkKTtcbiAgY29uc3QgZm9ybWF0VHJpYWxQZXJpb2Q6IG51bWJlciA9IDA7XG4gIGxldCBmb3JtYXRUcmlhbEVuZDogbnVtYmVyID0gdHJpYWxFbmQgfHwgRGF0ZS5ub3coKTtcblxuICBpZihmb3JtYXRUcmlhbFBlcmlvZCkge1xuICAgIGZvcm1hdFRyaWFsRW5kID0gRGF0ZVRpbWUubG9jYWwoKS5wbHVzKHtkYXlzOiB0cmlhbFBlcmlvZH0pLnRvTWlsbGlzKCk7XG4gIH1cblxuICByZXR1cm4gZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBzZXNzaW9uSWR9KVxuICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgIF9rZXk6IHN1YnNjcmlwdGlvbklkLFxuICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICBjYW5jZWxEYXRlOiAwLFxuICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICBwbGFuSWQ6IGZvcm1hdFBsYW5JZCxcbiAgICAgICAgdHJpYWxFbmQ6IGZvcm1hdFRyaWFsRW5kLFxuICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBwbGFucyBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHtcbiAgICAgICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcbiAgICAgICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgICAgICBjdXN0b21lcjogdXNlci5zdHJpcGVDdXN0b21lcklkLFxuICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBsYW46IGZvcm1hdFBsYW5JZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmlhbF9lbmQ6IGZvcm1hdFRyaWFsRW5kXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIGdldFN1YnNjcmlwdGlvbihjb250ZXh0KVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IGdldFN0cmlwZUNsaWVudCgpO1xuXG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgLmNhbmNlbChzdWJzY3JpcHRpb24udHJhbnNhY3Rpb25JZClcbiAgICAgICAgLnRoZW4oKHtjYW5jZWxlZF9hdDogY2FuY2VsRGF0ZX0pID0+IHtcbiAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgY2FuY2VsbGVkIG9uIFN0cmlwZSBiZWZvcmUgdXBkYXRpbmcgdGhlIGRiXG4gICAgICAgICAgaWYoY2FuY2VsRGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgICBjYW5jZWxEYXRlLFxuICAgICAgICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICAgICAgICBwbGFuSWQ6ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUERBVEUgcyBXSVRIICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgICAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLGNBQUFBLEVBQVksYUFBQUMsRUFBVyxXQUFBQyxFQUFTLFlBQUFDLEVBQVUsZ0JBQUFDLE1BQW1CLGVBQ3JFLE9BQVEsT0FBQUMsTUFBVSxXQUVsQixPQUFRLFlBQUFDLE1BQWUsUUFHdkIsT0FBUSxXQUFBQyxNQUFjLFVBQ3RCLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsWUFBQUMsRUFBVSxnQkFBQUMsTUFBbUIsMEJBQ3JDLE9BQVEsWUFBQUMsRUFBVSxTQUFBQyxNQUFZLHlCQUM5QixPQUFRLGVBQUFDLE1BQWtCLHdCQUMxQixPQUFRLG1CQUFBQyxNQUFzQix1QkFPOUIsTUFBTUMsRUFBZ0IsZUFFVEMsRUFBYyxDQUFDQyxFQUFxQkMsRUFBZSxFQUFHQyxFQUFhLEtBQStCLENBQzdHLE1BQU1DLEVBQWlCLFVBQ2pCLENBQUMsYUFBQUMsQ0FBWSxFQUFJSixFQUVqQkssRUFBaUI7QUFBQSxRQURNWCxFQUFTTyxFQUFNQyxDQUFFLEVBRWxDLEdBQUc7QUFBQTtBQUFBLGdCQUlmLE9BQU9QLEVBQU1TLENBQVksRUFBRSxNQUFNQyxDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLEtBQUssQ0FBQ0MsRUFBTyxDQUFDLElBQU1BLENBQUksRUFDeEIsTUFBT0MsR0FBaUJoQixFQUFTLENBQ2hDLE9BQUFXLEVBQ0EsU0FBVUwsRUFDVixNQUFPUCxFQUFXLGNBQ3BCLEVBQUdpQixFQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBTSxJQUFJLEVBQUUsTUFBT0EsR0FBVSxRQUFRLE9BQU9BLENBQUssQ0FBQyxDQUFDLENBQzFFLEVBRWFDLEVBQW1CVCxHQUFzRCxDQUNwRixNQUFNRyxFQUFpQixVQUNqQixDQUFDLGFBQUFDLEVBQWMsUUFBUyxDQUFDLE9BQVFNLENBQVMsQ0FBQyxFQUFJVixFQUMvQ0ssRUFBaUI7QUFBQSwyQkFDRUssQ0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQ0FRbEMsT0FBT2YsRUFBTVMsQ0FBWSxFQUFFLE1BQU1DLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsS0FBSyxDQUFDSyxFQUFlLENBQUMsSUFBTUEsQ0FBWSxFQUN4QyxNQUFPSCxHQUFpQmhCLEVBQVMsQ0FDaEMsT0FBQVcsRUFDQSxTQUFVTCxFQUNWLE1BQU9QLEVBQVcsY0FDcEIsRUFBR2lCLEVBQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFNLElBQUksRUFBRSxNQUFPQSxHQUFVLFFBQVEsT0FBT0EsQ0FBSyxDQUFDLENBQUMsQ0FDMUUsRUFFYUksRUFBVSxDQUFDWixFQUFxQmEsSUFBNEMsQ0FDdkYsTUFBTVYsRUFBaUIsVUFDakIsQ0FBQyxhQUFBQyxFQUFjLFFBQUFVLENBQU8sRUFBSWQsRUFHaEMsR0FBRyxDQUZhSixFQUFZa0IsQ0FBTyxFQUdqQyxPQUFPckIsRUFBYSxDQUNsQixPQUFBVSxFQUNBLFNBQVVMLEVBQ1YsTUFBTyxlQUNQLE1BQU9QLEVBQVcsZUFDcEIsRUFBR1MsQ0FBTyxFQUFFLEtBQUssSUFBTSxJQUFJLEVBRzdCLE1BQU1lLEVBQWMsS0FBSyxJQUFJLEVBQ3ZCQyxFQUFtQi9CLEVBQVE0QixFQUFLLEVBQUUsRUFDbENJLEVBQWlCRCxJQUFhLEdBQUtqQyxFQUFXLGdCQUFnQitCLEVBQVEsTUFBTSxFQUFFLEVBQUlFLEVBQ2xGLENBQUMsT0FBQUUsRUFBUSxTQUFBQyxFQUFXLE1BQU8sWUFBQUMsRUFBYSxTQUFBQyxFQUFVLGNBQUFDLEVBQWUsS0FBQUMsQ0FBSSxFQUFJVixFQUN6RVcsRUFBdUJ0QyxFQUFTZ0MsQ0FBTSxFQUN0Q08sRUFBa0N6QyxFQUFVcUMsRUFBVSxDQUFDLEVBQUUsWUFBWSxFQUNyRUssRUFBNEJ4QyxFQUFTb0MsRUFBZSxDQUFDLEVBQ3JESyxFQUFxQnhDLEVBQWFvQyxFQUFNLEVBQUUsRUFDMUNLLEVBQXFCekMsRUFBYWlDLEVBQWEsRUFBRSxFQVlqRGYsRUFBbUJqQixXQVhHLENBQzFCLEtBQU02QixFQUNOLE1BQU9GLEVBQ1AsT0FBUVMsRUFDUixTQUFBTCxFQUNBLFlBQWFTLEVBQ2IsU0FBVUgsRUFDVixjQUFlQyxFQUNmLFNBQVVYLEVBQ1YsS0FBTVksQ0FDUixDQUM0Qyx1QkFFNUMsT0FBT2hDLEVBQU1TLENBQVksRUFBRSxNQUFNQyxDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sS0FBSyxDQUFDLEVBQzlCLEtBQU11QixHQUFzQixDQUMzQixNQUFNQyxFQUFlakMsRUFBZ0IsRUFDL0JrQyxFQUFzQyxDQUMxQyxPQUFRUCxFQUFlLElBQ3ZCLFNBQUFMLEVBQ0EsR0FBSUYsRUFDSixTQUFVUSxFQUNWLGVBQWdCQyxFQUNoQixTQUFVLENBQ1YsRUFDQSxRQUFTLENBQ1AsS0FBTUMsRUFDTixxQkFBc0JDLENBQ3hCLENBQ0YsRUFFQSxPQUFPRSxFQUFhLE1BQ2pCLE9BQU9DLENBQVUsRUFDakIsS0FBSyxJQUFNRixDQUFJLENBQ3BCLENBQUMsRUFDQSxNQUFPckIsR0FBaUJoQixFQUFTLENBQ2hDLE9BQUFXLEVBQ0EsU0FBVUwsRUFDVixNQUFPUCxFQUFXLGNBQ3BCLEVBQUdpQixFQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBTSxJQUFJLEVBQUUsTUFBT0EsR0FBVSxRQUFRLE9BQU9BLENBQUssQ0FBQyxDQUFDLENBQzFFLEVBRWF3QixFQUFrQixDQUFDaEMsRUFBcUJhLElBQXVDLENBQzFGLE1BQU1WLEVBQWlCLGtCQUNqQixDQUFDLGFBQUFDLEVBQWMsUUFBUyxDQUFDLE9BQVFNLEVBQVcsV0FBQXVCLENBQVUsQ0FBQyxFQUFJakMsRUFHakUsR0FBRyxFQUZzQmlDLEVBQWEsR0FHcEMsT0FBT3hDLEVBQWEsQ0FDbEIsT0FBQVUsRUFDQSxTQUFVTCxFQUNWLE1BQU8sZUFDUCxNQUFPLGlCQUNULEVBQUdFLENBQU8sRUFBRSxLQUFLLElBQU0sSUFBSSxFQUc3QixNQUFNZSxFQUFjLEtBQUssSUFBSSxFQUN2QkMsRUFBbUIvQixFQUFRNEIsRUFBSyxFQUFFLEVBQ2xDcUIsRUFBeUJsQixJQUFhLEdBQUtqQyxFQUFXLGdCQUFnQjJCLENBQVMsRUFBRSxFQUFJTSxFQUNyRixDQUFDLE9BQUFDLEVBQVEsU0FBQWtCLEVBQVUsWUFBQUMsQ0FBVyxFQUFJdkIsRUFDbEN3QixFQUF1QnBELEVBQVFnQyxDQUFNLEVBQ3JDcUIsRUFBNEIsRUFDbEMsSUFBSUMsRUFBeUJKLEdBQVksS0FBSyxJQUFJLEVBRWxELE9BQUdHLElBQ0RDLEVBQWlCbEQsRUFBUyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQU0rQyxDQUFXLENBQUMsRUFBRSxTQUFTLEdBR2hFOUMsRUFBUVUsRUFBUyxDQUFDLE9BQVFVLENBQVMsQ0FBQyxFQUN4QyxLQUFNOEIsR0FBUyxDQVVkLE1BQU1uQyxFQUFtQmpCLFdBVFcsQ0FDbEMsS0FBTThDLEVBQ04sTUFBT25CLEVBQ1AsV0FBWSxFQUNaLFNBQVVBLEVBQ1YsT0FBUXNCLEVBQ1IsU0FBVUUsRUFDVixPQUFRN0IsQ0FDVixDQUM0Qyx1QkFFNUMsT0FBT2YsRUFBTVMsQ0FBWSxFQUFFLE1BQU1DLENBQU0sRUFDcEMsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsS0FBSyxDQUFDSyxFQUFvQyxDQUFDLElBQ3JCZCxFQUFnQixFQUNqQixjQUNqQixPQUFPLENBQ04sU0FBVTJDLEVBQUssaUJBQ2YsTUFBTyxDQUNMLENBQ0UsS0FBTUgsQ0FDUixDQUNGLEVBQ0EsU0FBVSxDQUNSLE9BQVEzQixDQUNWLEVBQ0EsVUFBVzZCLENBQ2IsQ0FBQyxFQUNBLEtBQUssSUFBTTVCLENBQVksQ0FDM0IsRUFDQSxNQUFPSCxHQUFpQmhCLEVBQVMsQ0FDaEMsT0FBQVcsRUFDQSxTQUFVTCxFQUNWLE1BQU9QLEVBQVcsY0FDcEIsRUFBR2lCLEVBQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFNLElBQUksRUFBRSxNQUFPQSxHQUFVLFFBQVEsT0FBT0EsQ0FBSyxDQUFDLENBQUMsQ0FDMUUsQ0FBQyxDQUNMLEVBRWFpQyxHQUFzQnpDLEdBQTBDLENBQzNFLE1BQU1HLEVBQWlCLHFCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUosRUFDakJlLEVBQWMsS0FBSyxJQUFJLEVBRTdCLE9BQU9OLEVBQWdCVCxDQUFPLEVBQzNCLEtBQU1XLEdBQ2dCZCxFQUFnQixFQUVqQixjQUNqQixPQUFPYyxFQUFhLGFBQWEsRUFDakMsS0FBSyxDQUFDLENBQUMsWUFBYStCLENBQVUsSUFBTSxDQUVuQyxHQUFHQSxFQUFZLENBTWIsTUFBTXJDLEVBQW1CakIsa0JBTFcsQ0FDbEMsV0FBQXNELEVBQ0EsU0FBVTNCLEVBQ1YsT0FBUSxFQUNWLENBQ21ELG9CQUVuRCxPQUFPcEIsRUFBTVMsQ0FBWSxFQUFFLE1BQU1DLENBQU0sRUFDcEMsS0FBSyxJQUFNLEVBQUksRUFDZixNQUFPRyxHQUFpQmhCLEVBQVMsQ0FDaEMsT0FBQVcsRUFDQSxTQUFVTCxFQUNWLE1BQU9QLEVBQVcsY0FDcEIsRUFBR2lCLEVBQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFNLElBQUksRUFBRSxNQUFPQSxHQUFVLFFBQVEsT0FBT0EsQ0FBSyxDQUFDLENBQUMsQ0FDMUUsQ0FDQSxNQUFPLEVBQ1QsQ0FBQyxDQUNKLENBQ0wiLAogICJuYW1lcyI6IFsiY3JlYXRlSGFzaCIsICJwYXJzZUNoYXIiLCAicGFyc2VJZCIsICJwYXJzZU51bSIsICJwYXJzZVZhckNoYXIiLCAiYXFsIiwgIkRhdGVUaW1lIiwgImdldFVzZXIiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJsb2dFeGNlcHRpb24iLCAiZ2V0TGltaXQiLCAidXNlRGIiLCAiaXNBZG1pblVzZXIiLCAiZ2V0U3RyaXBlQ2xpZW50IiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0UGxhbkxpc3QiLCAiY29udGV4dCIsICJmcm9tIiwgInRvIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJsaXN0IiwgImVycm9yIiwgImdldFN1YnNjcmlwdGlvbiIsICJzZXNzaW9uSWQiLCAic3Vic2NyaXB0aW9uIiwgImFkZFBsYW4iLCAiaXRlbSIsICJzZXNzaW9uIiwgIm5vdyIsICJmb3JtYXRJZCIsICJwbGFuSWQiLCAiYW1vdW50IiwgImN1cnJlbmN5IiwgImRlc2NyaXB0aW9uIiwgImludGVydmFsIiwgImludGVydmFsQ291bnQiLCAibmFtZSIsICJmb3JtYXRBbW91bnQiLCAiZm9ybWF0SW50ZXJ2YWwiLCAiZm9ybWF0SW50ZXJ2YWxDbnQiLCAiZm9ybWF0TmFtZSIsICJmb3JtYXREZXNjIiwgInBsYW4iLCAic3RyaXBlQ2xpZW50IiwgInN0cmlwZVBsYW4iLCAiYWRkU3Vic2NyaXB0aW9uIiwgInVzZXJBY2Nlc3MiLCAic3Vic2NyaXB0aW9uSWQiLCAidHJpYWxFbmQiLCAidHJpYWxQZXJpb2QiLCAiZm9ybWF0UGxhbklkIiwgImZvcm1hdFRyaWFsUGVyaW9kIiwgImZvcm1hdFRyaWFsRW5kIiwgInVzZXIiLCAiZGVsZXRlU3Vic2NyaXB0aW9uIiwgImNhbmNlbERhdGUiXQp9Cg==
|
|
11
|
+
RETURN MERGE(s, {plan: plan})`;return f(o).query(n).then(s=>s.next()).then((s={})=>s).catch(s=>{throw I({action:e,category:l,label:d.DATABASE_ERROR},s,{})})},Z=(t,e)=>{const o="addPlan",{databaseName:a,session:n}=t;if(!$(n))throw D({action:o,category:l,label:"unauthorized",value:d.INVALID_SESSION},t);const c=Date.now(),r=N(e.id),m=r===""?v(`subscription-${n?.userId}`):r,{amount:y,currency:E="USD",description:g="",interval:h,intervalCount:P,name:R}=e,p=C(y),b=B(h,5).toLowerCase(),S=C(P,5),A=q(R,32),i=q(g,32),x=T`INSERT ${{_key:m,added:c,amount:p,currency:E,description:i,interval:b,intervalCount:S,modified:c,name:A}} IN plans RETURN NEW`;return f(a).query(x).then(u=>u.next()).then(u=>{if(!u)throw new Error("Plan not found");const L=w(),O={amount:p*100,currency:E,id:m,interval:b,interval_count:S,metadata:{},product:{name:A,statement_descriptor:i}};return L.plans.create(O).then(()=>u)}).catch(u=>{throw I({action:o,category:l,label:d.DATABASE_ERROR},u,{})})},tt=(t,e)=>{const o="addSubscription",{databaseName:a,session:{userId:n,userAccess:s}={}}=t;if(!(!!s&&s>2))throw D({action:o,category:l,label:"unauthorized",value:"invalid_session"},t);const r=Date.now(),m=N(e.id),y=m===""?v(`subscription-${n}`):m,{planId:E,trialEnd:g,trialPeriod:h}=e,P=N(E),R=0;let p=g||Date.now();return R&&(p=Q.local().plus({days:h}).toMillis()),F(t,{userId:n||""}).then(b=>{if(!b)throw new Error("User not found");const A=T`INSERT ${{_key:y,added:r,cancelDate:0,modified:r,planId:P,trialEnd:p,userId:n}} IN plans RETURN NEW`;return f(a).query(A).then(i=>i.next()).then(i=>{if(!i)throw new Error("Subscription not found");return w().subscriptions.create({customer:b.stripeCustomerId||"",items:[{plan:P}],metadata:{userId:n||""},trial_end:p}).then(()=>i)}).catch(i=>{throw I({action:o,category:l,label:d.DATABASE_ERROR},i,{})})})},nt=t=>{const e="deleteSubscription",{databaseName:o}=t,a=Date.now();return j(t).then(n=>w().subscriptions.cancel(n?.transactionId||"").then(({canceled_at:c})=>{if(c){const m=T`UPDATE s WITH ${{cancelDate:c,modified:a,planId:""}} IN subscriptions`;return f(o).query(m).then(()=>!0).catch(y=>{throw I({action:e,category:l,label:d.DATABASE_ERROR},y,{})})}return!1}))};export{Z as addPlan,tt as addSubscription,nt as deleteSubscription,Y as getPlanList,j as getSubscription};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3Vic2NyaXB0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQgdHlwZSB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRTdHJpcGVDbGllbnR9IGZyb20gJy4uL3V0aWxzL3N0cmlwZVV0aWxzLmpzJztcbmltcG9ydCB7Z2V0VXNlcn0gZnJvbSAnLi91c2Vycy5qcyc7XG5cbmltcG9ydCB7cGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL251bWJlcnMnO1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQgdHlwZSB7QXJhbmdvRGJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1BheW1lbnRJbnRlcnZhbCwgUGF5bWVudFBsYW4sIFBheW1lbnRTdWJzY3JpcHRpb259IGZyb20gJy4uL3R5cGVzL3BheW1lbnRzLnR5cGVzLmpzJztcblxuXG5jb25zdCBldmVudENhdGVnb3J5ID0gJ3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCBjb25zdCBnZXRQbGFuTGlzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmcm9tOiBudW1iZXIgPSAwLCB0bzogbnVtYmVyID0gMzApOiBQcm9taXNlPFBheW1lbnRQbGFuW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0TGlzdCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RiTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBwIElOIHBsYW5zXG4gICAgICAke2xpbWl0LmFxbH1cbiAgICAgIFNPUlQgcC5hbW91bnRcbiAgICAgIFJFVFVSTiBwYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0ID0gW10pID0+IGxpc3QpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgcyBJTiBzdWJzY3JpcHRpb25zXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMuY2FuY2VsbGVkID4gMFxuICAgICAgTEVUIHBsYW4gPSBGSVJTVChcbiAgICAgICAgRk9SIHAgSU4gcGxhbnNcbiAgICAgICAgRklMVEVSIHAuX2tleSA9PSBzLnBsYW5JZFxuICAgICAgKVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIE1FUkdFKHMsIHtwbGFuOiBwbGFufSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24gPSB7fSkgPT4gc3Vic2NyaXB0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFBsYW4gPSAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogUGF5bWVudFBsYW4pOiBQcm9taXNlPFBheW1lbnRQbGFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFBsYW4nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBpc0FkbWluVXNlcihzZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTlxuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChpdGVtLmlkKTtcbiAgY29uc3QgcGxhbklkOiBzdHJpbmcgPSBmb3JtYXRJZCA9PT0gJycgPyBjcmVhdGVIYXNoKGBzdWJzY3JpcHRpb24tJHtzZXNzaW9uPy51c2VySWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge2Ftb3VudCwgY3VycmVuY3kgPSAnVVNEJywgZGVzY3JpcHRpb24gPSAnJywgaW50ZXJ2YWwsIGludGVydmFsQ291bnQsIG5hbWV9ID0gaXRlbTtcbiAgY29uc3QgZm9ybWF0QW1vdW50OiBudW1iZXIgPSBwYXJzZU51bShhbW91bnQpO1xuICBjb25zdCBmb3JtYXRJbnRlcnZhbDogUGF5bWVudEludGVydmFsID0gcGFyc2VDaGFyKGludGVydmFsLCA1KS50b0xvd2VyQ2FzZSgpIGFzIFBheW1lbnRJbnRlcnZhbDtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWxDbnQ6IG51bWJlciA9IHBhcnNlTnVtKGludGVydmFsQ291bnQsIDUpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIobmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDMyKTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50UGxhbiA9IHtcbiAgICBfa2V5OiBwbGFuSWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBhbW91bnQ6IGZvcm1hdEFtb3VudCxcbiAgICBjdXJyZW5jeSxcbiAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICBpbnRlcnZhbDogZm9ybWF0SW50ZXJ2YWwsXG4gICAgaW50ZXJ2YWxDb3VudDogZm9ybWF0SW50ZXJ2YWxDbnQsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lOiBmb3JtYXROYW1lXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBwbGFucyBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigocGxhbjogUGF5bWVudFBsYW4gfCBudWxsKSA9PiB7XG4gICAgICBpZighcGxhbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsYW4gbm90IGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IGdldFN0cmlwZUNsaWVudCgpO1xuICAgICAgY29uc3Qgc3RyaXBlUGxhbjogc3RyaXBlLlBsYW5DcmVhdGVQYXJhbXMgPSB7XG4gICAgICAgIGFtb3VudDogZm9ybWF0QW1vdW50ICogMTAwLFxuICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgaWQ6IHBsYW5JZCxcbiAgICAgICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgICAgICBpbnRlcnZhbF9jb3VudDogZm9ybWF0SW50ZXJ2YWxDbnQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3Q6IHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgICAgICAgIHN0YXRlbWVudF9kZXNjcmlwdG9yOiBmb3JtYXREZXNjXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBzdHJpcGVDbGllbnQucGxhbnNcbiAgICAgICAgLmNyZWF0ZShzdHJpcGVQbGFuKVxuICAgICAgICAudGhlbigoKSA9PiBwbGFuKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc30gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gISF1c2VyQWNjZXNzICYmIHVzZXJBY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBzdWJzY3JpcHRpb25JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbklkfWApIDogZm9ybWF0SWQ7XG4gIGNvbnN0IHtwbGFuSWQsIHRyaWFsRW5kLCB0cmlhbFBlcmlvZH0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRQbGFuSWQ6IHN0cmluZyA9IHBhcnNlSWQocGxhbklkKTtcbiAgY29uc3QgZm9ybWF0VHJpYWxQZXJpb2Q6IG51bWJlciA9IDA7XG4gIGxldCBmb3JtYXRUcmlhbEVuZDogbnVtYmVyID0gdHJpYWxFbmQgfHwgRGF0ZS5ub3coKTtcblxuICBpZihmb3JtYXRUcmlhbFBlcmlvZCkge1xuICAgIGZvcm1hdFRyaWFsRW5kID0gRGF0ZVRpbWUubG9jYWwoKS5wbHVzKHtkYXlzOiB0cmlhbFBlcmlvZH0pLnRvTWlsbGlzKCk7XG4gIH1cblxuICByZXR1cm4gZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBzZXNzaW9uSWQgfHwgJyd9KVxuICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICBpZighdXNlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgbm90IGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgX2tleTogc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgIGNhbmNlbERhdGU6IDAsXG4gICAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICAgIHBsYW5JZDogZm9ybWF0UGxhbklkLFxuICAgICAgICB0cmlhbEVuZDogZm9ybWF0VHJpYWxFbmQsXG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICB9O1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24gfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYoIXN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdWJzY3JpcHRpb24gbm90IGZvdW5kJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3RyaXBlQ2xpZW50ID0gZ2V0U3RyaXBlQ2xpZW50KCk7XG4gICAgICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgICAgICAuY3JlYXRlKHtcbiAgICAgICAgICAgICAgY3VzdG9tZXI6IHVzZXIuc3RyaXBlQ3VzdG9tZXJJZCB8fCAnJyxcbiAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwbGFuOiBmb3JtYXRQbGFuSWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXNlcklkOiBzZXNzaW9uSWQgfHwgJydcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHJpYWxfZW5kOiBmb3JtYXRUcmlhbEVuZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHN1YnNjcmlwdGlvbik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgIH0sIGVycm9yLCB7fSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBnZXRTdWJzY3JpcHRpb24oY29udGV4dClcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcblxuICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgIC5jYW5jZWwoc3Vic2NyaXB0aW9uPy50cmFuc2FjdGlvbklkIHx8ICcnKVxuICAgICAgICAudGhlbigoe2NhbmNlbGVkX2F0OiBjYW5jZWxEYXRlfSkgPT4ge1xuICAgICAgICAgIGlmKGNhbmNlbERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgY2FuY2VsRGF0ZSxcbiAgICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgICAgcGxhbklkOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFIHMgV0lUSCAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc2A7XG5cbiAgICAgICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgICAgICAgICAgfSwgZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBRWxCLE9BQVEsWUFBQUMsTUFBZSxRQUd2QixPQUFRLGNBQUFDLE1BQWlCLDBCQUN6QixPQUFRLFlBQUFDLEVBQVUsZ0JBQUFDLE1BQW1CLDZCQUNyQyxPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSw0QkFDOUIsT0FBUSxlQUFBQyxNQUFrQiwyQkFDMUIsT0FBUSxtQkFBQUMsTUFBc0IsMEJBQzlCLE9BQVEsV0FBQUMsTUFBYyxhQUV0QixPQUFRLFlBQUFDLE1BQWUsK0JBQ3ZCLE9BQVEsY0FBQUMsRUFBWSxhQUFBQyxFQUFXLFdBQUFDLEVBQVMsZ0JBQUFDLE1BQW1CLCtCQU0zRCxNQUFNQyxFQUFnQixlQUVUQyxFQUFjLENBQUNDLEVBQXFCQyxFQUFlLEVBQUdDLEVBQWEsS0FBK0IsQ0FDN0csTUFBTUMsRUFBaUIsVUFDakIsQ0FBQyxhQUFBQyxDQUFZLEVBQUlKLEVBRWpCSyxFQUFpQjtBQUFBLFFBRE1qQixFQUFTYSxFQUFNQyxDQUFFLEVBRWxDLEdBQUc7QUFBQTtBQUFBLGdCQUlmLE9BQU9iLEVBQU1lLENBQVksRUFBRSxNQUFNQyxDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLEtBQUssQ0FBQ0MsRUFBTyxDQUFDLElBQU1BLENBQUksRUFDeEIsTUFBT0MsR0FBaUIsQ0FDdkIsTUFBTXRCLEVBQVMsQ0FDYixPQUFBaUIsRUFDQSxTQUFVTCxFQUNWLE1BQU9iLEVBQVcsY0FDcEIsRUFBR3VCLEVBQU8sQ0FBQyxDQUFDLENBQ2QsQ0FB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QzVCLENBQUMsRUFDQSxNQUFPSCxHQUFpQixDQUN2QixNQUFNdEIsRUFBUyxDQUNiLE9BQUFpQixFQUNBLFNBQVVMLEVBQ1YsTUFBT2IsRUFBVyxjQUNwQixFQUFHdUIsRUFBTyxDQUFDLENBQUMsQ0FDZCxDQUFDLENBQ0wsQ0FBQyxDQUNMLEVBRWFpQyxHQUFzQnpDLEdBQTBDLENBQzNFLE1BQU1HLEVBQWlCLHFCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUosRUFDakJlLEVBQWMsS0FBSyxJQUFJLEVBRTdCLE9BQU9OLEVBQWdCVCxDQUFPLEVBQzNCLEtBQU1XLEdBQ2dCcEIsRUFBZ0IsRUFFakIsY0FDakIsT0FBT29CLEdBQWMsZUFBaUIsRUFBRSxFQUN4QyxLQUFLLENBQUMsQ0FBQyxZQUFhK0IsQ0FBVSxJQUFNLENBQ25DLEdBQUdBLEVBQVksQ0FNYixNQUFNckMsRUFBbUJ0QixrQkFMVyxDQUNsQyxXQUFBMkQsRUFDQSxTQUFVM0IsRUFDVixPQUFRLEVBQ1YsQ0FDbUQsb0JBRW5ELE9BQU8xQixFQUFNZSxDQUFZLEVBQUUsTUFBTUMsQ0FBTSxFQUNwQyxLQUFLLElBQU0sRUFBSSxFQUNmLE1BQU9HLEdBQWlCLENBQ3ZCLE1BQU10QixFQUFTLENBQ2IsT0FBQWlCLEVBQ0EsU0FBVUwsRUFDVixNQUFPYixFQUFXLGNBQ3BCLEVBQUd1QixFQUFPLENBQUMsQ0FBQyxDQUNkLENBQUMsQ0FDTCxDQUNBLE1BQU8sRUFDVCxDQUFDLENBQ0osQ0FDTCIsCiAgIm5hbWVzIjogWyJhcWwiLCAiRGF0ZVRpbWUiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJsb2dFeGNlcHRpb24iLCAiZ2V0TGltaXQiLCAidXNlRGIiLCAiaXNBZG1pblVzZXIiLCAiZ2V0U3RyaXBlQ2xpZW50IiwgImdldFVzZXIiLCAicGFyc2VOdW0iLCAiY3JlYXRlSGFzaCIsICJwYXJzZUNoYXIiLCAicGFyc2VJZCIsICJwYXJzZVZhckNoYXIiLCAiZXZlbnRDYXRlZ29yeSIsICJnZXRQbGFuTGlzdCIsICJjb250ZXh0IiwgImZyb20iLCAidG8iLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImxpc3QiLCAiZXJyb3IiLCAiZ2V0U3Vic2NyaXB0aW9uIiwgInNlc3Npb25JZCIsICJzdWJzY3JpcHRpb24iLCAiYWRkUGxhbiIsICJpdGVtIiwgInNlc3Npb24iLCAibm93IiwgImZvcm1hdElkIiwgInBsYW5JZCIsICJhbW91bnQiLCAiY3VycmVuY3kiLCAiZGVzY3JpcHRpb24iLCAiaW50ZXJ2YWwiLCAiaW50ZXJ2YWxDb3VudCIsICJuYW1lIiwgImZvcm1hdEFtb3VudCIsICJmb3JtYXRJbnRlcnZhbCIsICJmb3JtYXRJbnRlcnZhbENudCIsICJmb3JtYXROYW1lIiwgImZvcm1hdERlc2MiLCAicGxhbiIsICJzdHJpcGVDbGllbnQiLCAic3RyaXBlUGxhbiIsICJhZGRTdWJzY3JpcHRpb24iLCAidXNlckFjY2VzcyIsICJzdWJzY3JpcHRpb25JZCIsICJ0cmlhbEVuZCIsICJ0cmlhbFBlcmlvZCIsICJmb3JtYXRQbGFuSWQiLCAiZm9ybWF0VHJpYWxQZXJpb2QiLCAiZm9ybWF0VHJpYWxFbmQiLCAidXNlciIsICJkZWxldGVTdWJzY3JpcHRpb24iLCAiY2FuY2VsRGF0ZSJdCn0K
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
2
|
+
import type { TagType } from '../types/tags.types.js';
|
|
3
|
+
export interface TagOptions {
|
|
4
|
+
readonly from?: number;
|
|
5
|
+
readonly search?: string;
|
|
6
|
+
readonly to?: number;
|
|
7
|
+
readonly userId?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const getTags: (context: ApiContext, options?: TagOptions) => Promise<TagType[]>;
|
|
10
|
+
export declare const getTagsByItem: (context: ApiContext, itemDocId: string, options?: TagOptions) => Promise<TagType[]>;
|
|
11
|
+
export declare const getTag: (context: ApiContext, tagId: string) => Promise<TagType>;
|
|
12
|
+
export declare const getTagsByName: (context: ApiContext, tagNames: string[]) => Promise<TagType[]>;
|
|
13
|
+
export declare const addTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
|
|
14
|
+
export declare const addTagToItem: (context: ApiContext, { itemDocId, tagBy, tagDocId }: {
|
|
15
|
+
itemDocId: string;
|
|
16
|
+
tagBy?: string;
|
|
17
|
+
tagDocId: string;
|
|
18
|
+
}) => Promise<TagType>;
|
|
19
|
+
export declare const updateTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
|
|
20
|
+
export declare const deleteTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
|
|
21
|
+
export declare const deleteTagFromEdge: (context: ApiContext, { tagDocId, edgeDocId }: {
|
|
22
|
+
tagDocId: any;
|
|
23
|
+
edgeDocId: any;
|
|
24
|
+
}) => Promise<TagType>;
|
|
25
|
+
export declare const deleteTagFromItem: (context: ApiContext, { tagId, itemId, itemType }: {
|
|
26
|
+
tagId: any;
|
|
27
|
+
itemId: any;
|
|
28
|
+
itemType: any;
|
|
29
|
+
}) => Promise<boolean>;
|
|
30
|
+
export declare const extractTags: (content: string) => string[];
|
|
31
|
+
export declare const updateTagsInItem: (context: ApiContext, { itemDocId, tags }: {
|
|
32
|
+
itemDocId: any;
|
|
33
|
+
tags: any;
|
|
34
|
+
}) => Promise<TagType[]>;
|