velocious 1.0.192 → 1.0.194
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/README.md +6 -6
- package/build/src/configuration.d.ts +5 -0
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +29 -3
- package/build/src/database/drivers/base.d.ts +24 -2
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +32 -6
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +19 -1
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +6 -9
- package/build/src/http-server/client/index.d.ts +5 -0
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +26 -6
- package/build/src/http-server/client/request-buffer/index.d.ts +26 -0
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +107 -20
- package/build/src/jobs/mail-delivery.js +3 -3
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/logger.js +7 -4
- package/build/src/mailer/base.d.ts +47 -27
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +96 -50
- package/build/src/mailer/delivery.d.ts.map +1 -1
- package/build/src/mailer/delivery.js +3 -5
- package/build/src/mailer/index.d.ts +8 -3
- package/build/src/mailer/index.d.ts.map +1 -1
- package/build/src/mailer/index.js +4 -21
- package/build/src/mailer.d.ts +1 -2
- package/build/src/mailer.d.ts.map +1 -1
- package/build/src/mailer.js +2 -2
- package/build/src/testing/test-runner.js +3 -3
- package/package.json +2 -2
package/build/src/logger.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import Configuration from "./configuration.js";
|
|
3
|
+
import useEnvSense from "env-sense/build/use-env-sense.js";
|
|
3
4
|
import restArgsError from "./utils/rest-args-error.js";
|
|
4
5
|
/** @typedef {"debug-low-level" | "debug" | "info" | "warn" | "error"} LogLevel */
|
|
5
6
|
const DEFAULT_LOGGING_CONFIGURATION = {
|
|
@@ -10,13 +11,15 @@ const DEFAULT_LOGGING_CONFIGURATION = {
|
|
|
10
11
|
};
|
|
11
12
|
/** @type {LogLevel[]} */
|
|
12
13
|
const LEVEL_ORDER = ["debug-low-level", "debug", "info", "warn", "error"];
|
|
14
|
+
const { isBrowser } = useEnvSense();
|
|
15
|
+
const isNodeRuntime = typeof process !== "undefined" && Boolean(process.versions?.node);
|
|
13
16
|
/**
|
|
14
17
|
* @param {string} message - Message text.
|
|
15
18
|
* @returns {Promise<void>} - Resolves when complete.
|
|
16
19
|
*/
|
|
17
20
|
function consoleLog(message) {
|
|
18
21
|
return new Promise((resolve) => {
|
|
19
|
-
if (process.stdout) {
|
|
22
|
+
if (!isBrowser && isNodeRuntime && process.stdout) {
|
|
20
23
|
process.stdout.write(`${message}\n`, "utf8", () => resolve());
|
|
21
24
|
}
|
|
22
25
|
else {
|
|
@@ -31,7 +34,7 @@ function consoleLog(message) {
|
|
|
31
34
|
*/
|
|
32
35
|
function consoleError(message) {
|
|
33
36
|
return new Promise((resolve) => {
|
|
34
|
-
if (process.stderr) {
|
|
37
|
+
if (!isBrowser && isNodeRuntime && process.stderr) {
|
|
35
38
|
process.stderr.write(`${message}\n`, "utf8", () => resolve());
|
|
36
39
|
}
|
|
37
40
|
else {
|
|
@@ -46,7 +49,7 @@ function consoleError(message) {
|
|
|
46
49
|
*/
|
|
47
50
|
function consoleWarn(message) {
|
|
48
51
|
return new Promise((resolve) => {
|
|
49
|
-
if (process.stderr) {
|
|
52
|
+
if (!isBrowser && isNodeRuntime && process.stderr) {
|
|
50
53
|
process.stderr.write(`${message}\n`, "utf8", () => resolve());
|
|
51
54
|
}
|
|
52
55
|
else {
|
|
@@ -315,4 +318,4 @@ export default async function logger(object, ...messages) {
|
|
|
315
318
|
await Promise.all(writes);
|
|
316
319
|
}
|
|
317
320
|
}
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxhQUFhLE1BQU0sb0JBQW9CLENBQUE7QUFDOUMsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFFdEQsa0ZBQWtGO0FBRWxGLE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYLHlCQUF5QjtJQUN6QixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztDQUNsQyxDQUFBO0FBRUQseUJBQXlCO0FBQ3pCLE1BQU0sV0FBVyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFFekU7OztHQUdHO0FBQ0gsU0FBUyxVQUFVLENBQUMsT0FBTztJQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDcEIsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxZQUFZLENBQUMsT0FBTztJQUMzQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsT0FBTyxD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QUMxRixNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUE7UUFFbEUsSUFBSSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDNUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLFFBQVE7Z0JBQ3ZDLE9BQU87YUFDUixDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7U0FBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBDb25maWd1cmF0aW9uIGZyb20gXCIuL2NvbmZpZ3VyYXRpb24uanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuLyoqIEB0eXBlZGVmIHtcImRlYnVnLWxvdy1sZXZlbFwiIHwgXCJkZWJ1Z1wiIHwgXCJpbmZvXCIgfCBcIndhcm5cIiB8IFwiZXJyb3JcIn0gTG9nTGV2ZWwgKi9cblxuY29uc3QgREVGQVVMVF9MT0dHSU5HX0NPTkZJR1VSQVRJT04gPSB7XG4gIGNvbnNvbGU6IHRydWUsXG4gIGZpbGU6IGZhbHNlLFxuICAvKiogQHR5cGUge0xvZ0xldmVsW119ICovXG4gIGxldmVsczogW1wiaW5mb1wiLCBcIndhcm5cIiwgXCJlcnJvclwiXVxufVxuXG4vKiogQHR5cGUge0xvZ0xldmVsW119ICovXG5jb25zdCBMRVZFTF9PUkRFUiA9IFtcImRlYnVnLWxvdy1sZXZlbFwiLCBcImRlYnVnXCIsIFwiaW5mb1wiLCBcIndhcm5cIiwgXCJlcnJvclwiXVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gTWVzc2FnZSB0ZXh0LlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAqL1xuZnVuY3Rpb24gY29uc29sZUxvZyhtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChwcm9jZXNzLnN0ZG91dCkge1xuICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7bWVzc2FnZX1cXG5gLCBcInV0ZjhcIiwgKCkgPT4gcmVzb2x2ZSgpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKVxuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuICB9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gTWVzc2FnZSB0ZXh0LlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAqL1xuZnVuY3Rpb24gY29uc29sZUVycm9yKG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKHByb2Nlc3Muc3RkZXJyKSB7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHttZXNzYWdlfVxcbmAsIFwidXRmOFwiLCAoKSA9PiByZXNvbHZlKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSlcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIE1lc3NhZ2UgdGV4dC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gKi9cbmZ1bmN0aW9uIGNvbnNvbGVXYXJuKG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKHByb2Nlc3Muc3RkZXJyKSB7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHttZXNzYWdlfVxcbmAsIFwidXRmOFwiLCAoKSA9PiByZXNvbHZlKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlKVxuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuICB9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Li4uYW55fGZ1bmN0aW9uKCkgOiBBcnJheTxhbnk+fSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICogQHJldHVybnMge0FycmF5PGFueT59IC0gRWl0aGVyIHRoZSBmdW5jdGlvbiByZXN1bHQgb3IgdGhlIG1lc3NhZ2VzXG4gKi9cbmZ1bmN0aW9uIGZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcykge1xuICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBtZXNzYWdlc1swXSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCByZXN1bHQgPSBtZXNzYWdlc1swXSgpXG4gICAgbWVzc2FnZXMgPSBBcnJheS5pc0FycmF5KHJlc3VsdCkgPyByZXN1bHQgOiBbcmVzdWx0XVxuICB9XG5cbiAgcmV0dXJuIG1lc3NhZ2VzXG59XG5cbi8qKlxuICogQ29udmVydHMgbXVsdGlwbGUgbWVzc2FnZSBwYXJ0cyBpbnRvIGEgc2luZ2xlIHN0cmluZy5cbiAqIEBwYXJhbSB7Li4uYW55fSBtZXNzYWdlcyAtIFBhcnRzIHRvIGNvbWJpbmUgaW50byBhIG1lc3NhZ2VcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG1lc3NhZ2VzIHRvIG1lc3NhZ2UuXG4gKi9cbmZ1bmN0aW9uIG1lc3NhZ2VzVG9NZXNzYWdlKC4uLm1lc3NhZ2VzKSB7XG4gIGxldCBtZXNzYWdlID0gXCJcIlxuXG4gIGZvciAoY29uc3QgbWVzc2FnZVBhcnRJbmRleCBpbiBtZXNzYWdlcykge1xuICAgIGNvbnN0IG1lc3NhZ2VQYXJ0ID0gbWVzc2FnZXNbbWVzc2FnZVBhcnRJbmRleF1cblxuICAgIGlmIChOdW1iZXIobWVzc2FnZVBhcnRJbmRleCkgPiAwKSB7XG4gICAgICBtZXNzYWdlICs9IFwiIFwiXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlUGFydCA9PSBcIm9iamVjdFwiKSB7XG4gICAgICBtZXNzYWdlICs9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VQYXJ0KVxuICAgIH0gZWxzZSB7XG4gICAgICBtZXNzYWdlICs9IG1lc3NhZ2VQYXJ0XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIHtSZXF1aXJlZDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJjb25zb2xlXCIgfCBcImZpbGVcIiB8IFwibGV2ZWxzXCI+PiAmIFBhcnRpYWw8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiZmlsZVBhdGhcIj4+fSAtIFRoZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gKi9cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7UmVxdWlyZWQ8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiY29uc29sZVwiIHwgXCJmaWxlXCIgfCBcImxldmVsc1wiPj4gJiBQYXJ0aWFsPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImZpbGVQYXRoXCI+Pn0gLSBUaGUgbG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICovXG5mdW5jdGlvbiByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbikge1xuICBjb25zdCBkZWJ1Z0VuYWJsZWQgPSBjb25maWd1cmF0aW9uPy5kZWJ1ZyA9PT0gdHJ1ZVxuICBpZiAoY29uZmlndXJhdGlvbiAmJiB0eXBlb2YgY29uZmlndXJhdGlvbi5nZXRMb2dnaW5nQ29uZmlndXJhdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBjb25maWd1cmF0aW9uLmdldExvZ2dpbmdDb25maWd1cmF0aW9uKClcblxuICAgIGlmIChkZWJ1Z0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc29sdmVkLFxuICAgICAgICBjb25zb2xlOiB0cnVlLFxuICAgICAgICBsZXZlbHM6IExFVkVMX09SREVSXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVkXG4gIH1cblxuICBpZiAoZGVidWdFbmFibGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkRFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OLFxuICAgICAgY29uc29sZTogdHJ1ZSxcbiAgICAgIGxldmVsczogTEVWRUxfT1JERVJcbiAgICB9XG4gIH1cblxuICByZXR1cm4gREVGQVVMVF9MT0dHSU5HX0NPTkZJR1VSQVRJT05cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtMb2dMZXZlbH0gYXJncy5sZXZlbCAtIExldmVsLlxuICogQHBhcmFtIHtSZXF1aXJlZDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJjb25zb2xlXCIgfCBcImZpbGVcIiB8IFwibGV2ZWxzXCI+PiAmIFBhcnRpYWw8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiZmlsZVBhdGhcIj4+fSBhcmdzLmxvZ2dpbmdDb25maWd1cmF0aW9uIC0gTG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbYXJncy5kZWJ1Z0ZsYWddIC0gV2hldGhlciBkZWJ1ZyBmbGFnLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBsZXZlbCBhbGxvd2VkLlxuICovXG5mdW5jdGlvbiBpc0xldmVsQWxsb3dlZCh7bGV2ZWwsIGxvZ2dpbmdDb25maWd1cmF0aW9uLCBkZWJ1Z0ZsYWd9KSB7XG4gIGNvbnN0IGFsbG93ZWRMZXZlbHMgPSBsb2dnaW5nQ29uZmlndXJhdGlvbi5sZXZlbHMgfHwgREVGQVVMVF9MT0dHSU5HX0NPTkZJR1VSQVRJT04ubGV2ZWxzXG5cbiAgaWYgKGFsbG93ZWRMZXZlbHMuaW5jbHVkZXMobGV2ZWwpKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChkZWJ1Z0ZsYWcgJiYgTEVWRUxfT1JERVIuaW5kZXhPZihsZXZlbCkgPj0gTEVWRUxfT1JERVIuaW5kZXhPZihcImRlYnVnXCIpKSByZXR1cm4gdHJ1ZVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5jbGFzcyBMb2dnZXIge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBvYmplY3R9IG9iamVjdCAtIE9iamVjdC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnXSAtIFdoZXRoZXIgZGVidWcuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBbYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbl0gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvYmplY3QsIHtjb25maWd1cmF0aW9uLCBkZWJ1ZyA9IGZhbHNlLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5fZGVidWcgPSBkZWJ1Z1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5fbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBsb2dnaW5nQ29uZmlndXJhdGlvblxuXG4gICAgaWYgKHR5cGVvZiBvYmplY3QgPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5fc3ViamVjdCA9IG9iamVjdFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vYmplY3QgPSBvYmplY3RcbiAgICAgIHRoaXMuX3N1YmplY3QgPSBvYmplY3QuY29uc3RydWN0b3IubmFtZVxuICAgIH1cblxuICAgIGlmICghdGhpcy5fc3ViamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWJqZWN0IGdpdmVuYClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSAtIFRoZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNvbnN0IG9iamVjdFdpdGhDb25maWcgPSAvKiogQHR5cGUge3tjb25maWd1cmF0aW9uPzogaW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9fSAqLyAodGhpcy5fb2JqZWN0KVxuICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG9iamVjdFdpdGhDb25maWc/LmNvbmZpZ3VyYXRpb24gfHwgQ29uZmlndXJhdGlvbi5jdXJyZW50KClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gLSBUaGUgc2FmZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgX3NhZmVDb25maWd1cmF0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnlbXX0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGRlYnVnKC4uLm1lc3NhZ2VzKSB7XG4gICAgYXdhaXQgdGhpcy5fd3JpdGUoe2xldmVsOiBcImRlYnVnXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueVtdfSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgaW5mbyguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJpbmZvXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueVtdfSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZGVidWdMb3dMZXZlbCguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJkZWJ1Zy1sb3ctbGV2ZWxcIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55W119IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBsb2coLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiaW5mb1wiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnlbXX0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGVycm9yKC4uLm1lc3NhZ2VzKSB7XG4gICAgYXdhaXQgdGhpcy5fd3JpdGUoe2xldmVsOiBcImVycm9yXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld1ZhbHVlIC0gTmV3IHZhbHVlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXREZWJ1ZyhuZXdWYWx1ZSkge1xuICAgIHRoaXMuX2RlYnVnID0gbmV3VmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7KC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGZ1bmN0aW9uT3JNZXNzYWdlcz4pID0+IFByb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyB3YXJuKC4uLm1lc3NhZ2VzKSB7XG4gICAgYXdhaXQgdGhpcy5fd3JpdGUoe2xldmVsOiBcIndhcm5cIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7TG9nTGV2ZWx9IGFyZ3MubGV2ZWwgLSBMZXZlbC5cbiAgICogQHBhcmFtIHtQYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+fSBhcmdzLm1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBfd3JpdGUoe2xldmVsLCBtZXNzYWdlc30pIHtcbiAgICBjb25zdCByZXNvbHZlZE1lc3NhZ2VzID0gZnVuY3Rpb25Pck1lc3NhZ2VzKC4uLm1lc3NhZ2VzKVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBtZXNzYWdlc1RvTWVzc2FnZSh0aGlzLl9zdWJqZWN0LCAuLi5yZXNvbHZlZE1lc3NhZ2VzKVxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zYWZlQ29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSAvKiogQHR5cGUge1JlcXVpcmVkPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImNvbnNvbGVcIiB8IFwiZmlsZVwiIHwgXCJsZXZlbHNcIj4+ICYgUGFydGlhbDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJmaWxlUGF0aFwiPj59ICovIChcbiAgICAgIHRoaXMuX2xvZ2dpbmdDb25maWd1cmF0aW9uIHx8IHJlc29sdmVMb2dnaW5nQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKVxuICAgIClcbiAgICBjb25zdCBzaG91bGRMb2cgPSBpc0xldmVsQWxsb3dlZCh7bGV2ZWwsIGxvZ2dpbmdDb25maWd1cmF0aW9uLCBkZWJ1Z0ZsYWc6IHRoaXMuX2RlYnVnfSlcblxuICAgIGlmICghc2hvdWxkTG9nKSByZXR1cm5cbiAgICBjb25zdCB3cml0ZXMgPSBbXVxuXG4gICAgaWYgKGxvZ2dpbmdDb25maWd1cmF0aW9uLmNvbnNvbGUgIT09IGZhbHNlKSB7XG4gICAgICBpZiAobGV2ZWwgPT09IFwiZXJyb3JcIikge1xuICAgICAgICB3cml0ZXMucHVzaChjb25zb2xlRXJyb3IobWVzc2FnZSkpXG4gICAgICB9IGVsc2UgaWYgKGxldmVsID09PSBcIndhcm5cIikge1xuICAgICAgICB3cml0ZXMucHVzaChjb25zb2xlV2FybihtZXNzYWdlKSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlcy5wdXNoKGNvbnNvbGVMb2cobWVzc2FnZSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxvZ2dpbmdDb25maWd1cmF0aW9uLmZpbGUgIT09IGZhbHNlICYmIGxvZ2dpbmdDb25maWd1cmF0aW9uLmZpbGVQYXRoICYmIGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50SGFuZGxlciA9IGNvbmZpZ3VyYXRpb24uZ2V0RW52aXJvbm1lbnRIYW5kbGVyPy4oKVxuXG4gICAgICBpZiAoZW52aXJvbm1lbnRIYW5kbGVyPy53cml0ZUxvZ1RvRmlsZSkge1xuICAgICAgICB3cml0ZXMucHVzaChlbnZpcm9ubWVudEhhbmRsZXIud3JpdGVMb2dUb0ZpbGUoe1xuICAgICAgICAgIGZpbGVQYXRoOiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aCxcbiAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH0pKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3cml0ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBhd2FpdCB3cml0ZXNbMF1cbiAgICB9IGVsc2UgaWYgKHdyaXRlcy5sZW5ndGggPiAxKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh3cml0ZXMpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7TG9nZ2VyfVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBvYmplY3QgLSBPYmplY3QuXG4gKiBAcGFyYW0gey4uLlBhcmFtZXRlcnM8dHlwZW9mIGZ1bmN0aW9uT3JNZXNzYWdlcz59IG1lc3NhZ2VzIC0gZm9yd2FyZGVkIGFyZ3NcbiAqL1xuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IC0gTG9nIHN1YmplY3QuXG4gKiBAcGFyYW0gey4uLlBhcmFtZXRlcnM8dHlwZW9mIGZ1bmN0aW9uT3JNZXNzYWdlcz59IG1lc3NhZ2VzIC0gZm9yd2FyZGVkIGFyZ3NcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gbG9nZ2VyKG9iamVjdCwgLi4ubWVzc2FnZXMpIHtcbiAgY29uc3Qgb2JqZWN0V2l0aENvbmZpZyA9IC8qKiBAdHlwZSB7e2NvbnN0cnVjdG9yOiB7bmFtZTogc3RyaW5nfSwgY29uZmlndXJhdGlvbj86IGltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fX0gKi8gKG9iamVjdClcbiAgY29uc3QgY2xhc3NOYW1lID0gb2JqZWN0V2l0aENvbmZpZy5jb25zdHJ1Y3Rvci5uYW1lXG4gIGxldCBjb25maWd1cmF0aW9uID0gb2JqZWN0V2l0aENvbmZpZy5jb25maWd1cmF0aW9uXG5cbiAgaWYgKCFjb25maWd1cmF0aW9uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uLmN1cnJlbnQoKVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSWdub3JlIG1pc3NpbmcgY29uZmlndXJhdGlvblxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGxvZ2dpbmdDb25maWd1cmF0aW9uID0gcmVzb2x2ZUxvZ2dpbmdDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pXG4gIC8qKiBAdHlwZSB7TG9nTGV2ZWx9ICovXG4gIGNvbnN0IGxldmVsID0gXCJkZWJ1Z1wiXG5cbiAgaWYgKCFpc0xldmVsQWxsb3dlZCh7bGV2ZWwsIGxvZ2dpbmdDb25maWd1cmF0aW9uLCBkZWJ1Z0ZsYWc6IGNvbmZpZ3VyYXRpb24/LmRlYnVnIHx8IGZhbHNlfSkpIHJldHVyblxuXG4gIGNvbnN0IG1lc3NhZ2UgPSBtZXNzYWdlc1RvTWVzc2FnZShjbGFzc05hbWUsIC4uLmZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcykpXG4gIGNvbnN0IHdyaXRlcyA9IFtdXG5cbiAgaWYgKGxvZ2dpbmdDb25maWd1cmF0aW9uLmNvbnNvbGUgIT09IGZhbHNlKSB7XG4gICAgd3JpdGVzLnB1c2goY29uc29sZUxvZyhtZXNzYWdlKSlcbiAgfVxuXG4gIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlICE9PSBmYWxzZSAmJiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aCAmJiBjb25maWd1cmF0aW9uKSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnRIYW5kbGVyID0gY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXI/LigpXG5cbiAgICBpZiAoZW52aXJvbm1lbnRIYW5kbGVyPy53cml0ZUxvZ1RvRmlsZSkge1xuICAgICAgd3JpdGVzLnB1c2goZW52aXJvbm1lbnRIYW5kbGVyLndyaXRlTG9nVG9GaWxlKHtcbiAgICAgICAgZmlsZVBhdGg6IGxvZ2dpbmdDb25maWd1cmF0aW9uLmZpbGVQYXRoLFxuICAgICAgICBtZXNzYWdlXG4gICAgICB9KSlcbiAgICB9XG4gIH1cblxuICBpZiAod3JpdGVzLmxlbmd0aCA9PT0gMSkge1xuICAgIGF3YWl0IHdyaXRlc1swXVxuICB9IGVsc2UgaWYgKHdyaXRlcy5sZW5ndGggPiAxKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwod3JpdGVzKVxuICB9XG59XG4iXX0=
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxhQUFhLE1BQU0sb0JBQW9CLENBQUE7QUFDOUMsT0FBTyxXQUFXLE1BQU0sa0NBQWtDLENBQUE7QUFDMUQsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFFdEQsa0ZBQWtGO0FBRWxGLE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYLHlCQUF5QjtJQUN6QixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztDQUNsQyxDQUFBO0FBRUQseUJBQXlCO0FBQ3pCLE1BQU0sV0FBVyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDekUsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLFdBQVcsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sYUFBYSxHQUFHLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUV2Rjs7O0dBR0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxPQUFPO0lBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENB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QUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2hGLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUVqQixJQUFJLG9CQUFvQixDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxJQUFJLG9CQUFvQixDQUFDLElBQUksS0FBSyxLQUFLLElBQUksb0JBQW9CLENBQUMsUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQzFGLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQTtRQUVsRSxJQUFJLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUM1QyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsUUFBUTtnQkFDdkMsT0FBTzthQUNSLENBQUMsQ0FBQyxDQUFBO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztTQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IENvbmZpZ3VyYXRpb24gZnJvbSBcIi4vY29uZmlndXJhdGlvbi5qc1wiXG5pbXBvcnQgdXNlRW52U2Vuc2UgZnJvbSBcImVudi1zZW5zZS9idWlsZC91c2UtZW52LXNlbnNlLmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7XCJkZWJ1Zy1sb3ctbGV2ZWxcIiB8IFwiZGVidWdcIiB8IFwiaW5mb1wiIHwgXCJ3YXJuXCIgfCBcImVycm9yXCJ9IExvZ0xldmVsICovXG5cbmNvbnN0IERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OID0ge1xuICBjb25zb2xlOiB0cnVlLFxuICBmaWxlOiBmYWxzZSxcbiAgLyoqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuICBsZXZlbHM6IFtcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cbn1cblxuLyoqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuY29uc3QgTEVWRUxfT1JERVIgPSBbXCJkZWJ1Zy1sb3ctbGV2ZWxcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cbmNvbnN0IHtpc0Jyb3dzZXJ9ID0gdXNlRW52U2Vuc2UoKVxuY29uc3QgaXNOb2RlUnVudGltZSA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIEJvb2xlYW4ocHJvY2Vzcy52ZXJzaW9ucz8ubm9kZSlcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIE1lc3NhZ2UgdGV4dC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gKi9cbmZ1bmN0aW9uIGNvbnNvbGVMb2cobWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBpZiAoIWlzQnJvd3NlciAmJiBpc05vZGVSdW50aW1lICYmIHByb2Nlc3Muc3Rkb3V0KSB7XG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHttZXNzYWdlfVxcbmAsIFwidXRmOFwiLCAoKSA9PiByZXNvbHZlKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpXG4gICAgICByZXNvbHZlKClcbiAgICB9XG4gIH0pXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBNZXNzYWdlIHRleHQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICovXG5mdW5jdGlvbiBjb25zb2xlRXJyb3IobWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBpZiAoIWlzQnJvd3NlciAmJiBpc05vZGVSdW50aW1lICYmIHByb2Nlc3Muc3RkZXJyKSB7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHttZXNzYWdlfVxcbmAsIFwidXRmOFwiLCAoKSA9PiByZXNvbHZlKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSlcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIE1lc3NhZ2UgdGV4dC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gKi9cbmZ1bmN0aW9uIGNvbnNvbGVXYXJuKG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKCFpc0Jyb3dzZXIgJiYgaXNOb2RlUnVudGltZSAmJiBwcm9jZXNzLnN0ZGVycikge1xuICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYCR7bWVzc2FnZX1cXG5gLCBcInV0ZjhcIiwgKCkgPT4gcmVzb2x2ZSgpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4obWVzc2FnZSlcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuLyoqXG4gKiBAcGFyYW0gey4uLmFueXxmdW5jdGlvbigpIDogQXJyYXk8YW55Pn0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxhbnk+fSAtIEVpdGhlciB0aGUgZnVuY3Rpb24gcmVzdWx0IG9yIHRoZSBtZXNzYWdlc1xuICovXG5mdW5jdGlvbiBmdW5jdGlvbk9yTWVzc2FnZXMoLi4ubWVzc2FnZXMpIHtcbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgbWVzc2FnZXNbMF0gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbWVzc2FnZXNbMF0oKVxuICAgIG1lc3NhZ2VzID0gQXJyYXkuaXNBcnJheShyZXN1bHQpID8gcmVzdWx0IDogW3Jlc3VsdF1cbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIG11bHRpcGxlIG1lc3NhZ2UgcGFydHMgaW50byBhIHNpbmdsZSBzdHJpbmcuXG4gKiBAcGFyYW0gey4uLmFueX0gbWVzc2FnZXMgLSBQYXJ0cyB0byBjb21iaW5lIGludG8gYSBtZXNzYWdlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBtZXNzYWdlcyB0byBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBtZXNzYWdlc1RvTWVzc2FnZSguLi5tZXNzYWdlcykge1xuICBsZXQgbWVzc2FnZSA9IFwiXCJcblxuICBmb3IgKGNvbnN0IG1lc3NhZ2VQYXJ0SW5kZXggaW4gbWVzc2FnZXMpIHtcbiAgICBjb25zdCBtZXNzYWdlUGFydCA9IG1lc3NhZ2VzW21lc3NhZ2VQYXJ0SW5kZXhdXG5cbiAgICBpZiAoTnVtYmVyKG1lc3NhZ2VQYXJ0SW5kZXgpID4gMCkge1xuICAgICAgbWVzc2FnZSArPSBcIiBcIlxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWVzc2FnZVBhcnQgPT0gXCJvYmplY3RcIikge1xuICAgICAgbWVzc2FnZSArPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlUGFydClcbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZSArPSBtZXNzYWdlUGFydFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7UmVxdWlyZWQ8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiY29uc29sZVwiIHwgXCJmaWxlXCIgfCBcImxldmVsc1wiPj4gJiBQYXJ0aWFsPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImZpbGVQYXRoXCI+Pn0gLSBUaGUgbG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICovXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IGNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHJldHVybnMge1JlcXVpcmVkPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImNvbnNvbGVcIiB8IFwiZmlsZVwiIHwgXCJsZXZlbHNcIj4+ICYgUGFydGlhbDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJmaWxlUGF0aFwiPj59IC0gVGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUxvZ2dpbmdDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pIHtcbiAgY29uc3QgZGVidWdFbmFibGVkID0gY29uZmlndXJhdGlvbj8uZGVidWcgPT09IHRydWVcbiAgaWYgKGNvbmZpZ3VyYXRpb24gJiYgdHlwZW9mIGNvbmZpZ3VyYXRpb24uZ2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnN0IHJlc29sdmVkID0gY29uZmlndXJhdGlvbi5nZXRMb2dnaW5nQ29uZmlndXJhdGlvbigpXG5cbiAgICBpZiAoZGVidWdFbmFibGVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXNvbHZlZCxcbiAgICAgICAgY29uc29sZTogdHJ1ZSxcbiAgICAgICAgbGV2ZWxzOiBMRVZFTF9PUkRFUlxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlZFxuICB9XG5cbiAgaWYgKGRlYnVnRW5hYmxlZCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5ERUZBVUxUX0xPR0dJTkdfQ09ORklHVVJBVElPTixcbiAgICAgIGNvbnNvbGU6IHRydWUsXG4gICAgICBsZXZlbHM6IExFVkVMX09SREVSXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OXG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7TG9nTGV2ZWx9IGFyZ3MubGV2ZWwgLSBMZXZlbC5cbiAqIEBwYXJhbSB7UmVxdWlyZWQ8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiY29uc29sZVwiIHwgXCJmaWxlXCIgfCBcImxldmVsc1wiPj4gJiBQYXJ0aWFsPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImZpbGVQYXRoXCI+Pn0gYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbiAtIExvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuZGVidWdGbGFnXSAtIFdoZXRoZXIgZGVidWcgZmxhZy5cbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgbGV2ZWwgYWxsb3dlZC5cbiAqL1xuZnVuY3Rpb24gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnfSkge1xuICBjb25zdCBhbGxvd2VkTGV2ZWxzID0gbG9nZ2luZ0NvbmZpZ3VyYXRpb24ubGV2ZWxzIHx8IERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OLmxldmVsc1xuXG4gIGlmIChhbGxvd2VkTGV2ZWxzLmluY2x1ZGVzKGxldmVsKSkgcmV0dXJuIHRydWVcblxuICBpZiAoZGVidWdGbGFnICYmIExFVkVMX09SREVSLmluZGV4T2YobGV2ZWwpID49IExFVkVMX09SREVSLmluZGV4T2YoXCJkZWJ1Z1wiKSkgcmV0dXJuIHRydWVcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuY2xhc3MgTG9nZ2VyIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgb2JqZWN0fSBvYmplY3QgLSBPYmplY3QuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFthcmdzLmNvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5kZWJ1Z10gLSBXaGV0aGVyIGRlYnVnLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbn0gW2FyZ3MubG9nZ2luZ0NvbmZpZ3VyYXRpb25dIC0gTG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob2JqZWN0LCB7Y29uZmlndXJhdGlvbiwgZGVidWcgPSBmYWxzZSwgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sIC4uLnJlc3RBcmdzfSA9IHt9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIHRoaXMuX2RlYnVnID0gZGVidWdcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMuX2xvZ2dpbmdDb25maWd1cmF0aW9uID0gbG9nZ2luZ0NvbmZpZ3VyYXRpb25cblxuICAgIGlmICh0eXBlb2Ygb2JqZWN0ID09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRoaXMuX3N1YmplY3QgPSBvYmplY3RcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0XG4gICAgICB0aGlzLl9zdWJqZWN0ID0gb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWVcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3N1YmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3ViamVjdCBnaXZlbmApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gLSBUaGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGdldENvbmZpZ3VyYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLl9jb25maWd1cmF0aW9uKSB7XG4gICAgICBjb25zdCBvYmplY3RXaXRoQ29uZmlnID0gLyoqIEB0eXBlIHt7Y29uZmlndXJhdGlvbj86IGltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fX0gKi8gKHRoaXMuX29iamVjdClcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBvYmplY3RXaXRoQ29uZmlnPy5jb25maWd1cmF0aW9uIHx8IENvbmZpZ3VyYXRpb24uY3VycmVudCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IC0gVGhlIHNhZmUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIF9zYWZlQ29uZmlndXJhdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55W119IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBkZWJ1ZyguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJkZWJ1Z1wiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnlbXX0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGluZm8oLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiaW5mb1wiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnlbXX0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGRlYnVnTG93TGV2ZWwoLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiZGVidWctbG93LWxldmVsXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueVtdfSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgbG9nKC4uLm1lc3NhZ2VzKSB7XG4gICAgYXdhaXQgdGhpcy5fd3JpdGUoe2xldmVsOiBcImluZm9cIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55W119IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBlcnJvciguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJlcnJvclwiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdWYWx1ZSAtIE5ldyB2YWx1ZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0RGVidWcobmV3VmFsdWUpIHtcbiAgICB0aGlzLl9kZWJ1ZyA9IG5ld1ZhbHVlXG4gIH1cblxuICAvKipcbiAgICogQHR5cGUgeyguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+KSA9PiBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgd2FybiguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJ3YXJuXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge0xvZ0xldmVsfSBhcmdzLmxldmVsIC0gTGV2ZWwuXG4gICAqIEBwYXJhbSB7UGFyYW1ldGVyczx0eXBlb2YgZnVuY3Rpb25Pck1lc3NhZ2VzPn0gYXJncy5tZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX3dyaXRlKHtsZXZlbCwgbWVzc2FnZXN9KSB7XG4gICAgY29uc3QgcmVzb2x2ZWRNZXNzYWdlcyA9IGZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcylcbiAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZXNUb01lc3NhZ2UodGhpcy5fc3ViamVjdCwgLi4ucmVzb2x2ZWRNZXNzYWdlcylcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5fc2FmZUNvbmZpZ3VyYXRpb24oKVxuICAgIGNvbnN0IGxvZ2dpbmdDb25maWd1cmF0aW9uID0gLyoqIEB0eXBlIHtSZXF1aXJlZDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJjb25zb2xlXCIgfCBcImZpbGVcIiB8IFwibGV2ZWxzXCI+PiAmIFBhcnRpYWw8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiZmlsZVBhdGhcIj4+fSAqLyAoXG4gICAgICB0aGlzLl9sb2dnaW5nQ29uZmlndXJhdGlvbiB8fCByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbilcbiAgICApXG4gICAgY29uc3Qgc2hvdWxkTG9nID0gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnOiB0aGlzLl9kZWJ1Z30pXG5cbiAgICBpZiAoIXNob3VsZExvZykgcmV0dXJuXG4gICAgY29uc3Qgd3JpdGVzID0gW11cblxuICAgIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5jb25zb2xlICE9PSBmYWxzZSkge1xuICAgICAgaWYgKGxldmVsID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgd3JpdGVzLnB1c2goY29uc29sZUVycm9yKG1lc3NhZ2UpKVxuICAgICAgfSBlbHNlIGlmIChsZXZlbCA9PT0gXCJ3YXJuXCIpIHtcbiAgICAgICAgd3JpdGVzLnB1c2goY29uc29sZVdhcm4obWVzc2FnZSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZXMucHVzaChjb25zb2xlTG9nKG1lc3NhZ2UpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlICE9PSBmYWxzZSAmJiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aCAmJiBjb25maWd1cmF0aW9uKSB7XG4gICAgICBjb25zdCBlbnZpcm9ubWVudEhhbmRsZXIgPSBjb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50SGFuZGxlcj8uKClcblxuICAgICAgaWYgKGVudmlyb25tZW50SGFuZGxlcj8ud3JpdGVMb2dUb0ZpbGUpIHtcbiAgICAgICAgd3JpdGVzLnB1c2goZW52aXJvbm1lbnRIYW5kbGVyLndyaXRlTG9nVG9GaWxlKHtcbiAgICAgICAgICBmaWxlUGF0aDogbG9nZ2luZ0NvbmZpZ3VyYXRpb24uZmlsZVBhdGgsXG4gICAgICAgICAgbWVzc2FnZVxuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAod3JpdGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgYXdhaXQgd3JpdGVzWzBdXG4gICAgfSBlbHNlIGlmICh3cml0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwod3JpdGVzKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge0xvZ2dlcn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gb2JqZWN0IC0gT2JqZWN0LlxuICogQHBhcmFtIHsuLi5QYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+fSBtZXNzYWdlcyAtIGZvcndhcmRlZCBhcmdzXG4gKi9cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCAtIExvZyBzdWJqZWN0LlxuICogQHBhcmFtIHsuLi5QYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+fSBtZXNzYWdlcyAtIGZvcndhcmRlZCBhcmdzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGxvZ2dlcihvYmplY3QsIC4uLm1lc3NhZ2VzKSB7XG4gIGNvbnN0IG9iamVjdFdpdGhDb25maWcgPSAvKiogQHR5cGUge3tjb25zdHJ1Y3Rvcjoge25hbWU6IHN0cmluZ30sIGNvbmZpZ3VyYXRpb24/OiBpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH19ICovIChvYmplY3QpXG4gIGNvbnN0IGNsYXNzTmFtZSA9IG9iamVjdFdpdGhDb25maWcuY29uc3RydWN0b3IubmFtZVxuICBsZXQgY29uZmlndXJhdGlvbiA9IG9iamVjdFdpdGhDb25maWcuY29uZmlndXJhdGlvblxuXG4gIGlmICghY29uZmlndXJhdGlvbikge1xuICAgIHRyeSB7XG4gICAgICBjb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5jdXJyZW50KClcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yZSBtaXNzaW5nIGNvbmZpZ3VyYXRpb25cbiAgICB9XG4gIH1cblxuICBjb25zdCBsb2dnaW5nQ29uZmlndXJhdGlvbiA9IHJlc29sdmVMb2dnaW5nQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKVxuICAvKiogQHR5cGUge0xvZ0xldmVsfSAqL1xuICBjb25zdCBsZXZlbCA9IFwiZGVidWdcIlxuXG4gIGlmICghaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnOiBjb25maWd1cmF0aW9uPy5kZWJ1ZyB8fCBmYWxzZX0pKSByZXR1cm5cblxuICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZXNUb01lc3NhZ2UoY2xhc3NOYW1lLCAuLi5mdW5jdGlvbk9yTWVzc2FnZXMoLi4ubWVzc2FnZXMpKVxuICBjb25zdCB3cml0ZXMgPSBbXVxuXG4gIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5jb25zb2xlICE9PSBmYWxzZSkge1xuICAgIHdyaXRlcy5wdXNoKGNvbnNvbGVMb2cobWVzc2FnZSkpXG4gIH1cblxuICBpZiAobG9nZ2luZ0NvbmZpZ3VyYXRpb24uZmlsZSAhPT0gZmFsc2UgJiYgbG9nZ2luZ0NvbmZpZ3VyYXRpb24uZmlsZVBhdGggJiYgY29uZmlndXJhdGlvbikge1xuICAgIGNvbnN0IGVudmlyb25tZW50SGFuZGxlciA9IGNvbmZpZ3VyYXRpb24uZ2V0RW52aXJvbm1lbnRIYW5kbGVyPy4oKVxuXG4gICAgaWYgKGVudmlyb25tZW50SGFuZGxlcj8ud3JpdGVMb2dUb0ZpbGUpIHtcbiAgICAgIHdyaXRlcy5wdXNoKGVudmlyb25tZW50SGFuZGxlci53cml0ZUxvZ1RvRmlsZSh7XG4gICAgICAgIGZpbGVQYXRoOiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aCxcbiAgICAgICAgbWVzc2FnZVxuICAgICAgfSkpXG4gICAgfVxuICB9XG5cbiAgaWYgKHdyaXRlcy5sZW5ndGggPT09IDEpIHtcbiAgICBhd2FpdCB3cml0ZXNbMF1cbiAgfSBlbHNlIGlmICh3cml0ZXMubGVuZ3RoID4gMSkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHdyaXRlcylcbiAgfVxufVxuIl19
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @returns {import("./index.js").MailerDeliveryPayload[]} - Delivered payloads.
|
|
3
|
+
*/
|
|
4
|
+
export function deliveries(): import("./index.js").MailerDeliveryPayload[];
|
|
5
|
+
/**
|
|
6
|
+
* @returns {void} - No return value.
|
|
7
|
+
*/
|
|
8
|
+
export function clearDeliveries(): void;
|
|
9
|
+
/**
|
|
10
|
+
* @param {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown} handler - Delivery handler.
|
|
11
|
+
* @returns {void} - No return value.
|
|
12
|
+
*/
|
|
13
|
+
export function setDeliveryHandler(handler: (payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown): void;
|
|
14
|
+
/**
|
|
15
|
+
* @returns {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null} - Handler or null.
|
|
16
|
+
*/
|
|
17
|
+
export function getDeliveryHandler(): (payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null;
|
|
18
|
+
/**
|
|
19
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
20
|
+
* @returns {Promise<import("./index.js").MailerDeliveryPayload | unknown>} - Handler result.
|
|
21
|
+
*/
|
|
22
|
+
export function deliverPayload(payload: import("./index.js").MailerDeliveryPayload): Promise<import("./index.js").MailerDeliveryPayload | unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
25
|
+
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
26
|
+
*/
|
|
27
|
+
export function enqueuePayload(payload: import("./index.js").MailerDeliveryPayload): Promise<string | import("./index.js").MailerDeliveryPayload | null>;
|
|
1
28
|
/**
|
|
2
29
|
* Base mailer with view rendering and delivery helpers.
|
|
3
30
|
*/
|
|
4
31
|
export class VelociousMailerBase {
|
|
5
|
-
/**
|
|
6
|
-
* @returns {import("./index.js").MailerDeliveryPayload[]} - Delivered payloads.
|
|
7
|
-
*/
|
|
8
|
-
static deliveries(): import("./index.js").MailerDeliveryPayload[];
|
|
9
|
-
/**
|
|
10
|
-
* @returns {void} - No return value.
|
|
11
|
-
*/
|
|
12
|
-
static clearDeliveries(): void;
|
|
13
|
-
/**
|
|
14
|
-
* @param {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown} handler - Delivery handler.
|
|
15
|
-
* @returns {void} - No return value.
|
|
16
|
-
*/
|
|
17
|
-
static setDeliveryHandler(handler: (payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown): void;
|
|
18
|
-
/**
|
|
19
|
-
* @returns {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null} - Handler or null.
|
|
20
|
-
*/
|
|
21
|
-
static getDeliveryHandler(): (payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null;
|
|
22
|
-
/**
|
|
23
|
-
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
24
|
-
* @returns {Promise<import("./index.js").MailerDeliveryPayload | unknown>} - Handler result.
|
|
25
|
-
*/
|
|
26
|
-
static deliverPayload(payload: import("./index.js").MailerDeliveryPayload): Promise<import("./index.js").MailerDeliveryPayload | unknown>;
|
|
27
|
-
/**
|
|
28
|
-
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
29
|
-
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
30
|
-
*/
|
|
31
|
-
static enqueuePayload(payload: import("./index.js").MailerDeliveryPayload): Promise<string | import("./index.js").MailerDeliveryPayload | null>;
|
|
32
32
|
/**
|
|
33
33
|
* @param {object} [args] - Constructor args.
|
|
34
34
|
* @param {import("../configuration.js").default} [args.configuration] - Configuration instance.
|
|
@@ -48,6 +48,16 @@ export class VelociousMailerBase {
|
|
|
48
48
|
};
|
|
49
49
|
_viewParams: {};
|
|
50
50
|
_configurationPromise: Promise<import("../configuration.js").default>;
|
|
51
|
+
_actionMethods: Map<any, any>;
|
|
52
|
+
/**
|
|
53
|
+
* @returns {void} - No return value.
|
|
54
|
+
*/
|
|
55
|
+
_setupActionWrappers(): void;
|
|
56
|
+
/**
|
|
57
|
+
* @param {string} actionName - Action name.
|
|
58
|
+
* @returns {((...args: any[]) => unknown) | undefined} - Action method.
|
|
59
|
+
*/
|
|
60
|
+
_getActionMethod(actionName: string): ((...args: any[]) => unknown) | undefined;
|
|
51
61
|
/**
|
|
52
62
|
* @param {Record<string, any>} params - View params.
|
|
53
63
|
* @returns {void} - No return value.
|
|
@@ -100,6 +110,16 @@ export class VelociousMailerBase {
|
|
|
100
110
|
* @returns {Promise<string>} - Rendered HTML.
|
|
101
111
|
*/
|
|
102
112
|
_renderView(): Promise<string>;
|
|
113
|
+
/**
|
|
114
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
115
|
+
* @returns {Promise<import("./index.js").MailerDeliveryPayload | unknown>} - Handler result.
|
|
116
|
+
*/
|
|
117
|
+
_deliverPayload(payload: import("./index.js").MailerDeliveryPayload): Promise<import("./index.js").MailerDeliveryPayload | unknown>;
|
|
118
|
+
/**
|
|
119
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
120
|
+
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
121
|
+
*/
|
|
122
|
+
_enqueuePayload(payload: import("./index.js").MailerDeliveryPayload): Promise<string | import("./index.js").MailerDeliveryPayload | null>;
|
|
103
123
|
}
|
|
104
124
|
import MailerDelivery from "./delivery.js";
|
|
105
125
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/mailer/base.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/mailer/base.js"],"names":[],"mappings":"AAsPA;;GAEG;AACH,8BAFa,OAAO,YAAY,EAAE,qBAAqB,EAAE,CAIxD;AAED;;GAEG;AACH,mCAFa,IAAI,CAIhB;AAED;;;GAGG;AACH,4CAHW,CAAC,OAAO,EAAE,OAAO,YAAY,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GACjF,IAAI,CAIhB;AAED;;GAEG;AACH,sCAFa,CAAC,OAAO,EAAE,OAAO,YAAY,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAItG;AAED;;;GAGG;AACH,wCAHW,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,CAAC,OAAO,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAsBzE;AAED;;;GAGG;AACH,wCAHW,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,CAAC,MAAM,GAAG,OAAO,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAW/E;AAjRD;;GAEG;AACH;IACE;;;OAGG;IACH,gCAFG;QAAqD,aAAa,GAA1D,OAAO,qBAAqB,EAAE,OAAO;KAC/C,EAQA;IANC,oBAAuB;IACvB;;;;;;;;MAAwB;IACxB,gBAAqB;IACrB,sEAAqG;IACrG,8BAA+B;IAIjC;;OAEG;IACH,wBAFa,IAAI,CAwBhB;IAED;;;OAGG;IACH,6BAHW,MAAM,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAIrD;IAED;;;OAGG;IACH,mBAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,IAAI,CAIhB;IAED;;;;;;;;;;OAUG;IACH,oEATG;QAAkB,EAAE,EAAZ,GAAG;QACU,OAAO,EAApB,MAAM;QACK,IAAI,GAAf,GAAG;QACQ,EAAE,GAAb,GAAG;QACQ,GAAG,GAAd,GAAG;QACQ,OAAO,GAAlB,GAAG;QAC2B,OAAO,GAArC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;KAC9B,GAAU,IAAI,CAMhB;IAED;;;;OAIG;IACH,2BAJW,MAAM,QACN,GAAG,EAAE,GACH,cAAc,CAiB1B;IAED;;OAEG;IACH,qBAFa,OAAO,CAAC,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAI1D;IAED;;OAEG;IACH,kBAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,OAAO,YAAY,EAAE,qBAAqB,CA6BtD;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,OAAO,YAAY,EAAE,qBAAqB,CAAC,CAM/D;IAED;;OAEG;IACH,eAFa,OAAO,CAAC,MAAM,CAAC,CA0B3B;IAED;;;OAGG;IACH,yBAHW,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,CAAC,OAAO,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAIzE;IAED;;;OAGG;IACH,yBAHW,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,CAAC,MAAM,GAAG,OAAO,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAI/E;CACF;2BA7O0B,eAAe"}
|
package/build/src/mailer/base.js
CHANGED
|
@@ -6,7 +6,7 @@ import configurationResolver from "../configuration-resolver.js";
|
|
|
6
6
|
import restArgsError from "../utils/rest-args-error.js";
|
|
7
7
|
import MailerDelivery from "./delivery.js";
|
|
8
8
|
/** @type {import("./index.js").MailerDeliveryPayload[]} */
|
|
9
|
-
const
|
|
9
|
+
const deliveriesStore = [];
|
|
10
10
|
/** @type {((payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown) | null} */
|
|
11
11
|
let deliveryHandler = null;
|
|
12
12
|
/**
|
|
@@ -44,6 +44,38 @@ export class VelociousMailerBase {
|
|
|
44
44
|
this._mailOptions = null;
|
|
45
45
|
this._viewParams = {};
|
|
46
46
|
this._configurationPromise = configuration ? Promise.resolve(configuration) : configurationResolver();
|
|
47
|
+
this._actionMethods = new Map();
|
|
48
|
+
this._setupActionWrappers();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @returns {void} - No return value.
|
|
52
|
+
*/
|
|
53
|
+
_setupActionWrappers() {
|
|
54
|
+
const basePrototype = VelociousMailerBase.prototype;
|
|
55
|
+
const wrappedNames = new Set();
|
|
56
|
+
let prototype = Object.getPrototypeOf(this);
|
|
57
|
+
while (prototype && prototype !== basePrototype) {
|
|
58
|
+
for (const name of Object.getOwnPropertyNames(prototype)) {
|
|
59
|
+
if (name === "constructor" || wrappedNames.has(name))
|
|
60
|
+
continue;
|
|
61
|
+
const descriptor = Object.getOwnPropertyDescriptor(prototype, name);
|
|
62
|
+
if (!descriptor || typeof descriptor.value !== "function")
|
|
63
|
+
continue;
|
|
64
|
+
if (name.startsWith("_") || name in basePrototype)
|
|
65
|
+
continue;
|
|
66
|
+
wrappedNames.add(name);
|
|
67
|
+
this._actionMethods.set(name, descriptor.value);
|
|
68
|
+
this[name] = (...args) => this._buildDelivery(name, args);
|
|
69
|
+
}
|
|
70
|
+
prototype = Object.getPrototypeOf(prototype);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @param {string} actionName - Action name.
|
|
75
|
+
* @returns {((...args: any[]) => unknown) | undefined} - Action method.
|
|
76
|
+
*/
|
|
77
|
+
_getActionMethod(actionName) {
|
|
78
|
+
return this._actionMethods.get(actionName);
|
|
47
79
|
}
|
|
48
80
|
/**
|
|
49
81
|
* @param {Record<string, any>} params - View params.
|
|
@@ -73,7 +105,7 @@ export class VelociousMailerBase {
|
|
|
73
105
|
* @returns {MailerDelivery} - Delivery wrapper.
|
|
74
106
|
*/
|
|
75
107
|
_buildDelivery(actionName, args) {
|
|
76
|
-
const action = this
|
|
108
|
+
const action = this._getActionMethod(actionName);
|
|
77
109
|
if (typeof action !== "function") {
|
|
78
110
|
throw new Error(`Unknown mailer method "${actionName}" on ${this.constructor.name}`);
|
|
79
111
|
}
|
|
@@ -163,62 +195,76 @@ export class VelociousMailerBase {
|
|
|
163
195
|
});
|
|
164
196
|
});
|
|
165
197
|
}
|
|
166
|
-
/**
|
|
167
|
-
* @returns {import("./index.js").MailerDeliveryPayload[]} - Delivered payloads.
|
|
168
|
-
*/
|
|
169
|
-
static deliveries() {
|
|
170
|
-
return deliveries.slice();
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* @returns {void} - No return value.
|
|
174
|
-
*/
|
|
175
|
-
static clearDeliveries() {
|
|
176
|
-
deliveries.length = 0;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* @param {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown} handler - Delivery handler.
|
|
180
|
-
* @returns {void} - No return value.
|
|
181
|
-
*/
|
|
182
|
-
static setDeliveryHandler(handler) {
|
|
183
|
-
deliveryHandler = handler;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @returns {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null} - Handler or null.
|
|
187
|
-
*/
|
|
188
|
-
static getDeliveryHandler() {
|
|
189
|
-
return deliveryHandler;
|
|
190
|
-
}
|
|
191
198
|
/**
|
|
192
199
|
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
193
200
|
* @returns {Promise<import("./index.js").MailerDeliveryPayload | unknown>} - Handler result.
|
|
194
201
|
*/
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
deliveries.push(payload);
|
|
198
|
-
return payload;
|
|
199
|
-
}
|
|
200
|
-
const configuration = await configurationResolver();
|
|
201
|
-
const backend = configuration.getMailerBackend();
|
|
202
|
-
if (backend?.deliver) {
|
|
203
|
-
return await backend.deliver({ payload, configuration });
|
|
204
|
-
}
|
|
205
|
-
const handler = deliveryHandler;
|
|
206
|
-
if (!handler) {
|
|
207
|
-
throw new Error(`No mail delivery handler configured for "${payload.subject}" to "${payload.to}"`);
|
|
208
|
-
}
|
|
209
|
-
return await handler(payload);
|
|
202
|
+
async _deliverPayload(payload) {
|
|
203
|
+
return await deliverPayload(payload);
|
|
210
204
|
}
|
|
211
205
|
/**
|
|
212
206
|
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
213
207
|
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
214
208
|
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
209
|
+
async _enqueuePayload(payload) {
|
|
210
|
+
return await enqueuePayload(payload);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* @returns {import("./index.js").MailerDeliveryPayload[]} - Delivered payloads.
|
|
215
|
+
*/
|
|
216
|
+
export function deliveries() {
|
|
217
|
+
return deliveriesStore.slice();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @returns {void} - No return value.
|
|
221
|
+
*/
|
|
222
|
+
export function clearDeliveries() {
|
|
223
|
+
deliveriesStore.length = 0;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* @param {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown} handler - Delivery handler.
|
|
227
|
+
* @returns {void} - No return value.
|
|
228
|
+
*/
|
|
229
|
+
export function setDeliveryHandler(handler) {
|
|
230
|
+
deliveryHandler = handler;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* @returns {(payload: import("./index.js").MailerDeliveryPayload) => Promise<unknown> | unknown | null} - Handler or null.
|
|
234
|
+
*/
|
|
235
|
+
export function getDeliveryHandler() {
|
|
236
|
+
return deliveryHandler;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
240
|
+
* @returns {Promise<import("./index.js").MailerDeliveryPayload | unknown>} - Handler result.
|
|
241
|
+
*/
|
|
242
|
+
export async function deliverPayload(payload) {
|
|
243
|
+
if (await isTestingEnvironment()) {
|
|
244
|
+
deliveriesStore.push(payload);
|
|
245
|
+
return payload;
|
|
246
|
+
}
|
|
247
|
+
const configuration = await configurationResolver();
|
|
248
|
+
const backend = configuration.getMailerBackend();
|
|
249
|
+
if (backend?.deliver) {
|
|
250
|
+
return await backend.deliver({ payload, configuration });
|
|
251
|
+
}
|
|
252
|
+
const handler = deliveryHandler;
|
|
253
|
+
if (!handler) {
|
|
254
|
+
throw new Error(`No mail delivery handler configured for "${payload.subject}" to "${payload.to}"`);
|
|
255
|
+
}
|
|
256
|
+
return await handler(payload);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* @param {import("./index.js").MailerDeliveryPayload} payload - Mail delivery payload.
|
|
260
|
+
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
261
|
+
*/
|
|
262
|
+
export async function enqueuePayload(payload) {
|
|
263
|
+
if (await isTestingEnvironment()) {
|
|
264
|
+
deliveriesStore.push(payload);
|
|
265
|
+
return payload;
|
|
222
266
|
}
|
|
267
|
+
const { default: mailDeliveryJob } = await import("../jobs/mail-delivery.js");
|
|
268
|
+
return await mailDeliveryJob.performLater(payload);
|
|
223
269
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYWlsZXIvYmFzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxxQkFBcUIsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLGNBQWMsTUFBTSxlQUFlLENBQUE7QUFFMUMsMkRBQTJEO0FBQzNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtBQUNyQiwyR0FBMkc7QUFDM0csSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFBO0FBRTFCOzs7R0FHRztBQUNILFNBQVMsWUFBWSxDQUFDLFVBQVU7SUFDOUIsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtBQUNoRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxTQUFTO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRWpELE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQjtJQUNqQyxNQUFNLGFBQWEsR0FBRyxNQUFNLHFCQUFxQixFQUFFLENBQUE7SUFFbkQsT0FBTyxhQUFhLENBQUMsY0FBYyxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ2xELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7OztPQUdH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VSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUN4QixPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDO1FBRUQsTUFBTSxFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUMsR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRTNFLE9BQU8sTUFBTSxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZWpzIGZyb20gXCJlanNcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBjb25maWd1cmF0aW9uUmVzb2x2ZXIgZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb24tcmVzb2x2ZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5pbXBvcnQgTWFpbGVyRGVsaXZlcnkgZnJvbSBcIi4vZGVsaXZlcnkuanNcIlxuXG4vKiogQHR5cGUge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkW119ICovXG5jb25zdCBkZWxpdmVyaWVzID0gW11cbi8qKiBAdHlwZSB7KChwYXlsb2FkOiBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHVua25vd24pIHwgbnVsbH0gKi9cbmxldCBkZWxpdmVyeUhhbmRsZXIgPSBudWxsXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjdGlvbk5hbWUgLSBNYWlsZXIgYWN0aW9uIG5hbWUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFZpZXcgZmlsZSBuYW1lLlxuICovXG5mdW5jdGlvbiB2aWV3RmlsZU5hbWUoYWN0aW9uTmFtZSkge1xuICByZXR1cm4gaW5mbGVjdGlvbi5kYXNoZXJpemUoaW5mbGVjdGlvbi51bmRlcnNjb3JlKGFjdGlvbk5hbWUpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUgLSBNYWlsZXIgY2xhc3MgbmFtZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gTWFpbGVyIGRpcmVjdG9yeSBuYW1lLlxuICovXG5mdW5jdGlvbiBtYWlsZXJEaXJlY3RvcnlOYW1lKGNsYXNzTmFtZSkge1xuICBjb25zdCBiYXNlTmFtZSA9IGNsYXNzTmFtZS5yZXBsYWNlKC9NYWlsZXIkLywgXCJcIilcblxuICByZXR1cm4gaW5mbGVjdGlvbi5kYXNoZXJpemUoaW5mbGVjdGlvbi51bmRlcnNjb3JlKGJhc2VOYW1lKSlcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIHRlc3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzVGVzdGluZ0Vudmlyb25tZW50KCkge1xuICBjb25zdCBjb25maWd1cmF0aW9uID0gYXdhaXQgY29uZmlndXJhdGlvblJlc29sdmVyKClcblxuICByZXR1cm4gY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudCgpID09PSBcInRlc3RcIlxufVxuXG4vKipcbiAqIEJhc2UgbWFpbGVyIHdpdGggdmlldyByZW5kZXJpbmcgYW5kIGRlbGl2ZXJ5IGhlbHBlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWxvY2lvdXNNYWlsZXJCYXNlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc10gLSBDb25zdHJ1Y3RvciBhcmdzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb259ID0ge30pIHtcbiAgICB0aGlzLl9hY3Rpb25OYW1lID0gbnVsbFxuICAgIHRoaXMuX21haWxPcHRpb25zID0gbnVsbFxuICAgIHRoaXMuX3ZpZXdQYXJhbXMgPSB7fVxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25Qcm9taXNlID0gY29uZmlndXJhdGlvbiA/IFByb21pc2UucmVzb2x2ZShjb25maWd1cmF0aW9uKSA6IGNvbmZpZ3VyYXRpb25SZXNvbHZlcigpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwYXJhbXMgLSBWaWV3IHBhcmFtcy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgYXNzaWduVmlldyhwYXJhbXMpIHtcbiAgICB0aGlzLl92aWV3UGFyYW1zID0gT2JqZWN0LmFzc2lnbih0aGlzLl92aWV3UGFyYW1zLCBwYXJhbXMgfHwge30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBNYWlsIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB7YW55fSBhcmdzLnRvIC0gUmVjaXBpZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5zdWJqZWN0IC0gU3ViamVjdCBsaW5lLlxuICAgKiBAcGFyYW0ge2FueX0gW2FyZ3MuZnJvbV0gLSBTZW5kZXIuXG4gICAqIEBwYXJhbSB7YW55fSBbYXJncy5jY10gLSBDQyByZWNpcGllbnRzLlxuICAgKiBAcGFyYW0ge2FueX0gW2FyZ3MuYmNjXSAtIEJDQyByZWNpcGllbnRzLlxuICAgKiBAcGFyYW0ge2FueX0gW2FyZ3MucmVwbHlUb10gLSBSZXBseS10byBhZGRyZXNzLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFthcmdzLmhlYWRlcnNdIC0gQ3VzdG9tIGhlYWRlcnMuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG1haWwoe3RvLCBzdWJqZWN0LCBmcm9tLCBjYywgYmNjLCByZXBseVRvLCBoZWFkZXJzLCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5fbWFpbE9wdGlvbnMgPSB7dG8sIHN1YmplY3QsIGZyb20sIGNjLCBiY2MsIHJlcGx5VG8sIGhlYWRlcnN9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjdGlvbk5hbWUgLSBBY3Rpb24gbmFtZS5cbiAgICogQHBhcmFtIHthbnlbXX0gYXJncyAtIEFjdGlvbiBhcmdzLlxuICAgKiBAcmV0dXJucyB7TWFpbGVyRGVsaXZlcnl9IC0gRGVsaXZlcnkgd3JhcHBlci5cbiAgICovXG4gIF9idWlsZERlbGl2ZXJ5KGFjdGlvbk5hbWUsIGFyZ3MpIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzW2FjdGlvbk5hbWVdXG5cbiAgICBpZiAodHlwZW9mIGFjdGlvbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gbWFpbGVyIG1ldGhvZCBcIiR7YWN0aW9uTmFtZX1cIiBvbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIH1cblxuICAgIHRoaXMuX2FjdGlvbk5hbWUgPSBhY3Rpb25OYW1lXG4gICAgY29uc3QgYWN0aW9uUmVzdWx0ID0gYWN0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpXG5cbiAgICByZXR1cm4gbmV3IE1haWxlckRlbGl2ZXJ5KHtcbiAgICAgIG1haWxlcjogdGhpcyxcbiAgICAgIGFjdGlvblByb21pc2U6IFByb21pc2UucmVzb2x2ZShhY3Rpb25SZXN1bHQpLFxuICAgICAgYWN0aW9uTmFtZVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0Pn0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgYXN5bmMgX2dldENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRpb25Qcm9taXNlXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBBY3Rpb24gbmFtZS5cbiAgICovXG4gIF9nZXRBY3Rpb25OYW1lKCkge1xuICAgIGlmICghdGhpcy5fYWN0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtYWlsZXIgYWN0aW9uIHNldCBvbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGh0bWwgLSBSZW5kZXJlZCBIVE1MLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWR9IC0gRGVsaXZlcnkgcGF5bG9hZC5cbiAgICovXG4gIF9idWlsZFBheWxvYWRTeW5jKGh0bWwpIHtcbiAgICBjb25zdCBtYWlsT3B0aW9ucyA9IHRoaXMuX21haWxPcHRpb25zXG5cbiAgICBpZiAoIW1haWxPcHRpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgbWFpbCgpIG9wdGlvbnMgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMuX2dldEFjdGlvbk5hbWUoKX0uIEdvdDogJHtTdHJpbmcobWFpbE9wdGlvbnMpfWApXG4gICAgfVxuXG4gICAgaWYgKCFtYWlsT3B0aW9ucy50bykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIFwidG9cIiBmb3IgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5fZ2V0QWN0aW9uTmFtZSgpfS4gR290OiAke1N0cmluZyhtYWlsT3B0aW9ucy50byl9YClcbiAgICB9XG5cbiAgICBpZiAoIW1haWxPcHRpb25zLnN1YmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBcInN1YmplY3RcIiBmb3IgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5fZ2V0QWN0aW9uTmFtZSgpfS4gR290OiAke1N0cmluZyhtYWlsT3B0aW9ucy5zdWJqZWN0KX1gKVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0bzogbWFpbE9wdGlvbnMudG8sXG4gICAgICBzdWJqZWN0OiBtYWlsT3B0aW9ucy5zdWJqZWN0LFxuICAgICAgZnJvbTogbWFpbE9wdGlvbnMuZnJvbSxcbiAgICAgIGNjOiBtYWlsT3B0aW9ucy5jYyxcbiAgICAgIGJjYzogbWFpbE9wdGlvbnMuYmNjLFxuICAgICAgcmVwbHlUbzogbWFpbE9wdGlvbnMucmVwbHlUbyxcbiAgICAgIGhlYWRlcnM6IG1haWxPcHRpb25zLmhlYWRlcnMsXG4gICAgICBodG1sLFxuICAgICAgbWFpbGVyOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBhY3Rpb246IHRoaXMuX2dldEFjdGlvbk5hbWUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZD59IC0gRGVsaXZlcnkgcGF5bG9hZC5cbiAgICovXG4gIGFzeW5jIF9idWlsZFBheWxvYWQoKSB7XG4gICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuX3JlbmRlclZpZXcoKVxuXG4gICAgcmV0dXJuIHRoaXMuX2J1aWxkUGF5bG9hZFN5bmMoaHRtbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIFJlbmRlcmVkIEhUTUwuXG4gICAqL1xuICBhc3luYyBfcmVuZGVyVmlldygpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gYXdhaXQgdGhpcy5fZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgbWFpbGVyRGlyID0gbWFpbGVyRGlyZWN0b3J5TmFtZSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG4gICAgY29uc3QgYWN0aW9uTmFtZSA9IHRoaXMuX2dldEFjdGlvbk5hbWUoKVxuICAgIGNvbnN0IGZpbGVOYW1lID0gdmlld0ZpbGVOYW1lKGFjdGlvbk5hbWUpXG4gICAgY29uc3Qgdmlld1BhdGggPSBgJHtjb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpfS9zcmMvbWFpbGVycy8ke21haWxlckRpcn0vJHtmaWxlTmFtZX0uZWpzYFxuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IChtc2dJRCwgYXJncykgPT4gY29uZmlndXJhdGlvbi5nZXRUcmFuc2xhdG9yKCkobXNnSUQsIGFyZ3MpXG4gICAgY29uc3Qgdmlld1BhcmFtcyA9IGluY29ycG9yYXRlKHttYWlsZXI6IHRoaXMsIF86IHRyYW5zbGF0ZX0sIHRoaXMuX3ZpZXdQYXJhbXMpXG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZWpzLnJlbmRlckZpbGUodmlld1BhdGgsIHZpZXdQYXJhbXMsIHt9LCAoZXJyLCBzdHIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IC8qKiBAdHlwZSB7e2NvZGU/OiBzdHJpbmd9fSAqLyAoZXJyKS5jb2RlXG5cbiAgICAgICAgICBpZiAoZXJyb3JDb2RlID09PSBcIkVOT0VOVFwiKSB7XG4gICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBNaXNzaW5nIG1haWxlciB2aWV3IGZpbGU6ICR7dmlld1BhdGh9YCkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoc3RyKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkW119IC0gRGVsaXZlcmVkIHBheWxvYWRzLlxuICAgKi9cbiAgc3RhdGljIGRlbGl2ZXJpZXMoKSB7XG4gICAgcmV0dXJuIGRlbGl2ZXJpZXMuc2xpY2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHN0YXRpYyBjbGVhckRlbGl2ZXJpZXMoKSB7XG4gICAgZGVsaXZlcmllcy5sZW5ndGggPSAwXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHsocGF5bG9hZDogaW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQpID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3dufSBoYW5kbGVyIC0gRGVsaXZlcnkgaGFuZGxlci5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc3RhdGljIHNldERlbGl2ZXJ5SGFuZGxlcihoYW5kbGVyKSB7XG4gICAgZGVsaXZlcnlIYW5kbGVyID0gaGFuZGxlclxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHsocGF5bG9hZDogaW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQpID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duIHwgbnVsbH0gLSBIYW5kbGVyIG9yIG51bGwuXG4gICAqL1xuICBzdGF0aWMgZ2V0RGVsaXZlcnlIYW5kbGVyKCkge1xuICAgIHJldHVybiBkZWxpdmVyeUhhbmRsZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSBwYXlsb2FkIC0gTWFpbCBkZWxpdmVyeSBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZCB8IHVua25vd24+fSAtIEhhbmRsZXIgcmVzdWx0LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGRlbGl2ZXJQYXlsb2FkKHBheWxvYWQpIHtcbiAgICBpZiAoYXdhaXQgaXNUZXN0aW5nRW52aXJvbm1lbnQoKSkge1xuICAgICAgZGVsaXZlcmllcy5wdXNoKHBheWxvYWQpXG4gICAgICByZXR1cm4gcGF5bG9hZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBjb25maWd1cmF0aW9uUmVzb2x2ZXIoKVxuICAgIGNvbnN0IGJhY2tlbmQgPSBjb25maWd1cmF0aW9uLmdldE1haWxlckJhY2tlbmQoKVxuXG4gICAgaWYgKGJhY2tlbmQ/LmRlbGl2ZXIpIHtcbiAgICAgIHJldHVybiBhd2FpdCBiYWNrZW5kLmRlbGl2ZXIoe3BheWxvYWQsIGNvbmZpZ3VyYXRpb259KVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZXIgPSBkZWxpdmVyeUhhbmRsZXJcblxuICAgIGlmICghaGFuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtYWlsIGRlbGl2ZXJ5IGhhbmRsZXIgY29uZmlndXJlZCBmb3IgXCIke3BheWxvYWQuc3ViamVjdH1cIiB0byBcIiR7cGF5bG9hZC50b31cImApXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IGhhbmRsZXIocGF5bG9hZClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSBwYXlsb2FkIC0gTWFpbCBkZWxpdmVyeSBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZCB8IG51bGw+fSAtIEpvYiBpZCBvciBwYXlsb2FkIGluIHRlc3QgbW9kZS5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBlbnF1ZXVlUGF5bG9hZChwYXlsb2FkKSB7XG4gICAgaWYgKGF3YWl0IGlzVGVzdGluZ0Vudmlyb25tZW50KCkpIHtcbiAgICAgIGRlbGl2ZXJpZXMucHVzaChwYXlsb2FkKVxuICAgICAgcmV0dXJuIHBheWxvYWRcbiAgICB9XG5cbiAgICBjb25zdCB7ZGVmYXVsdDogbWFpbERlbGl2ZXJ5Sm9ifSA9IGF3YWl0IGltcG9ydChcIi4uL2pvYnMvbWFpbC1kZWxpdmVyeS5qc1wiKVxuXG4gICAgcmV0dXJuIGF3YWl0IG1haWxEZWxpdmVyeUpvYi5wZXJmb3JtTGF0ZXIocGF5bG9hZClcbiAgfVxufVxuIl19
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYWlsZXIvYmFzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxxQkFBcUIsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLGNBQWMsTUFBTSxlQUFlLENBQUE7QUFFMUMsMkRBQTJEO0FBQzNELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQTtBQUMxQiwyR0FBMkc7QUFDM0csSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFBO0FBRTFCOzs7R0FHRztBQUNILFNBQVMsWUFBWSxDQUFDLFVBQVU7SUFDOUIsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtBQUNoRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxTQUFTO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRWpELE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQjtJQUNqQyxNQUFNLGFBQWEsR0FBRyxNQUFNLHFCQUFxQixFQUFFLENBQUE7SUFFbkQsT0FBTyxhQUFhLENBQUMsY0FBYyxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ2xELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7OztPQUdH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QUFDLE9BQU8sRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUE7SUFFL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsT0FBTyxDQUFDLE9BQU8sU0FBUyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0lBRUQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUMvQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBTztJQUMxQyxJQUFJLE1BQU0sb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0IsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtJQUUzRSxPQUFPLE1BQU0sZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBlanMgZnJvbSBcImVqc1wiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IGNvbmZpZ3VyYXRpb25SZXNvbHZlciBmcm9tIFwiLi4vY29uZmlndXJhdGlvbi1yZXNvbHZlci5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcbmltcG9ydCBNYWlsZXJEZWxpdmVyeSBmcm9tIFwiLi9kZWxpdmVyeS5qc1wiXG5cbi8qKiBAdHlwZSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWRbXX0gKi9cbmNvbnN0IGRlbGl2ZXJpZXNTdG9yZSA9IFtdXG4vKiogQHR5cGUgeygocGF5bG9hZDogaW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQpID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duKSB8IG51bGx9ICovXG5sZXQgZGVsaXZlcnlIYW5kbGVyID0gbnVsbFxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb25OYW1lIC0gTWFpbGVyIGFjdGlvbiBuYW1lLlxuICogQHJldHVybnMge3N0cmluZ30gLSBWaWV3IGZpbGUgbmFtZS5cbiAqL1xuZnVuY3Rpb24gdmlld0ZpbGVOYW1lKGFjdGlvbk5hbWUpIHtcbiAgcmV0dXJuIGluZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZShhY3Rpb25OYW1lKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIC0gTWFpbGVyIGNsYXNzIG5hbWUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIE1haWxlciBkaXJlY3RvcnkgbmFtZS5cbiAqL1xuZnVuY3Rpb24gbWFpbGVyRGlyZWN0b3J5TmFtZShjbGFzc05hbWUpIHtcbiAgY29uc3QgYmFzZU5hbWUgPSBjbGFzc05hbWUucmVwbGFjZSgvTWFpbGVyJC8sIFwiXCIpXG5cbiAgcmV0dXJuIGluZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZShiYXNlTmFtZSkpXG59XG5cbi8qKlxuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyB0ZXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiBpc1Rlc3RpbmdFbnZpcm9ubWVudCgpIHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IGNvbmZpZ3VyYXRpb25SZXNvbHZlcigpXG5cbiAgcmV0dXJuIGNvbmZpZ3VyYXRpb24uZ2V0RW52aXJvbm1lbnQoKSA9PT0gXCJ0ZXN0XCJcbn1cblxuLyoqXG4gKiBCYXNlIG1haWxlciB3aXRoIHZpZXcgcmVuZGVyaW5nIGFuZCBkZWxpdmVyeSBoZWxwZXJzLlxuICovXG5leHBvcnQgY2xhc3MgVmVsb2Npb3VzTWFpbGVyQmFzZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gQ29uc3RydWN0b3IgYXJncy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFthcmdzLmNvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9ufSA9IHt9KSB7XG4gICAgdGhpcy5fYWN0aW9uTmFtZSA9IG51bGxcbiAgICB0aGlzLl9tYWlsT3B0aW9ucyA9IG51bGxcbiAgICB0aGlzLl92aWV3UGFyYW1zID0ge31cbiAgICB0aGlzLl9jb25maWd1cmF0aW9uUHJvbWlzZSA9IGNvbmZpZ3VyYXRpb24gPyBQcm9taXNlLnJlc29sdmUoY29uZmlndXJhdGlvbikgOiBjb25maWd1cmF0aW9uUmVzb2x2ZXIoKVxuICAgIHRoaXMuX2FjdGlvbk1ldGhvZHMgPSBuZXcgTWFwKClcbiAgICB0aGlzLl9zZXR1cEFjdGlvbldyYXBwZXJzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBfc2V0dXBBY3Rpb25XcmFwcGVycygpIHtcbiAgICBjb25zdCBiYXNlUHJvdG90eXBlID0gVmVsb2Npb3VzTWFpbGVyQmFzZS5wcm90b3R5cGVcbiAgICBjb25zdCB3cmFwcGVkTmFtZXMgPSBuZXcgU2V0KClcbiAgICBsZXQgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpXG5cbiAgICB3aGlsZSAocHJvdG90eXBlICYmIHByb3RvdHlwZSAhPT0gYmFzZVByb3RvdHlwZSkge1xuICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvdHlwZSkpIHtcbiAgICAgICAgaWYgKG5hbWUgPT09IFwiY29uc3RydWN0b3JcIiB8fCB3cmFwcGVkTmFtZXMuaGFzKG5hbWUpKSBjb250aW51ZVxuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwgbmFtZSlcblxuICAgICAgICBpZiAoIWRlc2NyaXB0b3IgfHwgdHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09IFwiZnVuY3Rpb25cIikgY29udGludWVcbiAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChcIl9cIikgfHwgbmFtZSBpbiBiYXNlUHJvdG90eXBlKSBjb250aW51ZVxuXG4gICAgICAgIHdyYXBwZWROYW1lcy5hZGQobmFtZSlcbiAgICAgICAgdGhpcy5fYWN0aW9uTWV0aG9kcy5zZXQobmFtZSwgZGVzY3JpcHRvci52YWx1ZSlcblxuICAgICAgICB0aGlzW25hbWVdID0gKC4uLmFyZ3MpID0+IHRoaXMuX2J1aWxkRGVsaXZlcnkobmFtZSwgYXJncylcbiAgICAgIH1cblxuICAgICAgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvdHlwZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjdGlvbk5hbWUgLSBBY3Rpb24gbmFtZS5cbiAgICogQHJldHVybnMgeygoLi4uYXJnczogYW55W10pID0+IHVua25vd24pIHwgdW5kZWZpbmVkfSAtIEFjdGlvbiBtZXRob2QuXG4gICAqL1xuICBfZ2V0QWN0aW9uTWV0aG9kKGFjdGlvbk5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uTWV0aG9kcy5nZXQoYWN0aW9uTmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHBhcmFtcyAtIFZpZXcgcGFyYW1zLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBhc3NpZ25WaWV3KHBhcmFtcykge1xuICAgIHRoaXMuX3ZpZXdQYXJhbXMgPSBPYmplY3QuYXNzaWduKHRoaXMuX3ZpZXdQYXJhbXMsIHBhcmFtcyB8fCB7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE1haWwgb3B0aW9ucy5cbiAgICogQHBhcmFtIHthbnl9IGFyZ3MudG8gLSBSZWNpcGllbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnN1YmplY3QgLSBTdWJqZWN0IGxpbmUuXG4gICAqIEBwYXJhbSB7YW55fSBbYXJncy5mcm9tXSAtIFNlbmRlci5cbiAgICogQHBhcmFtIHthbnl9IFthcmdzLmNjXSAtIENDIHJlY2lwaWVudHMuXG4gICAqIEBwYXJhbSB7YW55fSBbYXJncy5iY2NdIC0gQkNDIHJlY2lwaWVudHMuXG4gICAqIEBwYXJhbSB7YW55fSBbYXJncy5yZXBseVRvXSAtIFJlcGx5LXRvIGFkZHJlc3MuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW2FyZ3MuaGVhZGVyc10gLSBDdXN0b20gaGVhZGVycy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgbWFpbCh7dG8sIHN1YmplY3QsIGZyb20sIGNjLCBiY2MsIHJlcGx5VG8sIGhlYWRlcnMsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLl9tYWlsT3B0aW9ucyA9IHt0bywgc3ViamVjdCwgZnJvbSwgY2MsIGJjYywgcmVwbHlUbywgaGVhZGVyc31cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uTmFtZSAtIEFjdGlvbiBuYW1lLlxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIC0gQWN0aW9uIGFyZ3MuXG4gICAqIEByZXR1cm5zIHtNYWlsZXJEZWxpdmVyeX0gLSBEZWxpdmVyeSB3cmFwcGVyLlxuICAgKi9cbiAgX2J1aWxkRGVsaXZlcnkoYWN0aW9uTmFtZSwgYXJncykge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuX2dldEFjdGlvbk1ldGhvZChhY3Rpb25OYW1lKVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpb24gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG1haWxlciBtZXRob2QgXCIke2FjdGlvbk5hbWV9XCIgb24gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YClcbiAgICB9XG5cbiAgICB0aGlzLl9hY3Rpb25OYW1lID0gYWN0aW9uTmFtZVxuICAgIGNvbnN0IGFjdGlvblJlc3VsdCA9IGFjdGlvbi5hcHBseSh0aGlzLCBhcmdzKVxuXG4gICAgcmV0dXJuIG5ldyBNYWlsZXJEZWxpdmVyeSh7XG4gICAgICBtYWlsZXI6IHRoaXMsXG4gICAgICBhY3Rpb25Qcm9taXNlOiBQcm9taXNlLnJlc29sdmUoYWN0aW9uUmVzdWx0KSxcbiAgICAgIGFjdGlvbk5hbWVcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdD59IC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIGFzeW5jIF9nZXRDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25maWd1cmF0aW9uUHJvbWlzZVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQWN0aW9uIG5hbWUuXG4gICAqL1xuICBfZ2V0QWN0aW9uTmFtZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGlvbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWFpbGVyIGFjdGlvbiBzZXQgb24gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBodG1sIC0gUmVuZGVyZWQgSFRNTC5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSAtIERlbGl2ZXJ5IHBheWxvYWQuXG4gICAqL1xuICBfYnVpbGRQYXlsb2FkU3luYyhodG1sKSB7XG4gICAgY29uc3QgbWFpbE9wdGlvbnMgPSB0aGlzLl9tYWlsT3B0aW9uc1xuXG4gICAgaWYgKCFtYWlsT3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG1haWwoKSBvcHRpb25zIGZvciAke3RoaXMuY29uc3RydWN0b3IubmFtZX0jJHt0aGlzLl9nZXRBY3Rpb25OYW1lKCl9LiBHb3Q6ICR7U3RyaW5nKG1haWxPcHRpb25zKX1gKVxuICAgIH1cblxuICAgIGlmICghbWFpbE9wdGlvbnMudG8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBcInRvXCIgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMuX2dldEFjdGlvbk5hbWUoKX0uIEdvdDogJHtTdHJpbmcobWFpbE9wdGlvbnMudG8pfWApXG4gICAgfVxuXG4gICAgaWYgKCFtYWlsT3B0aW9ucy5zdWJqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgXCJzdWJqZWN0XCIgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMuX2dldEFjdGlvbk5hbWUoKX0uIEdvdDogJHtTdHJpbmcobWFpbE9wdGlvbnMuc3ViamVjdCl9YClcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG86IG1haWxPcHRpb25zLnRvLFxuICAgICAgc3ViamVjdDogbWFpbE9wdGlvbnMuc3ViamVjdCxcbiAgICAgIGZyb206IG1haWxPcHRpb25zLmZyb20sXG4gICAgICBjYzogbWFpbE9wdGlvbnMuY2MsXG4gICAgICBiY2M6IG1haWxPcHRpb25zLmJjYyxcbiAgICAgIHJlcGx5VG86IG1haWxPcHRpb25zLnJlcGx5VG8sXG4gICAgICBoZWFkZXJzOiBtYWlsT3B0aW9ucy5oZWFkZXJzLFxuICAgICAgaHRtbCxcbiAgICAgIG1haWxlcjogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgYWN0aW9uOiB0aGlzLl9nZXRBY3Rpb25OYW1lKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQ+fSAtIERlbGl2ZXJ5IHBheWxvYWQuXG4gICAqL1xuICBhc3luYyBfYnVpbGRQYXlsb2FkKCkge1xuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLl9yZW5kZXJWaWV3KClcblxuICAgIHJldHVybiB0aGlzLl9idWlsZFBheWxvYWRTeW5jKGh0bWwpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gLSBSZW5kZXJlZCBIVE1MLlxuICAgKi9cbiAgYXN5bmMgX3JlbmRlclZpZXcoKSB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuX2dldENvbmZpZ3VyYXRpb24oKVxuICAgIGNvbnN0IG1haWxlckRpciA9IG1haWxlckRpcmVjdG9yeU5hbWUodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuICAgIGNvbnN0IGFjdGlvbk5hbWUgPSB0aGlzLl9nZXRBY3Rpb25OYW1lKClcbiAgICBjb25zdCBmaWxlTmFtZSA9IHZpZXdGaWxlTmFtZShhY3Rpb25OYW1lKVxuICAgIGNvbnN0IHZpZXdQYXRoID0gYCR7Y29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKX0vc3JjL21haWxlcnMvJHttYWlsZXJEaXJ9LyR7ZmlsZU5hbWV9LmVqc2BcbiAgICBjb25zdCB0cmFuc2xhdGUgPSAobXNnSUQsIGFyZ3MpID0+IGNvbmZpZ3VyYXRpb24uZ2V0VHJhbnNsYXRvcigpKG1zZ0lELCBhcmdzKVxuICAgIGNvbnN0IHZpZXdQYXJhbXMgPSBpbmNvcnBvcmF0ZSh7bWFpbGVyOiB0aGlzLCBfOiB0cmFuc2xhdGV9LCB0aGlzLl92aWV3UGFyYW1zKVxuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGVqcy5yZW5kZXJGaWxlKHZpZXdQYXRoLCB2aWV3UGFyYW1zLCB7fSwgKGVyciwgc3RyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zdCBlcnJvckNvZGUgPSAvKiogQHR5cGUge3tjb2RlPzogc3RyaW5nfX0gKi8gKGVycikuY29kZVxuXG4gICAgICAgICAgaWYgKGVycm9yQ29kZSA9PT0gXCJFTk9FTlRcIikge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgTWlzc2luZyBtYWlsZXIgdmlldyBmaWxlOiAke3ZpZXdQYXRofWApKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKHN0cilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWR9IHBheWxvYWQgLSBNYWlsIGRlbGl2ZXJ5IHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgdW5rbm93bj59IC0gSGFuZGxlciByZXN1bHQuXG4gICAqL1xuICBhc3luYyBfZGVsaXZlclBheWxvYWQocGF5bG9hZCkge1xuICAgIHJldHVybiBhd2FpdCBkZWxpdmVyUGF5bG9hZChwYXlsb2FkKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWR9IHBheWxvYWQgLSBNYWlsIGRlbGl2ZXJ5IHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgbnVsbD59IC0gSm9iIGlkIG9yIHBheWxvYWQgaW4gdGVzdCBtb2RlLlxuICAgKi9cbiAgYXN5bmMgX2VucXVldWVQYXlsb2FkKHBheWxvYWQpIHtcbiAgICByZXR1cm4gYXdhaXQgZW5xdWV1ZVBheWxvYWQocGF5bG9hZClcbiAgfVxufVxuXG4vKipcbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZFtdfSAtIERlbGl2ZXJlZCBwYXlsb2Fkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGl2ZXJpZXMoKSB7XG4gIHJldHVybiBkZWxpdmVyaWVzU3RvcmUuc2xpY2UoKVxufVxuXG4vKipcbiAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRGVsaXZlcmllcygpIHtcbiAgZGVsaXZlcmllc1N0b3JlLmxlbmd0aCA9IDBcbn1cblxuLyoqXG4gKiBAcGFyYW0geyhwYXlsb2FkOiBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHVua25vd259IGhhbmRsZXIgLSBEZWxpdmVyeSBoYW5kbGVyLlxuICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVsaXZlcnlIYW5kbGVyKGhhbmRsZXIpIHtcbiAgZGVsaXZlcnlIYW5kbGVyID0gaGFuZGxlclxufVxuXG4vKipcbiAqIEByZXR1cm5zIHsocGF5bG9hZDogaW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQpID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duIHwgbnVsbH0gLSBIYW5kbGVyIG9yIG51bGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWxpdmVyeUhhbmRsZXIoKSB7XG4gIHJldHVybiBkZWxpdmVyeUhhbmRsZXJcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSBwYXlsb2FkIC0gTWFpbCBkZWxpdmVyeSBwYXlsb2FkLlxuICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5NYWlsZXJEZWxpdmVyeVBheWxvYWQgfCB1bmtub3duPn0gLSBIYW5kbGVyIHJlc3VsdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGl2ZXJQYXlsb2FkKHBheWxvYWQpIHtcbiAgaWYgKGF3YWl0IGlzVGVzdGluZ0Vudmlyb25tZW50KCkpIHtcbiAgICBkZWxpdmVyaWVzU3RvcmUucHVzaChwYXlsb2FkKVxuICAgIHJldHVybiBwYXlsb2FkXG4gIH1cblxuICBjb25zdCBjb25maWd1cmF0aW9uID0gYXdhaXQgY29uZmlndXJhdGlvblJlc29sdmVyKClcbiAgY29uc3QgYmFja2VuZCA9IGNvbmZpZ3VyYXRpb24uZ2V0TWFpbGVyQmFja2VuZCgpXG5cbiAgaWYgKGJhY2tlbmQ/LmRlbGl2ZXIpIHtcbiAgICByZXR1cm4gYXdhaXQgYmFja2VuZC5kZWxpdmVyKHtwYXlsb2FkLCBjb25maWd1cmF0aW9ufSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZXIgPSBkZWxpdmVyeUhhbmRsZXJcblxuICBpZiAoIWhhbmRsZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1haWwgZGVsaXZlcnkgaGFuZGxlciBjb25maWd1cmVkIGZvciBcIiR7cGF5bG9hZC5zdWJqZWN0fVwiIHRvIFwiJHtwYXlsb2FkLnRvfVwiYClcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBoYW5kbGVyKHBheWxvYWQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZH0gcGF5bG9hZCAtIE1haWwgZGVsaXZlcnkgcGF5bG9hZC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgbnVsbD59IC0gSm9iIGlkIG9yIHBheWxvYWQgaW4gdGVzdCBtb2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5xdWV1ZVBheWxvYWQocGF5bG9hZCkge1xuICBpZiAoYXdhaXQgaXNUZXN0aW5nRW52aXJvbm1lbnQoKSkge1xuICAgIGRlbGl2ZXJpZXNTdG9yZS5wdXNoKHBheWxvYWQpXG4gICAgcmV0dXJuIHBheWxvYWRcbiAgfVxuXG4gIGNvbnN0IHtkZWZhdWx0OiBtYWlsRGVsaXZlcnlKb2J9ID0gYXdhaXQgaW1wb3J0KFwiLi4vam9icy9tYWlsLWRlbGl2ZXJ5LmpzXCIpXG5cbiAgcmV0dXJuIGF3YWl0IG1haWxEZWxpdmVyeUpvYi5wZXJmb3JtTGF0ZXIocGF5bG9hZClcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/mailer/delivery.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAQE;;;;;OAKG;IACH,mDAJG;QAAsD,MAAM,EAApD,OAAO,WAAW,EAAE,mBAAmB;QAChB,aAAa,EAApC,OAAO,CAAC,OAAO,CAAC;QACH,UAAU,EAAvB,MAAM;KAChB,EAKA;IAjBD,sDAAsD;IACtD,QADW,OAAO,WAAW,EAAE,mBAAmB,CAC5C;IACN,+BAA+B;IAC/B,eADW,OAAO,CAAC,OAAO,CAAC,CACd;IACb,qBAAqB;IACrB,YADW,MAAM,CACP;IAcV;;OAEG;IACH,cAFa,OAAO,CAAC,OAAO,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/mailer/delivery.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAQE;;;;;OAKG;IACH,mDAJG;QAAsD,MAAM,EAApD,OAAO,WAAW,EAAE,mBAAmB;QAChB,aAAa,EAApC,OAAO,CAAC,OAAO,CAAC;QACH,UAAU,EAAvB,MAAM;KAChB,EAKA;IAjBD,sDAAsD;IACtD,QADW,OAAO,WAAW,EAAE,mBAAmB,CAC5C;IACN,+BAA+B;IAC/B,eADW,OAAO,CAAC,OAAO,CAAC,CACd;IACb,qBAAqB;IACrB,YADW,MAAM,CACP;IAcV;;OAEG;IACH,cAFa,OAAO,CAAC,OAAO,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAOzE;IAED;;OAEG;IACH,gBAFa,OAAO,CAAC,MAAM,GAAG,OAAO,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAO/E;IAED;;OAEG;IACH,gBAFa,OAAO,CAAC,MAAM,GAAG,OAAO,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAI/E;CACF"}
|
|
@@ -26,8 +26,7 @@ export default class MailerDelivery {
|
|
|
26
26
|
async deliverNow() {
|
|
27
27
|
await this.actionPromise;
|
|
28
28
|
const payload = /** @type {import("./index.js").MailerDeliveryPayload} */ (await this.mailer._buildPayload());
|
|
29
|
-
|
|
30
|
-
return await mailerClass.deliverPayload(payload);
|
|
29
|
+
return await this.mailer._deliverPayload(payload);
|
|
31
30
|
}
|
|
32
31
|
/**
|
|
33
32
|
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
@@ -35,8 +34,7 @@ export default class MailerDelivery {
|
|
|
35
34
|
async deliverLater() {
|
|
36
35
|
await this.actionPromise;
|
|
37
36
|
const payload = /** @type {import("./index.js").MailerDeliveryPayload} */ (await this.mailer._buildPayload());
|
|
38
|
-
|
|
39
|
-
return await mailerClass.enqueuePayload(payload);
|
|
37
|
+
return await this.mailer._enqueuePayload(payload);
|
|
40
38
|
}
|
|
41
39
|
/**
|
|
42
40
|
* @returns {Promise<string | import("./index.js").MailerDeliveryPayload | null>} - Job id or payload in test mode.
|
|
@@ -45,4 +43,4 @@ export default class MailerDelivery {
|
|
|
45
43
|
return await this.deliverLater();
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWFpbGVyL2RlbGl2ZXJ5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNqQyxzREFBc0Q7SUFDdEQsTUFBTSxDQUFBO0lBQ04sK0JBQStCO0lBQy9CLGFBQWEsQ0FBQTtJQUNiLHFCQUFxQjtJQUNyQixVQUFVLENBQUE7SUFFVjs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQTtRQUN4QixNQUFNLE9BQU8sR0FBRyx5REFBeUQsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO1FBRTdHLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUE7UUFDeEIsTUFBTSxPQUFPLEdBQUcseURBQXlELENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUU3RyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHJlcGFyZWQgbWFpbCBkZWxpdmVyeS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFpbGVyRGVsaXZlcnkge1xuICAvKiogQHR5cGUge2ltcG9ydChcIi4vYmFzZS5qc1wiKS5WZWxvY2lvdXNNYWlsZXJCYXNlfSAqL1xuICBtYWlsZXJcbiAgLyoqIEB0eXBlIHtQcm9taXNlPHVua25vd24+fSAqL1xuICBhY3Rpb25Qcm9taXNlXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBhY3Rpb25OYW1lXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gQ29uc3RydWN0b3IgYXJncy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuVmVsb2Npb3VzTWFpbGVyQmFzZX0gYXJncy5tYWlsZXIgLSBNYWlsZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7UHJvbWlzZTx1bmtub3duPn0gYXJncy5hY3Rpb25Qcm9taXNlIC0gQWN0aW9uIHByb21pc2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmFjdGlvbk5hbWUgLSBBY3Rpb24gbmFtZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHttYWlsZXIsIGFjdGlvblByb21pc2UsIGFjdGlvbk5hbWV9KSB7XG4gICAgdGhpcy5tYWlsZXIgPSBtYWlsZXJcbiAgICB0aGlzLmFjdGlvblByb21pc2UgPSBhY3Rpb25Qcm9taXNlXG4gICAgdGhpcy5hY3Rpb25OYW1lID0gYWN0aW9uTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgdW5rbm93bj59IC0gRGVsaXZlcmVkIHBheWxvYWQgb3IgaGFuZGxlciByZXN1bHQuXG4gICAqL1xuICBhc3luYyBkZWxpdmVyTm93KCkge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9uUHJvbWlzZVxuICAgIGNvbnN0IHBheWxvYWQgPSAvKiogQHR5cGUge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSAqLyAoYXdhaXQgdGhpcy5tYWlsZXIuX2J1aWxkUGF5bG9hZCgpKVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubWFpbGVyLl9kZWxpdmVyUGF5bG9hZChwYXlsb2FkKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgbnVsbD59IC0gSm9iIGlkIG9yIHBheWxvYWQgaW4gdGVzdCBtb2RlLlxuICAgKi9cbiAgYXN5bmMgZGVsaXZlckxhdGVyKCkge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9uUHJvbWlzZVxuICAgIGNvbnN0IHBheWxvYWQgPSAvKiogQHR5cGUge2ltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkfSAqLyAoYXdhaXQgdGhpcy5tYWlsZXIuX2J1aWxkUGF5bG9hZCgpKVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubWFpbGVyLl9lbnF1ZXVlUGF5bG9hZChwYXlsb2FkKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IGltcG9ydChcIi4vaW5kZXguanNcIikuTWFpbGVyRGVsaXZlcnlQYXlsb2FkIHwgbnVsbD59IC0gSm9iIGlkIG9yIHBheWxvYWQgaW4gdGVzdCBtb2RlLlxuICAgKi9cbiAgYXN5bmMgZGVsaXZlckxhdmVyKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlbGl2ZXJMYXRlcigpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export default VelociousMailer;
|
|
1
|
+
export default VelociousMailerBase;
|
|
3
2
|
export type MailerDeliveryPayload = {
|
|
4
3
|
to: any;
|
|
5
4
|
subject: string;
|
|
@@ -13,5 +12,11 @@ export type MailerDeliveryPayload = {
|
|
|
13
12
|
action: string;
|
|
14
13
|
};
|
|
15
14
|
import { VelociousMailerBase } from "./base.js";
|
|
16
|
-
|
|
15
|
+
import { clearDeliveries } from "./base.js";
|
|
16
|
+
import { deliverPayload } from "./base.js";
|
|
17
|
+
import { deliveries } from "./base.js";
|
|
18
|
+
import { enqueuePayload } from "./base.js";
|
|
19
|
+
import { getDeliveryHandler } from "./base.js";
|
|
20
|
+
import { setDeliveryHandler } from "./base.js";
|
|
21
|
+
export { VelociousMailerBase, clearDeliveries, deliverPayload, deliveries, enqueuePayload, getDeliveryHandler, setDeliveryHandler };
|
|
17
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mailer/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mailer/index.js"],"names":[],"mappings":";oCAEc;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC;oCAUjK,WAAW;gCAAX,WAAW;+BAAX,WAAW;2BAAX,WAAW;+BAAX,WAAW;mCAAX,WAAW;mCAAX,WAAW"}
|