@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/tags.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{createHash as O,parseArangoId as
|
|
1
|
+
import{createHash as O,parseArangoId as R,parseId as D,parseVarChar as A}from"@nlabs/utils/parsers/strings";import{words as q}from"@nlabs/utils/strings/words";import{aql as I}from"arangojs";import{parseTag as h}from"../adapters/tagAdapter.js";import{ErrorTypes as m}from"../types/error.types.js";import{logError as d}from"../utils/analyticsUtils.js";import{getDocId as C,getLimit as x,useDb as y}from"../utils/arangodbUtils.js";const p="tags",P=(o,r={})=>{const n="getList",{databaseName:s}=o,{search:a="",from:g=0,to:t=30,userId:e}=r,i=x(g,t),T=[];a&&T.push(`LIKE(t.name, "%${a}%")`),e&&T.push(`t.userId == "${e}"`);const c=`FOR t IN tags
|
|
2
2
|
FILTER ${T.join(" || ")}
|
|
3
3
|
${i.aql}
|
|
4
4
|
SORT t.name
|
|
5
|
-
RETURN t`;return y(s).query(c).then(l=>l.all()).catch(l=>(d({action:n,category:p,value:m.DATABASE_ERROR},l,{}),[]))},U=(o,r,n={})=>{const s="getTagsByItem",{from:a=0,to:g=30}=n,{databaseName:t}=o,e=x(a,g),T=`FOR t, it IN INBOUND "${
|
|
5
|
+
RETURN t`;return y(s).query(c).then(l=>l.all()).catch(l=>(d({action:n,category:p,value:m.DATABASE_ERROR},l,{}),[]))},U=(o,r,n={})=>{const s="getTagsByItem",{from:a=0,to:g=30}=n,{databaseName:t}=o,e=x(a,g),T=`FOR t, it IN INBOUND "${R(r)}" isTagged
|
|
6
6
|
${e.aql}
|
|
7
7
|
SORT it.added
|
|
8
8
|
RETURN t`;return y(t).query(T).then(c=>c.all()).catch(c=>(d({action:s,category:p,value:m.DATABASE_ERROR},c,{}),[]))},k=(o,r)=>{const n="getTag",{databaseName:s}=o,g=`FOR t IN tags
|
|
@@ -10,7 +10,7 @@ import{createHash as O,parseArangoId as u,parseId as D,parseVarChar as A}from"@n
|
|
|
10
10
|
LIMIT 1
|
|
11
11
|
RETURN t`;return y(s).query(g).then(t=>t.next()).catch(t=>d({action:n,category:p,value:m.DATABASE_ERROR},t,{}))},M=(o,r)=>{const n="getTagsByName",{databaseName:s}=o,a=r.map(t=>A(t,32)).filter(t=>!!t);if(!a.length)return Promise.resolve([]);const g=I`FOR t IN tags
|
|
12
12
|
FILTER POSITION(${JSON.stringify(a)}, t.name)
|
|
13
|
-
RETURN t`;return y(s).query(g).then(t=>t.all()).catch(t=>(d({action:n,category:p,value:m.DATABASE_ERROR},t,{}),[]))},
|
|
13
|
+
RETURN t`;return y(s).query(g).then(t=>t.all()).catch(t=>(d({action:n,category:p,value:m.DATABASE_ERROR},t,{}),[]))},j=(o,r)=>{const n="addTag",{databaseName:s}=o,a=Date.now(),{description:g,name:t}=h(r),i={_key:O(`tag-${t?.toLowerCase()}`),added:a,description:A(g,64),modified:a,name:A(t,32)},T=I`INSERT ${i} IN tags RETURN NEW`;return y(s).query(T).then(c=>c.next()).catch(c=>d({action:n,category:p,value:m.DATABASE_ERROR},c,{}))},$=async(o,{itemDocId:r,tagBy:n="",tagDocId:s})=>{const a="addTagToItem",{databaseName:g,session:{userId:t}={}}=o,e=Date.now(),i=R(s),T=R(r),c=O(`isTagged-${i}-${T}`),l=y(g).collection("isTagged"),f=T.split("/")[0],N=D(n)||t||"",E={_from:i,_key:c,_to:T,added:e,tagBy:N,type:f};await l.save(E,{overwriteMode:"ignore",returnNew:!0,silent:!0}).catch(u=>d({action:a,category:p,params:{edge:E},value:m.DATABASE_ERROR},u,{}));const _=I`LET t = DOCUMENT(${i}) RETURN t`;return y(g).query(_).then(u=>u.next()).catch(u=>d({action:a,category:p,params:{edge:E},value:m.DATABASE_ERROR},u,{}))},V=(o,r)=>{const n="updateTag",{databaseName:s,session:{userId:a}={}}=o,g=Date.now(),{description:t,name:e,tagId:i}=h(r),T=A(e,32),c={description:A(t,64),modified:g,name:T},l=i||O(`tag-${T.toLowerCase()}`),f={...c,_id:`tags/${l}`,_key:l,added:g,tagBy:a},N=I`UPSERT {name: ${T}}
|
|
14
14
|
INSERT ${f}
|
|
15
15
|
UPDATE ${c}
|
|
16
16
|
IN tags RETURN NEW`;return y(s).query(N).then(E=>E.next()).catch(E=>d({action:n,category:p,value:m.DATABASE_ERROR},E,{}))},K=async(o,r)=>{const n="deleteTag",{databaseName:s}=o,a=C("tags",r),g=`FOR it FROM isTagged
|
|
@@ -18,7 +18,7 @@ import{createHash as O,parseArangoId as u,parseId as D,parseVarChar as A}from"@n
|
|
|
18
18
|
REMOVE it IN isTagged
|
|
19
19
|
RETURN OLD`;await y(s).query(g).then(e=>e.all()).catch(e=>d({action:n,category:p,value:m.DATABASE_ERROR},e,{}));const t=`LET t = DOCUMENT(${a})
|
|
20
20
|
REMOVE t IN tags
|
|
21
|
-
RETURN OLD`;return y(s).query(t).then(e=>e.next()).catch(e=>d({action:n,category:p,value:m.DATABASE_ERROR},e,{}))},B=async(o,{tagDocId:r,edgeDocId:n})=>{const s="deleteTagFromEdge",{databaseName:a}=o,g=
|
|
21
|
+
RETURN OLD`;return y(s).query(t).then(e=>e.next()).catch(e=>d({action:n,category:p,value:m.DATABASE_ERROR},e,{}))},B=async(o,{tagDocId:r,edgeDocId:n})=>{const s="deleteTagFromEdge",{databaseName:a}=o,g=R(r),t=R(n),e=y(a).collection("isTagged"),i={_id:t};await e.remove(i,{silent:!0}).catch(c=>d({action:s,category:p,value:m.DATABASE_ERROR},c,{}));const T=I`LET t = DOCUMENT(${g}) RETURN t`;return y(a).query(T).then(c=>c.next()).catch(c=>d({action:s,category:p,value:m.DATABASE_ERROR},c,{}))},W=async(o,{tagId:r,itemId:n,itemType:s})=>{const a="deleteTagFromItem",{databaseName:g}=o,t=R(`tags/${r}`),e=R(`${s}/${n}`),i=`FOR it FROM isTagged
|
|
22
22
|
FILTER it._from == "${t}" || it._to == "${e}"
|
|
23
|
-
REMOVE it IN isTagged`;return y(g).query(i).then(()=>!0).catch(T=>d({action:a,category:p,value:m.DATABASE_ERROR},T,{}))},z=o=>q(o,/#[a-zA-Z\d-]+/g).map(r=>D(r)),H=(o,{itemDocId:r,tags:n})=>{const s="updateTagsInItem",{databaseName:a}=o;return y(a).collection("isTagged").inEdges(r,{}).then(t=>Promise.all([...t.filter(({name:e})=>!n.find(({name:i})=>e===i)).map(({_id:e,_from:i})=>B(o,{edgeDocId:e,tagDocId:i})),...n.filter(({name:e})=>!t.find(({name:i})=>i===e)).map(({_id:e,tagBy:i})=>$(o,{itemDocId:r,tagBy:i,tagDocId:e}))]).then(()=>n)).catch(t=>d({action:s,category:p,value:m.DATABASE_ERROR},t,{}))};export{
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvdGFncy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0VkZ2V9IGZyb20gJ2FyYW5nb2pzL2RvY3VtZW50cyc7XG5pbXBvcnQgd29yZHMgZnJvbSAnbG9kYXNoL3dvcmRzJztcblxuaW1wb3J0IHtwYXJzZVRhZ30gZnJvbSAnLi4vYWRhcHRlcnMvdGFnQWRhcHRlcic7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7Z2V0RG9jSWQsIGdldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7SXNUYWdnZWRUeXBlLCBUYWdUeXBlfSBmcm9tICcuLi90eXBlcy90YWdzLnR5cGVzJztcbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAndGFncyc7XG5leHBvcnQgaW50ZXJmYWNlIFRhZ09wdGlvbnMge1xuICByZWFkb25seSBmcm9tPzogbnVtYmVyO1xuICByZWFkb25seSBzZWFyY2g/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xuICByZWFkb25seSB1c2VySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRUYWdzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBvcHRpb25zOiBUYWdPcHRpb25zID0ge31cbik6IFByb21pc2U8VGFnVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtzZWFyY2ggPSAnJywgZnJvbSA9IDAsIHRvID0gMzAsIHVzZXJJZH0gPSBvcHRpb25zO1xuICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcblxuICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmKHNlYXJjaCkge1xuICAgIGZpbHRlcnMucHVzaChgTElLRSh0Lm5hbWUsIFwiJSR7c2VhcmNofSVcIilgKTtcbiAgfVxuXG4gIGlmKHVzZXJJZCkge1xuICAgIGZpbHRlcnMucHVzaChgdC51c2VySWQgPT0gXCIke3VzZXJJZH1cImApO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHQgSU4gdGFnc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignIHx8ICcpfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFNPUlQgdC5uYW1lXG4gICAgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkgYXMgdW5rbm93biBhcyBUYWdUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG5cbiAgICAgIHJldHVybiBbXSBhcyBUYWdUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFnc0J5SXRlbSA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbURvY0lkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFRhZ09wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUYWdUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VGFnc0J5SXRlbSc7XG4gIGNvbnN0IHtmcm9tID0gMCwgdG8gPSAzMH0gPSBvcHRpb25zO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbURvY0lkKTtcbiAgY29uc3QgdGFnUXVlcnk6IHN0cmluZyA9IGBGT1IgdCwgaXQgSU4gSU5CT1VORCBcIiR7Zm9ybWF0SXRlbUlkfVwiIGlzVGFnZ2VkXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgU09SVCBpdC5hZGRlZFxuICAgIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh0YWdRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkgYXMgdW5rbm93biBhcyBUYWdUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG5cbiAgICAgIHJldHVybiBbXSBhcyBUYWdUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFnID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRhZ0lkOiBzdHJpbmcpOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VGFnJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZCh0YWdJZCk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiB0IElOIHRhZ3NcbiAgICBGSUxURVIgdC5fa2V5ID09IFwiJHtmb3JtYXRJZH1cIlxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYWdzQnlOYW1lID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRhZ05hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8VGFnVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFRhZ3NCeU5hbWUnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFRhZ05hbWVzID0gdGFnTmFtZXNcbiAgICAubWFwKCh0YWdOYW1lKSA9PiBwYXJzZVZhckNoYXIodGFnTmFtZSwgMzIpKVxuICAgIC5maWx0ZXIoKHRhZ05hbWUpID0+ICEhdGFnTmFtZSk7XG5cbiAgaWYoIWZvcm1hdFRhZ05hbWVzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdCBJTiB0YWdzXG4gICAgRklMVEVSIFBPU0lUSU9OKCR7SlNPTi5zdHJpbmdpZnkoZm9ybWF0VGFnTmFtZXMpfSwgdC5uYW1lKVxuICAgIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpIGFzIHVua25vd24gYXMgVGFnVHlwZVtdKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuXG4gICAgICByZXR1cm4gW10gYXMgVGFnVHlwZVtdO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFRhZyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0YWc6IFRhZ1R5cGUpOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkVGFnJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHtkZXNjcmlwdGlvbiwgbmFtZX0gPSBwYXJzZVRhZyh0YWcpO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgdGFnLSR7bmFtZS50b0xvd2VyQ2FzZSgpfWAsIG51bGwpO1xuICBjb25zdCBpbnNlcnQ6IFRhZ1R5cGUgPSB7XG4gICAgX2tleTogZm9ybWF0SWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBkZXNjcmlwdGlvbjogcGFyc2VWYXJDaGFyKGRlc2NyaXB0aW9uLCA2NCksXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lOiBwYXJzZVZhckNoYXIobmFtZSwgMzIpXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiB0YWdzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVGFnVG9JdGVtID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB7aXRlbURvY0lkLCB0YWdCeSwgdGFnRG9jSWR9OiB7aXRlbURvY0lkOiBzdHJpbmcsIHRhZ0J5Pzogc3RyaW5nLCB0YWdEb2NJZDogc3RyaW5nfVxuKTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFRhZ1RvSXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgYWRkZWQ6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdFRhZ0RvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKHRhZ0RvY0lkKTtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1Eb2NJZCk7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgaXNUYWdnZWQtJHtmb3JtYXRUYWdEb2NJZH0tJHtmb3JtYXRJdGVtRG9jSWR9YCwgbnVsbCk7XG4gIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaXNUYWdnZWQnKTtcbiAgY29uc3QgdHlwZTogc3RyaW5nID0gZm9ybWF0SXRlbURvY0lkLnNwbGl0KCcvJylbMF07XG4gIGNvbnN0IGZvcm1hdFRhZ0J5OiBzdHJpbmcgPSBwYXJzZUlkKHRhZ0J5KSB8fCBzZXNzaW9uSWQ7XG4gIGNvbnN0IGVkZ2U6IEVkZ2UgPSB7X2Zyb206IGZvcm1hdFRhZ0RvY0lkLCBfa2V5OiBlZGdlSWQsIF90bzogZm9ybWF0SXRlbURvY0lkLCBhZGRlZCwgdGFnQnk6IGZvcm1hdFRhZ0J5LCB0eXBlfTtcblxuICBhd2FpdCBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtvdmVyd3JpdGVNb2RlOiAnaWdub3JlJywgcmV0dXJuTmV3OiB0cnVlLCBzaWxlbnQ6IHRydWV9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBlZGdlXG4gICAgICB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcblxuICBjb25zdCB0YWdRdWVyeTogQXFsUXVlcnkgPSBhcWxgTEVUIHQgPSBET0NVTUVOVCgke2Zvcm1hdFRhZ0RvY0lkfSkgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHRhZ1F1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGVkZ2VcbiAgICAgIH0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRhZyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0YWc6IFRhZ1R5cGUpOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlVGFnJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHtkZXNjcmlwdGlvbiwgbmFtZSwgdGFnSWR9ID0gcGFyc2VUYWcodGFnKTtcbiAgY29uc3QgZm9ybWF0TmFtZTogc3RyaW5nID0gcGFyc2VWYXJDaGFyKG5hbWUsIDMyKTtcbiAgY29uc3QgdXBkYXRlOiBUYWdUeXBlID0ge1xuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDY0KSxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IGZvcm1hdE5hbWVcbiAgfTtcbiAgY29uc3QgbmV3VGFnS2V5OiBzdHJpbmcgPSB0YWdJZCB8fCBjcmVhdGVIYXNoKGB0YWctJHtmb3JtYXROYW1lLnRvTG93ZXJDYXNlKCl9YCwgbnVsbCk7XG4gIGNvbnN0IGluc2VydDogVGFnVHlwZSA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2lkOiBgdGFncy8ke25ld1RhZ0tleX1gLFxuICAgIF9rZXk6IG5ld1RhZ0tleSxcbiAgICBhZGRlZDogbm93LFxuICAgIHRhZ0J5OiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge25hbWU6ICR7Zm9ybWF0TmFtZX19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBJTiB0YWdzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVGFnID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRhZzogVGFnVHlwZSk6IFByb21pc2U8VGFnVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGVUYWcnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IGdldERvY0lkKCd0YWdzJywgdGFnKTtcbiAgY29uc3QgdGFnUXVlcnk6IHN0cmluZyA9IGBGT1IgaXQgRlJPTSBpc1RhZ2dlZFxuICAgIEZJTFRFUiBpdC5fZnJvbSA9PSBcIiR7Zm9ybWF0SXRlbUlkfVwiIHx8IGl0Ll90byA9PSBcIiR7Zm9ybWF0SXRlbUlkfVwiXG4gICAgUkVNT1ZFIGl0IElOIGlzVGFnZ2VkXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgYXdhaXQgdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh0YWdRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcblxuICBjb25zdCBhcWxRcnkgPSBgTEVUIHQgPSBET0NVTUVOVCgke2Zvcm1hdEl0ZW1JZH0pXG4gICAgUkVNT1ZFIHQgSU4gdGFnc1xuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVGFnRnJvbUVkZ2UgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwge3RhZ0RvY0lkLCBlZGdlRG9jSWR9KTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdkZWxldGVUYWdGcm9tRWRnZSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VGFnRG9jSWQgPSBwYXJzZUFyYW5nb0lkKHRhZ0RvY0lkKTtcbiAgY29uc3QgZm9ybWF0RWRnZURvY0lkID0gcGFyc2VBcmFuZ29JZChlZGdlRG9jSWQpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJyk7XG4gIGNvbnN0IGVkZ2UgPSB7X2lkOiBmb3JtYXRFZGdlRG9jSWR9O1xuXG4gIGF3YWl0IGVkZ2VDb2xsZWN0aW9uLnJlbW92ZShlZGdlLCB7c2lsZW50OiB0cnVlfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xuXG4gIGNvbnN0IHRhZ1F1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgdCA9IERPQ1VNRU5UKCR7Zm9ybWF0VGFnRG9jSWR9KSBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodGFnUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRhZ0Zyb21JdGVtID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIHt0YWdJZCwgaXRlbUlkLCBpdGVtVHlwZX0pOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2RlbGV0ZVRhZ0Zyb21JdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRUYWdEb2NJZCA9IHBhcnNlQXJhbmdvSWQoYHRhZ3MvJHt0YWdJZH1gKTtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkID0gcGFyc2VBcmFuZ29JZChgJHtpdGVtVHlwZX0vJHtpdGVtSWR9YCk7XG5cbiAgY29uc3QgYXFsUXVlcnk6IHN0cmluZyA9IGBGT1IgaXQgRlJPTSBpc1RhZ2dlZFxuICAgIEZJTFRFUiBpdC5fZnJvbSA9PSBcIiR7Zm9ybWF0VGFnRG9jSWR9XCIgfHwgaXQuX3RvID09IFwiJHtmb3JtYXRJdGVtRG9jSWR9XCJcbiAgICBSRU1PVkUgaXQgSU4gaXNUYWdnZWRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0VGFncyA9IChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSA9PlxuICB3b3Jkcyhjb250ZW50LCAvI1thLXpBLVpcXGQtXSsvZykubWFwKCh0YWc6IHN0cmluZykgPT4gcGFyc2VJZCh0YWcpKTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRhZ3NJbkl0ZW0gPSAoY29udGV4dDogQXBpQ29udGV4dCwge2l0ZW1Eb2NJZCwgdGFnc30pOiBQcm9taXNlPFRhZ1R5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAndXBkYXRlVGFnc0luSXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJykgYXMgRWRnZUNvbGxlY3Rpb248VGFnVHlwZT47XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLmluRWRnZXMoaXRlbURvY0lkLCB7fSlcbiAgICAudGhlbigoZWRnZXMpID0+IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLihlZGdlcyBhcyB1bmtub3duIGFzIElzVGFnZ2VkVHlwZVtdKVxuICAgICAgICAuZmlsdGVyKCh7bmFtZTogZXhpc3RpbmdUYWdOYW1lfSkgPT4gIXRhZ3MuZmluZCgoe25hbWU6IHRhZ05hbWV9KSA9PiBleGlzdGluZ1RhZ05hbWUgPT09IHRhZ05hbWUpKVxuICAgICAgICAubWFwKCh7X2lkOiBlZGdlRG9jSWQsIF9mcm9tOiB0YWdEb2NJZH0pID0+IGRlbGV0ZVRhZ0Zyb21FZGdlKGNvbnRleHQsIHtlZGdlRG9jSWQsIHRhZ0RvY0lkfSkpLFxuICAgICAgLi4uKHRhZ3MgYXMgdW5rbm93biBhcyBUYWdUeXBlW10pXG4gICAgICAgIC5maWx0ZXIoKHtuYW1lOiB0YWdOYW1lfSkgPT4gIShlZGdlcyBhcyB1bmtub3duIGFzIElzVGFnZ2VkVHlwZVtdKVxuICAgICAgICAgIC5maW5kKCh7bmFtZTogZXhpc3RpbmdUYWdOYW1lfSkgPT4gZXhpc3RpbmdUYWdOYW1lID09PSB0YWdOYW1lKSlcbiAgICAgICAgLm1hcCgoe19pZDogdGFnRG9jSWQsIHRhZ0J5fSkgPT4gYWRkVGFnVG9JdGVtKGNvbnRleHQsIHtpdGVtRG9jSWQsIHRhZ0J5LCB0YWdEb2NJZH0pKVxuICAgIF0pXG4gICAgICAudGhlbigoKSA9PiB0YWdzKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsY0FBQUEsRUFBWSxpQkFBQUMsRUFBZSxXQUFBQyxFQUFTLGdCQUFBQyxNQUFtQixlQUMvRCxPQUFRLE9BQUFDLE1BQVUsV0FHbEIsT0FBT0MsTUFBVyxlQUVsQixPQUFRLFlBQUFDLE1BQWUseUJBQ3ZCLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsWUFBQUMsTUFBZSwwQkFDdkIsT0FBUSxZQUFBQyxFQUFVLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSx5QkFPeEMsTUFBTUMsRUFBd0IsT0FRakJDLEVBQVUsQ0FDckJDLEVBQ0FDLEVBQXNCLENBQUMsSUFDQSxDQUN2QixNQUFNQyxFQUFpQixVQUNqQixDQUFD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L0IsR0FBZ0JuQyxFQUFRbUMsQ0FBRyxDQUFDLEVBRXZEZ0MsRUFBbUIsQ0FBQ3ZELEVBQXFCLENBQUMsVUFBQWMsRUFBVyxLQUFBMEMsQ0FBSSxJQUEwQixDQUM5RixNQUFNdEQsRUFBUyxtQkFDVCxDQUFDLGFBQUFDLENBQVksRUFBSUgsRUFHdkIsT0FGdUJILEVBQU1NLENBQVksRUFBRSxXQUFXLFVBQVUsRUFFMUMsUUFBUVcsRUFBVyxDQUFDLENBQUMsRUFDeEMsS0FBTTJDLEdBQVUsUUFBUSxJQUFJLENBQzNCLEdBQUlBLEVBQ0QsT0FBTyxDQUFDLENBQUMsS0FBTUMsQ0FBZSxJQUFNLENBQUNGLEVBQUssS0FBSyxDQUFDLENBQUMsS0FBTW5DLENBQU8sSUFBTXFDLElBQW9CckMsQ0FBTyxDQUFDLEVBQ2hHLElBQUksQ0FBQyxDQUFDLElBQUswQixFQUFXLE1BQU9qQixDQUFRLElBQU1nQixFQUFrQjlDLEVBQVMsQ0FBQyxVQUFBK0MsRUFBVyxTQUFBakIsQ0FBUSxDQUFDLENBQUMsRUFDL0YsR0FBSTBCLEVBQ0QsT0FBTyxDQUFDLENBQUMsS0FBTW5DLENBQU8sSUFBTSxDQUFFb0MsRUFDNUIsS0FBSyxDQUFDLENBQUMsS0FBTUMsQ0FBZSxJQUFNQSxJQUFvQnJDLENBQU8sQ0FBQyxFQUNoRSxJQUFJLENBQUMsQ0FBQyxJQUFLUyxFQUFVLE1BQUFELENBQUssSUFBTUQsRUFBYTVCLEVBQVMsQ0FBQyxVQUFBYyxFQUFXLE1BQUFlLEVBQU8sU0FBQUMsQ0FBUSxDQUFDLENBQUMsQ0FDeEYsQ0FBQyxFQUNFLEtBQUssSUFBTTBCLENBQUksQ0FBQyxFQUNsQixNQUFPNUMsR0FBaUJsQixFQUFTLENBQ2hDLE9BQUFRLEVBQ0EsU0FBVUosRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUdtQixFQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2pCIiwKICAibmFtZXMiOiBbImNyZWF0ZUhhc2giLCAicGFyc2VBcmFuZ29JZCIsICJwYXJzZUlkIiwgInBhcnNlVmFyQ2hhciIsICJhcWwiLCAid29yZHMiLCAicGFyc2VUYWciLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJnZXREb2NJZCIsICJnZXRMaW1pdCIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgImdldFRhZ3MiLCAiY29udGV4dCIsICJvcHRpb25zIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAic2VhcmNoIiwgImZyb20iLCAidG8iLCAidXNlcklkIiwgImxpbWl0IiwgImZpbHRlcnMiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJlcnJvciIsICJnZXRUYWdzQnlJdGVtIiwgIml0ZW1Eb2NJZCIsICJ0YWdRdWVyeSIsICJnZXRUYWciLCAidGFnSWQiLCAiZ2V0VGFnc0J5TmFtZSIsICJ0YWdOYW1lcyIsICJmb3JtYXRUYWdOYW1lcyIsICJ0YWdOYW1lIiwgImFkZFRhZyIsICJ0YWciLCAibm93IiwgImRlc2NyaXB0aW9uIiwgIm5hbWUiLCAiaW5zZXJ0IiwgImFkZFRhZ1RvSXRlbSIsICJ0YWdCeSIsICJ0YWdEb2NJZCIsICJzZXNzaW9uSWQiLCAiYWRkZWQiLCAiZm9ybWF0VGFnRG9jSWQiLCAiZm9ybWF0SXRlbURvY0lkIiwgImVkZ2VJZCIsICJlZGdlQ29sbGVjdGlvbiIsICJ0eXBlIiwgImZvcm1hdFRhZ0J5IiwgImVkZ2UiLCAidXBkYXRlVGFnIiwgImZvcm1hdE5hbWUiLCAidXBkYXRlIiwgIm5ld1RhZ0tleSIsICJkZWxldGVUYWciLCAiZm9ybWF0SXRlbUlkIiwgImRlbGV0ZVRhZ0Zyb21FZGdlIiwgImVkZ2VEb2NJZCIsICJmb3JtYXRFZGdlRG9jSWQiLCAiZGVsZXRlVGFnRnJvbUl0ZW0iLCAiaXRlbUlkIiwgIml0ZW1UeXBlIiwgImFxbFF1ZXJ5IiwgImV4dHJhY3RUYWdzIiwgImNvbnRlbnQiLCAidXBkYXRlVGFnc0luSXRlbSIsICJ0YWdzIiwgImVkZ2VzIiwgImV4aXN0aW5nVGFnTmFtZSJdCn0K
|
|
23
|
+
REMOVE it IN isTagged`;return y(g).query(i).then(()=>!0).catch(T=>(d({action:a,category:p,value:m.DATABASE_ERROR},T,{}),!1))},z=o=>q(o,/#[a-zA-Z\d-]+/g).map(r=>D(r)),H=(o,{itemDocId:r,tags:n})=>{const s="updateTagsInItem",{databaseName:a}=o;return y(a).collection("isTagged").inEdges(r,{}).then(t=>Promise.all([...t.filter(({name:e})=>!n.find(({name:i})=>e===i)).map(({_id:e,_from:i})=>B(o,{edgeDocId:e,tagDocId:i})),...n.filter(({name:e})=>!t.find(({name:i})=>i===e)).map(({_id:e="",tagBy:i})=>$(o,{itemDocId:r,tagBy:i,tagDocId:e}))]).then(()=>n)).catch(t=>d({action:s,category:p,value:m.DATABASE_ERROR},t,{}))};export{j as addTag,$ as addTagToItem,K as deleteTag,B as deleteTagFromEdge,W as deleteTagFromItem,z as extractTags,k as getTag,P as getTags,U as getTagsByItem,M as getTagsByName,V as updateTag,H as updateTagsInItem};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvdGFncy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7d29yZHN9IGZyb20gJ0BubGFicy91dGlscy9zdHJpbmdzL3dvcmRzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlfSBmcm9tICdhcmFuZ29qcy9kb2N1bWVudHMnO1xuXG5pbXBvcnQge3BhcnNlVGFnfSBmcm9tICcuLi9hZGFwdGVycy90YWdBZGFwdGVyLmpzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHtnZXREb2NJZCwgZ2V0TGltaXQsIHVzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgdHlwZSB7QXJhbmdvRGJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0lzVGFnZ2VkVHlwZSwgVGFnVHlwZX0gZnJvbSAnLi4vdHlwZXMvdGFncy50eXBlcy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICd0YWdzJztcbmV4cG9ydCBpbnRlcmZhY2UgVGFnT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHNlYXJjaD86IHN0cmluZztcbiAgcmVhZG9ubHkgdG8/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRhZ3MgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9wdGlvbnM6IFRhZ09wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUYWdUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0TGlzdCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qge3NlYXJjaCA9ICcnLCBmcm9tID0gMCwgdG8gPSAzMCwgdXNlcklkfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYoc2VhcmNoKSB7XG4gICAgZmlsdGVycy5wdXNoKGBMSUtFKHQubmFtZSwgXCIlJHtzZWFyY2h9JVwiKWApO1xuICB9XG5cbiAgaWYodXNlcklkKSB7XG4gICAgZmlsdGVycy5wdXNoKGB0LnVzZXJJZCA9PSBcIiR7dXNlcklkfVwiYCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdCBJTiB0YWdzXG4gICAgRklMVEVSICR7ZmlsdGVycy5qb2luKCcgfHwgJyl9XG4gICAgJHtsaW1pdC5hcWx9XG4gICAgU09SVCB0Lm5hbWVcbiAgICBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFRhZ1R5cGVbXSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFRhZ1R5cGVbXTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYWdzQnlJdGVtID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtRG9jSWQ6IHN0cmluZyxcbiAgb3B0aW9uczogVGFnT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFRhZ1R5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRUYWdzQnlJdGVtJztcbiAgY29uc3Qge2Zyb20gPSAwLCB0byA9IDMwfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RiTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtRG9jSWQpO1xuICBjb25zdCB0YWdRdWVyeTogc3RyaW5nID0gYEZPUiB0LCBpdCBJTiBJTkJPVU5EIFwiJHtmb3JtYXRJdGVtSWR9XCIgaXNUYWdnZWRcbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIGl0LmFkZGVkXG4gICAgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHRhZ1F1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFRhZ1R5cGVbXSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFRhZ1R5cGVbXTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYWcgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdGFnSWQ6IHN0cmluZyk6IFByb21pc2U8VGFnVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRUYWcnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKHRhZ0lkKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHQgSU4gdGFnc1xuICAgIEZJTFRFUiB0Ll9rZXkgPT0gXCIke2Zvcm1hdElkfVwiXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhZ3NCeU5hbWUgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdGFnTmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxUYWdUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VGFnc0J5TmFtZSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VGFnTmFtZXMgPSB0YWdOYW1lc1xuICAgIC5tYXAoKHRhZ05hbWUpID0+IHBhcnNlVmFyQ2hhcih0YWdOYW1lLCAzMikpXG4gICAgLmZpbHRlcigodGFnTmFtZSkgPT4gISF0YWdOYW1lKTtcblxuICBpZighZm9ybWF0VGFnTmFtZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB0IElOIHRhZ3NcbiAgICBGSUxURVIgUE9TSVRJT04oJHtKU09OLnN0cmluZ2lmeShmb3JtYXRUYWdOYW1lcyl9LCB0Lm5hbWUpXG4gICAgUkVUVVJOIHRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkgYXMgdW5rbm93biBhcyBUYWdUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG5cbiAgICAgIHJldHVybiBbXSBhcyBUYWdUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVGFnID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRhZzogVGFnVHlwZSk6IFByb21pc2U8VGFnVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRUYWcnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qge2Rlc2NyaXB0aW9uLCBuYW1lfSA9IHBhcnNlVGFnKHRhZyk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGB0YWctJHtuYW1lPy50b0xvd2VyQ2FzZSgpfWApO1xuICBjb25zdCBpbnNlcnQ6IFRhZ1R5cGUgPSB7XG4gICAgX2tleTogZm9ybWF0SWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBkZXNjcmlwdGlvbjogcGFyc2VWYXJDaGFyKGRlc2NyaXB0aW9uLCA2NCksXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lOiBwYXJzZVZhckNoYXIobmFtZSwgMzIpXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiB0YWdzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVGFnVG9JdGVtID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB7aXRlbURvY0lkLCB0YWdCeSA9ICcnLCB0YWdEb2NJZH06IHtpdGVtRG9jSWQ6IHN0cmluZywgdGFnQnk/OiBzdHJpbmcsIHRhZ0RvY0lkOiBzdHJpbmd9XG4pOiBQcm9taXNlPFRhZ1R5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkVGFnVG9JdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFkZGVkOiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCBmb3JtYXRUYWdEb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZCh0YWdEb2NJZCk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1Eb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtRG9jSWQpO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGlzVGFnZ2VkLSR7Zm9ybWF0VGFnRG9jSWR9LSR7Zm9ybWF0SXRlbURvY0lkfWApO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJyk7XG4gIGNvbnN0IHR5cGU6IHN0cmluZyA9IGZvcm1hdEl0ZW1Eb2NJZC5zcGxpdCgnLycpWzBdO1xuICBjb25zdCBmb3JtYXRUYWdCeTogc3RyaW5nID0gcGFyc2VJZCh0YWdCeSkgfHwgc2Vzc2lvbklkIHx8ICcnO1xuICBjb25zdCBlZGdlOiBFZGdlID0ge19mcm9tOiBmb3JtYXRUYWdEb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGZvcm1hdEl0ZW1Eb2NJZCwgYWRkZWQsIHRhZ0J5OiBmb3JtYXRUYWdCeSwgdHlwZX07XG5cbiAgYXdhaXQgZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7b3ZlcndyaXRlTW9kZTogJ2lnbm9yZScsIHJldHVybk5ldzogdHJ1ZSwgc2lsZW50OiB0cnVlfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZWRnZVxuICAgICAgfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG5cbiAgY29uc3QgdGFnUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCB0ID0gRE9DVU1FTlQoJHtmb3JtYXRUYWdEb2NJZH0pIFJFVFVSTiB0YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh0YWdRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBlZGdlXG4gICAgICB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVUYWcgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdGFnOiBUYWdUeXBlKTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3VwZGF0ZVRhZyc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHtkZXNjcmlwdGlvbiwgbmFtZSwgdGFnSWR9ID0gcGFyc2VUYWcodGFnKTtcbiAgY29uc3QgZm9ybWF0TmFtZTogc3RyaW5nID0gcGFyc2VWYXJDaGFyKG5hbWUsIDMyKTtcbiAgY29uc3QgdXBkYXRlOiBUYWdUeXBlID0ge1xuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDY0KSxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IGZvcm1hdE5hbWVcbiAgfTtcbiAgY29uc3QgbmV3VGFnS2V5OiBzdHJpbmcgPSB0YWdJZCB8fCBjcmVhdGVIYXNoKGB0YWctJHtmb3JtYXROYW1lLnRvTG93ZXJDYXNlKCl9YCk7XG4gIGNvbnN0IGluc2VydDogVGFnVHlwZSA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2lkOiBgdGFncy8ke25ld1RhZ0tleX1gLFxuICAgIF9rZXk6IG5ld1RhZ0tleSxcbiAgICBhZGRlZDogbm93LFxuICAgIHRhZ0J5OiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge25hbWU6ICR7Zm9ybWF0TmFtZX19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBJTiB0YWdzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVGFnID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRhZzogVGFnVHlwZSk6IFByb21pc2U8VGFnVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGVUYWcnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IGdldERvY0lkKCd0YWdzJywgdGFnKTtcbiAgY29uc3QgdGFnUXVlcnk6IHN0cmluZyA9IGBGT1IgaXQgRlJPTSBpc1RhZ2dlZFxuICAgIEZJTFRFUiBpdC5fZnJvbSA9PSBcIiR7Zm9ybWF0SXRlbUlkfVwiIHx8IGl0Ll90byA9PSBcIiR7Zm9ybWF0SXRlbUlkfVwiXG4gICAgUkVNT1ZFIGl0IElOIGlzVGFnZ2VkXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgYXdhaXQgdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh0YWdRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pKTtcblxuICBjb25zdCBhcWxRcnkgPSBgTEVUIHQgPSBET0NVTUVOVCgke2Zvcm1hdEl0ZW1JZH0pXG4gICAgUkVNT1ZFIHQgSU4gdGFnc1xuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVGFnRnJvbUVkZ2UgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwge3RhZ0RvY0lkLCBlZGdlRG9jSWR9KTogUHJvbWlzZTxUYWdUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdkZWxldGVUYWdGcm9tRWRnZSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VGFnRG9jSWQgPSBwYXJzZUFyYW5nb0lkKHRhZ0RvY0lkKTtcbiAgY29uc3QgZm9ybWF0RWRnZURvY0lkID0gcGFyc2VBcmFuZ29JZChlZGdlRG9jSWQpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJyk7XG4gIGNvbnN0IGVkZ2UgPSB7X2lkOiBmb3JtYXRFZGdlRG9jSWR9O1xuXG4gIGF3YWl0IGVkZ2VDb2xsZWN0aW9uLnJlbW92ZShlZGdlLCB7c2lsZW50OiB0cnVlfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xuXG4gIGNvbnN0IHRhZ1F1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgdCA9IERPQ1VNRU5UKCR7Zm9ybWF0VGFnRG9jSWR9KSBSRVRVUk4gdGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodGFnUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRhZ0Zyb21JdGVtID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIHt0YWdJZCwgaXRlbUlkLCBpdGVtVHlwZX0pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2RlbGV0ZVRhZ0Zyb21JdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRUYWdEb2NJZCA9IHBhcnNlQXJhbmdvSWQoYHRhZ3MvJHt0YWdJZH1gKTtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkID0gcGFyc2VBcmFuZ29JZChgJHtpdGVtVHlwZX0vJHtpdGVtSWR9YCk7XG5cbiAgY29uc3QgYXFsUXVlcnk6IHN0cmluZyA9IGBGT1IgaXQgRlJPTSBpc1RhZ2dlZFxuICAgIEZJTFRFUiBpdC5fZnJvbSA9PSBcIiR7Zm9ybWF0VGFnRG9jSWR9XCIgfHwgaXQuX3RvID09IFwiJHtmb3JtYXRJdGVtRG9jSWR9XCJcbiAgICBSRU1PVkUgaXQgSU4gaXNUYWdnZWRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0VGFncyA9IChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSA9PlxuICB3b3Jkcyhjb250ZW50LCAvI1thLXpBLVpcXGQtXSsvZykubWFwKCh0YWc6IHN0cmluZykgPT4gcGFyc2VJZCh0YWcpKTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRhZ3NJbkl0ZW0gPSAoY29udGV4dDogQXBpQ29udGV4dCwge2l0ZW1Eb2NJZCwgdGFnc30pOiBQcm9taXNlPFRhZ1R5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAndXBkYXRlVGFnc0luSXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJykgYXMgRWRnZUNvbGxlY3Rpb248VGFnVHlwZT47XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLmluRWRnZXMoaXRlbURvY0lkLCB7fSlcbiAgICAudGhlbigoZWRnZXMpID0+IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLihlZGdlcyBhcyB1bmtub3duIGFzIElzVGFnZ2VkVHlwZVtdKVxuICAgICAgICAuZmlsdGVyKCh7bmFtZTogZXhpc3RpbmdUYWdOYW1lfSkgPT4gIXRhZ3MuZmluZCgoe25hbWU6IHRhZ05hbWV9KSA9PiBleGlzdGluZ1RhZ05hbWUgPT09IHRhZ05hbWUpKVxuICAgICAgICAubWFwKCh7X2lkOiBlZGdlRG9jSWQsIF9mcm9tOiB0YWdEb2NJZH0pID0+IGRlbGV0ZVRhZ0Zyb21FZGdlKGNvbnRleHQsIHtlZGdlRG9jSWQsIHRhZ0RvY0lkfSkpLFxuICAgICAgLi4uKHRhZ3MgYXMgdW5rbm93biBhcyBUYWdUeXBlW10pXG4gICAgICAgIC5maWx0ZXIoKHtuYW1lOiB0YWdOYW1lfSkgPT4gIShlZGdlcyBhcyB1bmtub3duIGFzIElzVGFnZ2VkVHlwZVtdKVxuICAgICAgICAgIC5maW5kKCh7bmFtZTogZXhpc3RpbmdUYWdOYW1lfSkgPT4gZXhpc3RpbmdUYWdOYW1lID09PSB0YWdOYW1lKSlcbiAgICAgICAgLm1hcCgoe19pZDogdGFnRG9jSWQgPSAnJywgdGFnQnl9KSA9PiBhZGRUYWdUb0l0ZW0oY29udGV4dCwge2l0ZW1Eb2NJZCwgdGFnQnksIHRhZ0RvY0lkfSkpXG4gICAgXSlcbiAgICAgIC50aGVuKCgpID0+IHRhZ3MpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIHt9KSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxjQUFBQSxFQUFZLGlCQUFBQyxFQUFlLFdBQUFDLEVBQVMsZ0JBQUFDLE1BQW1CLCtCQUMvRCxPQUFRLFNBQUFDLE1BQVksNkJBQ3BCLE9BQVEsT0FBQUMsTUFBVSxXQUlsQixPQUFRLFlBQUFDLE1BQWUsNEJBQ3ZCLE9BQVEsY0FBQUMsTUFBaUIsMEJBQ3pCLE9BQVEsWUFBQUMsTUFBZSw2QkFDdkIsT0FBUSxZQUFB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T0wsRUFBVyxjQUNwQixFQUFHbUIsRUFBTyxDQUFDLENBQUMsQ0FBQyxDQUNqQiIsCiAgIm5hbWVzIjogWyJjcmVhdGVIYXNoIiwgInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZVZhckNoYXIiLCAid29yZHMiLCAiYXFsIiwgInBhcnNlVGFnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAiZ2V0RG9jSWQiLCAiZ2V0TGltaXQiLCAidXNlRGIiLCAiZXZlbnRDYXRlZ29yeSIsICJnZXRUYWdzIiwgImNvbnRleHQiLCAib3B0aW9ucyIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInNlYXJjaCIsICJmcm9tIiwgInRvIiwgInVzZXJJZCIsICJsaW1pdCIsICJmaWx0ZXJzIiwgImFxbFFyeSIsICJjdXJzb3IiLCAiZXJyb3IiLCAiZ2V0VGFnc0J5SXRlbSIsICJpdGVtRG9jSWQiLCAidGFnUXVlcnkiLCAiZ2V0VGFnIiwgInRhZ0lkIiwgImdldFRhZ3NCeU5hbWUiLCAidGFnTmFtZXMiLCAiZm9ybWF0VGFnTmFtZXMiLCAidGFnTmFtZSIsICJhZGRUYWciLCAidGFnIiwgIm5vdyIsICJkZXNjcmlwdGlvbiIsICJuYW1lIiwgImluc2VydCIsICJhZGRUYWdUb0l0ZW0iLCAidGFnQnkiLCAidGFnRG9jSWQiLCAic2Vzc2lvbklkIiwgImFkZGVkIiwgImZvcm1hdFRhZ0RvY0lkIiwgImZvcm1hdEl0ZW1Eb2NJZCIsICJlZGdlSWQiLCAiZWRnZUNvbGxlY3Rpb24iLCAidHlwZSIsICJmb3JtYXRUYWdCeSIsICJlZGdlIiwgInVwZGF0ZVRhZyIsICJmb3JtYXROYW1lIiwgInVwZGF0ZSIsICJuZXdUYWdLZXkiLCAiZGVsZXRlVGFnIiwgImZvcm1hdEl0ZW1JZCIsICJkZWxldGVUYWdGcm9tRWRnZSIsICJlZGdlRG9jSWQiLCAiZm9ybWF0RWRnZURvY0lkIiwgImRlbGV0ZVRhZ0Zyb21JdGVtIiwgIml0ZW1JZCIsICJpdGVtVHlwZSIsICJhcWxRdWVyeSIsICJleHRyYWN0VGFncyIsICJjb250ZW50IiwgInVwZGF0ZVRhZ3NJbkl0ZW0iLCAidGFncyIsICJlZGdlcyIsICJleGlzdGluZ1RhZ05hbWUiXQp9Cg==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { type SessionError } from '../types/error.types.js';
|
|
2
|
+
import { type SessionToken } from '../utils/sessionUtils.js';
|
|
3
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
4
|
+
import type { UserInput, UserType } from '../types/users.types.js';
|
|
5
|
+
export interface UserOptions {
|
|
6
|
+
readonly from?: number;
|
|
7
|
+
readonly to?: number;
|
|
8
|
+
readonly username?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare enum UserAccess {
|
|
11
|
+
DEACTIVATED = 0,
|
|
12
|
+
ACTIVE = 1,
|
|
13
|
+
PREMIUM = 2,
|
|
14
|
+
CONTENT_ADMIN = 3,
|
|
15
|
+
ADMIN = 4
|
|
16
|
+
}
|
|
17
|
+
export declare const createToken: (userId: string, username?: string, userAccess?: number, expiresInMinutes?: number) => SessionToken;
|
|
18
|
+
interface SelectAccumulator {
|
|
19
|
+
objects: string[];
|
|
20
|
+
queries: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const getUserOptional: (fields?: string[]) => SelectAccumulator;
|
|
23
|
+
export declare const parseUserOptions: (options?: UserOptions) => {
|
|
24
|
+
limit: import("../index.js").ArangoDbLimit;
|
|
25
|
+
from?: number;
|
|
26
|
+
to?: number;
|
|
27
|
+
username?: string;
|
|
28
|
+
};
|
|
29
|
+
export declare const addUser: (context: ApiContext, user: UserInput) => Promise<UserType | null>;
|
|
30
|
+
export declare const updateUser: (context: ApiContext, user: UserType) => Promise<UserType>;
|
|
31
|
+
export declare const forgotPassword: (context: ApiContext, { email, phone, username }: {
|
|
32
|
+
email: any;
|
|
33
|
+
phone: any;
|
|
34
|
+
username: any;
|
|
35
|
+
}) => Promise<boolean>;
|
|
36
|
+
export declare const resetPassword: (context: ApiContext, { code, password, type, username }: {
|
|
37
|
+
code: number;
|
|
38
|
+
password: string;
|
|
39
|
+
type: "phone" | "email";
|
|
40
|
+
username: string;
|
|
41
|
+
}) => Promise<boolean>;
|
|
42
|
+
export declare const confirmCode: (context: ApiContext, { code, type, value }: {
|
|
43
|
+
code: number;
|
|
44
|
+
type: "sms" | "email";
|
|
45
|
+
value: string;
|
|
46
|
+
}) => Promise<boolean>;
|
|
47
|
+
export declare const deleteUser: (context: ApiContext, user: UserType) => Promise<UserType>;
|
|
48
|
+
export declare const deactivateUser: (context: ApiContext, user: UserType) => Promise<UserType>;
|
|
49
|
+
export declare const getDisplayName: (user: UserType) => string;
|
|
50
|
+
export declare const getSessionUser: (context: ApiContext) => Promise<UserType>;
|
|
51
|
+
export declare const getUser: (context: ApiContext, user: UserType) => Promise<UserType>;
|
|
52
|
+
export declare const getUsers: (context: ApiContext, options?: UserOptions) => Promise<UserType[]>;
|
|
53
|
+
export declare const getUsersByReactions: (context: ApiContext, { reactions, username }: {
|
|
54
|
+
reactions?: string[];
|
|
55
|
+
username?: string;
|
|
56
|
+
}, options?: UserOptions) => Promise<UserType[]>;
|
|
57
|
+
export declare const getUsersByTags: (context: ApiContext, { tags, username }: {
|
|
58
|
+
tags: any;
|
|
59
|
+
username: any;
|
|
60
|
+
}, options?: UserOptions) => Promise<UserType[]>;
|
|
61
|
+
export declare const getUsersByLatest: (context: ApiContext, { username }: {
|
|
62
|
+
username: any;
|
|
63
|
+
}, options?: UserOptions) => Promise<UserType[]>;
|
|
64
|
+
export declare const getUsersByConnection: (context: ApiContext, { userId }: UserType, options?: UserOptions) => Promise<UserType[]>;
|
|
65
|
+
export declare const refreshSession: ({ expires, token }: {
|
|
66
|
+
expires: any;
|
|
67
|
+
token: any;
|
|
68
|
+
}) => SessionToken | SessionError;
|
|
69
|
+
export declare const signIn: (context: ApiContext, args: any) => Promise<SessionToken | null>;
|
|
70
|
+
export declare const signOut: (context: ApiContext) => Promise<boolean>;
|
|
71
|
+
export declare const getActiveUserCount: (context: ApiContext) => Promise<number>;
|
|
72
|
+
export declare const getUserByToken: (context: ApiContext, token: string) => Promise<UserType>;
|
|
73
|
+
export {};
|