@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
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const r={AR:"es",AU:"en",BE:"fr",BO:"es",BR:"pt",CA:"en",CL:"es",CO:"es",CR:"es",CU:"es",CV:"pt",DO:"es",EC:"es",ES:"es",FR:"fr",GB:"en",GQ:"es",GT:"es",GW:"pt",HN:"es",IT:"it",LI:"de",LU:"fr",MC:"fr",MX:"es",MZ:"pt",NI:"es",PA:"es",PE:"es",PY:"es",SM:"it",SV:"es",TL:"pt",US:"en",VA:"it",VE:"es"},o={1:"en",32:"fr",33:"fr",34:"es",39:"it",41:"fr",43:"de",49:"de",51:"es",52:"es",53:"es",54:"es",55:"pt",56:"es",57:"es",58:"es",240:"es",244:"pt",245:"pt",258:"pt",351:"pt",352:"fr",377:"fr",378:"it",379:"it",423:"de",502:"es",503:"es",504:"es",505:"es",506:"es",507:"es",591:"es",593:"es",595:"es",670:"pt",1809:"es"},c=e=>{if(e.userPreference)return e.userPreference;if(e.phoneCountryCode){const s=o[e.phoneCountryCode];if(s)return s}if(e.acceptLanguage){const s=a(e.acceptLanguage);if(s)return s}if(e.ipCountry){const s=r[e.ipCountry];if(s)return s}return"en"},a=e=>{const s=e.split(",").map(t=>t.trim().split(";")[0]).filter(t=>t.length>=2);for(const t of s){const n=t.substring(0,2);if(["en","es","fr","de","pt","it"].includes(n))return n}return null};export{c as detectLanguage};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xhbmd1YWdlRGV0ZWN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7TG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZURldGVjdGlvbkNvbnRleHQge1xuICBhY2NlcHRMYW5ndWFnZT86IHN0cmluZztcbiAgaXBDb3VudHJ5Pzogc3RyaW5nO1xuICBwaG9uZUNvdW50cnlDb2RlPzogc3RyaW5nO1xuICB1c2VyUHJlZmVyZW5jZT86IExvY2FsZTtcbn1cblxuY29uc3QgY291bnRyeVRvTG9jYWxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGU+ID0ge1xuICBBUjogJ2VzJyxcbiAgQVU6ICdlbicsXG4gIEJFOiAnZnInLFxuICBCTzogJ2VzJyxcbiAgQlI6ICdwdCcsXG4gIENBOiAnZW4nLFxuICBDTDogJ2VzJyxcbiAgQ086ICdlcycsXG4gIENSOiAnZXMnLFxuICBDVTogJ2VzJyxcbiAgQ1Y6ICdwdCcsXG4gIERPOiAnZXMnLFxuICBFQzogJ2VzJyxcbiAgRVM6ICdlcycsXG4gIEZSOiAnZnInLFxuICBHQjogJ2VuJyxcbiAgR1E6ICdlcycsXG4gIEdUOiAnZXMnLFxuICBHVzogJ3B0JyxcbiAgSE46ICdlcycsXG4gIElUOiAnaXQnLFxuICBMSTogJ2RlJyxcbiAgTFU6ICdmcicsXG4gIE1DOiAnZnInLFxuICBNWDogJ2VzJyxcbiAgTVo6ICdwdCcsXG4gIE5JOiAnZXMnLFxuICBQQTogJ2VzJyxcbiAgUEU6ICdlcycsXG4gIFBZOiAnZXMnLFxuICBTTTogJ2l0JyxcbiAgU1Y6ICdlcycsXG4gIFRMOiAncHQnLFxuICBVUzogJ2VuJyxcbiAgVkE6ICdpdCcsXG4gIFZFOiAnZXMnXG59O1xuXG5jb25zdCBwaG9uZUNvZGVUb0xvY2FsZU1hcDogUmVjb3JkPHN0cmluZywgTG9jYWxlPiA9IHtcbiAgMTogJ2VuJyxcbiAgMzI6ICdmcicsXG4gIDMzOiAnZnInLFxuICAzNDogJ2VzJyxcbiAgMzk6ICdpdCcsXG4gIDQxOiAnZnInLFxuICA0MzogJ2RlJyxcbiAgNDk6ICdkZScsXG4gIDUxOiAnZXMnLFxuICA1MjogJ2VzJyxcbiAgNTM6ICdlcycsXG4gIDU0OiAnZXMnLFxuICA1NTogJ3B0JyxcbiAgNTY6ICdlcycsXG4gIDU3OiAnZXMnLFxuICA1ODogJ2VzJyxcbiAgMjQwOiAnZXMnLFxuICAyNDQ6ICdwdCcsXG4gIDI0NTogJ3B0JyxcbiAgMjU4OiAncHQnLFxuICAzNTE6ICdwdCcsXG4gIDM1MjogJ2ZyJyxcbiAgMzc3OiAnZnInLFxuICAzNzg6ICdpdCcsXG4gIDM3OTogJ2l0JyxcbiAgNDIzOiAnZGUnLFxuICA1MDI6ICdlcycsXG4gIDUwMzogJ2VzJyxcbiAgNTA0OiAnZXMnLFxuICA1MDU6ICdlcycsXG4gIDUwNjogJ2VzJyxcbiAgNTA3OiAnZXMnLFxuICA1OTE6ICdlcycsXG4gIDU5MzogJ2VzJyxcbiAgNTk1OiAnZXMnLFxuICA2NzA6ICdwdCcsXG4gIDE4MDk6ICdlcydcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RMYW5ndWFnZSA9IChjb250ZXh0OiBMYW5ndWFnZURldGVjdGlvbkNvbnRleHQpOiBMb2NhbGUgPT4ge1xuICBpZihjb250ZXh0LnVzZXJQcmVmZXJlbmNlKSB7XG4gICAgcmV0dXJuIGNvbnRleHQudXNlclByZWZlcmVuY2U7XG4gIH1cblxuICBpZihjb250ZXh0LnBob25lQ291bnRyeUNvZGUpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBwaG9uZUNvZGVUb0xvY2FsZU1hcFtjb250ZXh0LnBob25lQ291bnRyeUNvZGVdO1xuICAgIGlmKGxvY2FsZSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICBpZihjb250ZXh0LmFjY2VwdExhbmd1YWdlKSB7XG4gICAgY29uc3QgbG9jYWxlID0gcGFyc2VBY2NlcHRMYW5ndWFnZShjb250ZXh0LmFjY2VwdExhbmd1YWdlKTtcbiAgICBpZihsb2NhbGUpIHtcbiAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaWYoY29udGV4dC5pcENvdW50cnkpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBjb3VudHJ5VG9Mb2NhbGVNYXBbY29udGV4dC5pcENvdW50cnldO1xuICAgIGlmKGxvY2FsZSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gJ2VuJztcbn07XG5cbmNvbnN0IHBhcnNlQWNjZXB0TGFuZ3VhZ2UgPSAoYWNjZXB0TGFuZ3VhZ2U6IHN0cmluZyk6IExvY2FsZSB8IG51bGwgPT4ge1xuICBjb25zdCBsYW5ndWFnZXMgPSBhY2NlcHRMYW5ndWFnZVxuICAgIC5zcGxpdCgnLCcpXG4gICAgLm1hcCgobGFuZykgPT4gbGFuZy50cmltKCkuc3BsaXQoJzsnKVswXSlcbiAgICAuZmlsdGVyKChsYW5nKSA9PiBsYW5nLmxlbmd0aCA+PSAyKTtcblxuICBmb3IoY29uc3QgbGFuZyBvZiBsYW5ndWFnZXMpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBsYW5nLnN1YnN0cmluZygwLCAyKSBhcyBMb2NhbGU7XG4gICAgaWYoWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddLmluY2x1ZGVzKGxvY2FsZSkpIHtcbiAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQVNBLE1BQU1BLEVBQTZDLENBQ2pELEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxJQUNOLEVBRU1DLEVBQStDLENBQ25ELEVBQUcsS0FDSCxHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixHQUFJLEtBQ0osR0FBSSxLQUNKLEdBQUksS0FDSixJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLElBQUssS0FDTCxJQUFLLEtBQ0wsSUFBSyxLQUNMLEtBQU0sSUFDUixFQUVhQyxFQUFrQkMsR0FBOEMsQ0FDM0UsR0FBR0EsRUFBUSxlQUNULE9BQU9BLEVBQVEsZUFHakIsR0FBR0EsRUFBUSxpQkFBa0IsQ0FDM0IsTUFBTUMsRUFBU0gsRUFBcUJFLEVBQVEsZ0JBQWdCLEVBQzVELEdBQUdDLEVBQ0QsT0FBT0EsQ0FFWCxDQUVBLEdBQUdELEVBQVEsZUFBZ0IsQ0FDekIsTUFBTUMsRUFBU0MsRUFBb0JGLEVBQVEsY0FBYyxFQUN6RCxHQUFHQyxFQUNELE9BQU9BLENBRVgsQ0FFQSxHQUFHRCxFQUFRLFVBQVcsQ0FDcEIsTUFBTUMsRUFBU0osRUFBbUJHLEVBQVEsU0FBUyxFQUNuRCxHQUFHQyxFQUNELE9BQU9BLENBRVgsQ0FFQSxNQUFPLElBQ1QsRUFFTUMsRUFBdUJDLEdBQTBDLENBQ3JFLE1BQU1DLEVBQVlELEVBQ2YsTUFBTSxHQUFHLEVBQ1QsSUFBS0UsR0FBU0EsRUFBSyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZDLE9BQVFBLEdBQVNBLEVBQUssUUFBVSxDQUFDLEVBRXBDLFVBQVVBLEtBQVFELEVBQVcsQ0FDM0IsTUFBTUgsRUFBU0ksRUFBSyxVQUFVLEVBQUcsQ0FBQyxFQUNsQyxHQUFHLENBQUMsS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLElBQUksRUFBRSxTQUFTSixDQUFNLEVBQ3JELE9BQU9BLENBRVgsQ0FFQSxPQUFPLElBQ1QiLAogICJuYW1lcyI6IFsiY291bnRyeVRvTG9jYWxlTWFwIiwgInBob25lQ29kZVRvTG9jYWxlTWFwIiwgImRldGVjdExhbmd1YWdlIiwgImNvbnRleHQiLCAibG9jYWxlIiwgInBhcnNlQWNjZXB0TGFuZ3VhZ2UiLCAiYWNjZXB0TGFuZ3VhZ2UiLCAibGFuZ3VhZ2VzIiwgImxhbmciXQp9Cg==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
import type { Locale } from '../types/content.types.js';
|
|
6
|
+
export declare const extractLanguage: (locale: string) => string;
|
|
7
|
+
export declare const isRegionalLocale: (locale: string) => boolean;
|
|
8
|
+
export declare const getFallbackChain: (locale: string) => string[];
|
|
9
|
+
export declare const getPrimaryLanguages: () => string[];
|
|
10
|
+
export declare const isValidLocale: (locale: string) => locale is Locale;
|
|
11
|
+
export declare const getSupportedLocales: () => Locale[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{extractLanguage as a,
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import{extractLanguage as a,getPrimaryLanguages as r,getSupportedLocales as i,isRegionalLocale as u}from"./localeUtils.js";const L=async(e,o,l="en")=>{const n=a(o),s=a(l);return`[Translated: ${e}]`},p=async(e,o,l)=>({key:e,locale:l,content:o}),t=async(e,o)=>{if(u(o)){const l=a(o)}return`[Content for ${e} in ${o}]`},f=i(),y=r(),m=async()=>{const e="welcome_message",o="es-mx",l="en-us",n=a(o),s=a(l);if(n!==s){const c=await t(e,l),g=await L(c,n,s);await p(e,g,o)}},h=async()=>{await t("welcome_message","es-mx"),await m()};export{h as runLocaleExamples};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xvY2FsZVV0aWxzLmV4YW1wbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmltcG9ydCB7XG4gIGV4dHJhY3RMYW5ndWFnZSxcbiAgZ2V0RmFsbGJhY2tDaGFpbixcbiAgZ2V0UHJpbWFyeUxhbmd1YWdlcyxcbiAgZ2V0U3VwcG9ydGVkTG9jYWxlcyxcbiAgaXNSZWdpb25hbExvY2FsZSxcbiAgaXNWYWxpZExvY2FsZVxufSBmcm9tICcuL2xvY2FsZVV0aWxzLmpzJztcblxuLyoqXG4gKiBFeGFtcGxlOiBMb2NhbGUgVXRpbGl0aWVzIHdpdGggUmVnaW9uYWwgU3VwcG9ydFxuICpcbiAqIFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSB0aGUgbG9jYWxlIHV0aWxpdGllcyBmb3IgaGFuZGxpbmdcbiAqIHJlZ2lvbmFsIGxvY2FsZXMgKGUuZy4sIFwiZW4tdXNcIiwgXCJlcy1teFwiKSB3aXRoIGxhbmd1YWdlIGV4dHJhY3Rpb25cbiAqIGZvciB0cmFuc2xhdGlvbiBBUElzIHdoaWxlIG1haW50YWluaW5nIGZ1bGwgbG9jYWxlIHN1cHBvcnQgZm9yXG4gKiB0aW1lLCBjdXJyZW5jeSwgYW5kIG90aGVyIHJlZ2lvbmFsIGZvcm1hdHRpbmcuXG4gKi9cblxuLy8gRXhhbXBsZSAxOiBMYW5ndWFnZSBFeHRyYWN0aW9uIGZvciBUcmFuc2xhdGlvbiBBUElzXG5jb25zb2xlLmxvZygnPT09IExhbmd1YWdlIEV4dHJhY3Rpb24gRXhhbXBsZXMgPT09Jyk7XG5jb25zb2xlLmxvZyhleHRyYWN0TGFuZ3VhZ2UoJ2VuLXVzJykpOyAvLyAnZW4nXG5jb25zb2xlLmxvZyhleHRyYWN0TGFuZ3VhZ2UoJ2VzLW14JykpOyAvLyAnZXMnXG5jb25zb2xlLmxvZyhleHRyYWN0TGFuZ3VhZ2UoJ2ZyLWNhJykpOyAvLyAnZnInXG5jb25zb2xlLmxvZyhleHRyYWN0TGFuZ3VhZ2UoJ2VuJykpOyAvLyAnZW4nXG5cbi8vIEV4YW1wbGUgMjogUmVnaW9uYWwgTG9jYWxlIERldGVjdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBSZWdpb25hbCBMb2NhbGUgRGV0ZWN0aW9uID09PScpO1xuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZW4tdXMnKSk7IC8vIHRydWVcbmNvbnNvbGUubG9nKGlzUmVnaW9uYWxMb2NhbGUoJ2VzLW14JykpOyAvLyB0cnVlXG5jb25zb2xlLmxvZyhpc1JlZ2lvbmFsTG9jYWxlKCdlbicpKTsgLy8gZmFsc2VcbmNvbnNvbGUubG9nKGlzUmVnaW9uYWxMb2NhbGUoJ2ZyJykpOyAvLyBmYWxzZVxuXG4vLyBFeGFtcGxlIDM6IEZhbGxiYWNrIENoYWluIEdlbmVyYXRpb25cbmNvbnNvbGUubG9nKCdcXG49PT0gRmFsbGJhY2sgQ2hhaW4gRXhhbXBsZXMgPT09Jyk7XG5jb25zb2xlLmxvZyhnZXRGYWxsYmFja0NoYWluKCdlbi11cycpKTsgLy8gWydlbi11cycsICdlbiddXG5jb25zb2xlLmxvZyhnZXRGYWxsYmFja0NoYWluKCdlcy1teCcpKTsgLy8gWydlcy1teCcsICdlcyddXG5jb25zb2xlLmxvZyhnZXRGYWxsYmFja0NoYWluKCdmci1jYScpKTsgLy8gWydmci1jYScsICdmciddXG5jb25zb2xlLmxvZyhnZXRGYWxsYmFja0NoYWluKCdlbicpKTsgLy8gWydlbiddXG5cbi8vIEV4YW1wbGUgNDogVHJhbnNsYXRpb24gQVBJIEludGVncmF0aW9uXG5jb25zdCB0cmFuc2xhdGVUZXh0ID0gYXN5bmMgKHRleHQ6IHN0cmluZywgdGFyZ2V0TG9jYWxlOiBzdHJpbmcsIHNvdXJjZUxvY2FsZTogc3RyaW5nID0gJ2VuJykgPT4ge1xuICAvLyBFeHRyYWN0IGxhbmd1YWdlIGNvZGVzIGZvciB0cmFuc2xhdGlvbiBBUElcbiAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UodGFyZ2V0TG9jYWxlKTtcbiAgY29uc3Qgc291cmNlTGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2Uoc291cmNlTG9jYWxlKTtcblxuICBjb25zb2xlLmxvZyhgVHJhbnNsYXRpbmcgZnJvbSAke3NvdXJjZUxhbmd1YWdlfSB0byAke3RhcmdldExhbmd1YWdlfWApO1xuICBjb25zb2xlLmxvZyhgRnVsbCBsb2NhbGVzOiAke3NvdXJjZUxvY2FsZX0gXHUyMTkyICR7dGFyZ2V0TG9jYWxlfWApO1xuXG4gIC8vIENhbGwgdHJhbnNsYXRpb24gQVBJIHdpdGggbGFuZ3VhZ2UgY29kZXNcbiAgLy8gY29uc3QgcmVzdWx0ID0gYXdhaXQgZ29vZ2xlVHJhbnNsYXRlQVBJLnRyYW5zbGF0ZSh0ZXh0LCB0YXJnZXRMYW5ndWFnZSwgc291cmNlTGFuZ3VhZ2UpO1xuXG4gIHJldHVybiBgW1RyYW5zbGF0ZWQ6ICR7dGV4dH1dYDtcbn07XG5cbi8vIEV4YW1wbGUgNTogRGF0YWJhc2UgU3RvcmFnZSBTdHJhdGVneVxuY29uc3Qgc3RvcmVUcmFuc2xhdGlvbiA9IGFzeW5jIChrZXk6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBsb2NhbGU6IHN0cmluZykgPT4ge1xuICAvLyBTdG9yZSB3aXRoIGZ1bGwgbG9jYWxlIGZvciByZWdpb25hbCBzdXBwb3J0XG4gIGNvbnNvbGUubG9nKGBTdG9yaW5nIHRyYW5zbGF0aW9uIGZvciBrZXkgXCIke2tleX1cIiB3aXRoIGxvY2FsZSBcIiR7bG9jYWxlfVwiYCk7XG5cbiAgLy8gRGF0YWJhc2UgcmVjb3JkIHdvdWxkIGluY2x1ZGU6XG4gIC8vIC0ga2V5OiBcIndlbGNvbWVfbWVzc2FnZVwiXG4gIC8vIC0gbG9jYWxlOiBcImVuLXVzXCIgKGZ1bGwgbG9jYWxlIHdpdGggcmVnaW9uKVxuICAvLyAtIGNvbnRlbnQ6IFwiV2VsY29tZSB0byBvdXIgVVMgc2l0ZSFcIlxuXG4gIHJldHVybiB7a2V5LCBsb2NhbGUsIGNvbnRlbnR9O1xufTtcblxuLy8gRXhhbXBsZSA2OiBDb250ZW50IFJldHJpZXZhbCB3aXRoIEZhbGxiYWNrXG5jb25zdCBnZXRDb250ZW50V2l0aEZhbGxiYWNrID0gYXN5bmMgKGtleTogc3RyaW5nLCByZXF1ZXN0ZWRMb2NhbGU6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmxvZyhgXFxuPT09IENvbnRlbnQgUmV0cmlldmFsIGZvciBcIiR7a2V5fVwiIHdpdGggbG9jYWxlIFwiJHtyZXF1ZXN0ZWRMb2NhbGV9XCIgPT09YCk7XG5cbiAgLy8gMS4gVHJ5IGV4YWN0IGxvY2FsZSBtYXRjaCBmaXJzdFxuICBjb25zb2xlLmxvZyhgMS4gVHJ5aW5nIGV4YWN0IG1hdGNoOiAke3JlcXVlc3RlZExvY2FsZX1gKTtcblxuICAvLyAyLiBJZiByZWdpb25hbCBsb2NhbGUgYW5kIG5vIGV4YWN0IG1hdGNoLCB0cnkgbGFuZ3VhZ2UgZmFsbGJhY2tcbiAgaWYoaXNSZWdpb25hbExvY2FsZShyZXF1ZXN0ZWRMb2NhbGUpKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UocmVxdWVzdGVkTG9jYWxlKTtcbiAgICBjb25zb2xlLmxvZyhgMi4gVHJ5aW5nIGxhbmd1YWdlIGZhbGxiYWNrOiAke2xhbmd1YWdlfWApO1xuXG4gICAgLy8gSWYgZm91bmQsIHN0b3JlIHRoZSByZWdpb25hbCB2ZXJzaW9uIGZvciBmdXR1cmUgdXNlXG4gICAgY29uc29sZS5sb2coYDMuIFN0b3JpbmcgZXh0cmFjdGVkIGNvbnRlbnQgZm9yICR7cmVxdWVzdGVkTG9jYWxlfWApO1xuICB9XG5cbiAgLy8gMy4gSWYgc3RpbGwgbm8gbWF0Y2gsIHVzZSBhcHAgZGVmYXVsdCBsb2NhbGVcbiAgY29uc29sZS5sb2coJzQuIEZhbGxpbmcgYmFjayB0byBhcHAgZGVmYXVsdCBsb2NhbGUnKTtcblxuICByZXR1cm4gYFtDb250ZW50IGZvciAke2tleX0gaW4gJHtyZXF1ZXN0ZWRMb2NhbGV9XWA7XG59O1xuXG4vLyBFeGFtcGxlIDc6IFZhbGlkYXRpb25cbmNvbnNvbGUubG9nKCdcXG49PT0gTG9jYWxlIFZhbGlkYXRpb24gPT09Jyk7XG5jb25zb2xlLmxvZyhpc1ZhbGlkTG9jYWxlKCdlbi11cycpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNWYWxpZExvY2FsZSgnZXMtbXgnKSk7IC8vIHRydWVcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2ludmFsaWQnKSk7IC8vIGZhbHNlXG5jb25zb2xlLmxvZyhpc1ZhbGlkTG9jYWxlKCdlbi14eCcpKTsgLy8gZmFsc2VcblxuLy8gRXhhbXBsZSA4OiBTdXBwb3J0ZWQgTG9jYWxlc1xuY29uc29sZS5sb2coJ1xcbj09PSBTdXBwb3J0ZWQgTG9jYWxlcyA9PT0nKTtcbmNvbnN0IHN1cHBvcnRlZExvY2FsZXMgPSBnZXRTdXBwb3J0ZWRMb2NhbGVzKCk7XG5jb25zb2xlLmxvZyhgVG90YWwgc3VwcG9ydGVkIGxvY2FsZXM6ICR7c3VwcG9ydGVkTG9jYWxlcy5sZW5ndGh9YCk7XG5jb25zb2xlLmxvZygnRW5nbGlzaCB2YXJpYW50czonLCBzdXBwb3J0ZWRMb2NhbGVzLmZpbHRlcigobCkgPT4gbC5zdGFydHNXaXRoKCdlbicpKSk7XG5jb25zb2xlLmxvZygnU3BhbmlzaCB2YXJpYW50czonLCBzdXBwb3J0ZWRMb2NhbGVzLmZpbHRlcigobCkgPT4gbC5zdGFydHNXaXRoKCdlcycpKSk7XG5cbi8vIEV4YW1wbGUgOTogUHJpbWFyeSBMYW5ndWFnZXNcbmNvbnNvbGUubG9nKCdcXG49PT0gUHJpbWFyeSBMYW5ndWFnZXMgPT09Jyk7XG5jb25zdCBwcmltYXJ5TGFuZ3VhZ2VzID0gZ2V0UHJpbWFyeUxhbmd1YWdlcygpO1xuY29uc29sZS5sb2coJ1ByaW1hcnkgbGFuZ3VhZ2VzOicsIHByaW1hcnlMYW5ndWFnZXMpO1xuXG4vLyBFeGFtcGxlIDEwOiBDb21wbGV0ZSBXb3JrZmxvd1xuY29uc3QgY29tcGxldGVUcmFuc2xhdGlvbldvcmtmbG93ID0gYXN5bmMgKCkgPT4ge1xuICBjb25zb2xlLmxvZygnXFxuPT09IENvbXBsZXRlIFRyYW5zbGF0aW9uIFdvcmtmbG93ID09PScpO1xuXG4gIGNvbnN0IGtleSA9ICd3ZWxjb21lX21lc3NhZ2UnO1xuICBjb25zdCB1c2VyTG9jYWxlID0gJ2VzLW14JzsgLy8gVXNlcidzIGZ1bGwgbG9jYWxlXG4gIGNvbnN0IGFwcExvY2FsZSA9ICdlbi11cyc7IC8vIEFwcCdzIGRlZmF1bHQgbG9jYWxlXG5cbiAgLy8gMS4gRXh0cmFjdCBsYW5ndWFnZSBmb3IgdHJhbnNsYXRpb24gQVBJXG4gIGNvbnN0IHVzZXJMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh1c2VyTG9jYWxlKTtcbiAgY29uc3QgYXBwTGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKTtcblxuICBjb25zb2xlLmxvZyhgVXNlciBsb2NhbGU6ICR7dXNlckxvY2FsZX0gKGxhbmd1YWdlOiAke3VzZXJMYW5ndWFnZX0pYCk7XG4gIGNvbnNvbGUubG9nKGBBcHAgbG9jYWxlOiAke2FwcExvY2FsZX0gKGxhbmd1YWdlOiAke2FwcExhbmd1YWdlfSlgKTtcblxuICAvLyAyLiBDaGVjayBpZiB3ZSBuZWVkIHRyYW5zbGF0aW9uXG4gIGlmKHVzZXJMYW5ndWFnZSAhPT0gYXBwTGFuZ3VhZ2UpIHtcbiAgICBjb25zb2xlLmxvZygnVHJhbnNsYXRpb24gbmVlZGVkIScpO1xuXG4gICAgLy8gMy4gR2V0IHNvdXJjZSBjb250ZW50IChmcm9tIGFwcCBsb2NhbGUpXG4gICAgY29uc3Qgc291cmNlQ29udGVudCA9IGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soa2V5LCBhcHBMb2NhbGUpO1xuXG4gICAgLy8gNC4gVHJhbnNsYXRlIHVzaW5nIGxhbmd1YWdlIGNvZGVzXG4gICAgY29uc3QgdHJhbnNsYXRlZENvbnRlbnQgPSBhd2FpdCB0cmFuc2xhdGVUZXh0KHNvdXJjZUNvbnRlbnQsIHVzZXJMYW5ndWFnZSwgYXBwTGFuZ3VhZ2UpO1xuXG4gICAgLy8gNS4gU3RvcmUgd2l0aCBmdWxsIGxvY2FsZVxuICAgIGF3YWl0IHN0b3JlVHJhbnNsYXRpb24oa2V5LCB0cmFuc2xhdGVkQ29udGVudCwgdXNlckxvY2FsZSk7XG5cbiAgICBjb25zb2xlLmxvZyhgVHJhbnNsYXRpb24gY29tcGxldGU6ICR7dHJhbnNsYXRlZENvbnRlbnR9YCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ05vIHRyYW5zbGF0aW9uIG5lZWRlZCAtIHNhbWUgbGFuZ3VhZ2UnKTtcbiAgfVxufTtcblxuLy8gUnVuIGV4YW1wbGVzXG5leHBvcnQgY29uc3QgcnVuTG9jYWxlRXhhbXBsZXMgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdMb2NhbGUgVXRpbGl0aWVzIEV4YW1wbGVzXFxuJyk7XG5cbiAgLy8gUnVuIHN5bmNocm9ub3VzIGV4YW1wbGVzXG4gIGNvbnNvbGUubG9nKCdTeW5jaHJvbm91cyBleGFtcGxlcyBjb21wbGV0ZWQgYWJvdmUnKTtcblxuICAvLyBSdW4gYXN5bmMgZXhhbXBsZXNcbiAgYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjaygnd2VsY29tZV9tZXNzYWdlJywgJ2VzLW14Jyk7XG4gIGF3YWl0IGNvbXBsZXRlVHJhbnNsYXRpb25Xb3JrZmxvdygpO1xuXG4gIGNvbnNvbGUubG9nKCdcXG49PT0gRXhhbXBsZSBDb21wbGV0ZSA9PT0nKTtcbn07XG5cbi8vIFVuY29tbWVudCB0byBydW4gZXhhbXBsZXNcbi8vIHJ1bkxvY2FsZUV4YW1wbGVzKCk7Il0sCiAgIm1hcHBpbmdzIjogIkFBS0EsT0FDRSxtQkFBQUEsRUFFQSx1QkFBQUMsRUFDQSx1QkFBQUMsRUFDQSxvQkFBQUMsTUFFSyxtQkFpQ1AsTUFBTUMsRUFBZ0IsTUFBT0MsRUFBY0MsRUFBc0JDLEVBQXVCLE9BQVMsQ0FFL0YsTUFBTUMsRUFBaUJSLEVBQWdCTSxDQUFZLEVBQzdDRyxFQUFpQlQsRUFBZ0JPLENBQVksRUFRbkQsTUFBTyxnQkFBZ0JGLENBQUksR0FDN0IsRUFHTUssRUFBbUIsTUFBT0MsRUFBYUMsRUFBaUJDLEtBU3JELENBQUMsSUFBQUYsRUFBSyxPQUFBRSxFQUFRLFFBQUFELENBQU8sR0FJeEJFLEVBQXlCLE1BQU9ILEVBQWFJLElBQTRCLENBTzdFLEdBQUdaLEVBQWlCWSxDQUFlLEVBQUcsQ0FDcEMsTUFBTUMsRUFBV2hCLEVBQWdCZSxDQUFlLENBS2xELENBS0EsTUFBTyxnQkFBZ0JKLENBQUcsT0FBT0ksQ0FBZSxHQUNsRCxFQVdNRSxFQUFtQmYsRUFBb0IsRUFPdkNnQixFQUFtQmpCLEVBQW9CLEVBSXZDa0IsRUFBOEIsU0FBWSxDQUc5QyxNQUFNUixFQUFNLGtCQUNOUyxFQUFhLFFBQ2JDLEVBQVksUUFHWkMsRUFBZXRCLEVBQWdCb0IsQ0FBVSxFQUN6Q0csRUFBY3ZCLEVBQWdCcUIsQ0FBUyxFQU03QyxHQUFHQyxJQUFpQkMsRUFBYSxDQUkvQixNQUFNQyxFQUFnQixNQUFNVixFQUF1QkgsRUFBS1UsQ0FBUyxFQUczREksRUFBb0IsTUFBTXJCLEVBQWNvQixFQUFlRixFQUFjQyxDQUFXLEVBR3RGLE1BQU1iLEVBQWlCQyxFQUFLYyxFQUFtQkwsQ0FBVSxDQUczRCxDQUdGLEVBR2FNLEVBQW9CLFNBQVksQ0FPM0MsTUFBTVosRUFBdUIsa0JBQW1CLE9BQU8sRUFDdkQsTUFBTUssRUFBNEIsQ0FHcEMiLAogICJuYW1lcyI6IFsiZXh0cmFjdExhbmd1YWdlIiwgImdldFByaW1hcnlMYW5ndWFnZXMiLCAiZ2V0U3VwcG9ydGVkTG9jYWxlcyIsICJpc1JlZ2lvbmFsTG9jYWxlIiwgInRyYW5zbGF0ZVRleHQiLCAidGV4dCIsICJ0YXJnZXRMb2NhbGUiLCAic291cmNlTG9jYWxlIiwgInRhcmdldExhbmd1YWdlIiwgInNvdXJjZUxhbmd1YWdlIiwgInN0b3JlVHJhbnNsYXRpb24iLCAia2V5IiwgImNvbnRlbnQiLCAibG9jYWxlIiwgImdldENvbnRlbnRXaXRoRmFsbGJhY2siLCAicmVxdWVzdGVkTG9jYWxlIiwgImxhbmd1YWdlIiwgInN1cHBvcnRlZExvY2FsZXMiLCAicHJpbWFyeUxhbmd1YWdlcyIsICJjb21wbGV0ZVRyYW5zbGF0aW9uV29ya2Zsb3ciLCAidXNlckxvY2FsZSIsICJhcHBMb2NhbGUiLCAidXNlckxhbmd1YWdlIiwgImFwcExhbmd1YWdlIiwgInNvdXJjZUNvbnRlbnQiLCAidHJhbnNsYXRlZENvbnRlbnQiLCAicnVuTG9jYWxlRXhhbXBsZXMiXQp9Cg==
|
package/lib/utils/localeUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const s=e=>e.split("-")[0],n=e=>e.includes("-"),r=e=>{const t=s(e);return n(e)?[e,t]:[e]},a=()=>["en","es","fr","de","pt","it"],o=e=>["en","en-us","en-gb","en-ca","en-au","es","es-mx","es-es","es-ar","fr","fr-fr","fr-ca","de","de-de","de-at","pt","pt-br","pt-pt","it","it-it"].includes(e),i=()=>["en","en-us","en-gb","en-ca","en-au","es","es-mx","es-es","es-ar","fr","fr-fr","fr-ca","de","de-de","de-at","pt","pt-br","pt-pt","it","it-it"];export{s as extractLanguage,r as getFallbackChain,a as getPrimaryLanguages,i as getSupportedLocales,n as isRegionalLocale,o as isValidLocale};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xvY2FsZVV0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHR5cGUge0xvY2FsZX0gZnJvbSAnLi4vdHlwZXMvY29udGVudC50eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0TGFuZ3VhZ2UgPSAobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcgPT4gbG9jYWxlLnNwbGl0KCctJylbMF07XG5cbmV4cG9ydCBjb25zdCBpc1JlZ2lvbmFsTG9jYWxlID0gKGxvY2FsZTogc3RyaW5nKTogYm9vbGVhbiA9PiBsb2NhbGUuaW5jbHVkZXMoJy0nKTtcblxuZXhwb3J0IGNvbnN0IGdldEZhbGxiYWNrQ2hhaW4gPSAobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlID0gZXh0cmFjdExhbmd1YWdlKGxvY2FsZSk7XG4gIHJldHVybiBpc1JlZ2lvbmFsTG9jYWxlKGxvY2FsZSkgPyBbbG9jYWxlLCBsYW5ndWFnZV0gOiBbbG9jYWxlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQcmltYXJ5TGFuZ3VhZ2VzID0gKCk6IHN0cmluZ1tdID0+IFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRMb2NhbGUgPSAobG9jYWxlOiBzdHJpbmcpOiBsb2NhbGUgaXMgTG9jYWxlID0+IHtcbiAgY29uc3QgdmFsaWRMb2NhbGVzOiBMb2NhbGVbXSA9IFtcbiAgICAnZW4nLCAnZW4tdXMnLCAnZW4tZ2InLCAnZW4tY2EnLCAnZW4tYXUnLFxuICAgICdlcycsICdlcy1teCcsICdlcy1lcycsICdlcy1hcicsXG4gICAgJ2ZyJywgJ2ZyLWZyJywgJ2ZyLWNhJyxcbiAgICAnZGUnLCAnZGUtZGUnLCAnZGUtYXQnLFxuICAgICdwdCcsICdwdC1icicsICdwdC1wdCcsXG4gICAgJ2l0JywgJ2l0LWl0J1xuICBdO1xuICByZXR1cm4gdmFsaWRMb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSBhcyBMb2NhbGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN1cHBvcnRlZExvY2FsZXMgPSAoKTogTG9jYWxlW10gPT4gW1xuICAnZW4nLCAnZW4tdXMnLCAnZW4tZ2InLCAnZW4tY2EnLCAnZW4tYXUnLFxuICAnZXMnLCAnZXMtbXgnLCAnZXMtZXMnLCAnZXMtYXInLFxuICAnZnInLCAnZnItZnInLCAnZnItY2EnLFxuICAnZGUnLCAnZGUtZGUnLCAnZGUtYXQnLFxuICAncHQnLCAncHQtYnInLCAncHQtcHQnLFxuICAnaXQnLCAnaXQtaXQnXG5dOyJdLAogICJtYXBwaW5ncyI6ICJBQU1PLE1BQU1BLEVBQW1CQyxHQUEyQkEsRUFBTyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBRWpFQyxFQUFvQkQsR0FBNEJBLEVBQU8sU0FBUyxHQUFHLEVBRW5FRSxFQUFvQkYsR0FBNkIsQ0FDNUQsTUFBTUcsRUFBV0osRUFBZ0JDLENBQU0sRUFDdkMsT0FBT0MsRUFBaUJELENBQU0sRUFBSSxDQUFDQSxFQUFRRyxDQUFRLEVBQUksQ0FBQ0gsQ0FBTSxDQUNoRSxFQUVhSSxFQUFzQixJQUFnQixDQUFDLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxJQUFJLEVBRXpFQyxFQUFpQkwsR0FDRyxDQUM3QixLQUFNLFFBQVMsUUFBUyxRQUFTLFFBQ2pDLEtBQU0sUUFBUyxRQUFTLFFBQ3hCLEtBQU0sUUFBUyxRQUNmLEtBQU0sUUFBUyxRQUNmLEtBQU0sUUFBUyxRQUNmLEtBQU0sT0FDUixFQUNvQixTQUFTQSxDQUFnQixFQUdsQ00sRUFBc0IsSUFBZ0IsQ0FDakQsS0FBTSxRQUFTLFFBQVMsUUFBUyxRQUNqQyxLQUFNLFFBQVMsUUFBUyxRQUN4QixLQUFNLFFBQVMsUUFDZixLQUFNLFFBQVMsUUFDZixLQUFNLFFBQVMsUUFDZixLQUFNLE9BQ1IiLAogICJuYW1lcyI6IFsiZXh0cmFjdExhbmd1YWdlIiwgImxvY2FsZSIsICJpc1JlZ2lvbmFsTG9jYWxlIiwgImdldEZhbGxiYWNrQ2hhaW4iLCAibGFuZ3VhZ2UiLCAiZ2V0UHJpbWFyeUxhbmd1YWdlcyIsICJpc1ZhbGlkTG9jYWxlIiwgImdldFN1cHBvcnRlZExvY2FsZXMiXQp9Cg==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getGqlFields as
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import{getGqlFields as p}from"./arangodbUtils.js";const d=(e,o,n,i,t)=>{const s={...i,fields:p(t)};return e(o,n,s,t)};export{d as addFieldsToContext};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL21pZGRsZXdhcmVVdGlscy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtnZXRHcWxGaWVsZHN9IGZyb20gJy4vYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGFkZEZpZWxkc1RvQ29udGV4dCA9IChcbiAgcmVzb2x2ZTogRnVuY3Rpb24sXG4gIHBhcmVudDogYW55LFxuICBhcmdzOiBhbnksXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGluZm86IGFueVxuKSA9PiB7XG4gIGNvbnN0IGNvbnRleHRXaXRoRmllbGRzID0ge1xuICAgIC4uLmNvbnRleHQsXG4gICAgZmllbGRzOiBnZXRHcWxGaWVsZHMoaW5mbylcbiAgfTtcblxuICByZXR1cm4gcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHRXaXRoRmllbGRzLCBpbmZvKTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxnQkFBQUEsTUFBbUIscUJBSXBCLE1BQU1DLEVBQXFCLENBQ2hDQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxJQUNHLENBQ0gsTUFBTUMsRUFBb0IsQ0FDeEIsR0FBR0YsRUFDSCxPQUFRTCxFQUFhTSxDQUFJLENBQzNCLEVBRUEsT0FBT0osRUFBUUMsRUFBUUMsRUFBTUcsRUFBbUJELENBQUksQ0FDdEQiLAogICJuYW1lcyI6IFsiZ2V0R3FsRmllbGRzIiwgImFkZEZpZWxkc1RvQ29udGV4dCIsICJyZXNvbHZlIiwgInBhcmVudCIsICJhcmdzIiwgImNvbnRleHQiLCAiaW5mbyIsICJjb250ZXh0V2l0aEZpZWxkcyJdCn0K
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type Session = {
|
|
2
|
+
readonly errors?: string[];
|
|
3
|
+
readonly exp?: number;
|
|
4
|
+
readonly iat?: number;
|
|
5
|
+
readonly username?: string;
|
|
6
|
+
readonly userAccess?: number;
|
|
7
|
+
readonly userId: string;
|
|
8
|
+
};
|
|
9
|
+
export type SessionToken = {
|
|
10
|
+
readonly expires: number;
|
|
11
|
+
readonly issued: number;
|
|
12
|
+
readonly token: string;
|
|
13
|
+
readonly userId: string;
|
|
14
|
+
readonly username: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const setSession: (session: Session) => string;
|
|
17
|
+
export declare const getSession: (token: string) => Session;
|
|
18
|
+
export declare const isAdminUser: (session?: Session) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import r from"jsonwebtoken";const t=e=>r.sign(e,process.env.SESSION_SECRET),i=e=>{try{return r.verify(e,process.env.SESSION_SECRET)}catch(s){switch(s.message){case"jwt expired":throw new Error("expired_session");default:throw new Error("invalid_session")}}},a=e=>!!e?.userAccess&&e.userAccess>2;export{i as getSession,a as isAdminUser,t as setSession};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3Nlc3Npb25VdGlscy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBqd3QgZnJvbSAnanNvbndlYnRva2VuJztcblxuZXhwb3J0IHR5cGUgU2Vzc2lvbiA9IHtcbiAgcmVhZG9ubHkgZXJyb3JzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGV4cD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaWF0PzogbnVtYmVyO1xuICByZWFkb25seSB1c2VybmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlckFjY2Vzcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uVG9rZW4gPSB7XG4gIHJlYWRvbmx5IGV4cGlyZXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgaXNzdWVkOiBudW1iZXI7XG4gIHJlYWRvbmx5IHRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuICByZWFkb25seSB1c2VybmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFNlc3Npb24gPSAoc2Vzc2lvbjogU2Vzc2lvbik6IHN0cmluZyA9PiBqd3Quc2lnbihzZXNzaW9uLCBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCk7XG5cbmV4cG9ydCBjb25zdCBnZXRTZXNzaW9uID0gKHRva2VuOiBzdHJpbmcpOiBTZXNzaW9uID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gand0LnZlcmlmeSh0b2tlbiwgcHJvY2Vzcy5lbnYuU0VTU0lPTl9TRUNSRVQpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgc3dpdGNoKGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgIGNhc2UgJ2p3dCBleHBpcmVkJzoge1xuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ2V4cGlyZWRfc2Vzc2lvbicpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignaW52YWxpZF9zZXNzaW9uJyk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc0FkbWluVXNlciA9IChzZXNzaW9uPzogU2Vzc2lvbik6IGJvb2xlYW4gPT4gISFzZXNzaW9uPy51c2VyQWNjZXNzICYmIHNlc3Npb24udXNlckFjY2VzcyA+IDI7Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBT0EsTUFBUyxlQW1CVCxNQUFNQyxFQUFjQyxHQUE2QkYsRUFBSSxLQUFLRSxFQUFTLFFBQVEsSUFBSSxjQUFjLEVBRXZGQyxFQUFjQyxHQUEyQixDQUNwRCxHQUFJLENBQ0YsT0FBT0osRUFBSSxPQUFPSSxFQUFPLFFBQVEsSUFBSSxjQUFjLENBQ3JELE9BQVFDLEVBQU8sQ0FDYixPQUFPQSxFQUFNLFFBQVMsQ0FDcEIsSUFBSyxjQUVILE1BRFksSUFBSSxNQUFNLGlCQUFpQixFQUd6QyxRQUVFLE1BRFksSUFBSSxNQUFNLGlCQUFpQixDQUczQyxDQUNGLENBQ0YsRUFFYUMsRUFBZUosR0FBK0IsQ0FBQyxDQUFDQSxHQUFTLFlBQWNBLEVBQVEsV0FBYSIsCiAgIm5hbWVzIjogWyJqd3QiLCAic2V0U2Vzc2lvbiIsICJzZXNzaW9uIiwgImdldFNlc3Npb24iLCAidG9rZW4iLCAiZXJyb3IiLCAiaXNBZG1pblVzZXIiXQp9Cg==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
import stripe from 'stripe';
|
|
6
|
+
export declare const stripeApiVersion = "2025-07-30.basil";
|
|
7
|
+
export declare const getStripeClient: () => stripe;
|
package/lib/utils/stripeUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"stripe";import{Config as e}from"../config";const i="2025-
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import t from"stripe";import{Config as e}from"../config.js";const i="2025-07-30.basil",p=()=>new t(e.get("stripe.token"),{apiVersion:i,typescript:!0});export{p as getStripeClient,i as stripeApiVersion};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3N0cmlwZVV0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHN0cmlwZSBmcm9tICdzdHJpcGUnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcblxuZXhwb3J0IGNvbnN0IHN0cmlwZUFwaVZlcnNpb24gPSAnMjAyNS0wNy0zMC5iYXNpbCc7XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJpcGVDbGllbnQgPSAoKSA9PiBuZXcgc3RyaXBlKENvbmZpZy5nZXQoJ3N0cmlwZS50b2tlbicpLCB7YXBpVmVyc2lvbjogc3RyaXBlQXBpVmVyc2lvbiwgdHlwZXNjcmlwdDogdHJ1ZX0pOyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU9BLE1BQVksU0FFbkIsT0FBUSxVQUFBQyxNQUFhLGVBRWQsTUFBTUMsRUFBbUIsbUJBRW5CQyxFQUFrQixJQUFNLElBQUlILEVBQU9DLEVBQU8sSUFBSSxjQUFjLEVBQUcsQ0FBQyxXQUFZQyxFQUFrQixXQUFZLEVBQUksQ0FBQyIsCiAgIm5hbWVzIjogWyJzdHJpcGUiLCAiQ29uZmlnIiwgInN0cmlwZUFwaVZlcnNpb24iLCAiZ2V0U3RyaXBlQ2xpZW50Il0KfQo=
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
import { jest } from '@jest/globals';
|
|
6
|
+
import type { GraphQLResolveInfo } from 'graphql';
|
|
7
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
8
|
+
type MockOverrides = Partial<Record<string, unknown>>;
|
|
9
|
+
type TestContext = Partial<ApiContext> & {
|
|
10
|
+
session?: Partial<{
|
|
11
|
+
userId: string;
|
|
12
|
+
username: string;
|
|
13
|
+
userAccess: number;
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
type TestArgs = Record<string, unknown>;
|
|
17
|
+
type TestReturnValue = unknown;
|
|
18
|
+
export declare const createMockContext: (overrides?: MockOverrides) => ApiContext;
|
|
19
|
+
export declare const createMockResolveInfo: (fieldName?: string) => GraphQLResolveInfo;
|
|
20
|
+
export declare const mockActionsModule: (modulePath: string, mockActions: Record<string, jest.Mock>) => Promise<void>;
|
|
21
|
+
export declare const mockObjectType: (modulePath: string, typeName: string) => Promise<void>;
|
|
22
|
+
export declare const createQueryTestSuite: (name: string, actionsPath: string, testCases: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
actionName: string;
|
|
25
|
+
args: TestArgs;
|
|
26
|
+
expectedCall: (context: TestContext, args: TestArgs) => TestArgs;
|
|
27
|
+
mockReturnValue: TestReturnValue;
|
|
28
|
+
errorCase?: boolean;
|
|
29
|
+
}>) => void;
|
|
30
|
+
export declare const createMutationTestSuite: (name: string, actionsPath: string, testCases: Array<{
|
|
31
|
+
name: string;
|
|
32
|
+
actionName: string;
|
|
33
|
+
args: TestArgs;
|
|
34
|
+
expectedCall: (context: TestContext, args: TestArgs) => TestArgs;
|
|
35
|
+
mockReturnValue: TestReturnValue;
|
|
36
|
+
requiresAuth?: boolean;
|
|
37
|
+
authUserId?: string;
|
|
38
|
+
}>) => void;
|
|
39
|
+
export declare const createIntegrationTestSuite: (name: string, actionsPath: string, objectTypePath: string, typeName: string, testCases: Array<{
|
|
40
|
+
name: string;
|
|
41
|
+
actionName: string;
|
|
42
|
+
args: TestArgs;
|
|
43
|
+
expectedCall: (context: TestContext, args: TestArgs) => TestArgs;
|
|
44
|
+
successReturnValue: TestReturnValue;
|
|
45
|
+
errorReturnValue: TestReturnValue;
|
|
46
|
+
testErrorCase: boolean;
|
|
47
|
+
}>) => void;
|
|
48
|
+
export declare const createMockUser: (overrides?: MockOverrides) => {
|
|
49
|
+
email: string;
|
|
50
|
+
firstName: string;
|
|
51
|
+
lastName: string;
|
|
52
|
+
userId: string;
|
|
53
|
+
username: string;
|
|
54
|
+
};
|
|
55
|
+
export declare const createMockPost: (overrides?: MockOverrides) => {
|
|
56
|
+
content: string;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
postId: string;
|
|
59
|
+
userId: string;
|
|
60
|
+
};
|
|
61
|
+
export declare const createMockMessage: (overrides?: MockOverrides) => {
|
|
62
|
+
content: string;
|
|
63
|
+
conversationId: string;
|
|
64
|
+
createdAt: string;
|
|
65
|
+
messageId: string;
|
|
66
|
+
userId: string;
|
|
67
|
+
};
|
|
68
|
+
export declare const createMockReaction: (overrides?: MockOverrides) => {
|
|
69
|
+
createdAt: string;
|
|
70
|
+
postId: string;
|
|
71
|
+
reactionId: string;
|
|
72
|
+
type: string;
|
|
73
|
+
userId: string;
|
|
74
|
+
};
|
|
75
|
+
export declare const createMockTag: (overrides?: MockOverrides) => {
|
|
76
|
+
description: string;
|
|
77
|
+
name: string;
|
|
78
|
+
tagId: string;
|
|
79
|
+
};
|
|
80
|
+
export declare const setupCommonMocks: () => Promise<void>;
|
|
81
|
+
export declare const clearAllMocks: () => void;
|
|
82
|
+
export declare const createActionTestSuite: (name: string, actionsPath: string, testCases: Array<{
|
|
83
|
+
name: string;
|
|
84
|
+
actionName: string;
|
|
85
|
+
args: TestArgs;
|
|
86
|
+
mockQuery: jest.Mock;
|
|
87
|
+
expectedResult: TestReturnValue;
|
|
88
|
+
}>) => void;
|
|
89
|
+
export declare const createAdapterTestSuite: (name: string, adapterPath: string, testCases: any[]) => void;
|
|
90
|
+
export declare const createUtilsTestSuite: (name: string, utilsPath: string, testCases: Array<{
|
|
91
|
+
name: string;
|
|
92
|
+
input: TestArgs;
|
|
93
|
+
expectedOutput: TestReturnValue;
|
|
94
|
+
}>) => void;
|
|
95
|
+
export {};
|
package/lib/utils/testUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3Rlc3RVdGlscy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7R3JhcGhRTFJlc29sdmVJbmZvfSBmcm9tICdncmFwaHFsJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gRGVmaW5lIHByb3BlciB0eXBlcyBmb3IgdGVzdCB1dGlsaXRpZXNcbnR5cGUgTW9ja092ZXJyaWRlcyA9IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xudHlwZSBUZXN0Q29udGV4dCA9IFBhcnRpYWw8QXBpQ29udGV4dD4gJiB7c2Vzc2lvbj86IFBhcnRpYWw8e3VzZXJJZDogc3RyaW5nOyB1c2VybmFtZTogc3RyaW5nOyB1c2VyQWNjZXNzOiBudW1iZXJ9Pn07XG50eXBlIFRlc3RBcmdzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG50eXBlIFRlc3RSZXR1cm5WYWx1ZSA9IHVua25vd247XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrQ29udGV4dCA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSk6IEFwaUNvbnRleHQgPT4ge1xuICBjb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgICB1c2VyQWNjZXNzOiAxLFxuICAgIHVzZXJJZDogJ3VzZXIxJyxcbiAgICB1c2VybmFtZTogJ3Rlc3R1c2VyJ1xuICB9O1xuICBjb25zdCBvdmVycmlkZVNlc3Npb246IFBhcnRpYWw8dHlwZW9mIGRlZmF1bHRTZXNzaW9uPiA9IG92ZXJyaWRlcy5zZXNzaW9uIHx8IHt9O1xuICBjb25zdCBjb250ZXh0OiBUZXN0Q29udGV4dCA9IHtcbiAgICBkYXRhYmFzZU5hbWU6IChvdmVycmlkZXMuZGF0YWJhc2VOYW1lIGFzIHN0cmluZykgPz8gJ3Rlc3QnLFxuICAgIC4uLm92ZXJyaWRlc1xuICB9O1xuICBkZWxldGUgY29udGV4dC5zZXNzaW9uO1xuICBjb250ZXh0LnNlc3Npb24gPSB7XG4gICAgdXNlckFjY2Vzczogb3ZlcnJpZGVTZXNzaW9uLnVzZXJBY2Nlc3MgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzIDogZGVmYXVsdFNlc3Npb24udXNlckFjY2VzcyxcbiAgICB1c2VySWQ6IG92ZXJyaWRlU2Vzc2lvbi51c2VySWQgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VySWQgOiBkZWZhdWx0U2Vzc2lvbi51c2VySWQsXG4gICAgdXNlcm5hbWU6IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSAhPT0gdW5kZWZpbmVkID8gb3ZlcnJpZGVTZXNzaW9uLnVzZXJuYW1lIDogZGVmYXVsdFNlc3Npb24udXNlcm5hbWVcbiAgfTtcbiAgcmV0dXJuIGNvbnRleHQgYXMgQXBpQ29udGV4dDtcbn07XG5cbi8vIENvbW1vbiBtb2NrIHJlc29sdmUgaW5mbyBmb3IgR3JhcGhRTCByZXNvbHZlcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUmVzb2x2ZUluZm8gPSAoZmllbGROYW1lOiBzdHJpbmcgPSAndGVzdCcpOiBHcmFwaFFMUmVzb2x2ZUluZm8gPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHt9IGFzIEdyYXBoUUxSZXNvbHZlSW5mb1snb3BlcmF0aW9uJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3QgcGFyZW50VHlwZSA9IHt9IGFzIEdyYXBoUUxSZXNvbHZlSW5mb1sncGFyZW50VHlwZSddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHJldHVyblR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3JldHVyblR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBzY2hlbWEgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3NjaGVtYSddO1xuXG4gIHJldHVybiB7XG4gICAgZmllbGROYW1lLFxuICAgIGZpZWxkTm9kZXM6IFtdLFxuICAgIGZyYWdtZW50czoge30sXG4gICAgb3BlcmF0aW9uLFxuICAgIHBhcmVudFR5cGUsXG4gICAgcGF0aDoge2tleTogZmllbGROYW1lLCBwcmV2OiB1bmRlZmluZWQsIHR5cGVuYW1lOiAnVGVzdCd9LFxuICAgIHJldHVyblR5cGUsXG4gICAgcm9vdFZhbHVlOiB7fSxcbiAgICBzY2hlbWEsXG4gICAgdmFyaWFibGVWYWx1ZXM6IHt9XG4gIH07XG59O1xuXG4vLyBVdGlsaXR5IHRvIG1vY2sgYWN0aW9ucyBtb2R1bGVcbmV4cG9ydCBjb25zdCBtb2NrQWN0aW9uc01vZHVsZSA9IChtb2R1bGVQYXRoOiBzdHJpbmcsIG1vY2tBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBqZXN0Lk1vY2s+KSA9PiB7XG4gIGplc3QuZG9Nb2NrKG1vZHVsZVBhdGgsICgpID0+IG1vY2tBY3Rpb25zKTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gbW9jayBvYmplY3QgdHlwZXNcbmV4cG9ydCBjb25zdCBtb2NrT2JqZWN0VHlwZSA9IChtb2R1bGVQYXRoOiBzdHJpbmcsIHR5cGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgamVzdC5kb01vY2sobW9kdWxlUGF0aCwgKCkgPT4gKHtcbiAgICBbdHlwZU5hbWVdOiB7XG4gICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgIGdldEZpZWxkczogamVzdC5mbigoKSA9PiAoe30pKVxuICAgIH1cbiAgfSkpO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgYSB0ZXN0IHN1aXRlIGZvciBxdWVyeSByZXNvbHZlcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVRdWVyeVRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkQ2FsbDogKGNvbnRleHQ6IFRlc3RDb250ZXh0LCBhcmdzOiBUZXN0QXJncykgPT4gVGVzdEFyZ3M7XG4gICAgbW9ja1JldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgZXJyb3JDYXNlPzogYm9vbGVhbjtcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBRdWVyaWVzYCwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBpbXBvcnQoYWN0aW9uc1BhdGgpO1xuICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIGV4cGVjdGVkQ2FsbCwgbW9ja1JldHVyblZhbHVlLCBlcnJvckNhc2UgPSBmYWxzZX0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgY2FsbCAke2FjdGlvbk5hbWV9IGFjdGlvbiB3aXRoIGNvcnJlY3QgcGFyYW1ldGVyc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgamVzdC5Nb2NrKS5tb2NrUmVzb2x2ZWRWYWx1ZShtb2NrUmV0dXJuVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IChhY3Rpb25zW2FjdGlvbk5hbWVdIGFzIGplc3QuTW9jaykobW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QoYWN0aW9uc1thY3Rpb25OYW1lXSkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKG1vY2tSZXR1cm5WYWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgaWYoZXJyb3JDYXNlKSB7XG4gICAgICAgIGl0KGBzaG91bGQgaGFuZGxlICR7YWN0aW9uTmFtZX0gd2hlbiBubyBkYXRhIGZvdW5kYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIChhY3Rpb25zW2FjdGlvbk5hbWVdIGFzIGplc3QuTW9jaykubW9ja1Jlc29sdmVkVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBqZXN0Lk1vY2spKG1vY2tDb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICBleHBlY3QoYWN0aW9uc1thY3Rpb25OYW1lXSkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgbXV0YXRpb24gcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTXV0YXRpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBleHBlY3RlZENhbGw6IChjb250ZXh0OiBUZXN0Q29udGV4dCwgYXJnczogVGVzdEFyZ3MpID0+IFRlc3RBcmdzO1xuICAgIG1vY2tSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIHJlcXVpcmVzQXV0aD86IGJvb2xlYW47XG4gICAgYXV0aFVzZXJJZD86IHN0cmluZztcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBNdXRhdGlvbnNgLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IGltcG9ydChhY3Rpb25zUGF0aCk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe1xuICAgICAgYWN0aW9uTmFtZSxcbiAgICAgIGFyZ3MsXG4gICAgICBleHBlY3RlZENhbGwsXG4gICAgICBtb2NrUmV0dXJuVmFsdWUsXG4gICAgICByZXF1aXJlc0F1dGggPSBmYWxzZSxcbiAgICAgIGF1dGhVc2VySWRcbiAgICB9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGNhbGwgJHthY3Rpb25OYW1lfSBhY3Rpb24gd2l0aCBjb3JyZWN0IHBhcmFtZXRlcnNgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgaWYocmVxdWlyZXNBdXRoICYmIGF1dGhVc2VySWQpIHtcbiAgICAgICAgICAobW9ja0NvbnRleHQuc2Vzc2lvbiBhcyB7dXNlcklkOiBzdHJpbmd9KS51c2VySWQgPSBhdXRoVXNlcklkO1xuICAgICAgICB9XG5cbiAgICAgICAgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgamVzdC5Nb2NrKS5tb2NrUmVzb2x2ZWRWYWx1ZShtb2NrUmV0dXJuVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IChhY3Rpb25zW2FjdGlvbk5hbWVdIGFzIGplc3QuTW9jaykobW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QoYWN0aW9uc1thY3Rpb25OYW1lXSkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKG1vY2tSZXR1cm5WYWx1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1aXRlXG5leHBvcnQgY29uc3QgY3JlYXRlSW50ZWdyYXRpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgb2JqZWN0VHlwZVBhdGg6IHN0cmluZyxcbiAgdHlwZU5hbWU6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBleHBlY3RlZENhbGw6IChjb250ZXh0OiBUZXN0Q29udGV4dCwgYXJnczogVGVzdEFyZ3MpID0+IFRlc3RBcmdzO1xuICAgIHN1Y2Nlc3NSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIGVycm9yUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICB0ZXN0RXJyb3JDYXNlOiBib29sZWFuO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IEludGVncmF0aW9uYCwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBpbXBvcnQoYWN0aW9uc1BhdGgpO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtcbiAgICAgIG5hbWU6IHRlc3ROYW1lLFxuICAgICAgYWN0aW9uTmFtZSxcbiAgICAgIGFyZ3MsXG4gICAgICBleHBlY3RlZENhbGwsXG4gICAgICBzdWNjZXNzUmV0dXJuVmFsdWUsXG4gICAgICBlcnJvclJldHVyblZhbHVlLFxuICAgICAgdGVzdEVycm9yQ2FzZVxuICAgIH0pID0+IHtcbiAgICAgIGRlc2NyaWJlKHRlc3ROYW1lLCAoKSA9PiB7XG4gICAgICAgIGl0KGBzaG91bGQgcmV0dXJuIGRhdGEgd2hlbiAke2FjdGlvbk5hbWV9IHN1Y2NlZWRzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgICAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBqZXN0Lk1vY2spLm1vY2tSZXNvbHZlZFZhbHVlKHN1Y2Nlc3NSZXR1cm5WYWx1ZSk7XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBqZXN0Lk1vY2spKG1vY2tDb250ZXh0LCBhcmdzKTtcblxuICAgICAgICAgIGV4cGVjdChhY3Rpb25zW2FjdGlvbk5hbWVdKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChzdWNjZXNzUmV0dXJuVmFsdWUgfHwge30pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZih0ZXN0RXJyb3JDYXNlKSB7XG4gICAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgICAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBqZXN0Lk1vY2spLm1vY2tSZXNvbHZlZFZhbHVlKGVycm9yUmV0dXJuVmFsdWUpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBqZXN0Lk1vY2spKG1vY2tDb250ZXh0LCBhcmdzKTtcblxuICAgICAgICAgICAgZXhwZWN0KGFjdGlvbnNbYWN0aW9uTmFtZV0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXJyb3JSZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIENvbW1vbiBtb2NrIGRhdGEgZ2VuZXJhdG9yc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tVc2VyID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBlbWFpbDogJ3Rlc3RAZXhhbXBsZS5jb20nLFxuICBmaXJzdE5hbWU6ICdUZXN0JyxcbiAgbGFzdE5hbWU6ICdVc2VyJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICB1c2VybmFtZTogJ3Rlc3R1c2VyJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tQb3N0ID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBjb250ZW50OiAnVGVzdCBwb3N0IGNvbnRlbnQnLFxuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgcG9zdElkOiAncG9zdDEnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrTWVzc2FnZSA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY29udGVudDogJ1Rlc3QgbWVzc2FnZScsXG4gIGNvbnZlcnNhdGlvbklkOiAnY29udjEnLFxuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgbWVzc2FnZUlkOiAnbXNnMScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tSZWFjdGlvbiA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIHBvc3RJZDogJ3Bvc3QxJyxcbiAgcmVhY3Rpb25JZDogJ3JlYWN0MScsXG4gIHR5cGU6ICdsaWtlJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1RhZyA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgZGVzY3JpcHRpb246ICdUZXN0IHRhZyBkZXNjcmlwdGlvbicsXG4gIG5hbWU6ICd0ZXN0LXRhZycsXG4gIHRhZ0lkOiAndGFnMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbi8vIFV0aWxpdHkgdG8gc2V0IHVwIGNvbW1vbiBtb2Nrc1xuZXhwb3J0IGNvbnN0IHNldHVwQ29tbW9uTW9ja3MgPSAoKSA9PiB7XG4gIGplc3QubW9jaygnLi4vdXRpbHMvYXJhbmdvZGJVdGlscycsICgpID0+ICh7XG4gICAgYWxsOiBqZXN0LmZuKCksXG4gICAgZ2V0RG9jSWQ6IGplc3QuZm4oKSxcbiAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgIG5leHQ6IGplc3QuZm4oKSxcbiAgICB1c2VEYjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgcXVlcnk6IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgYWxsOiBqZXN0LmZuKCksXG4gICAgICAgIG5leHQ6IGplc3QuZm4oKVxuICAgICAgfSkpXG4gICAgfSkpXG4gIH0pKTtcblxuICBqZXN0Lm1vY2soJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJywgKCkgPT4gKHtcbiAgICBsb2dFcnJvcjogamVzdC5mbigpLFxuICAgIGxvZ0V4Y2VwdGlvbjogamVzdC5mbigpXG4gIH0pKTtcblxuICBqZXN0Lm1vY2soJy4uL3V0aWxzL3Nlc3Npb25VdGlscycsICgpID0+ICh7XG4gICAgZ2V0U2Vzc2lvbjogamVzdC5mbigpLFxuICAgIGlzQWRtaW5Vc2VyOiBqZXN0LmZuKCksXG4gICAgc2V0U2Vzc2lvbjogamVzdC5mbigpXG4gIH0pKTtcblxuICBqZXN0Lm1vY2soJy4uL3V0aWxzL2F1dGhVdGlscycsICgpID0+ICh7XG4gICAgaXNBdXRoZW50aWNhdGVkOiBqZXN0LmZuKCgpID0+IHRydWUpXG4gIH0pKTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY2xlYXIgYWxsIG1vY2tzXG5leHBvcnQgY29uc3QgY2xlYXJBbGxNb2NrcyA9ICgpID0+IHtcbiAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIGFjdGlvbiBmdW5jdGlvbnNcbmV4cG9ydCBjb25zdCBjcmVhdGVBY3Rpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBtb2NrUXVlcnk6IGplc3QuTW9jaztcbiAgICBleHBlY3RlZFJlc3VsdDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IGFjdGlvbnNgLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IGltcG9ydChhY3Rpb25zUGF0aCk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe25hbWU6IHRlc3ROYW1lLCBhY3Rpb25OYW1lLCBhcmdzLCBtb2NrUXVlcnksIGV4cGVjdGVkUmVzdWx0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBleGVjdXRlICR7YWN0aW9uTmFtZX1gLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgY29uc3Qge3VzZURifSA9IGF3YWl0IGltcG9ydCgnLi4vdXRpbHMvYXJhbmdvZGJVdGlscycpO1xuICAgICAgICAodXNlRGIgYXMgamVzdC5Nb2NrKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHF1ZXJ5OiBtb2NrUXVlcnlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgamVzdC5Nb2NrKShtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgYSB0ZXN0IHN1aXRlIGZvciBhZGFwdGVyIGZ1bmN0aW9uc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWRhcHRlclBhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBUZXN0QXJncztcbiAgICBleHBlY3RlZE91dHB1dDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBhZGFwdGVyID0gYXdhaXQgaW1wb3J0KGFkYXB0ZXJQYXRoKTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGlucHV0LCBleHBlY3RlZE91dHB1dH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgJHt0ZXN0TmFtZX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhZGFwdGVyIGFzIHtwYXJzZVRhZzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucGFyc2VUYWcoaW5wdXQpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgdXRpbGl0eSBmdW5jdGlvbnNcbmV4cG9ydCBjb25zdCBjcmVhdGVVdGlsc1Rlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICB1dGlsc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBUZXN0QXJncztcbiAgICBleHBlY3RlZE91dHB1dDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1dGlscyA9IGF3YWl0IGltcG9ydCh1dGlsc1BhdGgpO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYoKHV0aWxzIGFzIHtsb2dJbmZvPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7bG9nSW5mbzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSBpZigodXRpbHMgYXMge3JlbW92ZUVtcHR5S2V5cz86IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5yZW1vdmVFbXB0eUtleXMoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VpdGFibGUgZnVuY3Rpb24gZm91bmQgaW4gJHt1dGlsc1BhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZE91dHB1dCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQWNPLE1BQU1BLEVBQW9CLENBQUNDLEVBQTJCLENBQUMsSUFBa0IsQ0FDOUUsTUFBTUMsRUFBaUIsQ0FDckIsV0FBWSxFQUNaLE9BQVEsUUFDUixTQUFVLFVBQ1osRUFDTUMsRUFBa0RGLEVBQVUsU0FBVyxDQUFDLEVBQ3hFRyxFQUF1QixDQUMzQixhQUFlSCxFQUFVLGNBQTJCLE9BQ3BELEdBQUdBLENBQ0wsRUFDQSxjQUFPRyxFQUFRLFFBQ2ZBLEVBQVEsUUFBVSxDQUNoQixXQUFZRCxFQUFnQixhQUFlLE9BQVlBLEVBQWdCLFdBQWFELEVBQWUsV0FDbkcsT0FBUUMsRUFBZ0IsU0FBVyxPQUFZQSxFQUFnQixPQUFTRCxFQUFlLE9BQ3ZGLFNBQVVDLEVBQWdCLFdBQWEsT0FBWUEsRUFBZ0IsU0FBV0QsRUFBZSxRQUMvRixFQUNPRSxDQUNULEVBR2FDLEVBQXdCLENBQUNDLEVBQW9CLFVBVWpELENBQ0wsVUFBQUEsRUFDQSxXQUFZLENBQUMsRUFDYixVQUFXLENBQUMsRUFDWixVQVpnQixDQUFDLEVBYWpCLFdBWGlCLENBQUMsRUFZbEIsS0FBTSxDQUFDLElBQUtBLEVBQVcsS0FBTSxPQUFXLFNBQVUsTUFBTSxFQUN4RCxXQVhpQixDQUFDLEVBWWxCLFVBQVcsQ0FBQyxFQUNaLE9BWGEsQ0FBQyxFQVlkLGVBQWdCLENBQUMsQ0FDbkIsR0FJV0MsRUFBb0IsQ0FBQ0MsRUFBb0JDLElBQTJDLENBQy9GLEtBQUssT0FBT0QsRUFBWSxJQUFN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Q0FBYyxDQUN2QyxDQUFDLENBQ0gsQ0FBQyxDQUNILENBQUMsQ0FDSCIsCiAgIm5hbWVzIjogWyJjcmVhdGVNb2NrQ29udGV4dCIsICJvdmVycmlkZXMiLCAiZGVmYXVsdFNlc3Npb24iLCAib3ZlcnJpZGVTZXNzaW9uIiwgImNvbnRleHQiLCAiY3JlYXRlTW9ja1Jlc29sdmVJbmZvIiwgImZpZWxkTmFtZSIsICJtb2NrQWN0aW9uc01vZHVsZSIsICJtb2R1bGVQYXRoIiwgIm1vY2tBY3Rpb25zIiwgIm1vY2tPYmplY3RUeXBlIiwgInR5cGVOYW1lIiwgImNyZWF0ZVF1ZXJ5VGVzdFN1aXRlIiwgIm5hbWUiLCAiYWN0aW9uc1BhdGgiLCAidGVzdENhc2VzIiwgImFjdGlvbnMiLCAibW9ja0NvbnRleHQiLCAidGVzdE5hbWUiLCAiYWN0aW9uTmFtZSIsICJhcmdzIiwgImV4cGVjdGVkQ2FsbCIsICJtb2NrUmV0dXJuVmFsdWUiLCAiZXJyb3JDYXNlIiwgInJlc3VsdCIsICJjcmVhdGVNdXRhdGlvblRlc3RTdWl0ZSIsICJyZXF1aXJlc0F1dGgiLCAiYXV0aFVzZXJJZCIsICJjcmVhdGVJbnRlZ3JhdGlvblRlc3RTdWl0ZSIsICJvYmplY3RUeXBlUGF0aCIsICJzdWNjZXNzUmV0dXJuVmFsdWUiLCAiZXJyb3JSZXR1cm5WYWx1ZSIsICJ0ZXN0RXJyb3JDYXNlIiwgImNyZWF0ZU1vY2tVc2VyIiwgImNyZWF0ZU1vY2tQb3N0IiwgImNyZWF0ZU1vY2tNZXNzYWdlIiwgImNyZWF0ZU1vY2tSZWFjdGlvbiIsICJjcmVhdGVNb2NrVGFnIiwgInNldHVwQ29tbW9uTW9ja3MiLCAiY2xlYXJBbGxNb2NrcyIsICJjcmVhdGVBY3Rpb25UZXN0U3VpdGUiLCAibW9ja1F1ZXJ5IiwgImV4cGVjdGVkUmVzdWx0IiwgInVzZURiIiwgImNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUiLCAiYWRhcHRlclBhdGgiLCAiYWRhcHRlciIsICJpbnB1dCIsICJleHBlY3RlZE91dHB1dCIsICJjcmVhdGVVdGlsc1Rlc3RTdWl0ZSIsICJ1dGlsc1BhdGgiLCAidXRpbHMiXQp9Cg==
|
|
1
|
+
import{jest as t}from"@jest/globals";const y=(e={})=>{const r={userAccess:1,userId:"user1",username:"testuser"},n=e.session||{},s={databaseName:e.databaseName??"test",...e};return delete s.session,s.session={userAccess:n.userAccess!==void 0?n.userAccess:r.userAccess,userId:n.userId!==void 0?n.userId:r.userId,username:n.username!==void 0?n.username:r.username},s},x=(e="test")=>({fieldName:e,fieldNodes:[],fragments:{},operation:{},parentType:{},path:{key:e,prev:void 0,typename:"Test"},returnType:{},rootValue:{},schema:{},variableValues:{}}),A=async(e,r)=>{const n=Object.entries(r).reduce((s,[a,c])=>(s[a]=t.fn().mockImplementation(c),s),{});await t.isolateModulesAsync(async()=>{t.unstable_mockModule(e,()=>({__esModule:!0,...n,default:n}))})},I=async(e,r)=>{const n={__esModule:!0,[r]:{getField:t.fn(()=>({resolve:t.fn()})),getFields:t.fn(()=>({}))},default:{[r]:{getField:t.fn(()=>({resolve:t.fn()})),getFields:t.fn(()=>({}))}}};await t.isolateModulesAsync(async()=>{t.unstable_mockModule(e,()=>n)})},h=(e,r,n)=>{describe(`${e} Queries`,()=>{let s;const a=y();beforeAll(()=>{s={}}),n.forEach(({name:c,actionName:l,args:o,expectedCall:u,mockReturnValue:p,errorCase:d=!1})=>{it(`should call ${l} action with correct parameters`,async()=>{const i=t.fn().mockImplementation(()=>Promise.resolve(p));s[l]=i;const m=await i(a,o);expect(i).toHaveBeenCalledWith(a,u(a,o)),expect(m).toEqual(p)}),d&&it(`should handle ${l} when no data found`,async()=>{const i=t.fn().mockImplementation(()=>Promise.resolve(null));s[l]=i;const m=await i(a,o);expect(i).toHaveBeenCalledWith(a,u(a,o)),expect(m).toBeNull()})})})},M=(e,r,n)=>{describe(`${e} Mutations`,()=>{let s;beforeAll(()=>{s={}}),n.forEach(({actionName:a,args:c,expectedCall:l,mockReturnValue:o,requiresAuth:u=!1,authUserId:p})=>{it(`should call ${a} action with correct parameters`,async()=>{const d=y();u&&p&&(d.session.userId=p);const i=t.fn().mockImplementation(()=>Promise.resolve(o));s[a]=i;const m=await i(d,c);expect(i).toHaveBeenCalledWith(d,l(d,c)),expect(m).toEqual(o)})})})},b=(e,r,n,s,a)=>{describe(`${e} Integration`,()=>{let c;beforeAll(()=>{c={}}),a.forEach(({name:l,actionName:o,args:u,expectedCall:p,successReturnValue:d,errorReturnValue:i,testErrorCase:m})=>{describe(l,()=>{it(`should return data when ${o} succeeds`,async()=>{const g=y(),f=t.fn().mockImplementation(()=>Promise.resolve(d));c[o]=f;const T=await f(g,u);expect(f).toHaveBeenCalledWith(g,p(g,u)),expect(T).toEqual(d||{})}),m&&it(`should handle ${o} when no data found`,async()=>{const g=y(),f=t.fn().mockImplementation(()=>Promise.resolve(i));c[o]=f;const T=await f(g,u);expect(f).toHaveBeenCalledWith(g,p(g,u)),expect(T).toEqual(i)})})})})},v=(e={})=>({email:"test@example.com",firstName:"Test",lastName:"User",userId:"user1",username:"testuser",...e}),R=(e={})=>({content:"Test post content",createdAt:new Date().toISOString(),postId:"post1",userId:"user1",...e}),w=(e={})=>({content:"Test message",conversationId:"conv1",createdAt:new Date().toISOString(),messageId:"msg1",userId:"user1",...e}),C=(e={})=>({createdAt:new Date().toISOString(),postId:"post1",reactionId:"react1",type:"like",userId:"user1",...e}),E=(e={})=>({description:"Test tag description",name:"test-tag",tagId:"tag1",...e}),S=async()=>{const e={__esModule:!0,useDb:t.fn(),getLimit:t.fn(),getDocId:t.fn(),sortIds:t.fn(),getGqlFields:t.fn(),default:{useDb:t.fn(),getLimit:t.fn(),getDocId:t.fn(),sortIds:t.fn(),getGqlFields:t.fn()}};await t.isolateModulesAsync(async()=>{t.unstable_mockModule("./arangodbUtils.js",()=>e)})},V=()=>{t.clearAllMocks()},q=(e,r,n)=>{describe(`${e} actions`,()=>{let s;beforeAll(async()=>{s=await import(r)}),n.forEach(({name:a,actionName:c,args:l,mockQuery:o,expectedResult:u})=>{it(`should execute ${c}`,async()=>{const p=y(),d=t.fn().mockReturnValue({query:o}),i=t.requireActual("./arangodbUtils.js");t.doMock("./arangodbUtils.js",()=>({useDb:d,...i}));const m=await s[c](p,l);expect(m).toEqual(u)})})})},O=(e,r,n)=>{describe(e,()=>{let s;beforeAll(async()=>{s=await import(r)}),n.forEach(({name:a,input:c,expectedOutput:l})=>{it(`should ${a}`,()=>{const o=s.parseTag(c);expect(o).toEqual(l)})})})},P=(e,r,n)=>{describe(e,()=>{let s;beforeAll(async()=>{s=await import(r)}),n.forEach(({name:a,input:c,expectedOutput:l})=>{it(`should ${a}`,()=>{let o;if(s.logInfo)o=s.logInfo(c);else if(s.removeEmptyKeys)o=s.removeEmptyKeys(c);else throw new Error(`No suitable function found in ${r}`);expect(o).toEqual(l)})})})};export{V as clearAllMocks,q as createActionTestSuite,O as createAdapterTestSuite,b as createIntegrationTestSuite,y as createMockContext,w as createMockMessage,R as createMockPost,C as createMockReaction,x as createMockResolveInfo,E as createMockTag,v as createMockUser,M as createMutationTestSuite,h as createQueryTestSuite,P as createUtilsTestSuite,A as mockActionsModule,I as mockObjectType,S as setupCommonMocks};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3Rlc3RVdGlscy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7amVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQgdHlwZSB7R3JhcGhRTFJlc29sdmVJbmZvfSBmcm9tICdncmFwaHFsJztcblxuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbi8vIERlZmluZSBwcm9wZXIgdHlwZXMgZm9yIHRlc3QgdXRpbGl0aWVzXG50eXBlIE1vY2tPdmVycmlkZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbnR5cGUgVGVzdENvbnRleHQgPSBQYXJ0aWFsPEFwaUNvbnRleHQ+ICYge3Nlc3Npb24/OiBQYXJ0aWFsPHt1c2VySWQ6IHN0cmluZzsgdXNlcm5hbWU6IHN0cmluZzsgdXNlckFjY2VzczogbnVtYmVyfT59O1xudHlwZSBUZXN0QXJncyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xudHlwZSBUZXN0UmV0dXJuVmFsdWUgPSB1bmtub3duO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja0NvbnRleHQgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pOiBBcGlDb250ZXh0ID0+IHtcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgdXNlckFjY2VzczogMSxcbiAgICB1c2VySWQ6ICd1c2VyMScsXG4gICAgdXNlcm5hbWU6ICd0ZXN0dXNlcidcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGVTZXNzaW9uOiBQYXJ0aWFsPHR5cGVvZiBkZWZhdWx0U2Vzc2lvbj4gPSBvdmVycmlkZXMuc2Vzc2lvbiB8fCB7fTtcbiAgY29uc3QgY29udGV4dDogVGVzdENvbnRleHQgPSB7XG4gICAgZGF0YWJhc2VOYW1lOiAob3ZlcnJpZGVzLmRhdGFiYXNlTmFtZSBhcyBzdHJpbmcpID8/ICd0ZXN0JyxcbiAgICAuLi5vdmVycmlkZXNcbiAgfTtcbiAgZGVsZXRlIGNvbnRleHQuc2Vzc2lvbjtcbiAgY29udGV4dC5zZXNzaW9uID0ge1xuICAgIHVzZXJBY2Nlc3M6IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlckFjY2VzcyA6IGRlZmF1bHRTZXNzaW9uLnVzZXJBY2Nlc3MsXG4gICAgdXNlcklkOiBvdmVycmlkZVNlc3Npb24udXNlcklkICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlcklkIDogZGVmYXVsdFNlc3Npb24udXNlcklkLFxuICAgIHVzZXJuYW1lOiBvdmVycmlkZVNlc3Npb24udXNlcm5hbWUgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSA6IGRlZmF1bHRTZXNzaW9uLnVzZXJuYW1lXG4gIH07XG4gIHJldHVybiBjb250ZXh0IGFzIEFwaUNvbnRleHQ7XG59O1xuXG4vLyBDb21tb24gbW9jayByZXNvbHZlIGluZm8gZm9yIEdyYXBoUUwgcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1Jlc29sdmVJbmZvID0gKGZpZWxkTmFtZTogc3RyaW5nID0gJ3Rlc3QnKTogR3JhcGhRTFJlc29sdmVJbmZvID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBvcGVyYXRpb24gPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ29wZXJhdGlvbiddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHBhcmVudFR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3BhcmVudFR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCByZXR1cm5UeXBlID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydyZXR1cm5UeXBlJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3Qgc2NoZW1hID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydzY2hlbWEnXTtcblxuICByZXR1cm4ge1xuICAgIGZpZWxkTmFtZSxcbiAgICBmaWVsZE5vZGVzOiBbXSxcbiAgICBmcmFnbWVudHM6IHt9LFxuICAgIG9wZXJhdGlvbixcbiAgICBwYXJlbnRUeXBlLFxuICAgIHBhdGg6IHtrZXk6IGZpZWxkTmFtZSwgcHJldjogdW5kZWZpbmVkLCB0eXBlbmFtZTogJ1Rlc3QnfSxcbiAgICByZXR1cm5UeXBlLFxuICAgIHJvb3RWYWx1ZToge30sXG4gICAgc2NoZW1hLFxuICAgIHZhcmlhYmxlVmFsdWVzOiB7fVxuICB9O1xufTtcblxuLy8gVXRpbGl0eSB0byBtb2NrIGFjdGlvbnMgbW9kdWxlXG5leHBvcnQgY29uc3QgbW9ja0FjdGlvbnNNb2R1bGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCBtb2NrQWN0aW9uczogUmVjb3JkPHN0cmluZywgamVzdC5Nb2NrPikgPT4ge1xuICBjb25zdCBtb2NrcyA9IE9iamVjdC5lbnRyaWVzKG1vY2tBY3Rpb25zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgYWNjW2tleV0gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKHZhbHVlKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBqZXN0Lk1vY2s+KTtcblxuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZShtb2R1bGVQYXRoLCAoKSA9PiAoe1xuICAgICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICAgIC4uLm1vY2tzLFxuICAgICAgZGVmYXVsdDogbW9ja3NcbiAgICB9KSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBtb2NrIG9iamVjdCB0eXBlc1xuZXhwb3J0IGNvbnN0IG1vY2tPYmplY3RUeXBlID0gYXN5bmMgKG1vZHVsZVBhdGg6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBtb2NrID0ge1xuICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgW3R5cGVOYW1lXToge1xuICAgICAgZ2V0RmllbGQ6IGplc3QuZm4oKCkgPT4gKHtyZXNvbHZlOiBqZXN0LmZuKCl9KSksXG4gICAgICBnZXRGaWVsZHM6IGplc3QuZm4oKCkgPT4gKHt9KSlcbiAgICB9LFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIFt0eXBlTmFtZV06IHtcbiAgICAgICAgZ2V0RmllbGQ6IGplc3QuZm4oKCkgPT4gKHtyZXNvbHZlOiBqZXN0LmZuKCl9KSksXG4gICAgICAgIGdldEZpZWxkczogamVzdC5mbigoKSA9PiAoe30pKVxuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgYXdhaXQgamVzdC5pc29sYXRlTW9kdWxlc0FzeW5jKGFzeW5jICgpID0+IHtcbiAgICBqZXN0LnVuc3RhYmxlX21vY2tNb2R1bGUobW9kdWxlUGF0aCwgKCkgPT4gbW9jayk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgYSB0ZXN0IHN1aXRlIGZvciBxdWVyeSByZXNvbHZlcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVRdWVyeVRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkQ2FsbDogKGNvbnRleHQ6IFRlc3RDb250ZXh0LCBhcmdzOiBUZXN0QXJncykgPT4gVGVzdEFyZ3M7XG4gICAgbW9ja1JldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgZXJyb3JDYXNlPzogYm9vbGVhbjtcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBRdWVyaWVzYCwgKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBhbnk7XG4gICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuXG4gICAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSB7fTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIGV4cGVjdGVkQ2FsbCwgbW9ja1JldHVyblZhbHVlLCBlcnJvckNhc2UgPSBmYWxzZX0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgY2FsbCAke2FjdGlvbk5hbWV9IGFjdGlvbiB3aXRoIGNvcnJlY3QgcGFyYW1ldGVyc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUobW9ja1JldHVyblZhbHVlKSk7XG4gICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9ja0ZuKG1vY2tDb250ZXh0LCBhcmdzKTtcbiAgICAgICAgZXhwZWN0KG1vY2tGbikudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKG1vY2tSZXR1cm5WYWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgaWYoZXJyb3JDYXNlKSB7XG4gICAgICAgIGl0KGBzaG91bGQgaGFuZGxlICR7YWN0aW9uTmFtZX0gd2hlbiBubyBkYXRhIGZvdW5kYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG51bGwpKTtcbiAgICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9ja0ZuKG1vY2tDb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgYSB0ZXN0IHN1aXRlIGZvciBtdXRhdGlvbiByZXNvbHZlcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNdXRhdGlvblRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkQ2FsbDogKGNvbnRleHQ6IFRlc3RDb250ZXh0LCBhcmdzOiBUZXN0QXJncykgPT4gVGVzdEFyZ3M7XG4gICAgbW9ja1JldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgcmVxdWlyZXNBdXRoPzogYm9vbGVhbjtcbiAgICBhdXRoVXNlcklkPzogc3RyaW5nO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IE11dGF0aW9uc2AsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuXG4gICAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSB7fTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7XG4gICAgICBhY3Rpb25OYW1lLFxuICAgICAgYXJncyxcbiAgICAgIGV4cGVjdGVkQ2FsbCxcbiAgICAgIG1vY2tSZXR1cm5WYWx1ZSxcbiAgICAgIHJlcXVpcmVzQXV0aCA9IGZhbHNlLFxuICAgICAgYXV0aFVzZXJJZFxuICAgIH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgY2FsbCAke2FjdGlvbk5hbWV9IGFjdGlvbiB3aXRoIGNvcnJlY3QgcGFyYW1ldGVyc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICBpZihyZXF1aXJlc0F1dGggJiYgYXV0aFVzZXJJZCkge1xuICAgICAgICAgIChtb2NrQ29udGV4dC5zZXNzaW9uIGFzIHt1c2VySWQ6IHN0cmluZ30pLnVzZXJJZCA9IGF1dGhVc2VySWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShtb2NrUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwobW9ja1JldHVyblZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGludGVncmF0aW9uIHRlc3Qgc3VpdGVcbmV4cG9ydCBjb25zdCBjcmVhdGVJbnRlZ3JhdGlvblRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICBvYmplY3RUeXBlUGF0aDogc3RyaW5nLFxuICB0eXBlTmFtZTogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkQ2FsbDogKGNvbnRleHQ6IFRlc3RDb250ZXh0LCBhcmdzOiBUZXN0QXJncykgPT4gVGVzdEFyZ3M7XG4gICAgc3VjY2Vzc1JldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgZXJyb3JSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIHRlc3RFcnJvckNhc2U6IGJvb2xlYW47XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gSW50ZWdyYXRpb25gLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgICBhY3Rpb25zID0ge307XG4gICAgfSk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe1xuICAgICAgbmFtZTogdGVzdE5hbWUsXG4gICAgICBhY3Rpb25OYW1lLFxuICAgICAgYXJncyxcbiAgICAgIGV4cGVjdGVkQ2FsbCxcbiAgICAgIHN1Y2Nlc3NSZXR1cm5WYWx1ZSxcbiAgICAgIGVycm9yUmV0dXJuVmFsdWUsXG4gICAgICB0ZXN0RXJyb3JDYXNlXG4gICAgfSkgPT4ge1xuICAgICAgZGVzY3JpYmUodGVzdE5hbWUsICgpID0+IHtcbiAgICAgICAgaXQoYHNob3VsZCByZXR1cm4gZGF0YSB3aGVuICR7YWN0aW9uTmFtZX0gc3VjY2VlZHNgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHN1Y2Nlc3NSZXR1cm5WYWx1ZSkpO1xuICAgICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuXG4gICAgICAgICAgZXhwZWN0KG1vY2tGbikudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoc3VjY2Vzc1JldHVyblZhbHVlIHx8IHt9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYodGVzdEVycm9yQ2FzZSkge1xuICAgICAgICAgIGl0KGBzaG91bGQgaGFuZGxlICR7YWN0aW9uTmFtZX0gd2hlbiBubyBkYXRhIGZvdW5kYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoZXJyb3JSZXR1cm5WYWx1ZSkpO1xuICAgICAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9ja0ZuKG1vY2tDb250ZXh0LCBhcmdzKTtcblxuICAgICAgICAgICAgZXhwZWN0KG1vY2tGbikudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChlcnJvclJldHVyblZhbHVlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gQ29tbW9uIG1vY2sgZGF0YSBnZW5lcmF0b3JzXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1VzZXIgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGVtYWlsOiAndGVzdEBleGFtcGxlLmNvbScsXG4gIGZpcnN0TmFtZTogJ1Rlc3QnLFxuICBsYXN0TmFtZTogJ1VzZXInLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIHVzZXJuYW1lOiAndGVzdHVzZXInLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1Bvc3QgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNvbnRlbnQ6ICdUZXN0IHBvc3QgY29udGVudCcsXG4gIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBwb3N0SWQ6ICdwb3N0MScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tNZXNzYWdlID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBjb250ZW50OiAnVGVzdCBtZXNzYWdlJyxcbiAgY29udmVyc2F0aW9uSWQ6ICdjb252MScsXG4gIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBtZXNzYWdlSWQ6ICdtc2cxJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1JlYWN0aW9uID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgcG9zdElkOiAncG9zdDEnLFxuICByZWFjdGlvbklkOiAncmVhY3QxJyxcbiAgdHlwZTogJ2xpa2UnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrVGFnID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBkZXNjcmlwdGlvbjogJ1Rlc3QgdGFnIGRlc2NyaXB0aW9uJyxcbiAgbmFtZTogJ3Rlc3QtdGFnJyxcbiAgdGFnSWQ6ICd0YWcxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuLy8gVXRpbGl0eSB0byBzZXQgdXAgY29tbW9uIG1vY2tzXG5leHBvcnQgY29uc3Qgc2V0dXBDb21tb25Nb2NrcyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgbW9jayA9IHtcbiAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgIHVzZURiOiBqZXN0LmZuKCksXG4gICAgZ2V0TGltaXQ6IGplc3QuZm4oKSxcbiAgICBnZXREb2NJZDogamVzdC5mbigpLFxuICAgIHNvcnRJZHM6IGplc3QuZm4oKSxcbiAgICBnZXRHcWxGaWVsZHM6IGplc3QuZm4oKSxcbiAgICBkZWZhdWx0OiB7XG4gICAgICB1c2VEYjogamVzdC5mbigpLFxuICAgICAgZ2V0TGltaXQ6IGplc3QuZm4oKSxcbiAgICAgIGdldERvY0lkOiBqZXN0LmZuKCksXG4gICAgICBzb3J0SWRzOiBqZXN0LmZuKCksXG4gICAgICBnZXRHcWxGaWVsZHM6IGplc3QuZm4oKVxuICAgIH1cbiAgfTtcbiAgYXdhaXQgamVzdC5pc29sYXRlTW9kdWxlc0FzeW5jKGFzeW5jICgpID0+IHtcbiAgICBqZXN0LnVuc3RhYmxlX21vY2tNb2R1bGUoJy4vYXJhbmdvZGJVdGlscy5qcycsICgpID0+IG1vY2spO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY2xlYXIgYWxsIG1vY2tzXG5leHBvcnQgY29uc3QgY2xlYXJBbGxNb2NrcyA9ICgpID0+IHtcbiAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIGFjdGlvbiBmdW5jdGlvbnNcbmV4cG9ydCBjb25zdCBjcmVhdGVBY3Rpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBtb2NrUXVlcnk6IGplc3QuTW9jaztcbiAgICBleHBlY3RlZFJlc3VsdDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IGFjdGlvbnNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhY3Rpb25zID0gYXdhaXQgaW1wb3J0KGFjdGlvbnNQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIG1vY2tRdWVyeSwgZXhwZWN0ZWRSZXN1bHR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGV4ZWN1dGUgJHthY3Rpb25OYW1lfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICBjb25zdCBtb2NrRGIgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBxdWVyeTogbW9ja1F1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhY3R1YWwgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJy4vYXJhbmdvZGJVdGlscy5qcycpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBqZXN0LmRvTW9jaygnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gKHtcbiAgICAgICAgICB1c2VEYjogbW9ja0RiLFxuICAgICAgICAgIC4uLmFjdHVhbFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgamVzdC5Nb2NrKShtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWRhcHRlclBhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBhbnlbXVxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsICgpID0+IHtcbiAgICBsZXQgYWRhcHRlcjogYW55O1xuXG4gICAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIGFkYXB0ZXIgPSBhd2FpdCBpbXBvcnQoYWRhcHRlclBhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKGFkYXB0ZXIgYXMge3BhcnNlVGFnOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5wYXJzZVRhZyhpbnB1dCk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRPdXRwdXQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVV0aWxzVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIHV0aWxzUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaW5wdXQ6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkT3V0cHV0OiBUZXN0UmV0dXJuVmFsdWU7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUobmFtZSwgKCkgPT4ge1xuICAgIGxldCB1dGlsczogYW55O1xuXG4gICAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIHV0aWxzID0gYXdhaXQgaW1wb3J0KHV0aWxzUGF0aCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe25hbWU6IHRlc3ROYW1lLCBpbnB1dCwgZXhwZWN0ZWRPdXRwdXR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkICR7dGVzdE5hbWV9YCwgKCkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZigodXRpbHMgYXMge2xvZ0luZm8/OiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5sb2dJbmZvKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKHV0aWxzIGFzIHtsb2dJbmZvOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5sb2dJbmZvKGlucHV0KTtcbiAgICAgICAgfSBlbHNlIGlmKCh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucmVtb3ZlRW1wdHlLZXlzKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKHV0aWxzIGFzIHtyZW1vdmVFbXB0eUtleXM6IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWl0YWJsZSBmdW5jdGlvbiBmb3VuZCBpbiAke3V0aWxzUGF0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxRQUFBQSxNQUFXLGdCQVlaLE1BQU1DLEVBQW9CLENBQUNDLEVBQTJCLENBQUMsSUFBa0IsQ0FDOUUsTUFBTUMsRUFBaUIsQ0FDckIsV0FBWSxFQUNaLE9BQVEsUUFDUixTQUFVLFVBQ1osRUFDTUMsRUFBa0RGLEVBQVUsU0FBVyxDQUFDLEVBQ3hFRyxFQUF1QixDQUMzQixhQUFlSCxFQUFVLGNBQTJCLE9BQ3BELEdBQUdBLENBQ0wsRUFDQSxjQUFPRyxFQUFRLFFBQ2ZBLEVBQVEsUUFBVSxDQUNoQixXQUFZRCxFQUFnQixhQUFlLE9BQVlBLEVBQWdCLFdBQWFELEVBQWUsV0FDbkcsT0FBUUMsRUFBZ0IsU0FBVyxPQUFZQSxFQUFnQixPQUFTRCxFQUFlLE9BQ3ZGLFNBQVVDLEVBQWdCLFdBQWEsT0FBWUEsRUFBZ0IsU0FBV0QsRUFBZSxRQUMvRixFQUNPRSxDQUNULEVBR2FDLEVBQXdCLENBQUNDLEVBQW9CLFVBVWpELENBQ0wsVUFBQUEsRUFDQSxXQUFZLENBQUMsRUFDYixVQUFXLENBQUMsRUFDWixVQVpnQixDQUFDLEVBYWpCLFdBWGlCLENBQUMsRUFZbEIsS0FBTSxDQUFDLElBQUtBLEVBQVcsS0FBTSxPQUFXLFNBQVUsTUFBTSxFQUN4RCxXQVhpQixDQUFDLEVBWWxCLFVBQVcsQ0FBQyxFQUNaLE9BWGEsQ0FBQyxFQVlkLGVBQWdCLENBQUMsQ0FDbkIsR0FJV0MsRUFBb0IsTUFBT0MsRUFBb0JDLElBQTJDLENBQ3JHLE1BQU1DLEVBQVEsT0FBTyxRQUFRRCxDQUFXLEVBQUUsT0FBTyxDQUFDRSxFQUFLLENBQUNDLEVBQUtDLENBQUssS0FDaEVGLEVBQUlDLENBQUcsRUFBSWIsRUFBSyxHQUFHLEVBQUUsbUJBQW1CYyxDQUFLLEVBQ3RDRixHQUNOLENBQUMsQ0FBOEIsRUFFbEMsTUFBTVosRUFBSyxvQkFBb0IsU0FBWSxDQUN6Q0EsRUFBSyxv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LElBQU0sQ0FDN0IsTUFBTU8sRUFBVXVCLEVBQTZELFNBQVNDLENBQUssRUFDM0YsT0FBT3hCLENBQU0sRUFBRSxRQUFReUIsQ0FBYyxDQUN2QyxDQUFDLENBQ0gsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVhQyxFQUF1QixDQUNsQ3RDLEVBQ0F1QyxFQUNBckMsSUFLRyxDQUNILFNBQVNGLEVBQU0sSUFBTSxDQUNuQixJQUFJd0MsRUFFSixVQUFVLFNBQVksQ0FDcEJBLEVBQVEsTUFBTSxPQUFPRCxFQUN2QixDQUFDLEVBRURyQyxFQUFVLFFBQVEsQ0FBQyxDQUFDLEtBQU1HLEVBQVUsTUFBQStCLEVBQU8sZUFBQUMsQ0FBYyxJQUFNLENBQzdELEdBQUcsVUFBVWhDLENBQVEsR0FBSSxJQUFNLENBQzdCLElBQUlPLEVBQ0osR0FBSTRCLEVBQTJELFFBQzdENUIsRUFBVTRCLEVBQTBELFFBQVFKLENBQUssVUFDeEVJLEVBQW1FLGdCQUM1RTVCLEVBQVU0QixFQUFrRSxnQkFBZ0JKLENBQUssTUFFakcsT0FBTSxJQUFJLE1BQU0saUNBQWlDRyxDQUFTLEVBQUUsRUFFOUQsT0FBTzNCLENBQU0sRUFBRSxRQUFReUIsQ0FBYyxDQUN2QyxDQUFDLENBQ0gsQ0FBQyxDQUNILENBQUMsQ0FDSCIsCiAgIm5hbWVzIjogWyJqZXN0IiwgImNyZWF0ZU1vY2tDb250ZXh0IiwgIm92ZXJyaWRlcyIsICJkZWZhdWx0U2Vzc2lvbiIsICJvdmVycmlkZVNlc3Npb24iLCAiY29udGV4dCIsICJjcmVhdGVNb2NrUmVzb2x2ZUluZm8iLCAiZmllbGROYW1lIiwgIm1vY2tBY3Rpb25zTW9kdWxlIiwgIm1vZHVsZVBhdGgiLCAibW9ja0FjdGlvbnMiLCAibW9ja3MiLCAiYWNjIiwgImtleSIsICJ2YWx1ZSIsICJtb2NrT2JqZWN0VHlwZSIsICJ0eXBlTmFtZSIsICJtb2NrIiwgImNyZWF0ZVF1ZXJ5VGVzdFN1aXRlIiwgIm5hbWUiLCAiYWN0aW9uc1BhdGgiLCAidGVzdENhc2VzIiwgImFjdGlvbnMiLCAibW9ja0NvbnRleHQiLCAidGVzdE5hbWUiLCAiYWN0aW9uTmFtZSIsICJhcmdzIiwgImV4cGVjdGVkQ2FsbCIsICJtb2NrUmV0dXJuVmFsdWUiLCAiZXJyb3JDYXNlIiwgIm1vY2tGbiIsICJyZXN1bHQiLCAiY3JlYXRlTXV0YXRpb25UZXN0U3VpdGUiLCAicmVxdWlyZXNBdXRoIiwgImF1dGhVc2VySWQiLCAiY3JlYXRlSW50ZWdyYXRpb25UZXN0U3VpdGUiLCAib2JqZWN0VHlwZVBhdGgiLCAic3VjY2Vzc1JldHVyblZhbHVlIiwgImVycm9yUmV0dXJuVmFsdWUiLCAidGVzdEVycm9yQ2FzZSIsICJjcmVhdGVNb2NrVXNlciIsICJjcmVhdGVNb2NrUG9zdCIsICJjcmVhdGVNb2NrTWVzc2FnZSIsICJjcmVhdGVNb2NrUmVhY3Rpb24iLCAiY3JlYXRlTW9ja1RhZyIsICJzZXR1cENvbW1vbk1vY2tzIiwgImNsZWFyQWxsTW9ja3MiLCAiY3JlYXRlQWN0aW9uVGVzdFN1aXRlIiwgIm1vY2tRdWVyeSIsICJleHBlY3RlZFJlc3VsdCIsICJtb2NrRGIiLCAiYWN0dWFsIiwgImNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUiLCAiYWRhcHRlclBhdGgiLCAiYWRhcHRlciIsICJpbnB1dCIsICJleHBlY3RlZE91dHB1dCIsICJjcmVhdGVVdGlsc1Rlc3RTdWl0ZSIsICJ1dGlsc1BhdGgiLCAidXRpbHMiXQp9Cg==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
6
|
+
import type { Locale } from '../types/content.types.js';
|
|
7
|
+
interface TranslationObject {
|
|
8
|
+
key: string;
|
|
9
|
+
fallback?: string;
|
|
10
|
+
params?: Record<string, any>;
|
|
11
|
+
}
|
|
12
|
+
declare class TranslationQueue {
|
|
13
|
+
private batches;
|
|
14
|
+
private batchTimeout;
|
|
15
|
+
private maxBatchSize;
|
|
16
|
+
translate(context: ApiContext, translations: TranslationObject[], locale?: Locale): Promise<Record<string, string>>;
|
|
17
|
+
private getTranslation;
|
|
18
|
+
flush(): Promise<void>;
|
|
19
|
+
clear(): void;
|
|
20
|
+
private getBatchKey;
|
|
21
|
+
private processBatch;
|
|
22
|
+
private interpolate;
|
|
23
|
+
}
|
|
24
|
+
declare const translationQueue: TranslationQueue;
|
|
25
|
+
export declare const i18n: (context: ApiContext, translations: TranslationObject[], locale?: Locale) => Promise<Record<string, string>>;
|
|
26
|
+
export declare const flush: () => Promise<void>;
|
|
27
|
+
export declare const clear: () => void;
|
|
28
|
+
export type { TranslationObject };
|
|
29
|
+
export { translationQueue };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*
|
|
5
|
+
* Example usage of the translation queue system with Google Translate integration
|
|
6
|
+
*
|
|
7
|
+
* This demonstrates how to use the new translation queue that automatically
|
|
8
|
+
* translates content using Google Translate API when needed.
|
|
9
|
+
*/
|
|
10
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
11
|
+
import type { Locale } from '../types/content.types.js';
|
|
12
|
+
export declare function getWelcomeMessages(context: ApiContext, locale?: Locale): Promise<Record<string, string>>;
|
|
13
|
+
export declare function getPersonalizedMessages(context: ApiContext, username: string, locale?: Locale): Promise<Record<string, string>>;
|
|
14
|
+
export declare function getMultiLanguageContent(context: ApiContext): Promise<Record<Locale, Record<string, string>>>;
|
|
15
|
+
export declare function getRobustTranslations(context: ApiContext, locale?: Locale): Promise<Record<string, string>>;
|
|
16
|
+
export declare function processLargeTranslationBatch(context: ApiContext, locale?: Locale): Promise<Record<string, string>>;
|
|
17
|
+
export declare function getErrorMessages(context: ApiContext, errorCode: string, locale?: Locale): Promise<Record<string, string>>;
|
|
18
|
+
export declare function generateEmailTemplate(context: ApiContext, userData: {
|
|
19
|
+
name: string;
|
|
20
|
+
email: string;
|
|
21
|
+
orderId: string;
|
|
22
|
+
total: number;
|
|
23
|
+
items: number;
|
|
24
|
+
}, locale?: Locale): Promise<{
|
|
25
|
+
subject: string;
|
|
26
|
+
greeting: string;
|
|
27
|
+
body: string;
|
|
28
|
+
footer: string;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function getNotificationMessages(context: ApiContext, locale?: Locale): Promise<Record<string, string>>;
|
|
31
|
+
export declare function performanceComparison(context: ApiContext): Promise<Record<string, string>>;
|
|
32
|
+
export declare function getUserGreeting(context: ApiContext, userLocale?: string, username?: string): Promise<string>;
|
|
33
|
+
export declare function ensureAllTranslationsProcessed(): Promise<void>;
|