@antelopejs/dms-mailing 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/db/models/sends.model.d.ts +3 -1
- package/dist/db/models/sends.model.js +26 -2
- package/dist/db/models/sends.model.js.map +1 -1
- package/dist/db/tables/settings.table.d.ts +1 -0
- package/dist/db/tables/settings.table.js +4 -0
- package/dist/db/tables/settings.table.js.map +1 -1
- package/dist/hooks/tenant-export.d.ts +1 -1
- package/dist/hooks/tenant-export.js.map +1 -1
- package/dist/implementations/dms-mailing/index.d.ts +1 -0
- package/dist/implementations/dms-mailing/index.js +3 -1
- package/dist/implementations/dms-mailing/index.js.map +1 -1
- package/dist/pages/sends.js.map +1 -1
- package/dist/routes/metrics.js +1 -2
- package/dist/routes/metrics.js.map +1 -1
- package/dist/routes/settings.d.ts +3 -2
- package/dist/routes/settings.js +8 -4
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/templates.js +2 -2
- package/dist/routes/templates.js.map +1 -1
- package/dist/services/attention.d.ts +1 -1
- package/dist/services/attention.js +3 -3
- package/dist/services/attention.js.map +1 -1
- package/dist/services/metrics.js +5 -1
- package/dist/services/metrics.js.map +1 -1
- package/dist/services/send-import.js +4 -4
- package/dist/services/send-import.js.map +1 -1
- package/dist/services/settings.d.ts +2 -1
- package/dist/services/settings.js +19 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/services/template-attention.d.ts +1 -1
- package/dist/services/template-attention.js +2 -4
- package/dist/services/template-attention.js.map +1 -1
- package/dist/services/webhook-secret-declaration.d.ts +4 -0
- package/dist/services/webhook-secret-declaration.js +25 -0
- package/dist/services/webhook-secret-declaration.js.map +1 -0
- package/dist/services/webhook-status.js +7 -2
- package/dist/services/webhook-status.js.map +1 -1
- package/dist/types/settings.d.ts +3 -0
- package/dist/types/settings.js +6 -1
- package/dist/types/settings.js.map +1 -1
- package/dist/validation/declarations.schema.d.ts +13 -0
- package/dist/validation/declarations.schema.js +6 -1
- package/dist/validation/declarations.schema.js.map +1 -1
- package/frontend-vue/app/components/editor/EditorCanvas.vue +8 -4
- package/frontend-vue/app/composables/useSortableList.ts +2 -2
- package/frontend-vue/package.json +37 -36
- package/frontend-vue/pnpm-lock.yaml +25 -5
- package/frontend-vue/tests/editor-canvas.test.ts +142 -0
- package/frontend-vue/tests/sortable-list.test-d.ts +19 -0
- package/frontend-vue/tsconfig.typecheck.json +11 -0
- package/frontend-vue/vitest.config.ts +16 -0
- package/package.json +5 -5
- package/skills/dms-mailing/SKILL.md +2 -0
- package/src/db/models/sends.model.ts +34 -4
- package/src/db/tables/settings.table.ts +4 -0
- package/src/hooks/tenant-export.ts +4 -1
- package/src/implementations/dms-mailing/index.ts +1 -0
- package/src/pages/sends.ts +3 -2
- package/src/routes/metrics.ts +1 -2
- package/src/routes/settings.ts +19 -7
- package/src/routes/templates.ts +6 -7
- package/src/services/attention.ts +6 -6
- package/src/services/metrics.ts +3 -1
- package/src/services/send-import.ts +10 -8
- package/src/services/settings.ts +40 -2
- package/src/services/template-attention.ts +4 -5
- package/src/services/webhook-secret-declaration.ts +47 -0
- package/src/services/webhook-status.ts +9 -5
- package/src/types/settings.ts +14 -0
- package/src/validation/declarations.schema.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":";;;AAiBA,oCAEC;AAKD,4CAEC;AAED,kCAKC;AAgGD,8BAqBC;AAOD,oCAQC;AAaD,kDAOC;AA0CD,kCASC;AAOD,kCAQC;AAMD,kCAQC;AAED,4BAEC;AAED,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,8 +99,10 @@ async function templatesOf(tenantId, sends) {
|
|
|
99
99
|
}
|
|
100
100
|
async function importOne(tenantId, send, template, fallbackLocale) {
|
|
101
101
|
const id = importedSendIdOf(tenantId, send.importId);
|
|
102
|
-
const sends = (0, interface_database_decorators_1.GetModel)(db_1.SendModel, tenantId);
|
|
103
102
|
const timeline = timelineOf(send);
|
|
103
|
+
const locale = send.locale ?? fallbackLocale;
|
|
104
|
+
const row = sendRow(id, send, template, locale, foldEvents(send, timeline));
|
|
105
|
+
const isImported = await (0, interface_database_decorators_1.GetModel)(db_1.SendModel, tenantId).insertImported(row);
|
|
104
106
|
const events = (0, interface_database_decorators_1.GetModel)(db_1.SendEventModel, tenantId);
|
|
105
107
|
for (const [index, entry] of timeline.entries()) {
|
|
106
108
|
await events.insertImported({
|
|
@@ -111,9 +113,7 @@ async function importOne(tenantId, send, template, fallbackLocale) {
|
|
|
111
113
|
json_details: JSON.stringify(entry.details ?? {}),
|
|
112
114
|
});
|
|
113
115
|
}
|
|
114
|
-
|
|
115
|
-
const row = sendRow(id, send, template, locale, foldEvents(send, timeline));
|
|
116
|
-
return { id, isImported: await sends.insertImported(row) };
|
|
116
|
+
return { id, isImported };
|
|
117
117
|
}
|
|
118
118
|
async function importSends(input) {
|
|
119
119
|
const { tenantId, sends } = (0, declaration_error_1.parseDeclared)(declarations_schema_1.sendImportSchema, input, "invalid_import", "send import");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-import.js","sourceRoot":"","sources":["../../src/services/send-import.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"send-import.js","sourceRoot":"","sources":["../../src/services/send-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type MailingSettingsValues, type TemplateCategory } from "../types";
|
|
1
|
+
import { type MailingSettingsValues, type TemplateCategory, type WebhookSecretSource } from "../types";
|
|
2
2
|
import type { JsonObject } from "../types/json";
|
|
3
3
|
import type { SettingsPatch } from "../validation/settings.schema";
|
|
4
4
|
export declare const WEBHOOK_SECRET_BYTES = 24;
|
|
5
5
|
export declare function findSettings(tenantId: string): Promise<MailingSettingsValues | undefined>;
|
|
6
6
|
export declare function getSettings(tenantId: string): Promise<MailingSettingsValues>;
|
|
7
7
|
export declare function saveSettings(tenantId: string, values: MailingSettingsValues): Promise<MailingSettingsValues>;
|
|
8
|
+
export declare function saveWebhookSecret(tenantId: string, webhookSecret: string, webhookSecretSource: WebhookSecretSource): Promise<void>;
|
|
8
9
|
export declare function findCategory(categories: TemplateCategory[], id: string): TemplateCategory | undefined;
|
|
9
10
|
export type MissingVariablesPolicy = "refuse" | "send";
|
|
10
11
|
export declare function missingVariablesPolicy(values: Pick<MailingSettingsValues, "blockOnMissingVariables">): MissingVariablesPolicy;
|
|
@@ -4,6 +4,7 @@ exports.WEBHOOK_SECRET_BYTES = void 0;
|
|
|
4
4
|
exports.findSettings = findSettings;
|
|
5
5
|
exports.getSettings = getSettings;
|
|
6
6
|
exports.saveSettings = saveSettings;
|
|
7
|
+
exports.saveWebhookSecret = saveWebhookSecret;
|
|
7
8
|
exports.findCategory = findCategory;
|
|
8
9
|
exports.missingVariablesPolicy = missingVariablesPolicy;
|
|
9
10
|
exports.clearedToEmpty = clearedToEmpty;
|
|
@@ -13,6 +14,8 @@ const interface_database_decorators_1 = require("@antelopejs/interface-database-
|
|
|
13
14
|
const db_1 = require("../db");
|
|
14
15
|
const types_1 = require("../types");
|
|
15
16
|
exports.WEBHOOK_SECRET_BYTES = 24;
|
|
17
|
+
const GENERATED_SECRET = "generated";
|
|
18
|
+
const OPERATOR_SECRET = "operator";
|
|
16
19
|
function defaults() {
|
|
17
20
|
return {
|
|
18
21
|
...types_1.MODULE_DEFAULT_SETTINGS,
|
|
@@ -20,8 +23,13 @@ function defaults() {
|
|
|
20
23
|
senderEmail: "",
|
|
21
24
|
replyTo: "",
|
|
22
25
|
webhookSecret: (0, node_crypto_1.randomBytes)(exports.WEBHOOK_SECRET_BYTES).toString("hex"),
|
|
26
|
+
webhookSecretSource: GENERATED_SECRET,
|
|
23
27
|
};
|
|
24
28
|
}
|
|
29
|
+
function storedSecretSource(stored) {
|
|
30
|
+
return (types_1.WEBHOOK_SECRET_SOURCES.find((source) => source === stored) ??
|
|
31
|
+
OPERATOR_SECRET);
|
|
32
|
+
}
|
|
25
33
|
function toValues(row) {
|
|
26
34
|
return {
|
|
27
35
|
fallbackLocale: row.fallbackLocale,
|
|
@@ -31,6 +39,7 @@ function toValues(row) {
|
|
|
31
39
|
senderEmail: row.senderEmail,
|
|
32
40
|
replyTo: row.replyTo,
|
|
33
41
|
webhookSecret: row.webhookSecret,
|
|
42
|
+
webhookSecretSource: storedSecretSource(row.webhookSecretSource),
|
|
34
43
|
categories: JSON.parse(row.json_categories),
|
|
35
44
|
};
|
|
36
45
|
}
|
|
@@ -73,6 +82,12 @@ async function saveSettings(tenantId, values) {
|
|
|
73
82
|
await model.update(tenantId, toRow(values));
|
|
74
83
|
return values;
|
|
75
84
|
}
|
|
85
|
+
async function saveWebhookSecret(tenantId, webhookSecret, webhookSecretSource) {
|
|
86
|
+
await (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId).update(tenantId, {
|
|
87
|
+
webhookSecret,
|
|
88
|
+
webhookSecretSource,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
76
91
|
function findCategory(categories, id) {
|
|
77
92
|
return categories.find((category) => category.id === id);
|
|
78
93
|
}
|
|
@@ -91,6 +106,9 @@ function mergeSettingsPatch(current, patch) {
|
|
|
91
106
|
const guard = isChoice && !("blockOnMissingVariables" in patch)
|
|
92
107
|
? { blockOnMissingVariables: policy === REFUSE_POLICY }
|
|
93
108
|
: {};
|
|
94
|
-
|
|
109
|
+
const merged = { ...current, ...written, ...guard };
|
|
110
|
+
return merged.webhookSecret === current.webhookSecret
|
|
111
|
+
? merged
|
|
112
|
+
: { ...merged, webhookSecretSource: OPERATOR_SECRET };
|
|
95
113
|
}
|
|
96
114
|
//# sourceMappingURL=settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type MailingTemplate } from "../db";
|
|
2
|
-
import {
|
|
2
|
+
import type { TemplateAttentionReason } from "../types";
|
|
3
3
|
export declare function refreshTemplateAttention(tenantId: string): Promise<void>;
|
|
4
4
|
export declare function refreshAttentionIfFlagged(tenantId: string, template: Pick<MailingTemplate, "attention">, reason: TemplateAttentionReason): Promise<void>;
|
|
@@ -4,7 +4,6 @@ exports.refreshTemplateAttention = refreshTemplateAttention;
|
|
|
4
4
|
exports.refreshAttentionIfFlagged = refreshAttentionIfFlagged;
|
|
5
5
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
6
6
|
const db_1 = require("../db");
|
|
7
|
-
const types_1 = require("../types");
|
|
8
7
|
const attention_1 = require("./attention");
|
|
9
8
|
const metrics_1 = require("./metrics");
|
|
10
9
|
const REASON_SEPARATOR = ",";
|
|
@@ -16,11 +15,10 @@ function attentionFields(reasons) {
|
|
|
16
15
|
}
|
|
17
16
|
async function attentionContext(tenantId, templates) {
|
|
18
17
|
const now = Date.now();
|
|
19
|
-
const
|
|
20
|
-
const real = (0, metrics_1.forAudience)(sends, types_1.BUSINESS_AUDIENCE);
|
|
18
|
+
const slugs = await (0, interface_database_decorators_1.GetModel)(db_1.SendModel, tenantId).listSentSlugs((0, metrics_1.statsWindowStart)(now), new Date(now));
|
|
21
19
|
return {
|
|
22
20
|
now,
|
|
23
|
-
sentSlugs: new Set(
|
|
21
|
+
sentSlugs: new Set(slugs),
|
|
24
22
|
knownLocales: (0, attention_1.knownLocalesOf)(templates),
|
|
25
23
|
};
|
|
26
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-attention.js","sourceRoot":"","sources":["../../src/services/template-attention.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"template-attention.js","sourceRoot":"","sources":["../../src/services/template-attention.ts"],"names":[],"mappings":";;AAiDA,4DAiBC;AAOD,8DAOC;AAhFD,6FAAqE;AACrE,8BAKe;AAEf,2CAIqB;AACrB,uCAA6C;AAG7C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAG7B,SAAS,eAAe,CACtB,OAAkC;IAElC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,cAAc,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,SAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,IAAA,wCAAQ,EAAC,cAAS,EAAE,QAAQ,CAAC,CAAC,aAAa,CAC7D,IAAA,0BAAgB,EAAC,GAAG,CAAC,EACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CACd,CAAC;IACF,OAAO;QACL,GAAG;QACH,SAAS,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;QACzB,YAAY,EAAE,IAAA,0BAAc,EAAC,SAAS,CAAC;KACxC,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,wBAAwB,CAC5C,QAAgB;IAEhB,MAAM,KAAK,GAAG,IAAA,wCAAQ,EAAC,kBAAa,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS;SACtB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClB,QAAQ;QACR,MAAM,EAAE,eAAe,CAAC,IAAA,oCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACrE,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CACnC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,QAA4C,EAC5C,MAA+B;IAE/B,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DeclareWebhookSecretResult, WebhookSecretDeclaration, WebhookSecretOutcome } from "@antelopejs/interface-dms-mailing";
|
|
2
|
+
import type { MailingSettingsValues } from "../types";
|
|
3
|
+
export declare function webhookSecretOutcome(stored: Pick<MailingSettingsValues, "webhookSecret" | "webhookSecretSource">, secret: string, replaceRotated: boolean): WebhookSecretOutcome;
|
|
4
|
+
export declare function declareWebhookSecret(input: WebhookSecretDeclaration): Promise<DeclareWebhookSecretResult>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.webhookSecretOutcome = webhookSecretOutcome;
|
|
4
|
+
exports.declareWebhookSecret = declareWebhookSecret;
|
|
5
|
+
const declarations_schema_1 = require("../validation/declarations.schema");
|
|
6
|
+
const declaration_error_1 = require("./declaration-error");
|
|
7
|
+
const events_1 = require("./events");
|
|
8
|
+
const settings_1 = require("./settings");
|
|
9
|
+
const SET = "set";
|
|
10
|
+
function webhookSecretOutcome(stored, secret, replaceRotated) {
|
|
11
|
+
if ((0, events_1.webhookSecretMatches)(secret, stored.webhookSecret))
|
|
12
|
+
return "unchanged";
|
|
13
|
+
if (stored.webhookSecretSource === "operator" && !replaceRotated)
|
|
14
|
+
return "kept";
|
|
15
|
+
return SET;
|
|
16
|
+
}
|
|
17
|
+
async function declareWebhookSecret(input) {
|
|
18
|
+
const { tenantId, secret, replaceRotated } = (0, declaration_error_1.parseDeclared)(declarations_schema_1.webhookSecretDeclarationSchema, input, "invalid_webhook_secret", "webhook secret declaration");
|
|
19
|
+
const stored = await (0, settings_1.getSettings)(tenantId);
|
|
20
|
+
const outcome = webhookSecretOutcome(stored, secret, replaceRotated);
|
|
21
|
+
if (outcome === SET)
|
|
22
|
+
await (0, settings_1.saveWebhookSecret)(tenantId, secret, "declared");
|
|
23
|
+
return { outcome };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=webhook-secret-declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-secret-declaration.js","sourceRoot":"","sources":["../../src/services/webhook-secret-declaration.ts"],"names":[],"mappings":";;AAkBA,oDASC;AAMD,oDAaC;AAxCD,2EAAmF;AACnF,2DAAoD;AACpD,qCAAgD;AAChD,yCAA4D;AAE5D,MAAM,GAAG,GAAyB,KAAK,CAAC;AAOxC,SAAgB,oBAAoB,CAClC,MAA4E,EAC5E,MAAc,EACd,cAAuB;IAEvB,IAAI,IAAA,6BAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3E,IAAI,MAAM,CAAC,mBAAmB,KAAK,UAAU,IAAI,CAAC,cAAc;QAC9D,OAAO,MAAM,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAMM,KAAK,UAAU,oBAAoB,CACxC,KAA+B;IAE/B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,iCAAa,EACxD,oDAA8B,EAC9B,KAAK,EACL,wBAAwB,EACxB,4BAA4B,CAC7B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAW,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,GAAG;QAAE,MAAM,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3E,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -87,10 +87,15 @@ function toWebhookStatus(row) {
|
|
|
87
87
|
async function readWebhookStatus(tenantId) {
|
|
88
88
|
return toWebhookStatus(await (0, interface_database_decorators_1.GetModel)(db_1.WebhookStatusModel, tenantId).get(tenantId));
|
|
89
89
|
}
|
|
90
|
+
function isWebhookRefusal(value) {
|
|
91
|
+
return (0, guards_1.isText)(value) && Object.hasOwn(exports.WEBHOOK_REFUSAL_MESSAGES, value);
|
|
92
|
+
}
|
|
90
93
|
async function refusalOf(response) {
|
|
91
94
|
try {
|
|
92
|
-
const body =
|
|
93
|
-
return body.reason
|
|
95
|
+
const body = await response.json();
|
|
96
|
+
return (0, guards_1.isObject)(body) && isWebhookRefusal(body.reason)
|
|
97
|
+
? body.reason
|
|
98
|
+
: undefined;
|
|
94
99
|
}
|
|
95
100
|
catch {
|
|
96
101
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-status.js","sourceRoot":"","sources":["../../src/services/webhook-status.ts"],"names":[],"mappings":";;;AAuDA,kCAMC;AAGD,sCAMC;AAED,gDAEC;AAcD,kDAWC;AAGD,gDAUC;AAED,0CAsBC;AAED,8CAMC;
|
|
1
|
+
{"version":3,"file":"webhook-status.js","sourceRoot":"","sources":["../../src/services/webhook-status.ts"],"names":[],"mappings":";;;AAuDA,kCAMC;AAGD,sCAMC;AAED,gDAEC;AAcD,kDAWC;AAGD,gDAUC;AAED,0CAsBC;AAED,8CAMC;AAwBD,0CA0CC;AAlND,gEAA6D;AAC7D,6FAAqE;AACrE,8BAAsE;AAOtE,iDAAwD;AACxD,qCAAgD;AAChD,4CAAqD;AAE5C,sGAFA,iCAAqB,OAEA;AAGjB,QAAA,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,uBAAuB,GAAkB,WAAW,CAAC;AAC3D,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAGhC,QAAA,wBAAwB,GAAmC;IACtE,cAAc,EAAE,OAAO,iCAAqB,+FAA+F;IAC3I,UAAU,EAAE,OAAO,iCAAqB,+IAA+I;IACvL,aAAa,EACX,yEAAyE;CAC5E,CAAC;AA2BF,SAAgB,WAAW,CAAC,MAAsB;IAChD,OAAO;QACL,KAAK,EAAE,iBAAiB;QACxB,MAAM;QACN,OAAO,EAAE,gCAAwB,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AAGD,SAAgB,aAAa,CAC3B,QAA4B,EAC5B,MAA0B;IAE1B,IAAI,CAAC,QAAQ;QAAE,OAAO,gBAAgB,CAAC;IACvC,OAAO,IAAA,6BAAoB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;AACtE,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO,SAAS,KAAK,+BAAuB,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,KAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,IAAA,wCAAQ,EAAC,uBAAkB,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAGD,SAAgB,mBAAmB,CACjC,QAAgB,EAChB,OAAmC;IAEnC,OAAO,WAAW,CAAC,QAAQ,EAAE;QAC3B,UAAU,EAAE,IAAI,IAAI,EAAE;QACtB,gBAAgB,EAAE,OAAO,CAAC,QAAQ;QAClC,YAAY,EAAE,OAAO,CAAC,IAAI;QAC1B,iBAAiB,EAAE,OAAO,CAAC,SAAS;QACpC,cAAc,EAAE,OAAO,CAAC,MAAM;KAC/B,CAAC,CAAC;AACL,CAAC;AAGD,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,QAAgB,EAChB,MAAsB;IAEtB,OAAO,WAAW,CAAC,QAAQ,EAAE;QAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,eAAe,EAAE,QAAQ;QACzB,aAAa,EAAE,MAAM;KACtB,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,eAAe,CAC7B,GAAqC;IAErC,OAAO;QACL,YAAY,EAAE,GAAG,EAAE,UAAU;YAC3B,CAAC,CAAC;gBACE,EAAE,EAAE,GAAG,CAAC,UAAU;gBAClB,QAAQ,EAAE,GAAG,CAAC,gBAAgB,IAAI,EAAE;gBACpC,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;gBAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB;gBAClC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc;aAC7B;YACH,CAAC,CAAC,IAAI;QACR,WAAW,EACT,GAAG,EAAE,SAAS,IAAI,GAAG,CAAC,aAAa;YACjC,CAAC,CAAC;gBACE,EAAE,EAAE,GAAG,CAAC,SAAS;gBACjB,QAAQ,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE;gBACnC,MAAM,EAAE,GAAG,CAAC,aAAa;aAC1B;YACH,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,QAAgB;IAEhB,OAAO,eAAe,CACpB,MAAM,IAAA,wCAAQ,EAAC,uBAAkB,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,gCAAwB,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAGD,KAAK,UAAU,SAAS,CACtB,QAAkB;IAElB,IAAI,CAAC;QACH,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,MAAc,EACd,UAAwB,KAAK;IAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,iBAAiB;gBACjC,CAAC,iCAAqB,CAAC,EAAE,MAAM;aAChC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,+BAAuB;gBAClC,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACxB,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC;SACrD,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,GAAG;YACH,UAAU,EAAE,OAAO,EAAE;YACrB,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC;SAC7D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,YAAY,GAChB,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,GAAG;YACH,UAAU,EAAE,OAAO,EAAE;YACrB,YAAY,EACV,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC;gBACjC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACpB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export interface CategoryInLocale {
|
|
|
9
9
|
label: string;
|
|
10
10
|
icon: string;
|
|
11
11
|
}
|
|
12
|
+
export declare const WEBHOOK_SECRET_SOURCES: readonly ["generated", "declared", "operator"];
|
|
13
|
+
export type WebhookSecretSource = (typeof WEBHOOK_SECRET_SOURCES)[number];
|
|
12
14
|
export interface MailingSettingsValues {
|
|
13
15
|
fallbackLocale: string;
|
|
14
16
|
logRetentionDays: number;
|
|
@@ -17,6 +19,7 @@ export interface MailingSettingsValues {
|
|
|
17
19
|
senderEmail: string;
|
|
18
20
|
replyTo: string;
|
|
19
21
|
webhookSecret: string;
|
|
22
|
+
webhookSecretSource: WebhookSecretSource;
|
|
20
23
|
categories: TemplateCategory[];
|
|
21
24
|
}
|
|
22
25
|
export declare const DEFAULT_CATEGORIES: TemplateCategory[];
|
package/dist/types/settings.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MODULE_DEFAULT_SETTINGS = exports.DEFAULT_FALLBACK_LOCALE = exports.DEFAULT_CATEGORIES = void 0;
|
|
3
|
+
exports.MODULE_DEFAULT_SETTINGS = exports.DEFAULT_FALLBACK_LOCALE = exports.DEFAULT_CATEGORIES = exports.WEBHOOK_SECRET_SOURCES = void 0;
|
|
4
|
+
exports.WEBHOOK_SECRET_SOURCES = [
|
|
5
|
+
"generated",
|
|
6
|
+
"declared",
|
|
7
|
+
"operator",
|
|
8
|
+
];
|
|
4
9
|
exports.DEFAULT_CATEGORIES = [
|
|
5
10
|
{
|
|
6
11
|
id: "orders",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":";;;AAqBa,QAAA,sBAAsB,GAAG;IACpC,WAAW;IACX,UAAU;IACV,UAAU;CACF,CAAC;AAgBE,QAAA,kBAAkB,GAAuB;IACpD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACxC,IAAI,EAAE,cAAc;KACrB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE;QACxD,IAAI,EAAE,WAAW;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE;QAC3C,IAAI,EAAE,gBAAgB;KACvB;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;QAC3C,IAAI,EAAE,cAAc;KACrB;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;QACzC,IAAI,EAAE,cAAc;KACrB;CACF,CAAC;AAEW,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAO/B,QAAA,uBAAuB,GAMhC;IACF,cAAc,EAAE,+BAAuB;IACvC,gBAAgB,EAAE,EAAE;IACpB,uBAAuB,EAAE,KAAK;IAC9B,UAAU,EAAE,0BAAkB;CAC/B,CAAC"}
|
|
@@ -122,6 +122,19 @@ export declare const senderDeclarationSchema: z.ZodObject<{
|
|
|
122
122
|
replyTo?: string | undefined;
|
|
123
123
|
}>;
|
|
124
124
|
export type ParsedSenderDeclaration = z.infer<typeof senderDeclarationSchema>;
|
|
125
|
+
export declare const webhookSecretDeclarationSchema: z.ZodObject<{
|
|
126
|
+
tenantId: z.ZodString;
|
|
127
|
+
secret: z.ZodString;
|
|
128
|
+
replaceRotated: z.ZodDefault<z.ZodBoolean>;
|
|
129
|
+
}, "strip", z.ZodTypeAny, {
|
|
130
|
+
tenantId: string;
|
|
131
|
+
secret: string;
|
|
132
|
+
replaceRotated: boolean;
|
|
133
|
+
}, {
|
|
134
|
+
tenantId: string;
|
|
135
|
+
secret: string;
|
|
136
|
+
replaceRotated?: boolean | undefined;
|
|
137
|
+
}>;
|
|
125
138
|
declare const importedSendSchema: z.ZodObject<{
|
|
126
139
|
importId: z.ZodString;
|
|
127
140
|
templateSlug: z.ZodString;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendImportSchema = exports.senderDeclarationSchema = exports.categoryDeclarationSchema = exports.templateDeclarationSchema = exports.localizedTextSchema = void 0;
|
|
3
|
+
exports.sendImportSchema = exports.webhookSecretDeclarationSchema = exports.senderDeclarationSchema = exports.categoryDeclarationSchema = exports.templateDeclarationSchema = exports.localizedTextSchema = void 0;
|
|
4
4
|
const interface_dms_mailing_1 = require("@antelopejs/interface-dms-mailing");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const constants_1 = require("../constants");
|
|
@@ -37,6 +37,11 @@ exports.senderDeclarationSchema = zod_1.z.object({
|
|
|
37
37
|
name: settings_schema_1.settingsSchema.shape.senderName.default(""),
|
|
38
38
|
replyTo: settings_schema_1.settingsSchema.shape.replyTo.default(""),
|
|
39
39
|
});
|
|
40
|
+
exports.webhookSecretDeclarationSchema = zod_1.z.object({
|
|
41
|
+
tenantId: tenantIdSchema,
|
|
42
|
+
secret: settings_schema_1.settingsSchema.shape.webhookSecret,
|
|
43
|
+
replaceRotated: zod_1.z.boolean().default(false),
|
|
44
|
+
});
|
|
40
45
|
const recipientSchema = zod_1.z.union([
|
|
41
46
|
zod_1.z.string().trim().email(),
|
|
42
47
|
zod_1.z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarations.schema.js","sourceRoot":"","sources":["../../src/validation/declarations.schema.ts"],"names":[],"mappings":";;;AAAA,6EAAmF;AACnF,6BAAwB;AACxB,4CAA+C;AAC/C,qEAA+D;AAC/D,uDAAmE;AACnE,yDAI4B;AAC5B,+CAAiD;AAEjD,MAAM,iBAAiB,GAAG,2BAAe,CAAC;AAC1C,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAOnC,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAAe,CAAC,CAAC;KACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sDAA8B,CAAC,CAAC,EAAE;IAC/D,OAAO,EAAE,cAAc,sDAA8B,eAAe;CACrE,CAAC,CAAC;AAMQ,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,6BAAU;IAChB,IAAI,EAAE,2BAAmB;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC,OAAO,EAAE,wCAAqB;IAC9B,SAAS,EAAE,qCAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,8BAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC,CAAC;AAMU,QAAA,yBAAyB,GAAG,gCAAc,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,2BAAmB;CAC3B,CAAC,CAAC;AAMH,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAG1C,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,gCAAc,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAC1C,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CACnC;IACD,IAAI,EAAE,gCAAc,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,gCAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CAClD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"declarations.schema.js","sourceRoot":"","sources":["../../src/validation/declarations.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,9 @@ const SCROLL_OPTIONS: ScrollIntoViewOptions = {
|
|
|
20
20
|
|
|
21
21
|
/** The DMS app config the e-mail logo is read from. */
|
|
22
22
|
interface EmailBrandingConfig {
|
|
23
|
-
branding?: {
|
|
23
|
+
branding?: {
|
|
24
|
+
logo?: { default?: { light?: string }; email?: { light?: string } }
|
|
25
|
+
}
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
const { t } = useI18n()
|
|
@@ -28,11 +30,13 @@ const { editor, session } = useEditorContext()
|
|
|
28
30
|
useEditorAnnouncements(editor)
|
|
29
31
|
|
|
30
32
|
/**
|
|
31
|
-
* The logo header the sent e-mail carries, when it can carry one: the
|
|
32
|
-
* `EmailLayout` runs with `publicLogoOnly`.
|
|
33
|
+
* The logo header the sent e-mail carries, when it can carry one: the choice
|
|
34
|
+
* and the check `EmailLayout` runs with `publicLogoOnly`. The paper is white,
|
|
35
|
+
* so the dark-mode logo never applies.
|
|
33
36
|
*/
|
|
37
|
+
const logo = (useDmsAppConfig() as EmailBrandingConfig).branding?.logo
|
|
34
38
|
const logoUrl = emailLogoUrl(
|
|
35
|
-
|
|
39
|
+
logo?.email?.light || logo?.default?.light,
|
|
36
40
|
useDmsRuntimeConfig().public.dms?.clientBaseUrl ?? '',
|
|
37
41
|
)
|
|
38
42
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useSortable } from '@vueuse/integrations/useSortable'
|
|
2
|
-
import { toValue, watch, type MaybeRefOrGetter, type Ref } from 'vue'
|
|
2
|
+
import { toRef, toValue, watch, type MaybeRefOrGetter, type Ref } from 'vue'
|
|
3
3
|
|
|
4
4
|
/** What a drop did to a list, as vuedraggable's `change` event said it. */
|
|
5
5
|
export interface SortableListChange<Item> {
|
|
@@ -95,7 +95,7 @@ export function useSortableList<Item>(
|
|
|
95
95
|
if (origin) origin.parent.insertBefore(item, origin.next)
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
const { option } = useSortable(root, list, {
|
|
98
|
+
const { option } = useSortable(root, toRef(list), {
|
|
99
99
|
...defined({
|
|
100
100
|
group: options.group,
|
|
101
101
|
handle: options.handle,
|
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
2
|
+
"name": "@antelopejs/dms-mailing-frontend-vue",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"packageManager": "pnpm@10.2.0",
|
|
8
|
+
"engines": {
|
|
9
|
+
"@antelopejs/dms-frontend": ">=0.10.0 <0.11.0"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"format": "prettier --write .",
|
|
13
|
+
"lint": "eslint . && node --input-type=module -e \"import { assertApiErrorPresentation } from '@antelopejs/dms/checks/api-error-presentation'; assertApiErrorPresentation(['app']);\"",
|
|
14
|
+
"lint:fix": "eslint . --fix",
|
|
15
|
+
"test": "vitest run"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@vueuse/core": "^14.3.0",
|
|
19
|
+
"@vueuse/integrations": "^14.3.0",
|
|
20
|
+
"sortablejs": "^1.14.0",
|
|
21
|
+
"vue": "^3.5.18"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@antelopejs/tooling-configs": "^0.3.3",
|
|
25
|
+
"@nuxt/ui": "4.10.0",
|
|
26
|
+
"@types/sortablejs": "^1.15.9",
|
|
27
|
+
"@vitejs/plugin-vue": "^6.0.0",
|
|
28
|
+
"@vitest/runner": "^4.1.5",
|
|
29
|
+
"eslint": "^9.0.0",
|
|
30
|
+
"eslint-plugin-vue": "^10.0.0",
|
|
31
|
+
"typescript-eslint": "^8.0.0",
|
|
32
|
+
"vite": "^8.2.2",
|
|
33
|
+
"jsdom": "^26",
|
|
34
|
+
"prettier": "^3.5.3",
|
|
35
|
+
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
36
|
+
"typescript": "^5.9.3",
|
|
37
|
+
"vitest": "^4.1.5"
|
|
38
|
+
}
|
|
38
39
|
}
|
|
@@ -22,11 +22,14 @@ importers:
|
|
|
22
22
|
version: 3.5.42(typescript@5.9.3)
|
|
23
23
|
devDependencies:
|
|
24
24
|
'@antelopejs/tooling-configs':
|
|
25
|
-
specifier: ^0.
|
|
26
|
-
version: 0.
|
|
25
|
+
specifier: ^0.3.3
|
|
26
|
+
version: 0.3.3
|
|
27
27
|
'@nuxt/ui':
|
|
28
28
|
specifier: 4.10.0
|
|
29
29
|
version: 4.10.0(9bdbb06d8a0b4accef61070adc217622)
|
|
30
|
+
'@types/sortablejs':
|
|
31
|
+
specifier: ^1.15.9
|
|
32
|
+
version: 1.15.9
|
|
30
33
|
'@vitejs/plugin-vue':
|
|
31
34
|
specifier: ^6.0.0
|
|
32
35
|
version: 6.0.9(vite@8.2.2(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))
|
|
@@ -67,16 +70,20 @@ packages:
|
|
|
67
70
|
resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==}
|
|
68
71
|
engines: {node: '>=10'}
|
|
69
72
|
|
|
70
|
-
'@antelopejs/tooling-configs@0.
|
|
71
|
-
resolution: {integrity: sha512-
|
|
73
|
+
'@antelopejs/tooling-configs@0.3.3':
|
|
74
|
+
resolution: {integrity: sha512-jQ09zavCF5MMQtfyd8YOqpoxV6l6bp3m9tA5iN0z0XhQpVHM5VWr53yEuQ6Mc+1tseBW85N94ruP4TEfiGg8iQ==}
|
|
72
75
|
engines: {node: '>=22.18.0'}
|
|
73
76
|
hasBin: true
|
|
74
77
|
peerDependencies:
|
|
75
78
|
'@nuxt/eslint-config': '>=1.2.0'
|
|
76
79
|
eslint-plugin-perfectionist: '>=5.0.0'
|
|
77
80
|
knip: '>=6.0.0'
|
|
81
|
+
mongodb-memory-server: '>=10.0.0'
|
|
78
82
|
oxfmt: ^0.66.0
|
|
79
83
|
oxlint: 1.81.0
|
|
84
|
+
pixelmatch: '>=7.0.0'
|
|
85
|
+
playwright-core: '>=1.56.0'
|
|
86
|
+
sharp: '>=0.34.0'
|
|
80
87
|
peerDependenciesMeta:
|
|
81
88
|
'@nuxt/eslint-config':
|
|
82
89
|
optional: true
|
|
@@ -84,10 +91,18 @@ packages:
|
|
|
84
91
|
optional: true
|
|
85
92
|
knip:
|
|
86
93
|
optional: true
|
|
94
|
+
mongodb-memory-server:
|
|
95
|
+
optional: true
|
|
87
96
|
oxfmt:
|
|
88
97
|
optional: true
|
|
89
98
|
oxlint:
|
|
90
99
|
optional: true
|
|
100
|
+
pixelmatch:
|
|
101
|
+
optional: true
|
|
102
|
+
playwright-core:
|
|
103
|
+
optional: true
|
|
104
|
+
sharp:
|
|
105
|
+
optional: true
|
|
91
106
|
|
|
92
107
|
'@antfu/install-pkg@2.0.1':
|
|
93
108
|
resolution: {integrity: sha512-iCKVQcIC0e3oDxEfs3SHQGW+ovhBMZmS1TE+bTk50rVyMCBmCfClv7Qi3HQKlumYwvjb/iIMeWCW2i67q6kFfQ==}
|
|
@@ -1413,6 +1428,9 @@ packages:
|
|
|
1413
1428
|
'@types/json-schema@7.0.15':
|
|
1414
1429
|
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
|
1415
1430
|
|
|
1431
|
+
'@types/sortablejs@1.15.9':
|
|
1432
|
+
resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==}
|
|
1433
|
+
|
|
1416
1434
|
'@types/web-bluetooth@0.0.20':
|
|
1417
1435
|
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
|
1418
1436
|
|
|
@@ -3372,7 +3390,7 @@ snapshots:
|
|
|
3372
3390
|
|
|
3373
3391
|
'@alloc/quick-lru@5.3.0': {}
|
|
3374
3392
|
|
|
3375
|
-
'@antelopejs/tooling-configs@0.
|
|
3393
|
+
'@antelopejs/tooling-configs@0.3.3':
|
|
3376
3394
|
dependencies:
|
|
3377
3395
|
'@oxlint/plugins': 1.81.0
|
|
3378
3396
|
dts-bundle-generator: 9.5.1
|
|
@@ -4552,6 +4570,8 @@ snapshots:
|
|
|
4552
4570
|
|
|
4553
4571
|
'@types/json-schema@7.0.15': {}
|
|
4554
4572
|
|
|
4573
|
+
'@types/sortablejs@1.15.9': {}
|
|
4574
|
+
|
|
4555
4575
|
'@types/web-bluetooth@0.0.20': {}
|
|
4556
4576
|
|
|
4557
4577
|
'@types/web-bluetooth@0.0.21': {}
|