@antelopejs/dms-marketing 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +4 -4
  2. package/dist/config.d.ts +10 -1
  3. package/dist/config.js +29 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/db/models/funnels.model.d.ts +1 -0
  6. package/dist/db/models/funnels.model.js +18 -0
  7. package/dist/db/models/funnels.model.js.map +1 -1
  8. package/dist/db/models/index.d.ts +1 -0
  9. package/dist/db/models/index.js +1 -0
  10. package/dist/db/models/index.js.map +1 -1
  11. package/dist/db/models/marketing_imports.model.d.ts +27 -0
  12. package/dist/db/models/marketing_imports.model.js +38 -0
  13. package/dist/db/models/marketing_imports.model.js.map +1 -0
  14. package/dist/db/models/page_snapshots.model.d.ts +1 -0
  15. package/dist/db/models/page_snapshots.model.js +14 -0
  16. package/dist/db/models/page_snapshots.model.js.map +1 -1
  17. package/dist/db/models/websites.model.d.ts +1 -0
  18. package/dist/db/models/websites.model.js +29 -0
  19. package/dist/db/models/websites.model.js.map +1 -1
  20. package/dist/db/tables/funnels.table.d.ts +1 -0
  21. package/dist/db/tables/funnels.table.js +4 -0
  22. package/dist/db/tables/funnels.table.js.map +1 -1
  23. package/dist/db/tables/index.d.ts +1 -0
  24. package/dist/db/tables/index.js +1 -0
  25. package/dist/db/tables/index.js.map +1 -1
  26. package/dist/db/tables/marketing_imports.table.d.ts +15 -0
  27. package/dist/db/tables/marketing_imports.table.js +63 -0
  28. package/dist/db/tables/marketing_imports.table.js.map +1 -0
  29. package/dist/db/tables/page_snapshots.table.d.ts +1 -0
  30. package/dist/db/tables/page_snapshots.table.js +4 -0
  31. package/dist/db/tables/page_snapshots.table.js.map +1 -1
  32. package/dist/db/tables/websites.table.d.ts +1 -0
  33. package/dist/db/tables/websites.table.js +4 -0
  34. package/dist/db/tables/websites.table.js.map +1 -1
  35. package/dist/hooks/index.js +1 -0
  36. package/dist/hooks/index.js.map +1 -1
  37. package/dist/implementations/dms-marketing/index.d.ts +5 -1
  38. package/dist/implementations/dms-marketing/index.js +25 -0
  39. package/dist/implementations/dms-marketing/index.js.map +1 -1
  40. package/dist/index.d.ts +2 -2
  41. package/dist/index.js +4 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/routes/dashboard-tracking.d.ts +9 -0
  44. package/dist/routes/dashboard-tracking.js +57 -0
  45. package/dist/routes/dashboard-tracking.js.map +1 -0
  46. package/dist/routes/index.d.ts +1 -0
  47. package/dist/routes/index.js +1 -0
  48. package/dist/routes/index.js.map +1 -1
  49. package/dist/routes/stats.js.map +1 -1
  50. package/dist/routes/websites.js +12 -25
  51. package/dist/routes/websites.js.map +1 -1
  52. package/dist/services/analytics-import.d.ts +2 -0
  53. package/dist/services/analytics-import.js +294 -0
  54. package/dist/services/analytics-import.js.map +1 -0
  55. package/dist/services/collect.d.ts +20 -0
  56. package/dist/services/collect.js +43 -17
  57. package/dist/services/collect.js.map +1 -1
  58. package/dist/services/context.d.ts +8 -3
  59. package/dist/services/context.js +21 -7
  60. package/dist/services/context.js.map +1 -1
  61. package/dist/services/dashboard-tracking.d.ts +25 -0
  62. package/dist/services/dashboard-tracking.js +85 -0
  63. package/dist/services/dashboard-tracking.js.map +1 -0
  64. package/dist/services/dashboard.js +7 -3
  65. package/dist/services/dashboard.js.map +1 -1
  66. package/dist/services/declarations.d.ts +11 -0
  67. package/dist/services/declarations.js +64 -0
  68. package/dist/services/declarations.js.map +1 -0
  69. package/dist/services/declared-funnel.d.ts +2 -0
  70. package/dist/services/declared-funnel.js +230 -0
  71. package/dist/services/declared-funnel.js.map +1 -0
  72. package/dist/services/declared-snapshot.d.ts +2 -0
  73. package/dist/services/declared-snapshot.js +113 -0
  74. package/dist/services/declared-snapshot.js.map +1 -0
  75. package/dist/services/declared-website.d.ts +2 -0
  76. package/dist/services/declared-website.js +118 -0
  77. package/dist/services/declared-website.js.map +1 -0
  78. package/dist/services/geoip.js.map +1 -1
  79. package/dist/services/index.d.ts +1 -0
  80. package/dist/services/index.js +1 -0
  81. package/dist/services/index.js.map +1 -1
  82. package/dist/services/readiness.d.ts +2 -0
  83. package/dist/services/readiness.js +15 -0
  84. package/dist/services/readiness.js.map +1 -0
  85. package/dist/services/sessionize.d.ts +1 -0
  86. package/dist/services/sessionize.js +3 -0
  87. package/dist/services/sessionize.js.map +1 -1
  88. package/dist/services/snapshots.d.ts +3 -0
  89. package/dist/services/snapshots.js +6 -0
  90. package/dist/services/snapshots.js.map +1 -1
  91. package/dist/services/tenant-website.js +1 -0
  92. package/dist/services/tenant-website.js.map +1 -1
  93. package/dist/services/website-report.js +4 -3
  94. package/dist/services/website-report.js.map +1 -1
  95. package/dist/services/website-rules.d.ts +8 -0
  96. package/dist/services/website-rules.js +34 -0
  97. package/dist/services/website-rules.js.map +1 -0
  98. package/dist/types/constants.d.ts +3 -0
  99. package/dist/types/constants.js +5 -2
  100. package/dist/types/constants.js.map +1 -1
  101. package/dist/types/snapshots.d.ts +55 -0
  102. package/dist/types/snapshots.js +8 -1
  103. package/dist/types/snapshots.js.map +1 -1
  104. package/frontend-vue/app/components/Context.vue +5 -1
  105. package/frontend-vue/app/components/WebsitesGrid.vue +6 -2
  106. package/frontend-vue/app/composables/useMarketingApi.ts +12 -0
  107. package/frontend-vue/app/composables/useMarketingContext.ts +2 -1
  108. package/frontend-vue/app/constants.ts +6 -0
  109. package/frontend-vue/app/plugins/dashboard-tracking.client.ts +44 -0
  110. package/frontend-vue/app/utils/dashboard-tracker.ts +127 -0
  111. package/frontend-vue/app/utils/format.ts +6 -3
  112. package/frontend-vue/dms.frontend.ts +10 -0
  113. package/frontend-vue/i18n/locales/marketing-en-GB.json +2 -0
  114. package/frontend-vue/i18n/locales/marketing-fr-FR.json +2 -0
  115. package/frontend-vue/package.json +1 -1
  116. package/frontend-vue/tests/dashboard-tracking.test.ts +219 -0
  117. package/frontend-vue/tests/format.test.ts +9 -0
  118. package/frontend-vue/tests/server-parity.test.ts +5 -0
  119. package/frontend-vue/tests/stubs/frontend-module.ts +7 -0
  120. package/package.json +2 -2
  121. package/skills/dms-marketing/SKILL.md +52 -2
  122. package/static/tracker.js +90 -5
  123. package/frontend-vue/pnpm-workspace.yaml +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/services/snapshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/services/snapshots.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ async function purgeWebsiteTrackingData(tenantId, websiteId) {
23
23
  await (0, interface_database_decorators_1.GetModel)(db_1.WebsiteStatisticsModel, tenantId).deleteByWebsite(websiteId);
24
24
  await (0, snapshots_1.deleteSnapshots)(tenantId, websiteId);
25
25
  await (0, interface_database_decorators_1.GetModel)(db_1.FunnelsModel, tenantId).deleteByWebsite(websiteId);
26
+ await (0, interface_database_decorators_1.GetModel)(db_1.MarketingImportsModel, tenantId).deleteByWebsite(websiteId);
26
27
  }
