@nlabs/reaktor 0.9.0 → 0.10.1
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/.env +1 -0
- package/.env.example +1 -0
- package/DATABASE_I18N_GUIDE.md +434 -0
- package/README.md +9 -0
- package/TEST_UTILITIES_GUIDE.md +360 -0
- package/coverage/index.html +61 -46
- package/dist/actions/apps.js +242 -0
- package/dist/actions/connections.js +90 -0
- package/dist/actions/conversations.js +350 -0
- package/dist/actions/dynamodb.js +150 -0
- package/dist/actions/email.js +152 -0
- package/dist/actions/files.js +283 -0
- package/dist/actions/groups.js +292 -0
- package/dist/actions/images.js +735 -0
- package/dist/actions/index.js +66 -0
- package/dist/actions/ios.js +164 -0
- package/dist/actions/locations.js +122 -0
- package/dist/actions/messages.js +208 -0
- package/dist/actions/notifications.js +59 -0
- package/dist/actions/payments.js +497 -0
- package/dist/actions/personas.js +110 -0
- package/dist/actions/posts.js +595 -0
- package/dist/actions/reactions.js +322 -0
- package/dist/actions/s3.js +133 -0
- package/dist/actions/search.js +90 -0
- package/dist/actions/sms.js +108 -0
- package/dist/actions/statistics.js +62 -0
- package/dist/actions/subscription.js +220 -0
- package/dist/actions/tags.js +292 -0
- package/dist/actions/users.js +784 -0
- package/dist/actions/websockets.js +174 -0
- package/dist/adapters/arangoAdapter.js +46 -0
- package/dist/adapters/fileAdapter.js +76 -0
- package/dist/adapters/imageAdapter.js +40 -0
- package/dist/adapters/messageAdapter.js +49 -0
- package/dist/adapters/postAdapter.js +70 -0
- package/dist/adapters/reaktorAdapter.js +44 -0
- package/dist/adapters/tagAdapter.js +50 -0
- package/dist/adapters/userAdapter.js +115 -0
- package/dist/config.js +125 -0
- package/dist/index.js +66 -0
- package/dist/lambdas/actions/websockets.js +132 -0
- package/dist/lambdas/authorizer.js +67 -0
- package/dist/lambdas/connection.js +91 -0
- package/dist/lambdas/utils/message.js +42 -0
- package/dist/lambdas/utils/websocket.js +105 -0
- package/dist/mocks/conversation.js +35 -0
- package/dist/mocks/file.js +38 -0
- package/dist/mocks/group.js +47 -0
- package/dist/mocks/image.js +44 -0
- package/dist/mocks/nlabs.png +0 -0
- package/dist/mocks/post.js +55 -0
- package/dist/mocks/tag.js +37 -0
- package/dist/mocks/user.js +88 -0
- package/dist/mutations/index.js +26 -0
- package/dist/mutations/locations.js +44 -0
- package/dist/mutations/messages.js +86 -0
- package/dist/mutations/personas.js +100 -0
- package/dist/mutations/posts.js +53 -0
- package/dist/mutations/reactions.js +51 -0
- package/dist/mutations/statistics.js +39 -0
- package/dist/mutations/subscriptions.js +56 -0
- package/dist/mutations/tags.js +120 -0
- package/dist/mutations/users.js +116 -0
- package/dist/objectTypes/app.js +173 -0
- package/dist/objectTypes/bankAccount.js +76 -0
- package/dist/objectTypes/connection.js +48 -0
- package/dist/objectTypes/conversation.js +77 -0
- package/dist/objectTypes/creditCard.js +86 -0
- package/dist/objectTypes/document.js +46 -0
- package/dist/objectTypes/error.js +46 -0
- package/dist/objectTypes/external.js +74 -0
- package/dist/objectTypes/file.js +100 -0
- package/dist/objectTypes/filter.js +43 -0
- package/dist/objectTypes/group.js +123 -0
- package/dist/objectTypes/iapSubscription.js +40 -0
- package/dist/objectTypes/image.js +129 -0
- package/dist/objectTypes/index.js +68 -0
- package/dist/objectTypes/location.js +109 -0
- package/dist/objectTypes/message.js +96 -0
- package/dist/objectTypes/passcode.js +42 -0
- package/dist/objectTypes/persona.js +87 -0
- package/dist/objectTypes/plan.js +95 -0
- package/dist/objectTypes/post.js +125 -0
- package/dist/objectTypes/reaction.js +61 -0
- package/dist/objectTypes/relation.js +49 -0
- package/dist/objectTypes/search.js +72 -0
- package/dist/objectTypes/statistics.js +39 -0
- package/dist/objectTypes/subscription.js +117 -0
- package/dist/objectTypes/tag.js +65 -0
- package/dist/objectTypes/user.js +144 -0
- package/dist/queries/index.js +33 -0
- package/dist/queries/locations.js +45 -0
- package/dist/queries/messages.js +52 -0
- package/dist/queries/posts.js +154 -0
- package/dist/queries/reactions.js +56 -0
- package/dist/queries/statistics.js +39 -0
- package/dist/queries/subscriptions.js +44 -0
- package/dist/queries/tags.js +75 -0
- package/dist/queries/users.js +64 -0
- package/dist/templates/email/layout.js +302 -0
- package/dist/templates/email/passwordForgot.js +38 -0
- package/dist/templates/email/passwordRecovery.js +35 -0
- package/dist/templates/email/verifyEmail.js +38 -0
- package/dist/templates/email/welcome.js +38 -0
- package/dist/templates/sms/passwordForgot.js +24 -0
- package/dist/templates/sms/passwordRecovery.js +24 -0
- package/dist/templates/sms/verifyEmail.js +24 -0
- package/dist/templates/sms/verifyPhone.js +24 -0
- package/dist/templates/sms/welcome.js +24 -0
- package/dist/types/apps.js +32 -0
- package/{lib → dist}/types/arangodb.js +1 -1
- package/{lib → dist}/types/auth.js +1 -1
- package/{lib → dist}/types/connections.js +1 -1
- package/dist/types/conversations.js +16 -0
- package/{lib → dist}/types/email.js +1 -1
- package/dist/types/files.js +16 -0
- package/dist/types/google.js +16 -0
- package/{lib → dist}/types/groups.js +1 -1
- package/dist/types/images.js +16 -0
- package/dist/types/index.js +60 -0
- package/{lib → dist}/types/locations.js +1 -1
- package/{lib → dist}/types/messages.js +1 -1
- package/{lib → dist}/types/notifications.js +1 -1
- package/dist/types/payments.js +16 -0
- package/dist/types/personas.js +16 -0
- package/dist/types/posts.js +16 -0
- package/{lib → dist}/types/tags.js +1 -1
- package/dist/types/users.js +16 -0
- package/dist/types/websockets.js +16 -0
- package/dist/utils/adapterUtils.js +45 -0
- package/dist/utils/analyticsUtils.js +72 -0
- package/dist/utils/arangodbUtils.js +165 -0
- package/dist/utils/auth.js +57 -0
- package/dist/utils/index.js +30 -0
- package/{lib → dist}/utils/session.js +10 -7
- package/index.js +1 -1
- package/jest.config.js +17 -0
- package/jest.setup.js +36 -0
- package/lex.config.cjs +13 -0
- package/lib/actions/apps.js +17 -249
- package/lib/actions/connections.js +7 -0
- package/lib/actions/content.js +17 -0
- package/lib/actions/conversations.js +19 -325
- package/lib/actions/dynamodb.js +2 -150
- package/lib/actions/email.js +2 -152
- package/lib/actions/files.js +5 -287
- package/lib/actions/groups.js +23 -263
- package/lib/actions/images.js +31 -646
- package/lib/actions/index.js +2 -62
- package/lib/actions/ios.js +9 -162
- package/lib/actions/locations.js +7 -110
- package/lib/actions/messages.js +21 -193
- package/lib/actions/notifications.js +2 -59
- package/lib/actions/payments.js +11 -461
- package/lib/actions/posts.js +77 -515
- package/lib/actions/profiles.js +8 -0
- package/lib/actions/reactions.js +25 -312
- package/lib/actions/s3.js +2 -133
- package/lib/actions/search.js +5 -90
- package/lib/actions/sms.js +2 -106
- package/lib/actions/statistics.js +6 -60
- package/lib/actions/subscriptions.js +12 -0
- package/lib/actions/tags.js +19 -262
- package/lib/actions/users.js +67 -537
- package/lib/actions/websockets.js +16 -158
- package/lib/adapters/arangoAdapter.js +2 -46
- package/lib/adapters/contentAdapter.js +2 -0
- package/lib/adapters/fileAdapter.js +2 -76
- package/lib/adapters/imageAdapter.js +2 -0
- package/lib/adapters/messageAdapter.js +2 -0
- package/lib/adapters/postAdapter.js +2 -70
- package/lib/adapters/reaktorAdapter.js +2 -44
- package/lib/adapters/tagAdapter.js +2 -50
- package/lib/adapters/userAdapter.js +2 -110
- package/lib/config.js +2 -125
- package/lib/handlers/graphqlHandler.js +2 -0
- package/lib/index.js +2 -30
- package/lib/lambdas/actions/websockets.js +14 -112
- package/lib/lambdas/authorizer.js +2 -67
- package/lib/lambdas/connection.js +2 -92
- package/lib/lambdas/utils/message.js +2 -42
- package/lib/lambdas/utils/websocket.js +2 -105
- package/lib/mocks/conversation.js +2 -35
- package/lib/mocks/file.js +2 -38
- package/lib/mocks/group.js +2 -47
- package/lib/mocks/image.js +2 -43
- package/lib/mocks/post.js +2 -55
- package/lib/mocks/tag.js +2 -37
- package/lib/mocks/user.js +2 -88
- package/lib/mutations/index.js +2 -0
- package/lib/mutations/locations.integration.js +2 -0
- package/lib/mutations/locations.js +2 -0
- package/lib/mutations/messages.integration.js +2 -0
- package/lib/mutations/messages.js +2 -0
- package/lib/mutations/posts.integration.js +2 -0
- package/lib/mutations/posts.js +2 -0
- package/lib/mutations/profiles.integration.js +2 -0
- package/lib/mutations/profiles.js +2 -0
- package/lib/mutations/reactions.integration.js +2 -0
- package/lib/mutations/reactions.js +2 -0
- package/lib/mutations/statistics.integration.js +2 -0
- package/lib/mutations/statistics.js +2 -0
- package/lib/mutations/subscriptions.integration.js +2 -0
- package/lib/mutations/subscriptions.js +2 -0
- package/lib/mutations/tags.integration.js +2 -0
- package/lib/mutations/tags.js +2 -0
- package/lib/mutations/users.integration.js +2 -0
- package/lib/mutations/users.js +2 -0
- package/lib/objectTypes/app.js +2 -0
- package/lib/objectTypes/bankAccount.js +2 -0
- package/lib/objectTypes/connection.js +2 -0
- package/lib/objectTypes/conversation.js +2 -0
- package/lib/objectTypes/creditCard.js +2 -0
- package/lib/objectTypes/document.js +2 -0
- package/lib/objectTypes/error.js +2 -0
- package/lib/objectTypes/external.js +2 -0
- package/lib/objectTypes/file.js +2 -0
- package/lib/objectTypes/filter.js +2 -0
- package/lib/objectTypes/group.js +2 -0
- package/lib/objectTypes/iapSubscription.js +2 -0
- package/lib/objectTypes/image.js +2 -0
- package/lib/objectTypes/index.js +2 -0
- package/lib/objectTypes/location.js +2 -0
- package/lib/objectTypes/message.js +2 -0
- package/lib/objectTypes/passcode.js +2 -0
- package/lib/objectTypes/plan.js +2 -0
- package/lib/objectTypes/post.js +2 -0
- package/lib/objectTypes/profile.js +2 -0
- package/lib/objectTypes/reaction.js +2 -0
- package/lib/objectTypes/relation.js +2 -0
- package/lib/objectTypes/search.js +2 -0
- package/lib/objectTypes/statistics.js +2 -0
- package/lib/objectTypes/subscription.js +2 -0
- package/lib/objectTypes/tag.js +2 -0
- package/lib/objectTypes/user.js +2 -0
- package/lib/queries/index.js +2 -0
- package/lib/queries/locations.integration.js +2 -0
- package/lib/queries/locations.js +2 -0
- package/lib/queries/messages.integration.js +2 -0
- package/lib/queries/messages.js +2 -0
- package/lib/queries/posts.integration.js +2 -0
- package/lib/queries/posts.js +2 -0
- package/lib/queries/reactions.integration.js +2 -0
- package/lib/queries/reactions.js +2 -0
- package/lib/queries/statistics.js +2 -0
- package/lib/queries/subscriptions.js +2 -0
- package/lib/queries/tags.integration.js +2 -0
- package/lib/queries/tags.js +2 -0
- package/lib/queries/users.integration.js +2 -0
- package/lib/queries/users.js +2 -0
- package/lib/templates/email/layout.js +3 -25
- package/lib/templates/email/passwordForgot.js +3 -25
- package/lib/templates/email/passwordRecovery.js +3 -25
- package/lib/templates/email/verifyEmail.js +3 -25
- package/lib/templates/email/welcome.js +3 -25
- package/lib/templates/sms/passwordForgot.js +2 -24
- package/lib/templates/sms/passwordRecovery.js +2 -24
- package/lib/templates/sms/verifyEmail.js +2 -24
- package/lib/templates/sms/verifyPhone.js +2 -24
- package/lib/templates/sms/welcome.js +2 -24
- package/lib/types/apps.types.js +2 -0
- package/lib/types/arangodb.types.js +1 -0
- package/lib/types/auth.types.js +1 -0
- package/lib/types/connections.types.js +1 -0
- package/lib/types/content.types.js +1 -0
- package/lib/types/conversations.types.js +1 -0
- package/lib/types/email.types.js +1 -0
- package/lib/types/error.types.js +2 -0
- package/lib/types/files.types.js +1 -0
- package/lib/types/google.types.js +1 -0
- package/lib/types/groups.types.js +1 -0
- package/lib/types/images.types.js +1 -0
- package/lib/types/index.js +2 -56
- package/lib/types/locations.types.js +1 -0
- package/lib/types/messages.types.js +1 -0
- package/lib/types/notifications.types.js +1 -0
- package/lib/types/payments.types.js +1 -0
- package/lib/types/posts.types.js +1 -0
- package/lib/types/profiles.types.js +1 -0
- package/lib/types/statistics.types.js +1 -0
- package/lib/types/tags.types.js +1 -0
- package/lib/types/users.types.js +1 -0
- package/lib/types/websockets.types.js +1 -0
- package/lib/utils/adapterUtils.js +2 -45
- package/lib/utils/analyticsUtils.js +2 -72
- package/lib/utils/arangodbUtils.js +5 -142
- package/lib/utils/authUtils.js +2 -0
- package/lib/utils/contextUtils.js +2 -0
- package/lib/utils/dbI18n.example.js +6 -0
- package/lib/utils/dbI18n.js +2 -0
- package/lib/utils/googleTranslate.js +2 -0
- package/lib/utils/graphqlUtils.js +2 -0
- package/lib/utils/index.js +2 -30
- package/lib/utils/languageDetection.js +2 -0
- package/lib/utils/localeUtils.example.js +2 -0
- package/lib/utils/localeUtils.js +2 -0
- package/lib/utils/middlewareUtils.js +2 -0
- package/lib/utils/sessionUtils.js +2 -0
- package/lib/utils/stripeUtils.js +2 -0
- package/lib/utils/templateUtils.js +2 -0
- package/lib/utils/testUtils.js +2 -0
- package/lib/utils/translationQueue.example.js +2 -0
- package/lib/utils/translationQueue.js +2 -0
- package/package.json +41 -37
- package/.eslintrc +0 -10
- package/.prettierrc.js +0 -4
- package/lib/actions/apps.d.ts +0 -25
- package/lib/actions/conversations.d.ts +0 -14
- package/lib/actions/dynamodb.d.ts +0 -8
- package/lib/actions/email.d.ts +0 -5
- package/lib/actions/files.d.ts +0 -19
- package/lib/actions/groups.d.ts +0 -14
- package/lib/actions/images.d.ts +0 -26
- package/lib/actions/index.d.ts +0 -21
- package/lib/actions/ios.d.ts +0 -7
- package/lib/actions/locations.d.ts +0 -5
- package/lib/actions/messages.d.ts +0 -13
- package/lib/actions/notifications.d.ts +0 -5
- package/lib/actions/payments.d.ts +0 -10
- package/lib/actions/posts.d.ts +0 -19
- package/lib/actions/reactions.d.ts +0 -30
- package/lib/actions/s3.d.ts +0 -7
- package/lib/actions/search.d.ts +0 -3
- package/lib/actions/sms.d.ts +0 -3
- package/lib/actions/statistics.d.ts +0 -3
- package/lib/actions/subscription.d.ts +0 -7
- package/lib/actions/subscription.js +0 -218
- package/lib/actions/tags.d.ts +0 -29
- package/lib/actions/users.d.ts +0 -47
- package/lib/actions/websockets.d.ts +0 -19
- package/lib/adapters/arangoAdapter.d.ts +0 -2
- package/lib/adapters/fileAdapter.d.ts +0 -3
- package/lib/adapters/postAdapter.d.ts +0 -2
- package/lib/adapters/reaktorAdapter.d.ts +0 -6
- package/lib/adapters/tagAdapter.d.ts +0 -2
- package/lib/adapters/userAdapter.d.ts +0 -2
- package/lib/config.d.ts +0 -20
- package/lib/index.d.ts +0 -5
- package/lib/lambdas/actions/websockets.d.ts +0 -6
- package/lib/lambdas/authorizer.d.ts +0 -20
- package/lib/lambdas/connection.d.ts +0 -12
- package/lib/lambdas/utils/message.d.ts +0 -1
- package/lib/lambdas/utils/websocket.d.ts +0 -7
- package/lib/mocks/conversation.d.ts +0 -8
- package/lib/mocks/file.d.ts +0 -11
- package/lib/mocks/group.d.ts +0 -17
- package/lib/mocks/image.d.ts +0 -3
- package/lib/mocks/post.d.ts +0 -38
- package/lib/mocks/tag.d.ts +0 -2
- package/lib/mocks/user.d.ts +0 -4
- package/lib/templates/email/layout.d.ts +0 -2
- package/lib/templates/email/passwordForgot.d.ts +0 -2
- package/lib/templates/email/passwordRecovery.d.ts +0 -2
- package/lib/templates/email/verifyEmail.d.ts +0 -2
- package/lib/templates/email/welcome.d.ts +0 -2
- package/lib/templates/sms/passwordForgot.d.ts +0 -2
- package/lib/templates/sms/passwordRecovery.d.ts +0 -2
- package/lib/templates/sms/verifyEmail.d.ts +0 -2
- package/lib/templates/sms/verifyPhone.d.ts +0 -2
- package/lib/templates/sms/welcome.d.ts +0 -2
- package/lib/types/apps.d.ts +0 -46
- package/lib/types/apps.js +0 -32
- package/lib/types/arangodb.d.ts +0 -30
- package/lib/types/auth.d.ts +0 -7
- package/lib/types/connections.d.ts +0 -7
- package/lib/types/conversations.d.ts +0 -29
- package/lib/types/conversations.js +0 -16
- package/lib/types/email.d.ts +0 -13
- package/lib/types/error.d.ts +0 -20
- package/lib/types/files.d.ts +0 -26
- package/lib/types/files.js +0 -16
- package/lib/types/google.d.ts +0 -29
- package/lib/types/google.js +0 -16
- package/lib/types/groups.d.ts +0 -21
- package/lib/types/images.d.ts +0 -51
- package/lib/types/images.js +0 -16
- package/lib/types/index.d.ts +0 -18
- package/lib/types/locations.d.ts +0 -20
- package/lib/types/messages.d.ts +0 -16
- package/lib/types/notifications.d.ts +0 -17
- package/lib/types/payments.d.ts +0 -112
- package/lib/types/payments.js +0 -16
- package/lib/types/posts.d.ts +0 -31
- package/lib/types/posts.js +0 -16
- package/lib/types/statistics.d.ts +0 -3
- package/lib/types/tags.d.ts +0 -10
- package/lib/types/users.d.ts +0 -76
- package/lib/types/users.js +0 -16
- package/lib/types/websocket.d.ts +0 -13
- package/lib/types/websocket.js +0 -16
- package/lib/utils/adapterUtils.d.ts +0 -1
- package/lib/utils/analyticsUtils.d.ts +0 -21
- package/lib/utils/arangodbUtils.d.ts +0 -65
- package/lib/utils/auth.d.ts +0 -20
- package/lib/utils/auth.js +0 -50
- package/lib/utils/index.d.ts +0 -5
- package/lib/utils/session.d.ts +0 -16
- /package/{lib → dist}/types/error.js +0 -0
- /package/{lib → dist}/types/statistics.js +0 -0
package/lib/actions/messages.js
CHANGED
|
@@ -1,64 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var messages_exports = {};
|
|
29
|
-
__export(messages_exports, {
|
|
30
|
-
cleanMessages: () => cleanMessages,
|
|
31
|
-
deleteMessage: () => deleteMessage,
|
|
32
|
-
getMessage: () => getMessage,
|
|
33
|
-
getMessages: () => getMessages,
|
|
34
|
-
saveMessage: () => saveMessage,
|
|
35
|
-
unsaveMessage: () => unsaveMessage,
|
|
36
|
-
updateMessage: () => updateMessage
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(messages_exports);
|
|
39
|
-
var import_utils = require("@nlabs/utils");
|
|
40
|
-
var import_arangojs = require("arangojs");
|
|
41
|
-
var import_cloneDeep = __toESM(require("lodash/cloneDeep"));
|
|
42
|
-
var import_conversations = require("./conversations");
|
|
43
|
-
var import_arangodbUtils = require("../utils/arangodbUtils");
|
|
44
|
-
const getMessages = (context, conversationId, { from, to }) => {
|
|
45
|
-
const { database, session: { userId: sessionId } } = context;
|
|
46
|
-
const formatConversationId = (0, import_utils.parseId)(conversationId);
|
|
47
|
-
const sessionDocId = `users/${sessionId}`;
|
|
48
|
-
const conversationDocId = `conversations/${formatConversationId}`;
|
|
49
|
-
const conversationQry = import_arangojs.aql`FOR e IN hasConversation
|
|
50
|
-
FILTER e._from == ${sessionDocId} && e._to == ${conversationDocId}
|
|
1
|
+
import{createHash as N,parseId as y,parseString as M}from"@nlabs/utils";import{aql as p}from"arangojs";import h from"lodash/cloneDeep";import{getConversation as R}from"./conversations";import{parseMessage as l}from"../adapters/messageAdapter";import{logError as f}from"../utils/analyticsUtils";import{getLimit as v,useDb as c}from"../utils/arangodbUtils";const A="messages",_=(s,o,{from:t,to:n})=>{const{databaseName:a,session:{userId:r}}=s,m=y(o),g=`users/${r}`,i=`conversations/${m}`,e=p`FOR e IN hasConversation
|
|
2
|
+
FILTER e._from == ${g} && e._to == ${i}
|
|
51
3
|
LIMIT 1
|
|
52
|
-
RETURN e`;
|
|
53
|
-
|
|
54
|
-
if (!conversations.length) {
|
|
55
|
-
return [];
|
|
56
|
-
}
|
|
57
|
-
const limit = (0, import_arangodbUtils.getLimit)(from, to);
|
|
58
|
-
const aqlQry = `FOR m IN messages
|
|
59
|
-
FILTER m.conversationId == "${formatConversationId}"
|
|
4
|
+
RETURN e`;return c(a).query(e).then(d=>d.all()).then(d=>{if(!d.length)return[];const T=v(t,n),u=`FOR m IN messages
|
|
5
|
+
FILTER m.conversationId == "${m}"
|
|
60
6
|
SORT m.added DESC
|
|
61
|
-
${
|
|
7
|
+
${T.aql}
|
|
62
8
|
SORT m.added ASC
|
|
63
9
|
LET user = FIRST(
|
|
64
10
|
FOR u IN users
|
|
@@ -66,140 +12,22 @@ const getMessages = (context, conversationId, { from, to }) => {
|
|
|
66
12
|
LIMIT 1
|
|
67
13
|
RETURN u
|
|
68
14
|
)
|
|
69
|
-
RETURN MERGE(m, {user: user})`;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
images,
|
|
81
|
-
messageId = (0, import_utils.createHash)(`message-${sessionId}`)
|
|
82
|
-
} = message;
|
|
83
|
-
const formatConversationId = (0, import_utils.parseId)(conversationId);
|
|
84
|
-
if (formatConversationId === "") {
|
|
85
|
-
throw new Error("required_conversationId");
|
|
86
|
-
}
|
|
87
|
-
const now = Date.now();
|
|
88
|
-
const update = {
|
|
89
|
-
content: (0, import_utils.parseString)(message.content, 640),
|
|
90
|
-
files: files || [],
|
|
91
|
-
images: images || [],
|
|
92
|
-
modified: now
|
|
93
|
-
};
|
|
94
|
-
const formatMsgId = (0, import_utils.parseId)(messageId);
|
|
95
|
-
const insert = {
|
|
96
|
-
...(0, import_cloneDeep.default)(update),
|
|
97
|
-
_key: formatMsgId,
|
|
98
|
-
added: now,
|
|
99
|
-
conversationId: formatConversationId,
|
|
100
|
-
userId: sessionId
|
|
101
|
-
};
|
|
102
|
-
const aqlQry = import_arangojs.aql`UPSERT {_key: ${formatMsgId}, conversationId: ${formatConversationId}, userId: ${sessionId}}
|
|
103
|
-
INSERT ${insert}
|
|
104
|
-
UPDATE ${update} IN messages
|
|
105
|
-
RETURN NEW`;
|
|
106
|
-
return database.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
|
|
107
|
-
throw error;
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
const saveMessage = (context, messageId, conversationId) => {
|
|
111
|
-
const { database, session: { userId: sessionId } } = context;
|
|
112
|
-
const formatId = (0, import_utils.parseId)(messageId);
|
|
113
|
-
return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
|
|
114
|
-
const { _key: conversationKey } = conversation;
|
|
115
|
-
const aqlQry = import_arangojs.aql`FOR m IN messages
|
|
116
|
-
FILTER m._key == ${formatId} && m.to == ${conversationKey}
|
|
117
|
-
UPDATE m WITH {saved: APPEND(m.saved, ${sessionId}, true)} IN messages
|
|
118
|
-
RETURN NEW`;
|
|
119
|
-
return database.query(aqlQry).then((cursor) => cursor.next()).then((message) => {
|
|
120
|
-
if (message) {
|
|
121
|
-
}
|
|
122
|
-
return message;
|
|
123
|
-
}).catch((error) => {
|
|
124
|
-
throw error;
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
const unsaveMessage = (context, messageId, conversationId) => {
|
|
129
|
-
const { database, session: { userId: sessionId } } = context;
|
|
130
|
-
const formatId = (0, import_utils.parseId)(messageId);
|
|
131
|
-
return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
|
|
132
|
-
const { _key: conversationKey } = conversation;
|
|
133
|
-
const aqlQry = import_arangojs.aql`FOR m IN messages
|
|
134
|
-
FILTER m._key == ${formatId} && m.to == ${conversationKey}
|
|
135
|
-
UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ${sessionId})} IN messages
|
|
136
|
-
RETURN NEW`;
|
|
137
|
-
return database.query(aqlQry).then((cursor) => cursor.next()).then((message) => {
|
|
138
|
-
if (message) {
|
|
139
|
-
}
|
|
140
|
-
return message;
|
|
141
|
-
}).catch((error) => {
|
|
142
|
-
throw error;
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
|
-
const deleteMessage = (context, messageId, conversationId) => {
|
|
147
|
-
const { database, session: { userId: sessionId } } = context;
|
|
148
|
-
const formatId = (0, import_utils.parseId)(messageId);
|
|
149
|
-
return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
|
|
150
|
-
const { _key: conversationKey } = conversation;
|
|
151
|
-
const aqlQry = import_arangojs.aql`FOR m IN messages
|
|
152
|
-
FILTER m._key == ${formatId} && m.to == ${conversationKey} && m.from == ${sessionId}
|
|
15
|
+
RETURN MERGE(m, {user: user})`;return c(a).query(u).then(I=>I.all()).catch(I=>{throw I})})},O=(s,o)=>{const{databaseName:t,session:{userId:n}}=s,{conversationId:a,files:r,images:m,messageId:g=N(`message-${n}`)}=o,i=y(a);if(i==="")throw new Error("required_conversationId");const e=Date.now(),d={content:M(o.content,640),files:r||[],images:m||[],modified:e},T=y(g),u={...h(d),_key:T,added:e,conversationId:i,userId:n},I=p`UPSERT {_key: ${T}, conversationId: ${i}, userId: ${n}}
|
|
16
|
+
INSERT ${u}
|
|
17
|
+
UPDATE ${d} IN messages
|
|
18
|
+
RETURN NEW`;return c(t).query(I).then(E=>E.next()).catch(E=>{throw E})},U=(s,o)=>{const{databaseName:t}=s,n=l(o),a=p`INSERT ${n} IN messages RETURN NEW`;return c(t).query(a).then(r=>r.next()).catch(r=>f({action:"addMessage",category:A,label:"addMessage"},r,s))},P=(s,o,t)=>{const{databaseName:n,session:{userId:a}}=s,r=y(o);return R(s,t).then(m=>{const{_key:g}=m,i=p`FOR m IN messages
|
|
19
|
+
FILTER m._key == ${r} && m.to == ${g}
|
|
20
|
+
UPDATE m WITH {saved: APPEND(m.saved, ${a}, true)} IN messages
|
|
21
|
+
RETURN NEW`;return c(n).query(i).then(e=>e.next()).then(e=>e).catch(e=>{throw e})})},b=(s,o,t)=>{const{databaseName:n,session:{userId:a}}=s,r=y(o);return R(s,t).then(m=>{const{_key:g}=m,i=p`FOR m IN messages
|
|
22
|
+
FILTER m._key == ${r} && m.to == ${g}
|
|
23
|
+
UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ${a})} IN messages
|
|
24
|
+
RETURN NEW`;return c(n).query(i).then(e=>e.next()).then(e=>e).catch(e=>{throw e})})},w=(s,o,t)=>{const{databaseName:n,session:{userId:a}}=s,r=y(o);return R(s,t).then(m=>{const{_key:g}=m,i=p`FOR m IN messages
|
|
25
|
+
FILTER m._key == ${r} && m.to == ${g} && m.from == ${a}
|
|
153
26
|
REMOVE m IN messages
|
|
154
|
-
RETURN OLD`;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
return message;
|
|
159
|
-
}).catch((error) => {
|
|
160
|
-
throw error;
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
};
|
|
164
|
-
const getMessage = (data) => {
|
|
165
|
-
const {
|
|
166
|
-
added,
|
|
167
|
-
content,
|
|
168
|
-
conversationId,
|
|
169
|
-
files,
|
|
170
|
-
_key: messageId,
|
|
171
|
-
read,
|
|
172
|
-
saved,
|
|
173
|
-
userId
|
|
174
|
-
} = data;
|
|
175
|
-
return {
|
|
176
|
-
added,
|
|
177
|
-
content,
|
|
178
|
-
conversationId,
|
|
179
|
-
files,
|
|
180
|
-
messageId,
|
|
181
|
-
read,
|
|
182
|
-
saved,
|
|
183
|
-
userId
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
|
-
const cleanMessages = (database) => {
|
|
187
|
-
const aqlQry = import_arangojs.aql`FOR m IN messages
|
|
27
|
+
RETURN OLD`;return c(n).query(i).then(e=>e.next()).then(e=>e).catch(e=>{throw e})})},Q=(s,o)=>{const{databaseName:t}=s,n=y(o),a=p`FOR m IN messages
|
|
28
|
+
FILTER m._key == ${n}
|
|
29
|
+
RETURN m`;return c(t).query(a).then(r=>r.next()).catch(r=>{throw r})},S=s=>{const o=p`FOR m IN messages
|
|
188
30
|
FILTER m.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && LENGTH(m.saved) > 0
|
|
189
31
|
REMOVE m IN messages
|
|
190
|
-
RETURN OLD`;
|
|
191
|
-
return database.query(aqlQry).then((cursor) => cursor.all()).then((list) => list.length).catch((error) => {
|
|
192
|
-
throw error;
|
|
193
|
-
});
|
|
194
|
-
};
|
|
195
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
196
|
-
0 && (module.exports = {
|
|
197
|
-
cleanMessages,
|
|
198
|
-
deleteMessage,
|
|
199
|
-
getMessage,
|
|
200
|
-
getMessages,
|
|
201
|
-
saveMessage,
|
|
202
|
-
unsaveMessage,
|
|
203
|
-
updateMessage
|
|
204
|
-
});
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQgdHlwZSB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZUlucHV0VHlwZSwgTWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzJztcbmltcG9ydCB7Z2V0Q29udmVyc2F0aW9ufSBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdtZXNzYWdlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252ZXJzYXRpb25JZDogc3RyaW5nLCB7ZnJvbSwgdG99KTogUHJvbWlzZTxNZXNzYWdlVHlwZVtdPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkRvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZlcnNhdGlvbklkfWA7XG5cbiAgY29uc3QgY29udmVyc2F0aW9uUXJ5ID0gYXFsYEZPUiBlIElOIGhhc0NvbnZlcnNhdGlvblxuICAgIEZJTFRFUiBlLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiBlLl90byA9PSAke2NvbnZlcnNhdGlvbkRvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGNvbnZlcnNhdGlvblFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25zKSA9PiB7XG4gICAgICBpZighY29udmVyc2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgICAgIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uY29udmVyc2F0aW9uSWQgPT0gXCIke2Zvcm1hdENvbnZlcnNhdGlvbklkfVwiXG4gICAgICAgICAgU09SVCBtLmFkZGVkIERFU0NcbiAgICAgICAgICAke2xpbWl0LmFxbH1cbiAgICAgICAgICBTT1JUIG0uYWRkZWQgQVNDXG4gICAgICAgICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgICAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICAgICAgICBGSUxURVIgdS5fa2V5ID09IG0udXNlcklkXG4gICAgICAgICAgICBMSU1JVCAxXG4gICAgICAgICAgICBSRVRVUk4gdVxuICAgICAgICAgIClcbiAgICAgICAgICBSRVRVUk4gTUVSR0UobSwge3VzZXI6IHVzZXJ9KWA7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZTogTWVzc2FnZUlucHV0VHlwZSk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBpbWFnZXMsXG4gICAgbWVzc2FnZUlkID0gY3JlYXRlSGFzaChgbWVzc2FnZS0ke3Nlc3Npb25JZH1gKVxuICB9ID0gbWVzc2FnZTtcbiAgY29uc3QgZm9ybWF0Q29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udmVyc2F0aW9uSWQpO1xuXG4gIGlmKGZvcm1hdENvbnZlcnNhdGlvbklkID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVxdWlyZWRfY29udmVyc2F0aW9uSWQnKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhtZXNzYWdlLmNvbnRlbnQsIDY0MCksXG4gICAgZmlsZXM6IGZpbGVzIHx8IFtdLFxuICAgIGltYWdlczogaW1hZ2VzIHx8IFtdLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcbiAgY29uc3QgZm9ybWF0TXNnSWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcbiAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRNc2dJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGNvbnZlcnNhdGlvbklkOiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICB1c2VySWQ6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtmb3JtYXRNc2dJZH0sIGNvbnZlcnNhdGlvbklkOiAke2Zvcm1hdENvbnZlcnNhdGlvbklkfSwgdXNlcklkOiAke3Nlc3Npb25JZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX0gSU4gbWVzc2FnZXNcbiAgICBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuc2F2ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udmVyc2F0aW9uSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fVxuICAgICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBSRU1PVkVfVkFMVUUobS5zYXZlZCwgJHtzZXNzaW9uSWR9KX0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSkgPT4ge1xuICAgICAgICAgIGlmKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS5pZCkuZW1pdCgnbWVzc2FnZV91bnNhdmUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9kZWxldGUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChkYXRhOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udmVyc2F0aW9uSWQsXG4gICAgZmlsZXMsXG4gICAgX2tleTogbWVzc2FnZUlkLFxuICAgIHJlYWQsXG4gICAgc2F2ZWQsXG4gICAgdXNlcklkXG4gIH0gPSBkYXRhO1xuXG4gIHJldHVybiB7XG4gICAgYWRkZWQsXG4gICAgY29udGVudCxcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBtZXNzYWdlSWQsXG4gICAgcmVhZCxcbiAgICBzYXZlZCxcbiAgICB1c2VySWRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhbk1lc3NhZ2VzID0gKGRhdGFiYXNlOiBEYXRhYmFzZSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIC8vIFJlbW92ZSBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgb3ZlciA2MCBkYXlzIGFuZCBub3Qgc2F2ZWRcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICBGSUxURVIgbS5hZGRlZCA8IERBVEVfVElNRVNUQU1QKERBVEVfU1VCVFJBQ1QoREFURV9OT1coKSwgNjAsICdkYXknKSkgJiYgTEVOR1RIKG0uc2F2ZWQpID4gMFxuICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogTWVzc2FnZVR5cGVbXSkgPT4gbGlzdC5sZW5ndGgpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBK0M7QUFDL0Msc0JBQTRCO0FBRzVCLHVCQUFzQjtBQU10QiwyQkFBOEI7QUFDOUIsMkJBQXVCO0FBSWhCLE1BQU0sY0FBYyxDQUFDLFNBQXFCLGdCQUF3QixFQUFDLE1BQU0sR0FBRSxNQUE4QjtBQUM5RyxRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLDJCQUErQixzQkFBUSxjQUFjO0FBQzNELFFBQU0sZUFBdUIsU0FBUyxTQUFTO0FBQy9DLFFBQU0sb0JBQTRCLGlCQUFpQixvQkFBb0I7QUFFdkUsUUFBTSxrQkFBa0I7QUFBQSx3QkFDRixZQUFZLGdCQUFnQixpQkFBaUI7QUFBQTtBQUFBO0FBSW5FLFNBQU8sU0FBUyxNQUFNLGVBQWUsRUFDbEMsS0FBSyxDQUFDLFdBQXdCLE9BQU8sSUFBSSxDQUFDLEVBQzFDLEtBQUssQ0FBQyxrQkFBa0I7QUFDdkIsUUFBRyxDQUFDLGNBQWMsUUFB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QVM7QUFBQTtBQUczRCxXQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsWUFBeUI7QUFDOUIsVUFBRyxTQUFTO0FBQUEsTUFJWjtBQUVBLGFBQU87QUFBQSxJQUNULENBQUMsRUFDQSxNQUFNLENBQUMsVUFBaUI7QUFDdkIsWUFBTTtBQUFBLElBQ1IsQ0FBQztBQUFBLEVBQ0wsQ0FBQztBQUNMO0FBRU8sTUFBTSxnQkFBZ0IsQ0FBQyxTQUFxQixXQUFtQixtQkFBaUQ7QUFDckgsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsVUFBUyxFQUFDLElBQUk7QUFDakQsUUFBTSxlQUFtQixzQkFBUSxTQUFTO0FBRTFDLGFBQU8sc0NBQWdCLFNBQVMsY0FBYyxFQUMzQyxLQUFLLENBQUMsaUJBQW1DO0FBQ3hDLFVBQU0sRUFBQyxNQUFNLGdCQUFlLElBQUk7QUFDaEMsVUFBTSxTQUFTO0FBQUEsMkJBQ00sUUFBUSxlQUFlLGVBQWUsaUJBQWlCLFNBQVM7QUFBQTtBQUFBO0FBSXJGLFdBQU8sU0FBUyxNQUFNLE1BQU0sRUFDekIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sS0FBSyxDQUFDLEVBQzNDLEtBQUssQ0FBQyxZQUF5QjtBQUM5QixVQUFHLFNBQVM7QUFBQSxNQUlaO0FBRUEsYUFBTztBQUFBLElBQ1QsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxVQUFpQjtBQUN2QixZQUFNO0FBQUEsSUFDUixDQUFDO0FBQUEsRUFDTCxDQUFDO0FBQ0w7QUFFTyxNQUFNLGFBQWEsQ0FBQyxTQUFtQztBQUM1RCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ047QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0Y7QUFDRjtBQUVPLE1BQU0sZ0JBQWdCLENBQUMsYUFBd0M7QUFFcEUsUUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBS2YsU0FBTyxTQUFTLE1BQU0sTUFBTSxFQUN6QixLQUFLLENBQUMsV0FBd0IsT0FBTyxJQUFJLENBQUMsRUFDMUMsS0FBSyxDQUFDLFNBQXdCLEtBQUssTUFBTSxFQUN6QyxNQUFNLENBQUMsVUFBaUI7QUFDdkIsVUFBTTtBQUFBLEVBQ1IsQ0FBQztBQUNMOyIsCiAgIm5hbWVzIjogWyJjbG9uZURlZXAiXQp9Cg==
|
|
32
|
+
RETURN OLD`;return c(s).query(o).then(t=>t.all()).then(t=>t.length).catch(t=>{throw t})};export{U as addMessage,S as cleanMessages,w as deleteMessage,Q as getMessage,_ as getMessages,P as saveMessage,b as unsaveMessage,O as updateMessage};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuXG5pbXBvcnQge2dldENvbnZlcnNhdGlvbn0gZnJvbSAnLi9jb252ZXJzYXRpb25zJztcbmltcG9ydCB7cGFyc2VNZXNzYWdlfSBmcm9tICcuLi9hZGFwdGVycy9tZXNzYWdlQWRhcHRlcic7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucy50eXBlcyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZUlucHV0VHlwZSwgTWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzLnR5cGVzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2VzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsIHtmcm9tLCB0b30pOiBQcm9taXNlPE1lc3NhZ2VUeXBlW10+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkRvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZlcnNhdGlvbklkfWA7XG5cbiAgY29uc3QgY29udmVyc2F0aW9uUXJ5ID0gYXFsYEZPUiBlIElOIGhhc0NvbnZlcnNhdGlvblxuICAgIEZJTFRFUiBlLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiBlLl90byA9PSAke2NvbnZlcnNhdGlvbkRvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoY29udmVyc2F0aW9uUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9ucykgPT4ge1xuICAgICAgaWYoIWNvbnZlcnNhdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGltaXQ6IEFyYW5nb0RiTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gICAgICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICAgIEZJTFRFUiBtLmNvbnZlcnNhdGlvbklkID09IFwiJHtmb3JtYXRDb252ZXJzYXRpb25JZH1cIlxuICAgICAgICAgIFNPUlQgbS5hZGRlZCBERVNDXG4gICAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgICAgU09SVCBtLmFkZGVkIEFTQ1xuICAgICAgICAgIExFVCB1c2VyID0gRklSU1QoXG4gICAgICAgICAgICBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICAgICAgRklMVEVSIHUuX2tleSA9PSBtLnVzZXJJZFxuICAgICAgICAgICAgTElNSVQgMVxuICAgICAgICAgICAgUkVUVVJOIHVcbiAgICAgICAgICApXG4gICAgICAgICAgUkVUVVJOIE1FUkdFKG0sIHt1c2VyOiB1c2VyfSlgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBpbWFnZXMsXG4gICAgbWVzc2FnZUlkID0gY3JlYXRlSGFzaChgbWVzc2FnZS0ke3Nlc3Npb25JZH1gKVxuICB9ID0gbWVzc2FnZTtcbiAgY29uc3QgZm9ybWF0Q29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udmVyc2F0aW9uSWQpO1xuXG4gIGlmKGZvcm1hdENvbnZlcnNhdGlvbklkID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVxdWlyZWRfY29udmVyc2F0aW9uSWQnKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhtZXNzYWdlLmNvbnRlbnQsIDY0MCksXG4gICAgZmlsZXM6IGZpbGVzIHx8IFtdLFxuICAgIGltYWdlczogaW1hZ2VzIHx8IFtdLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcbiAgY29uc3QgZm9ybWF0TXNnSWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcbiAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRNc2dJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGNvbnZlcnNhdGlvbklkOiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICB1c2VySWQ6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtmb3JtYXRNc2dJZH0sIGNvbnZlcnNhdGlvbklkOiAke2Zvcm1hdENvbnZlcnNhdGlvbklkfSwgdXNlcklkOiAke3Nlc3Npb25JZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX0gSU4gbWVzc2FnZXNcbiAgICBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5ld01lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gcGFyc2VNZXNzYWdlKG1lc3NhZ2UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgSU5TRVJUICR7bmV3TWVzc2FnZX0gSU4gbWVzc2FnZXMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbjogJ2FkZE1lc3NhZ2UnLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2FkZE1lc3NhZ2UnXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udmVyc2F0aW9uSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fVxuICAgICAgICBVUERBVEUgbSBXSVRIIHtzYXZlZDogQVBQRU5EKG0uc2F2ZWQsICR7c2Vzc2lvbklkfSwgdHJ1ZSl9IElOIG1lc3NhZ2VzXG4gICAgICAgIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSkgPT4ge1xuICAgICAgICAgIGlmKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS50b0lkKS5lbWl0KCdtZXNzYWdlX3NhdmUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5zYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udmVyc2F0aW9uSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fVxuICAgICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBSRU1PVkVfVkFMVUUobS5zYXZlZCwgJHtzZXNzaW9uSWR9KX0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UuaWQpLmVtaXQoJ21lc3NhZ2VfdW5zYXZlJywgbWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZlcnNhdGlvbklkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX0gJiYgbS5mcm9tID09ICR7c2Vzc2lvbklkfVxuICAgICAgICBSRU1PVkUgbSBJTiBtZXNzYWdlc1xuICAgICAgICBSRVRVUk4gT0xEYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9kZWxldGUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuXG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH1cbiAgICBSRVRVUk4gbWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFuTWVzc2FnZXMgPSAoZGF0YWJhc2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAvLyBSZW1vdmUgYWxsIG1lc3NhZ2VzIHRoYXQgYXJlIG92ZXIgNjAgZGF5cyBhbmQgbm90IHNhdmVkXG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgRklMVEVSIG0uYWRkZWQgPCBEQVRFX1RJTUVTVEFNUChEQVRFX1NVQlRSQUNUKERBVEVfTk9XKCksIDYwLCAnZGF5JykpICYmIExFTkdUSChtLnNhdmVkKSA+IDBcbiAgICAgIFJFTU9WRSBtIElOIG1lc3NhZ2VzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBNZXNzYWdlVHlwZVtdKSA9PiBsaXN0Lmxlbmd0aClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxjQUFBQSxFQUFZLFdBQUFDLEVBQVMsZUFBQUMsTUFBa0IsZUFDL0MsT0FBUSxPQUFBQyxNQUFVLFdBRWxCLE9BQU9DLE1BQWUsbUJBRXRCLE9BQVEsbUJBQUFDLE1BQXNCLGtCQUM5QixPQUFRLGdCQUFBQyxNQUFtQiw2QkFDM0IsT0FBUSxZQUFBQyxNQUFlLDBCQUN2QixPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSx5QkFPOUIsTUFBTUMsRUFBd0IsV0FFakJDLEVBQWMsQ0FBQ0MsRUFBcUJDLEVBQXdCLENBQUMsS0FBQUMsRUFBTSxHQUFBQyxDQUFFLElBQThCLENBQzlHLEtBQU0sQ0FBQyxhQUFBQyxFQUFjLFFBQVMsQ0FBQyxPQUFRQyxDQUFTLENBQUMsRUFBSUwsRUFDL0NNLEVBQStCakIsRUFBUVksQ0FBYyxFQUNyRE0sRUFBdUIsU0FBU0YsQ0FBUyxHQUN6Q0csRUFBNEIsaUJBQWlCRixDQUFvQixHQUVqRUcsRUFBa0JsQjtBQUFBLHdCQUNGZ0IsQ0FBWSxnQkFBZ0JDLENBQWlCO0FBQUE7QUFBQSxjQUluRSxPQUFPWCxFQUFNTyxDQUFZLEVBQUUsTUFBTUssQ0FBZSxFQUM3QyxLQUFNQyxHQUFXQSxFQUFPLElBQUksQ0FBQyxFQUM3QixLQUFNQyxHQUFrQixDQUN2QixHQUFHLENBQUNBLEVBQWMsT0FDaEIsTUFBTyxDQUFDLEVBR1YsTUFBTUMsRUFBdUJoQixFQUFTTSxFQUFNQyxDQUFFLEVBQ3hDVSxFQUFpQjtBQUFBLHdDQUNXUCxDQUFvQjtBQUFBO0FBQUEsWUFFaERNLEVBQU0sR0FBRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEs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U3RCO0FBQUE7QUFBQTtBQUFBLGtCQUtmLE9BQU9NLEVBQU1PLENBQVksRUFBRSxNQUFNUyxDQUFNLEVBQ3BDLEtBQU1ILEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLEtBQU13QixHQUF3QkEsRUFBSyxNQUFNLEVBQ3pDLE1BQU9wQixHQUFpQixDQUN2QixNQUFNQSxDQUNSLENBQUMsQ0FDTCIsCiAgIm5hbWVzIjogWyJjcmVhdGVIYXNoIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgImNsb25lRGVlcCIsICJnZXRDb252ZXJzYXRpb24iLCAicGFyc2VNZXNzYWdlIiwgImxvZ0Vycm9yIiwgImdldExpbWl0IiwgInVzZURiIiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0TWVzc2FnZXMiLCAiY29udGV4dCIsICJjb252ZXJzYXRpb25JZCIsICJmcm9tIiwgInRvIiwgImRhdGFiYXNlTmFtZSIsICJzZXNzaW9uSWQiLCAiZm9ybWF0Q29udmVyc2F0aW9uSWQiLCAic2Vzc2lvbkRvY0lkIiwgImNvbnZlcnNhdGlvbkRvY0lkIiwgImNvbnZlcnNhdGlvblFyeSIsICJjdXJzb3IiLCAiY29udmVyc2F0aW9ucyIsICJsaW1pdCIsICJhcWxRcnkiLCAiZXJyb3IiLCAidXBkYXRlTWVzc2FnZSIsICJtZXNzYWdlIiwgImZpbGVzIiwgImltYWdlcyIsICJtZXNzYWdlSWQiLCAibm93IiwgInVwZGF0ZSIsICJmb3JtYXRNc2dJZCIsICJpbnNlcnQiLCAiYWRkTWVzc2FnZSIsICJuZXdNZXNzYWdlIiwgInNhdmVNZXNzYWdlIiwgImZvcm1hdElkIiwgImNvbnZlcnNhdGlvbiIsICJjb252ZXJzYXRpb25LZXkiLCAidW5zYXZlTWVzc2FnZSIsICJkZWxldGVNZXNzYWdlIiwgImdldE1lc3NhZ2UiLCAiY2xlYW5NZXNzYWdlcyIsICJsaXN0Il0KfQo=
|
|
@@ -1,59 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var notifications_exports = {};
|
|
19
|
-
__export(notifications_exports, {
|
|
20
|
-
clearBadges: () => clearBadges,
|
|
21
|
-
getApnProvider: () => getApnProvider,
|
|
22
|
-
pushNotification: () => pushNotification
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(notifications_exports);
|
|
25
|
-
var import_apn = require("apn");
|
|
26
|
-
var import_config = require("../config");
|
|
27
|
-
const getApnProvider = () => new import_apn.Provider({
|
|
28
|
-
ca: import_config.Config.get("app.apn.ca"),
|
|
29
|
-
cert: import_config.Config.get("app.apn.cert"),
|
|
30
|
-
key: import_config.Config.get("app.apn.key"),
|
|
31
|
-
production: import_config.Config.get("environment") === "prod"
|
|
32
|
-
});
|
|
33
|
-
const pushNotification = (deviceTokens, note) => {
|
|
34
|
-
const provider = getApnProvider();
|
|
35
|
-
const notification = new import_apn.Notification();
|
|
36
|
-
notification.topic = import_config.Config.get("app.apn.id");
|
|
37
|
-
notification.alert = note.message;
|
|
38
|
-
if (note.data) {
|
|
39
|
-
notification.mutableContent = true;
|
|
40
|
-
notification.payload = note.data;
|
|
41
|
-
}
|
|
42
|
-
if (note.badge !== void 0) {
|
|
43
|
-
notification.badge = note.badge;
|
|
44
|
-
}
|
|
45
|
-
return provider.send(notification, deviceTokens);
|
|
46
|
-
};
|
|
47
|
-
const clearBadges = (deviceTokens) => {
|
|
48
|
-
const provider = getApnProvider();
|
|
49
|
-
const notification = new import_apn.Notification();
|
|
50
|
-
notification.badge = 0;
|
|
51
|
-
return provider.send(notification, deviceTokens);
|
|
52
|
-
};
|
|
53
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
-
0 && (module.exports = {
|
|
55
|
-
clearBadges,
|
|
56
|
-
getApnProvider,
|
|
57
|
-
pushNotification
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbm90aWZpY2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcbi8vIFB1c2ggTm90aWZpY2F0aW9uc1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB0eXBlIHtOb3RpZmljYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9ub3RpZmljYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGdldEFwblByb3ZpZGVyID0gKCkgPT4gbmV3IFByb3ZpZGVyKHtcbiAgY2E6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2EnKSxcbiAgY2VydDogQ29uZmlnLmdldCgnYXBwLmFwbi5jZXJ0JyksXG4gIGtleTogQ29uZmlnLmdldCgnYXBwLmFwbi5rZXknKSxcbiAgcHJvZHVjdGlvbjogQ29uZmlnLmdldCgnZW52aXJvbm1lbnQnKSA9PT0gJ3Byb2QnXG59KTtcblxuZXhwb3J0IGNvbnN0IHB1c2hOb3RpZmljYXRpb24gPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSwgbm90ZTogTm90aWZpY2F0aW9uVHlwZSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlcjogUHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb246IEFQTk5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLnRvcGljID0gQ29uZmlnLmdldCgnYXBwLmFwbi5pZCcpO1xuICBub3RpZmljYXRpb24uYWxlcnQgPSBub3RlLm1lc3NhZ2U7XG5cbiAgaWYobm90ZS5kYXRhKSB7XG4gICAgbm90aWZpY2F0aW9uLm11dGFibGVDb250ZW50ID0gdHJ1ZTtcbiAgICBub3RpZmljYXRpb24ucGF5bG9hZCA9IG5vdGUuZGF0YTtcbiAgfVxuXG4gIGlmKG5vdGUuYmFkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIG5vdGlmaWNhdGlvbi5iYWRnZSA9IG5vdGUuYmFkZ2U7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJCYWRnZXMgPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlciA9IGdldEFwblByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLmJhZGdlID0gMDtcblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLGlCQUFtRTtBQUVuRSxvQkFBcUI7QUFHZCxNQUFNLGlCQUFpQixNQUFNLElBQUksb0JBQVM7QUFBQSxFQUMvQyxJQUFJLHFCQUFPLElBQUksWUFBWTtBQUFBLEVBQzNCLE1BQU0scUJBQU8sSUFBSSxjQUFjO0FBQUEsRUFDL0IsS0FBSyxxQkFBTyxJQUFJLGFBQWE7QUFBQSxFQUM3QixZQUFZLHFCQUFPLElBQUksYUFBYSxNQUFNO0FBQzVDLENBQUM7QUFFTSxNQUFNLG1CQUFtQixDQUFDLGNBQXdCLFNBQStDO0FBRXRHLFFBQU0sV0FBcUIsZUFBZTtBQUMxQyxRQUFNLGVBQWdDLElBQUksV0FBQUEsYUFBZ0I7QUFDMUQsZUFBYSxRQUFRLHFCQUFPLElBQUksWUFBWTtBQUM1QyxlQUFhLFFBQVEsS0FBSztBQUUxQixNQUFHLEtBQUssTUFBTTtBQUNaLGlCQUFhLGlCQUFpQjtBQUM5QixpQkFBYSxVQUFVLEtBQUs7QUFBQSxFQUM5QjtBQUVBLE1BQUcsS0FBSyxVQUFVLFFBQVc7QUFDM0IsaUJBQWEsUUFBUSxLQUFLO0FBQUEsRUFDNUI7QUFFQSxTQUFPLFNBQVMsS0FBSyxjQUFjLFlBQVk7QUFDakQ7QUFFTyxNQUFNLGNBQWMsQ0FBQyxpQkFBK0M7QUFFekUsUUFBTSxXQUFXLGVBQWU7QUFDaEMsUUFBTSxlQUFlLElBQUksV0FBQUEsYUFBZ0I7QUFDekMsZUFBYSxRQUFRO0FBRXJCLFNBQU8sU0FBUyxLQUFLLGNBQWMsWUFBWTtBQUNqRDsiLAogICJuYW1lcyI6IFsiQVBOTm90aWZpY2F0aW9uIl0KfQo=
|
|
1
|
+
import{Notification as a,Provider as p}from"apn";import{Config as o}from"../config";const r=()=>new p({ca:o.get("app.apn.ca"),cert:o.get("app.apn.cert"),key:o.get("app.apn.key"),production:o.get("environment")==="prod"}),f=(n,t)=>{const i=r(),e=new a;return e.topic=o.get("app.apn.id"),e.alert=t.message,t.data&&(e.mutableContent=!0,e.payload=t.data),t.badge!==void 0&&(e.badge=t.badge),i.send(e,n)},g=n=>{const t=r(),i=new a;return i.badge=0,t.send(i,n)};export{g as clearBadges,r as getApnProvider,f as pushNotification};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbm90aWZpY2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcbi8vIFB1c2ggTm90aWZpY2F0aW9uc1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHR5cGUge05vdGlmaWNhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL25vdGlmaWNhdGlvbnMudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0QXBuUHJvdmlkZXIgPSAoKSA9PiBuZXcgUHJvdmlkZXIoe1xuICBjYTogQ29uZmlnLmdldCgnYXBwLmFwbi5jYScpLFxuICBjZXJ0OiBDb25maWcuZ2V0KCdhcHAuYXBuLmNlcnQnKSxcbiAga2V5OiBDb25maWcuZ2V0KCdhcHAuYXBuLmtleScpLFxuICBwcm9kdWN0aW9uOiBDb25maWcuZ2V0KCdlbnZpcm9ubWVudCcpID09PSAncHJvZCdcbn0pO1xuXG5leHBvcnQgY29uc3QgcHVzaE5vdGlmaWNhdGlvbiA9IChkZXZpY2VUb2tlbnM6IHN0cmluZ1tdLCBub3RlOiBOb3RpZmljYXRpb25UeXBlKTogUHJvbWlzZTxSZXNwb25zZXM+ID0+IHtcbiAgLy8gUHVzaCBub3RpZmljYXRpb24gdG8gZGV2aWNlXG4gIGNvbnN0IHByb3ZpZGVyOiBQcm92aWRlciA9IGdldEFwblByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbjogQVBOTm90aWZpY2F0aW9uID0gbmV3IEFQTk5vdGlmaWNhdGlvbigpO1xuICBub3RpZmljYXRpb24udG9waWMgPSBDb25maWcuZ2V0KCdhcHAuYXBuLmlkJyk7XG4gIG5vdGlmaWNhdGlvbi5hbGVydCA9IG5vdGUubWVzc2FnZTtcblxuICBpZihub3RlLmRhdGEpIHtcbiAgICBub3RpZmljYXRpb24ubXV0YWJsZUNvbnRlbnQgPSB0cnVlO1xuICAgIG5vdGlmaWNhdGlvbi5wYXlsb2FkID0gbm90ZS5kYXRhO1xuICB9XG5cbiAgaWYobm90ZS5iYWRnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbm90aWZpY2F0aW9uLmJhZGdlID0gbm90ZS5iYWRnZTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlci5zZW5kKG5vdGlmaWNhdGlvbiwgZGV2aWNlVG9rZW5zKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhckJhZGdlcyA9IChkZXZpY2VUb2tlbnM6IHN0cmluZ1tdKTogUHJvbWlzZTxSZXNwb25zZXM+ID0+IHtcbiAgLy8gUHVzaCBub3RpZmljYXRpb24gdG8gZGV2aWNlXG4gIGNvbnN0IHByb3ZpZGVyID0gZ2V0QXBuUHJvdmlkZXIoKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uID0gbmV3IEFQTk5vdGlmaWNhdGlvbigpO1xuICBub3RpZmljYXRpb24uYmFkZ2UgPSAwO1xuXG4gIHJldHVybiBwcm92aWRlci5zZW5kKG5vdGlmaWNhdGlvbiwgZGV2aWNlVG9rZW5zKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFNQSxPQUFRLGdCQUFnQkEsRUFBaUIsWUFBQUMsTUFBMEIsTUFFbkUsT0FBUSxVQUFBQyxNQUFhLFlBSWQsTUFBTUMsRUFBaUIsSUFBTSxJQUFJRixFQUFTLENBQy9DLEdBQUlDLEVBQU8sSUFBSSxZQUFZLEVBQzNCLEtBQU1BLEVBQU8sSUFBSSxjQUFjLEVBQy9CLElBQUtBLEVBQU8sSUFBSSxhQUFhLEVBQzdCLFdBQVlBLEVBQU8sSUFBSSxhQUFhLElBQU0sTUFDNUMsQ0FBQyxFQUVZRSxFQUFtQixDQUFDQyxFQUF3QkMsSUFBK0MsQ0FFdEcsTUFBTUMsRUFBcUJKLEVBQWUsRUFDcENLLEVBQWdDLElBQUlSLEVBQzFDLE9BQUFRLEVBQWEsTUFBUU4sRUFBTyxJQUFJLFlBQVksRUFDNUNNLEVBQWEsTUFBUUYsRUFBSyxRQUV2QkEsRUFBSyxPQUNORSxFQUFhLGVBQWlCLEdBQzlCQSxFQUFhLFFBQVVGLEVBQUssTUFHM0JBLEVBQUssUUFBVSxTQUNoQkUsRUFBYSxNQUFRRixFQUFLLE9BR3JCQyxFQUFTLEtBQUtDLEVBQWNILENBQVksQ0FDakQsRUFFYUksRUFBZUosR0FBK0MsQ0FFekUsTUFBTUUsRUFBV0osRUFBZSxFQUMxQkssRUFBZSxJQUFJUixFQUN6QixPQUFBUSxFQUFhLE1BQVEsRUFFZEQsRUFBUyxLQUFLQyxFQUFjSCxDQUFZLENBQ2pEIiwKICAibmFtZXMiOiBbIkFQTk5vdGlmaWNhdGlvbiIsICJQcm92aWRlciIsICJDb25maWciLCAiZ2V0QXBuUHJvdmlkZXIiLCAicHVzaE5vdGlmaWNhdGlvbiIsICJkZXZpY2VUb2tlbnMiLCAibm90ZSIsICJwcm92aWRlciIsICJub3RpZmljYXRpb24iLCAiY2xlYXJCYWRnZXMiXQp9Cg==
|