27
28
  async function listTenantWebsites(tenantId) {
28
29
  const websites = await (0, interface_database_decorators_1.GetModel)(db_1.WebsitesModel).getByTenant(tenantId);
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-website.js","sourceRoot":"","sources":["../../src/services/tenant-website.ts"],"names":[],"mappings":";;AAsBA,oDASC;AASD,4DASC;AAMD,gDAaC;AApED,6DAA4E;AAC5E,6FAAqE;AACrE,6EAA8E;AAC9E,6BAMc;AAEd,iDAAmD;AACnD,2CAA8C;AAE9C,MAAM,yBAAyB,GAAG,0CAA0C,CAAC;AAQtE,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,EAAsB;IAEtB,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAA,wCAAQ,EAAC,kBAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAA,mCAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,0BAAU,CAAC,0BAAc,EAAE,yBAAyB,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AASM,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,SAAiB;IAEjB,MAAM,IAAA,wCAAQ,EAAC,yBAAoB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,IAAA,wCAAQ,EAAC,2BAAsB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,IAAA,wCAAQ,EAAC,2BAAsB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,IAAA,2BAAe,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,IAAA,wCAAQ,EAAC,iBAAY,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAMM,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAC7B,2BAAsB,EACtB,QAAQ,CACT,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tenant-website.js","sourceRoot":"","sources":["../../src/services/tenant-website.ts"],"names":[],"mappings":";;AAuBA,oDASC;AASD,4DAWC;AAMD,gDAaC;AAvED,6DAA4E;AAC5E,6FAAqE;AACrE,6EAA8E;AAC9E,6BAOc;AAEd,iDAAmD;AACnD,2CAA8C;AAE9C,MAAM,yBAAyB,GAAG,0CAA0C,CAAC;AAQtE,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,EAAsB;IAEtB,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAA,wCAAQ,EAAC,kBAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAA,mCAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,0BAAU,CAAC,0BAAc,EAAE,yBAAyB,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AASM,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,SAAiB;IAEjB,MAAM,IAAA,wCAAQ,EAAC,yBAAoB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,IAAA,wCAAQ,EAAC,2BAAsB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,IAAA,wCAAQ,EAAC,2BAAsB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,IAAA,2BAAe,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,IAAA,wCAAQ,EAAC,iBAAY,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,IAAA,wCAAQ,EAAC,0BAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC7E,CAAC;AAMM,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAC7B,2BAAsB,EACtB,QAAQ,CACT,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC"}
@@ -55,14 +55,15 @@ async function connectionStatus(website, since) {
55
55
  const createdAt = new Date(website.createdAt).getTime();
56
56
  const checkedAt = Date.now();
57
57
  const from = Math.max(since ?? createdAt, (0, period_1.periodStart)(RECENT_VISIT_DAYS).getTime());
58
- const [pageview, latest] = await Promise.all([
58
+ const [pageview, latest, importedThrough] = await Promise.all([
59
59
  (0, interface_database_decorators_1.GetModel)(db_1.MarketingEventsModel, website.tenantId).getLatestPageview(website._id, new Date(from)),
60
60
  (0, interface_database_decorators_1.GetModel)(db_1.MarketingSessionsModel, website.tenantId).getLatest(website._id),
61
+ (0, context_1.loadImportedThrough)(website.tenantId, [website]),
61
62
  ]);
62
63
  const lastActivityAt = latest ? new Date(latest.lastSeenAt).getTime() : null;
63
- const activity = new Map(lastActivityAt === null ? [] : [[website._id, lastActivityAt]]);
64
+ const lastActivity = new Map(lastActivityAt === null ? [] : [[website._id, lastActivityAt]]);
64
65
  return {
65
- website: (0, context_1.toContextWebsite)(website, activity),
66
+ website: (0, context_1.toContextWebsite)(website, { lastActivity, importedThrough }),
66
67
  createdAt,
67
68
  checkedAt,
68
69
  visit: pageview ? await visitOf(website, pageview, from) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"website-report.js","sourceRoot":"","sources":["../../src/services/website-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-report.js","sourceRoot":"","sources":["../../src/services/website-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ import type { Website } from "@/db/tables/websites.table";
3
+ import { type HostConflict } from "./website-hosts";
4
+ export declare const hostnameSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
5
+ export declare const nameSchema: z.ZodString;
6
+ export declare const extraDomainsSchema: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">;
7
+ export declare function distinctExtraHosts(domain: string, hosts: string[]): string[];
8
+ export declare function tenantHostConflict(website: Website): Promise<HostConflict | undefined>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extraDomainsSchema = exports.nameSchema = exports.hostnameSchema = void 0;
4
+ exports.distinctExtraHosts = distinctExtraHosts;
5
+ exports.tenantHostConflict = tenantHostConflict;
6
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
7
+ const zod_1 = require("zod");
8
+ const db_1 = require("@/db");
9
+ const constants_1 = require("@/types/constants");
10
+ const dashboard_tracking_1 = require("./dashboard-tracking");
11
+ const website_hosts_1 = require("./website-hosts");
12
+ const INVALID_HOSTNAME_MESSAGE = "$page.marketing.errors.invalid_hostname";
13
+ exports.hostnameSchema = zod_1.z
14
+ .string()
15
+ .trim()
16
+ .min(1)
17
+ .max(constants_1.MAX_DOMAIN_LENGTH)
18
+ .transform(website_hosts_1.normalizeHostname)
19
+ .refine(website_hosts_1.isValidHostname, { message: INVALID_HOSTNAME_MESSAGE });
20
+ exports.nameSchema = zod_1.z.string().trim().min(1).max(constants_1.MAX_NAME_LENGTH);
21
+ exports.extraDomainsSchema = zod_1.z
22
+ .array(exports.hostnameSchema)
23
+ .max(constants_1.MAX_EXTRA_DOMAINS);
24
+ function distinctExtraHosts(domain, hosts) {
25
+ return [...new Set(hosts)].filter((host) => host !== domain);
26
+ }
27
+ async function tenantHostConflict(website) {
28
+ if ((0, dashboard_tracking_1.isDashboardWebsite)(website)) {
29
+ return undefined;
30
+ }
31
+ const websites = await (0, interface_database_decorators_1.GetModel)(db_1.WebsitesModel).getByTenant(website.tenantId);
32
+ return (0, website_hosts_1.findHostConflict)(website, websites.filter((site) => !(0, dashboard_tracking_1.isDashboardWebsite)(site)));
33
+ }
34
+ //# sourceMappingURL=website-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"website-rules.js","sourceRoot":"","sources":["../../src/services/website-rules.ts"],"names":[],"mappings":";;;AAyCA,gDAEC;AAQD,gDAWC;AA9DD,6FAAqE;AACrE,6BAAwB;AACxB,6BAAqC;AAErC,iDAI2B;AAC3B,6DAA0D;AAC1D,mDAKyB;AAEzB,MAAM,wBAAwB,GAAG,yCAAyC,CAAC;AAS9D,QAAA,cAAc,GAAG,OAAC;KAC5B,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,6BAAiB,CAAC;KACtB,SAAS,CAAC,iCAAiB,CAAC;KAC5B,MAAM,CAAC,+BAAe,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAErD,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAAe,CAAC,CAAC;AAE3D,QAAA,kBAAkB,GAAG,OAAC;KAChC,KAAK,CAAC,sBAAc,CAAC;KACrB,GAAG,CAAC,6BAAiB,CAAC,CAAC;AAG1B,SAAgB,kBAAkB,CAAC,MAAc,EAAE,KAAe;IAChE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAC/D,CAAC;AAQM,KAAK,UAAU,kBAAkB,CACtC,OAAgB;IAEhB,IAAI,IAAA,uCAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,OAAO,IAAA,gCAAgB,EACrB,OAAO,EACP,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC"}
@@ -2,6 +2,7 @@ export declare const MARKETING_MODULE_ID = "marketing";
2
2
  export declare const OVERVIEW_PAGE_ID = "overview";
3
3
  export declare const MARKETING_MODULE_PATH = "/modules/marketing";
4
4
  export declare const FRONTEND_MODULE_NAME = "@antelopejs/dms-marketing-frontend-vue";
5
+ export declare const FRONTEND_CONFIG_KEY = "dmsMarketing";
5
6
  export declare const MS_PER_SECOND = 1000;
6
7
  export declare const MS_PER_MINUTE: number;
7
8
  export declare const SECONDS_PER_MINUTE = 60;
@@ -22,6 +23,7 @@ export declare const MAX_TITLE_LENGTH = 200;
22
23
  export declare const MAX_EVENT_NAME_LENGTH = 50;
23
24
  export declare const MAX_EVENT_DATA_BYTES = 4096;
24
25
  export declare const MAX_WEBSITE_ID_LENGTH = 64;
26
+ export declare const DECLARED_ID_PATTERN: RegExp;
25
27
  export declare const MAX_NAME_LENGTH = 100;
26
28
  export declare const MAX_DOMAIN_LENGTH = 253;
27
29
  export declare const MAX_EXTRA_DOMAINS = 20;
@@ -70,6 +72,7 @@ export declare const SESSION_CACHE_MAX_ENTRIES = 10000;
70
72
  export declare const MAX_CACHE_ENTRIES = 1000;
71
73
  export declare const WEBSITE_CACHE_TTL_MS = 30000;
72
74
  export declare const EXPERIMENT_DEFINITIONS_CACHE_TTL_MS = 30000;
75
+ export declare const DASHBOARD_AUTH_PATHS: string[];
73
76
  export declare const COLLECT_RATE_LIMIT_WINDOW_MS: number;
74
77
  export declare const MAX_EVENTS_PER_WINDOW_PER_SOURCE = 600;
75
78
  export declare const RATE_LIMIT_MAX_SOURCES = 50000;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOP_MAPS_RETENTION_DAYS = exports.CAMPAIGN_KEY_SEPARATOR = exports.MAX_ENTRIES_PER_TOP_MAP = exports.RAW_COVERAGE_CACHE_TTL_MS = exports.FUNNEL_SUMMARY_CACHE_TTL_MS = exports.MIN_DECISION_CONVERSIONS = exports.MIN_DECISION_DAYS = exports.MIN_OUTCOMES_PER_CELL = exports.EXPERIMENT_SRM_P_THRESHOLD = exports.EXPERIMENT_SIGNIFICANCE_LEVEL = exports.ASSIGNMENT_HASH_HEX_CHARS = exports.EXPERIMENT_KEY_PATTERN = exports.MAX_EXPERIMENT_KEY_LENGTH = exports.MAX_EXPERIMENT_VARIATIONS = exports.MIN_EXPERIMENT_VARIATIONS = exports.DEFAULT_CONVERSION_WINDOW_HOURS = exports.MAX_CONVERSION_WINDOW_HOURS = exports.MAX_FUNNEL_STEP_VALUE_LENGTH = exports.MAX_FUNNEL_STEPS = exports.MIN_FUNNEL_STEPS = exports.MAX_COLLECT_BODY_BYTES = exports.MAX_CLICK_SELECTOR_LENGTH = exports.MAX_SCREEN_AND_LANGUAGE_CHARS = exports.MAX_EXTRA_DOMAINS = exports.MAX_DOMAIN_LENGTH = exports.MAX_NAME_LENGTH = exports.MAX_WEBSITE_ID_LENGTH = exports.MAX_EVENT_DATA_BYTES = exports.MAX_EVENT_NAME_LENGTH = exports.MAX_TITLE_LENGTH = exports.MAX_URL_LENGTH = exports.MAX_TRUSTED_CLIENT_CLOCK_SKEW_MS = exports.MAX_COLLECT_BATCH_SIZE = exports.DEFAULT_HEATMAP_SAMPLE_RATIO = exports.MAX_STATISTICS_RETENTION_DAYS = exports.DEFAULT_STATISTICS_RETENTION_MS = exports.DEFAULT_RAW_EVENTS_RETENTION_MS = exports.DEFAULT_SESSION_IDLE_TIMEOUT_MS = exports.DEFAULT_QUERY_PERIOD_DAYS = exports.MAX_QUERY_PERIOD_DAYS = exports.MS_PER_DAY = exports.MS_PER_HOUR = exports.SECONDS_PER_HOUR = exports.SECONDS_PER_MINUTE = exports.MS_PER_MINUTE = exports.MS_PER_SECOND = exports.FRONTEND_MODULE_NAME = exports.MARKETING_MODULE_PATH = exports.OVERVIEW_PAGE_ID = exports.MARKETING_MODULE_ID = void 0;
4
- exports.HTTP_CONFLICT = exports.HTTP_NOT_FOUND = exports.HTTP_FORBIDDEN = exports.HTTP_BAD_REQUEST = exports.API_BASE_PATH = exports.PAUSED_TRACKER_CACHE_MAX_AGE_SECONDS = exports.TRACKER_CACHE_MAX_AGE_SECONDS = exports.MAX_SNAPSHOTS_PER_WINDOW_PER_SOURCE = exports.RATE_LIMIT_MAX_SOURCES = exports.MAX_EVENTS_PER_WINDOW_PER_SOURCE = exports.COLLECT_RATE_LIMIT_WINDOW_MS = exports.EXPERIMENT_DEFINITIONS_CACHE_TTL_MS = exports.WEBSITE_CACHE_TTL_MS = exports.MAX_CACHE_ENTRIES = exports.SESSION_CACHE_MAX_ENTRIES = exports.VISITOR_SECRET_BYTES = exports.VISITOR_ID_HEX_LENGTH = exports.SNAPSHOT_CACHE_MAX_ENTRIES = exports.SNAPSHOT_PROMISE_TTL_MS = exports.SNAPSHOT_REFRESH_AGE_MS = exports.DEFAULT_SNAPSHOT_RETENTION_MS = exports.MAX_SNAPSHOT_DOCUMENT_PX = exports.MAX_SNAPSHOT_VIEWPORT_PX = exports.MAX_REPORTED_SNAPSHOT_BYTES = exports.MAX_SNAPSHOTS_PER_WEBSITE = exports.MAX_SNAPSHOT_BYTES = exports.MAX_ANCHORED_HEATMAP_CELLS = exports.SCROLL_DEPTH_SCALE = exports.HEATMAP_DIVISIONS_PER_AXIS = exports.MAX_HEATMAP_EVENTS = exports.MAX_FUNNEL_EVENTS = exports.MAX_PAGES_LIST_LIMIT = exports.DEFAULT_PAGES_LIST_LIMIT = void 0;
3
+ exports.MAX_ENTRIES_PER_TOP_MAP = exports.RAW_COVERAGE_CACHE_TTL_MS = exports.FUNNEL_SUMMARY_CACHE_TTL_MS = exports.MIN_DECISION_CONVERSIONS = exports.MIN_DECISION_DAYS = exports.MIN_OUTCOMES_PER_CELL = exports.EXPERIMENT_SRM_P_THRESHOLD = exports.EXPERIMENT_SIGNIFICANCE_LEVEL = exports.ASSIGNMENT_HASH_HEX_CHARS = exports.EXPERIMENT_KEY_PATTERN = exports.MAX_EXPERIMENT_KEY_LENGTH = exports.MAX_EXPERIMENT_VARIATIONS = exports.MIN_EXPERIMENT_VARIATIONS = exports.DEFAULT_CONVERSION_WINDOW_HOURS = exports.MAX_CONVERSION_WINDOW_HOURS = exports.MAX_FUNNEL_STEP_VALUE_LENGTH = exports.MAX_FUNNEL_STEPS = exports.MIN_FUNNEL_STEPS = exports.MAX_COLLECT_BODY_BYTES = exports.MAX_CLICK_SELECTOR_LENGTH = exports.MAX_SCREEN_AND_LANGUAGE_CHARS = exports.MAX_EXTRA_DOMAINS = exports.MAX_DOMAIN_LENGTH = exports.MAX_NAME_LENGTH = exports.DECLARED_ID_PATTERN = exports.MAX_WEBSITE_ID_LENGTH = exports.MAX_EVENT_DATA_BYTES = exports.MAX_EVENT_NAME_LENGTH = exports.MAX_TITLE_LENGTH = exports.MAX_URL_LENGTH = exports.MAX_TRUSTED_CLIENT_CLOCK_SKEW_MS = exports.MAX_COLLECT_BATCH_SIZE = exports.DEFAULT_HEATMAP_SAMPLE_RATIO = exports.MAX_STATISTICS_RETENTION_DAYS = exports.DEFAULT_STATISTICS_RETENTION_MS = exports.DEFAULT_RAW_EVENTS_RETENTION_MS = exports.DEFAULT_SESSION_IDLE_TIMEOUT_MS = exports.DEFAULT_QUERY_PERIOD_DAYS = exports.MAX_QUERY_PERIOD_DAYS = exports.MS_PER_DAY = exports.MS_PER_HOUR = exports.SECONDS_PER_HOUR = exports.SECONDS_PER_MINUTE = exports.MS_PER_MINUTE = exports.MS_PER_SECOND = exports.FRONTEND_CONFIG_KEY = exports.FRONTEND_MODULE_NAME = exports.MARKETING_MODULE_PATH = exports.OVERVIEW_PAGE_ID = exports.MARKETING_MODULE_ID = void 0;
4
+ exports.HTTP_CONFLICT = exports.HTTP_NOT_FOUND = exports.HTTP_FORBIDDEN = exports.HTTP_BAD_REQUEST = exports.API_BASE_PATH = exports.PAUSED_TRACKER_CACHE_MAX_AGE_SECONDS = exports.TRACKER_CACHE_MAX_AGE_SECONDS = exports.MAX_SNAPSHOTS_PER_WINDOW_PER_SOURCE = exports.RATE_LIMIT_MAX_SOURCES = exports.MAX_EVENTS_PER_WINDOW_PER_SOURCE = exports.COLLECT_RATE_LIMIT_WINDOW_MS = exports.DASHBOARD_AUTH_PATHS = exports.EXPERIMENT_DEFINITIONS_CACHE_TTL_MS = exports.WEBSITE_CACHE_TTL_MS = exports.MAX_CACHE_ENTRIES = exports.SESSION_CACHE_MAX_ENTRIES = exports.VISITOR_SECRET_BYTES = exports.VISITOR_ID_HEX_LENGTH = exports.SNAPSHOT_CACHE_MAX_ENTRIES = exports.SNAPSHOT_PROMISE_TTL_MS = exports.SNAPSHOT_REFRESH_AGE_MS = exports.DEFAULT_SNAPSHOT_RETENTION_MS = exports.MAX_SNAPSHOT_DOCUMENT_PX = exports.MAX_SNAPSHOT_VIEWPORT_PX = exports.MAX_REPORTED_SNAPSHOT_BYTES = exports.MAX_SNAPSHOTS_PER_WEBSITE = exports.MAX_SNAPSHOT_BYTES = exports.MAX_ANCHORED_HEATMAP_CELLS = exports.SCROLL_DEPTH_SCALE = exports.HEATMAP_DIVISIONS_PER_AXIS = exports.MAX_HEATMAP_EVENTS = exports.MAX_FUNNEL_EVENTS = exports.MAX_PAGES_LIST_LIMIT = exports.DEFAULT_PAGES_LIST_LIMIT = exports.TOP_MAPS_RETENTION_DAYS = exports.CAMPAIGN_KEY_SEPARATOR = void 0;
5
5
  exports.MARKETING_MODULE_ID = "marketing";
6
6
  exports.OVERVIEW_PAGE_ID = "overview";
7
7
  exports.MARKETING_MODULE_PATH = `/modules/${exports.MARKETING_MODULE_ID}`;
8
8
  exports.FRONTEND_MODULE_NAME = "@antelopejs/dms-marketing-frontend-vue";
9
+ exports.FRONTEND_CONFIG_KEY = "dmsMarketing";
9
10
  exports.MS_PER_SECOND = 1_000;
10
11
  exports.MS_PER_MINUTE = 60 * exports.MS_PER_SECOND;
11
12
  exports.SECONDS_PER_MINUTE = 60;
@@ -28,6 +29,7 @@ exports.MAX_TITLE_LENGTH = 200;
28
29
  exports.MAX_EVENT_NAME_LENGTH = 50;
29
30
  exports.MAX_EVENT_DATA_BYTES = 4096;
30
31
  exports.MAX_WEBSITE_ID_LENGTH = 64;
32
+ exports.DECLARED_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
31
33
  exports.MAX_NAME_LENGTH = 100;
32
34
  exports.MAX_DOMAIN_LENGTH = 253;
33
35
  exports.MAX_EXTRA_DOMAINS = 20;
@@ -76,6 +78,7 @@ exports.SESSION_CACHE_MAX_ENTRIES = 10_000;
76
78
  exports.MAX_CACHE_ENTRIES = 1_000;
77
79
  exports.WEBSITE_CACHE_TTL_MS = 30_000;
78
80
  exports.EXPERIMENT_DEFINITIONS_CACHE_TTL_MS = 30_000;
81
+ exports.DASHBOARD_AUTH_PATHS = ["/auth/**"];
79
82
  exports.COLLECT_RATE_LIMIT_WINDOW_MS = exports.MS_PER_MINUTE;
80
83
  exports.MAX_EVENTS_PER_WINDOW_PER_SOURCE = 600;
81
84
  exports.RATE_LIMIT_MAX_SOURCES = 50_000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/types/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/types/constants.ts"],"names":[],"mappings":"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"}
@@ -99,4 +99,59 @@ export declare const snapshotRequestSchema: z.ZodUnion<[z.ZodObject<{
99
99
  colorScheme?: "light" | "dark" | undefined;
100
100
  }>]>;
101
101
  export type SnapshotRequestInput = z.infer<typeof snapshotRequestSchema>;
102
+ export declare const snapshotDeclarationSchema: z.ZodObject<Omit<{
103
+ website: z.ZodString;
104
+ url: z.ZodString;
105
+ viewport: z.ZodObject<{
106
+ width: z.ZodNumber;
107
+ height: z.ZodNumber;
108
+ }, "strip", z.ZodTypeAny, {
109
+ width: number;
110
+ height: number;
111
+ }, {
112
+ width: number;
113
+ height: number;
114
+ }>;
115
+ colorScheme: z.ZodOptional<z.ZodEnum<["light", "dark"]>>;
116
+ token: z.ZodString;
117
+ }, "website" | "token"> & {
118
+ websiteId: z.ZodString;
119
+ document: z.ZodObject<{
120
+ width: z.ZodNumber;
121
+ height: z.ZodNumber;
122
+ }, "strip", z.ZodTypeAny, {
123
+ width: number;
124
+ height: number;
125
+ }, {
126
+ width: number;
127
+ height: number;
128
+ }>;
129
+ html: z.ZodString;
130
+ }, "strip", z.ZodTypeAny, {
131
+ url: string;
132
+ websiteId: string;
133
+ viewport: {
134
+ width: number;
135
+ height: number;
136
+ };
137
+ document: {
138
+ width: number;
139
+ height: number;
140
+ };
141
+ html: string;
142
+ colorScheme?: "light" | "dark" | undefined;
143
+ }, {
144
+ url: string;
145
+ websiteId: string;
146
+ viewport: {
147
+ width: number;
148
+ height: number;
149
+ };
150
+ document: {
151
+ width: number;
152
+ height: number;
153
+ };
154
+ html: string;
155
+ colorScheme?: "light" | "dark" | undefined;
156
+ }>;
102
157
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.snapshotRequestSchema = exports.SNAPSHOT_LAYOUTS = void 0;
3
+ exports.snapshotDeclarationSchema = exports.snapshotRequestSchema = exports.SNAPSHOT_LAYOUTS = void 0;
4
4
  exports.layoutOfWidth = layoutOfWidth;
5
5
  exports.isSnapshotLayout = isSnapshotLayout;
6
6
  const zod_1 = require("zod");
@@ -40,4 +40,11 @@ exports.snapshotRequestSchema = zod_1.z.union([
40
40
  oversizeBytes: zod_1.z.number().int().positive().max(constants_1.MAX_REPORTED_SNAPSHOT_BYTES),
41
41
  }),
42
42
  ]);
43
+ exports.snapshotDeclarationSchema = snapshotPageSchema
44
+ .omit({ website: true, token: true })
45
+ .extend({
46
+ websiteId: zod_1.z.string().min(1),
47
+ document: dimensionSchema(constants_1.MAX_SNAPSHOT_DOCUMENT_PX),
48
+ html: zod_1.z.string().min(1).max(constants_1.MAX_SNAPSHOT_BYTES),
49
+ });
43
50
  //# sourceMappingURL=snapshots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/types/snapshots.ts"],"names":[],"mappings":";;;AA0BA,sCAKC;AAED,4CAEC;AAnCD,6BAAwB;AACxB,2CAOqB;AAErB,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAMxB,QAAA,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAIxE,MAAM,iBAAiB,GAAmC;IACxD,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,wBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,wBAAgB,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAI1D,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CACtC,OAAC,CAAC,MAAM,CAAC;IACP,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACzC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAqB,CAAC;IAErD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAAc,CAAC;IAC1C,QAAQ,EAAE,eAAe,CAAC,oCAAwB,CAAC;IACnD,WAAW,EAAE,OAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAEtD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;CACxD,CAAC,CAAC;AAGU,QAAA,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC3C,kBAAkB,CAAC,MAAM,CAAC;QACxB,QAAQ,EAAE,eAAe,CAAC,oCAAwB,CAAC;QACnD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,8BAAkB,CAAC;KAChD,CAAC;IACF,kBAAkB,CAAC,MAAM,CAAC;QACxB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,uCAA2B,CAAC;KAC5E,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/types/snapshots.ts"],"names":[],"mappings":";;;AA0BA,sCAKC;AAED,4CAEC;AAnCD,6BAAwB;AACxB,2CAOqB;AAErB,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAMxB,QAAA,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAIxE,MAAM,iBAAiB,GAAmC;IACxD,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,wBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,wBAAgB,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAI1D,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CACtC,OAAC,CAAC,MAAM,CAAC;IACP,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACzC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAqB,CAAC;IAErD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAAc,CAAC;IAC1C,QAAQ,EAAE,eAAe,CAAC,oCAAwB,CAAC;IACnD,WAAW,EAAE,OAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAEtD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;CACxD,CAAC,CAAC;AAGU,QAAA,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC3C,kBAAkB,CAAC,MAAM,CAAC;QACxB,QAAQ,EAAE,eAAe,CAAC,oCAAwB,CAAC;QACnD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,8BAAkB,CAAC;KAChD,CAAC;IACF,kBAAkB,CAAC,MAAM,CAAC;QACxB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,uCAA2B,CAAC;KAC5E,CAAC;CACH,CAAC,CAAC;AAMU,QAAA,yBAAyB,GAAG,kBAAkB;KACxD,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACpC,MAAM,CAAC;IACN,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC,oCAAwB,CAAC;IACnD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,8BAAkB,CAAC;CAChD,CAAC,CAAC"}
@@ -233,6 +233,7 @@ type DisplayState = ContextWebsite['state'] | 'idle'
233
233
  const STATE_TONES: Record<DisplayState, string> = {
234
234
  live: 'bg-success',
235
235
  idle: 'bg-(--ui-text-muted)',
236
+ imported: 'bg-info',
236
237
  waiting: 'bg-warning',
237
238
  paused: 'bg-(--ui-text-dimmed)',
238
239
  }
@@ -250,7 +251,10 @@ function displayState(site: ContextWebsite): DisplayState {
250
251
 
251
252
  function stateLine(site: ContextWebsite): string {
252
253
  const state = displayState(site)
253
- if ((state === 'live' || state === 'idle') && site.lastActivityAt) {
254
+ if (
255
+ (state === 'live' || state === 'idle' || state === 'imported') &&
256
+ site.lastActivityAt
257
+ ) {
254
258
  return t(`page.marketing.context.${state}`, {
255
259
  ago: formatRelativeTime(site.lastActivityAt, now.value, locale.value),
256
260
  })
@@ -75,8 +75,11 @@ const now = useMarketingNow(CLOCK_TICK_MS)
75
75
  const readerZone = readerTimeZone()
76
76
 
77
77
  function stateLine(card: MarketingWebsiteCard): string {
78
- if (card.state === 'live' && card.lastActivityAt) {
79
- return t('page.marketing.context.live', {
78
+ if (
79
+ (card.state === 'live' || card.state === 'imported') &&
80
+ card.lastActivityAt
81
+ ) {
82
+ return t(`page.marketing.context.${card.state}`, {
80
83
  ago: formatRelativeTime(card.lastActivityAt, now.value, locale.value),
81
84
  })
82
85
  }
@@ -85,6 +88,7 @@ function stateLine(card: MarketingWebsiteCard): string {
85
88
 
86
89
  const STATE_DOTS = {
87
90
  live: 'bg-success',
91
+ imported: 'bg-info',
88
92
  waiting: 'bg-warning',
89
93
  paused: 'bg-(--ui-text-dimmed)',
90
94
  } as const
@@ -392,6 +392,11 @@ export interface MarketingScrollDepth {
392
392
  truncated: boolean
393
393
  }
394
394
 
395
+ /** The website the dashboard's own pages report to (dashboardTracking). */
396
+ export interface MarketingDashboardTracking {
397
+ websiteId: string
398
+ }
399
+
395
400
  // --- Facade -----------------------------------------------------------------
396
401
 
397
402
  export function useMarketingApi() {
@@ -468,5 +473,12 @@ export function useMarketingApi() {
468
473
  method: 'DELETE',
469
474
  query: { id },
470
475
  }),
476
+
477
+ // Provisions the signed-in workspace's dashboard website on first use.
478
+ dashboardTracking: () =>
479
+ $authFetch<MarketingDashboardTracking>(
480
+ '/api/marketing/dashboard-tracking',
481
+ { method: 'POST' },
482
+ ),
471
483
  }
472
484
  }
@@ -1,6 +1,7 @@
1
1
  import { computed, inject, type ComputedRef, type InjectionKey } from 'vue'
2
2
 
3
- export type WebsiteState = 'live' | 'waiting' | 'paused'
3
+ /** `imported`: data, but only from an import — nothing proves the tag collects. */
4
+ export type WebsiteState = 'live' | 'imported' | 'waiting' | 'paused'
4
5
 
5
6
  export interface ContextWebsite {
6
7
  id: string
@@ -13,6 +13,12 @@ export const MS_PER_DAY = 86_400_000
13
13
  export const MAX_WEBSITE_NAME_LENGTH = 100
14
14
  export const MAX_WEBSITE_DOMAIN_LENGTH = 253
15
15
 
16
+ /**
17
+ * Where the backend puts this module's public options (FRONTEND_CONFIG_KEY
18
+ * on the server): `sdk.options.public[MODULE_CONFIG_KEY]`.
19
+ */
20
+ export const MODULE_CONFIG_KEY = 'dmsMarketing'
21
+
16
22
  /** Longest period the routes read (MAX_QUERY_PERIOD_DAYS on the server). */
17
23
  export const MAX_PERIOD_DAYS = 90
18
24
 
@@ -0,0 +1,44 @@
1
+ import {
2
+ defineDmsPlugin,
3
+ useDmsRuntimeConfig,
4
+ useDmsUserSession,
5
+ } from '#dms/frontend-module'
6
+ import { useMarketingApi } from '../composables/useMarketingApi'
7
+ import {
8
+ applyDashboardTracker,
9
+ type DashboardTrackingOptions,
10
+ followDashboardSession,
11
+ } from '../utils/dashboard-tracker'
12
+ import { trackerUrl } from '../utils/snippet'
13
+
14
+ /**
15
+ * Loads the tracker on every dashboard page while someone is signed in, on
16
+ * the website of their workspace. Registered by `dms.frontend.ts` only when
17
+ * the backend enables `dashboardTracking`; client-only, since the tag is the
18
+ * browser's business and the server render has no session to follow.
19
+ */
20
+ export function dashboardTrackingPlugin(options: DashboardTrackingOptions) {
21
+ return defineDmsPlugin(() => {
22
+ const { loggedIn, session } = useDmsUserSession()
23
+ const config = useDmsRuntimeConfig()
24
+ const api = useMarketingApi()
25
+ // The public backend URL, where client sites load the tracker from too.
26
+ const src = trackerUrl(
27
+ String(
28
+ (config.public as { dms?: { baseURL?: string } }).dms?.baseURL ?? '',
29
+ ),
30
+ )
31
+
32
+ followDashboardSession({
33
+ workspace: () =>
34
+ loggedIn.value ? (session.value?.activeTenantId ?? '') : null,
35
+ provision: async () => (await api.dashboardTracking()).websiteId,
36
+ apply: (websiteId) =>
37
+ applyDashboardTracker(document, {
38
+ src,
39
+ websiteId,
40
+ excludePaths: options.excludePaths,
41
+ }),
42
+ })
43
+ })
44
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * The tag that measures the dashboard itself, when the backend enables
3
+ * `dashboardTracking`: the same tracker client sites embed, inserted by the
4
+ * module instead of pasted. It is kept and retargeted, never reinserted: the
5
+ * tracker follows its `data-website-id` (see static/tracker.js), and a
6
+ * second copy would only be refused.
7
+ */
8
+ import { watch, type WatchStopHandle } from 'vue'
9
+ import { MODULE_CONFIG_KEY } from '../constants'
10
+
11
+ export const DASHBOARD_TRACKER_ELEMENT_ID = 'dms-marketing-dashboard-tracker'
12
+
13
+ /** What the module's public options carry when the backend turns it on. */
14
+ export interface DashboardTrackingOptions {
15
+ /** Route patterns left uncounted, the sign-in pages included. */
16
+ excludePaths: string[]
17
+ }
18
+
19
+ /**
20
+ * The dashboard tag's options among the module's public ones, or null while
21
+ * the backend leaves it off — the default, under which the module registers
22
+ * nothing for it.
23
+ */
24
+ export function dashboardTrackingOptions(
25
+ publicOptions: Record<string, unknown>,
26
+ ): DashboardTrackingOptions | null {
27
+ const tracking = (
28
+ publicOptions[MODULE_CONFIG_KEY] as
29
+ { dashboardTracking?: { excludePaths?: unknown } } | undefined
30
+ )?.dashboardTracking
31
+ if (!tracking || typeof tracking !== 'object') {
32
+ return null
33
+ }
34
+ const excludePaths = Array.isArray(tracking.excludePaths)
35
+ ? tracking.excludePaths.filter(
36
+ (path): path is string => typeof path === 'string',
37
+ )
38
+ : []
39
+ return { excludePaths }
40
+ }
41
+
42
+ export interface DashboardTrackerTag {
43
+ src: string
44
+ /** Null pauses collection without removing the tracker. */
45
+ websiteId: string | null
46
+ excludePaths: string[]
47
+ }
48
+
49
+ /** The DOM this helper touches, so it runs against a stand-in in tests. */
50
+ type TagDocument = Pick<Document, 'getElementById' | 'createElement'> & {
51
+ head: Pick<HTMLHeadElement, 'appendChild'>
52
+ }
53
+
54
+ /**
55
+ * Points the tag at `websiteId`, inserting it the first time there is one.
56
+ * A null id before any insertion inserts nothing: a dashboard nobody signed
57
+ * into never loads the tracker.
58
+ */
59
+ export function applyDashboardTracker(
60
+ doc: TagDocument,
61
+ tag: DashboardTrackerTag,
62
+ ): void {
63
+ const existing = doc.getElementById(DASHBOARD_TRACKER_ELEMENT_ID)
64
+ if (existing) {
65
+ if (tag.websiteId) {
66
+ existing.setAttribute('data-website-id', tag.websiteId)
67
+ } else {
68
+ existing.removeAttribute('data-website-id')
69
+ }
70
+ return
71
+ }
72
+ if (!tag.websiteId) {
73
+ return
74
+ }
75
+ const script = doc.createElement('script')
76
+ script.id = DASHBOARD_TRACKER_ELEMENT_ID
77
+ script.async = true
78
+ script.src = tag.src
79
+ script.setAttribute('data-website-id', tag.websiteId)
80
+ if (tag.excludePaths.length > 0) {
81
+ script.setAttribute('data-exclude-paths', tag.excludePaths.join(','))
82
+ }
83
+ doc.head.appendChild(script)
84
+ }
85
+
86
+ export interface DashboardSessionBinding {
87
+ /** The signed-in workspace (tenant id, '' when none is named), or null
88
+ * while nobody is signed in. */
89
+ workspace: () => string | null
90
+ /** The website of the signed-in workspace, provisioned on first use. */
91
+ provision: () => Promise<string>
92
+ apply: (websiteId: string | null) => void
93
+ }
94
+
95
+ /**
96
+ * Keeps the tag on the website of whoever is signed in. Any change pauses it
97
+ * synchronously — before the navigation that follows a sign-out or a
98
+ * workspace switch — so no page of one workspace reaches another's site;
99
+ * the new website is set once the backend answers, if nothing changed
100
+ * meanwhile. A failure leaves it paused: measuring the dashboard must never
101
+ * get in its way.
102
+ */
103
+ export function followDashboardSession(
104
+ binding: DashboardSessionBinding,
105
+ ): WatchStopHandle {
106
+ let generation = 0
107
+ return watch(
108
+ binding.workspace,
109
+ async (workspace) => {
110
+ const current = ++generation
111
+ binding.apply(null)
112
+ if (workspace === null) {
113
+ return
114
+ }
115
+ let websiteId: string
116
+ try {
117
+ websiteId = await binding.provision()
118
+ } catch {
119
+ return
120
+ }
121
+ if (current === generation) {
122
+ binding.apply(websiteId)
123
+ }
124
+ },
125
+ { immediate: true, flush: 'sync' },
126
+ )
127
+ }
@@ -144,12 +144,15 @@ export function formatShortDate(
144
144
  }).format(at)
145
145
  }
146
146
 
147
- /** "AS" for "Acme shop": the avatar of a website. */
147
+ /**
148
+ * "AS" for "Acme shop": the avatar of a website. Built from letters and
149
+ * digits only, so a dash or a dot in the name never becomes an initial.
150
+ */
148
151
  export function initials(name: string): string {
149
- const words = name.trim().split(/\s+/).filter(Boolean)
152
+ const words = name.split(/[^\p{L}\p{N}]+/u).filter(Boolean)
150
153
  const letters =
151
154
  words.length > 1
152
- ? words.slice(0, INITIALS_LENGTH).map((word) => word[0])
155
+ ? words.slice(0, INITIALS_LENGTH).map((word) => [...word][0])
153
156
  : [...(words[0] ?? '?')].slice(0, INITIALS_LENGTH)
154
157
  return letters.join('').toUpperCase()
155
158
  }
@@ -1,6 +1,8 @@
1
1
  import { defineAsyncComponent, type Component } from 'vue'
2
2
  import type { DmsFrontendModule } from '#dms/frontend-module'
3
+ import { dashboardTrackingPlugin } from './app/plugins/dashboard-tracking.client'
3
4
  import funnelStepsDataType from './app/plugins/funnel-steps-data-type.client'
5
+ import { dashboardTrackingOptions } from './app/utils/dashboard-tracker'
4
6
 
5
7
  interface VueModule {
6
8
  default: Component
@@ -30,6 +32,14 @@ const frontendModule: DmsFrontendModule = {
30
32
  // Client-only: the display it registers carries callables, which the SSR
31
33
  // payload strips.
32
34
  sdk.registerPlugin(funnelStepsDataType, { clientOnly: true })
35
+ // Only when the backend enables `dashboardTracking`: off, the dashboard
36
+ // loads no tracker and calls nothing.
37
+ const tracking = dashboardTrackingOptions(sdk.options.public)
38
+ if (tracking) {
39
+ sdk.registerPlugin(dashboardTrackingPlugin(tracking), {
40
+ clientOnly: true,
41
+ })
42
+ }
33
43
  },
34
44
  }
35
45