@antelopejs/dms-marketing 0.6.1 → 0.7.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 (202) hide show
  1. package/README.md +2 -2
  2. package/dist/config.d.ts +3 -0
  3. package/dist/config.js +11 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/data-api/websites.d.ts +10 -4
  6. package/dist/data-api/websites.js +79 -3
  7. package/dist/data-api/websites.js.map +1 -1
  8. package/dist/db/models/funnels.model.d.ts +0 -1
  9. package/dist/db/models/funnels.model.js +0 -18
  10. package/dist/db/models/funnels.model.js.map +1 -1
  11. package/dist/db/models/page_snapshots.model.d.ts +2 -1
  12. package/dist/db/models/page_snapshots.model.js +6 -14
  13. package/dist/db/models/page_snapshots.model.js.map +1 -1
  14. package/dist/db/models/websites.model.d.ts +1 -1
  15. package/dist/db/models/websites.model.js +9 -29
  16. package/dist/db/models/websites.model.js.map +1 -1
  17. package/dist/db/tables/funnels.table.d.ts +0 -1
  18. package/dist/db/tables/funnels.table.js +0 -4
  19. package/dist/db/tables/funnels.table.js.map +1 -1
  20. package/dist/db/tables/page_snapshots.table.d.ts +1 -1
  21. package/dist/db/tables/page_snapshots.table.js +4 -4
  22. package/dist/db/tables/page_snapshots.table.js.map +1 -1
  23. package/dist/db/tables/websites.table.d.ts +2 -1
  24. package/dist/db/tables/websites.table.js +4 -4
  25. package/dist/db/tables/websites.table.js.map +1 -1
  26. package/dist/frontend-module.d.ts +6 -0
  27. package/dist/frontend-module.js +46 -0
  28. package/dist/frontend-module.js.map +1 -0
  29. package/dist/implementations/dms-marketing/index.js +0 -5
  30. package/dist/implementations/dms-marketing/index.js.map +1 -1
  31. package/dist/index.js +3 -13
  32. package/dist/index.js.map +1 -1
  33. package/dist/pages/acquisition/page.d.ts +1 -0
  34. package/dist/pages/acquisition/page.js +9 -4
  35. package/dist/pages/acquisition/page.js.map +1 -1
  36. package/dist/pages/blocks.d.ts +11 -2
  37. package/dist/pages/blocks.js +43 -5
  38. package/dist/pages/blocks.js.map +1 -1
  39. package/dist/pages/funnel/page.d.ts +1 -0
  40. package/dist/pages/funnel/page.js +1 -0
  41. package/dist/pages/funnel/page.js.map +1 -1
  42. package/dist/pages/funnels/page.d.ts +1 -0
  43. package/dist/pages/funnels/page.js +4 -2
  44. package/dist/pages/funnels/page.js.map +1 -1
  45. package/dist/pages/overview/page.d.ts +1 -0
  46. package/dist/pages/overview/page.js +5 -6
  47. package/dist/pages/overview/page.js.map +1 -1
  48. package/dist/pages/pages/page.d.ts +1 -0
  49. package/dist/pages/pages/page.js +1 -0
  50. package/dist/pages/pages/page.js.map +1 -1
  51. package/dist/pages/settings/form.js +1 -0
  52. package/dist/pages/settings/form.js.map +1 -1
  53. package/dist/pages/websites/page.d.ts +2 -3
  54. package/dist/pages/websites/page.js +63 -5
  55. package/dist/pages/websites/page.js.map +1 -1
  56. package/dist/routes/dashboard-tracking.js +5 -1
  57. package/dist/routes/dashboard-tracking.js.map +1 -1
  58. package/dist/routes/funnels.d.ts +2 -0
  59. package/dist/routes/funnels.js +6 -5
  60. package/dist/routes/funnels.js.map +1 -1
  61. package/dist/routes/public-endpoints.js +1 -1
  62. package/dist/routes/public-endpoints.js.map +1 -1
  63. package/dist/routes/snapshot.d.ts +1 -1
  64. package/dist/routes/snapshot.js +30 -13
  65. package/dist/routes/snapshot.js.map +1 -1
  66. package/dist/routes/stats.d.ts +10 -4
  67. package/dist/routes/stats.js +77 -23
  68. package/dist/routes/stats.js.map +1 -1
  69. package/dist/routes/websites.d.ts +5 -1
  70. package/dist/routes/websites.js +31 -13
  71. package/dist/routes/websites.js.map +1 -1
  72. package/dist/services/acquisition-report.d.ts +1 -0
  73. package/dist/services/acquisition-report.js +1 -0
  74. package/dist/services/acquisition-report.js.map +1 -1
  75. package/dist/services/collect.js +7 -2
  76. package/dist/services/collect.js.map +1 -1
  77. package/dist/services/dashboard-tracking.d.ts +7 -14
  78. package/dist/services/dashboard-tracking.js +42 -26
  79. package/dist/services/dashboard-tracking.js.map +1 -1
  80. package/dist/services/declarations.d.ts +0 -2
  81. package/dist/services/declarations.js +0 -11
  82. package/dist/services/declarations.js.map +1 -1
  83. package/dist/services/declared-funnel.js +11 -99
  84. package/dist/services/declared-funnel.js.map +1 -1
  85. package/dist/services/declared-snapshot.js +8 -37
  86. package/dist/services/declared-snapshot.js.map +1 -1
  87. package/dist/services/declared-website.js +5 -46
  88. package/dist/services/declared-website.js.map +1 -1
  89. package/dist/services/funnels-table.d.ts +3 -2
  90. package/dist/services/funnels-table.js +9 -9
  91. package/dist/services/funnels-table.js.map +1 -1
  92. package/dist/services/heatmap.d.ts +6 -0
  93. package/dist/services/heatmap.js +82 -17
  94. package/dist/services/heatmap.js.map +1 -1
  95. package/dist/services/index.d.ts +1 -0
  96. package/dist/services/index.js +1 -0
  97. package/dist/services/index.js.map +1 -1
  98. package/dist/services/prune.js +6 -1
  99. package/dist/services/prune.js.map +1 -1
  100. package/dist/services/realtime.d.ts +3 -0
  101. package/dist/services/realtime.js +49 -0
  102. package/dist/services/realtime.js.map +1 -0
  103. package/dist/services/request-body.d.ts +1 -0
  104. package/dist/services/request-body.js +18 -0
  105. package/dist/services/request-body.js.map +1 -1
  106. package/dist/services/sessionize.d.ts +1 -0
  107. package/dist/services/sessionize.js +9 -0
  108. package/dist/services/sessionize.js.map +1 -1
  109. package/dist/services/snapshots.d.ts +29 -1
  110. package/dist/services/snapshots.js +151 -26
  111. package/dist/services/snapshots.js.map +1 -1
  112. package/dist/services/tenant-website.d.ts +11 -0
  113. package/dist/services/tenant-website.js +27 -5
  114. package/dist/services/tenant-website.js.map +1 -1
  115. package/dist/services/website-report.d.ts +5 -0
  116. package/dist/services/website-report.js +13 -1
  117. package/dist/services/website-report.js.map +1 -1
  118. package/dist/services/workspace-scope.d.ts +31 -0
  119. package/dist/services/workspace-scope.js +72 -0
  120. package/dist/services/workspace-scope.js.map +1 -0
  121. package/dist/types/constants.d.ts +7 -0
  122. package/dist/types/constants.js +8 -1
  123. package/dist/types/constants.js.map +1 -1
  124. package/dist/types/events.d.ts +25 -25
  125. package/dist/types/snapshots.d.ts +29 -29
  126. package/dist/types/snapshots.js +1 -1
  127. package/dist/types/snapshots.js.map +1 -1
  128. package/dist/utils/funnel-steps-type.d.ts +13 -13
  129. package/frontend-vue/app/components/ChannelsCard.vue +19 -2
  130. package/frontend-vue/app/components/Context.vue +50 -376
  131. package/frontend-vue/app/components/FunnelBuilder.vue +28 -22
  132. package/frontend-vue/app/components/FunnelFigure.vue +15 -2
  133. package/frontend-vue/app/components/FunnelReport.vue +3 -0
  134. package/frontend-vue/app/components/FunnelTemplates.vue +15 -13
  135. package/frontend-vue/app/components/InstallGuide.vue +1 -1
  136. package/frontend-vue/app/components/PagePreview.vue +330 -74
  137. package/frontend-vue/app/components/PagesExplorer.vue +230 -85
  138. package/frontend-vue/app/components/TopListTabs.vue +51 -18
  139. package/frontend-vue/app/components/WebsiteCard.vue +394 -0
  140. package/frontend-vue/app/components/WebsiteCreate.vue +159 -0
  141. package/frontend-vue/app/components/WebsitePicker.vue +210 -0
  142. package/frontend-vue/app/components/WebsiteSettings.vue +539 -0
  143. package/frontend-vue/app/components/WorkspaceScope.vue +119 -0
  144. package/frontend-vue/app/composables/useContextWebsite.ts +105 -0
  145. package/frontend-vue/app/composables/useCopyDraft.ts +47 -0
  146. package/frontend-vue/app/composables/useMarketingApi.ts +92 -4
  147. package/frontend-vue/app/composables/useMarketingReads.ts +32 -23
  148. package/frontend-vue/app/composables/useMarketingRoutes.ts +25 -2
  149. package/frontend-vue/app/composables/useRecordCrumb.ts +17 -0
  150. package/frontend-vue/app/composables/useSnapshotFrame.ts +35 -1
  151. package/frontend-vue/app/utils/anchor-drift.ts +58 -0
  152. package/frontend-vue/app/utils/drift-dismissals.ts +20 -0
  153. package/frontend-vue/app/utils/fill-height.ts +141 -0
  154. package/frontend-vue/app/utils/format.ts +21 -2
  155. package/frontend-vue/app/utils/funnel-draft.ts +22 -0
  156. package/frontend-vue/app/utils/heatmap.ts +17 -0
  157. package/frontend-vue/app/utils/page-snapshot.ts +75 -0
  158. package/frontend-vue/app/utils/snapshot-options.ts +148 -0
  159. package/frontend-vue/app/utils/snapshotScrollRoot.ts +93 -0
  160. package/frontend-vue/app/utils/website-card.ts +93 -0
  161. package/frontend-vue/app/utils/website-purge.ts +95 -0
  162. package/frontend-vue/app/utils/website-settings.ts +121 -0
  163. package/frontend-vue/app/utils/website-state.ts +93 -0
  164. package/frontend-vue/app/utils/workspace-scope.ts +51 -0
  165. package/frontend-vue/i18n/locales/marketing-en-GB.json +112 -36
  166. package/frontend-vue/i18n/locales/marketing-fr-FR.json +112 -36
  167. package/frontend-vue/package.json +1 -1
  168. package/frontend-vue/tests/anchor-drift.test.ts +59 -0
  169. package/frontend-vue/tests/build-flags.test.ts +38 -0
  170. package/frontend-vue/tests/context-bar.test.ts +226 -0
  171. package/frontend-vue/tests/copy-draft.test.ts +64 -0
  172. package/frontend-vue/tests/drift-dismissals.test.ts +12 -0
  173. package/frontend-vue/tests/fill-height.test.ts +110 -0
  174. package/frontend-vue/tests/format.test.ts +14 -0
  175. package/frontend-vue/tests/funnel-draft.test.ts +37 -0
  176. package/frontend-vue/tests/heatmap.test.ts +25 -0
  177. package/frontend-vue/tests/install-guide.test.ts +25 -0
  178. package/frontend-vue/tests/marketing-reads.test.ts +20 -6
  179. package/frontend-vue/tests/page-snapshot.test.ts +62 -0
  180. package/frontend-vue/tests/record-crumb.test.ts +43 -0
  181. package/frontend-vue/tests/registration.test.ts +4 -1
  182. package/frontend-vue/tests/routes.test.ts +21 -0
  183. package/frontend-vue/tests/save-funnel.test.ts +47 -0
  184. package/frontend-vue/tests/server-parity.test.ts +3 -0
  185. package/frontend-vue/tests/snapshot-options.test.ts +148 -0
  186. package/frontend-vue/tests/snapshot-scroll-root.test.ts +84 -0
  187. package/frontend-vue/tests/stubs/frontend-module.ts +5 -1
  188. package/frontend-vue/tests/top-list-tabs.test.ts +158 -0
  189. package/frontend-vue/tests/website-card.test.ts +119 -0
  190. package/frontend-vue/tests/website-purge.test.ts +70 -0
  191. package/frontend-vue/tests/website-settings.test.ts +133 -0
  192. package/frontend-vue/tests/website-state.test.ts +96 -0
  193. package/frontend-vue/tests/workspace-scope-control.test.ts +113 -0
  194. package/frontend-vue/tests/workspace-scope.test.ts +55 -0
  195. package/package.json +8 -7
  196. package/skills/dms-marketing/SKILL.md +54 -12
  197. package/static/snapshot.js +539 -48
  198. package/static/tracker.js +154 -5
  199. package/dist/services/readiness.d.ts +0 -2
  200. package/dist/services/readiness.js +0 -15
  201. package/dist/services/readiness.js.map +0 -1
  202. package/frontend-vue/app/components/WebsitesGrid.vue +0 -812
@@ -11,11 +11,6 @@ const declarations_1 = require("./declarations");
11
11
  const experiment_definitions_1 = require("./experiment-definitions");
12
12
  const website_rules_1 = require("./website-rules");
13
13
  const OPERATION = "EnsureFunnel";
14
- const DECLARED_TRANSITIONS = {
15
- draft: ["draft", "running", "stopped"],
16
- running: ["running", "stopped"],
17
- stopped: ["stopped", "running"],
18
- };
19
14
  const windowSchema = zod_1.z
20
15
  .number()
21
16
  .finite()
@@ -64,25 +59,6 @@ function declaredContent(id, declaration) {
64
59
  experiment: declaredExperiment(id, declaration.experiment),
65
60
  };
66
61
  }
67
- function storedContent(funnel) {
68
- const experiment = funnel.experiment ?? null;
69
- return {
70
- websiteId: funnel.websiteId,
71
- name: funnel.name,
72
- steps: funnel.steps.map((step) => ({ kind: step.kind, value: step.value })),
73
- conversionWindowMs: funnel.conversionWindowMs,
74
- experiment: experiment
75
- ? {
76
- key: experiment.key,
77
- variations: experiment.variations.map((v) => ({
78
- key: v.key,
79
- weight: v.weight,
80
- })),
81
- status: experiment.status,
82
- }
83
- : null,
84
- };
85
- }
86
62
  function runInstant(id, field, value) {
87
63
  const now = Date.now();
88
64
  if (value === undefined) {
@@ -94,52 +70,22 @@ function runInstant(id, field, value) {
94
70
  }
95
71
  return at;
96
72
  }
97
- function declaredRuns(id, existing, to, declaration) {
98
- const runs = existing?.runs.map((run) => ({ ...run })) ?? [];
99
- const from = existing?.status ?? "draft";
100
- if (!DECLARED_TRANSITIONS[from].includes(to)) {
101
- throw refuse(id, `the experiment cannot move from ${from} to ${to}`);
102
- }
103
- if (from === to) {
104
- return runs;
105
- }
106
- const last = runs[runs.length - 1];
107
- if (to === "stopped" && from === "running" && last) {
108
- const stoppedAt = runInstant(id, "stoppedAt", declaration?.stoppedAt);
109
- if (stoppedAt < last.startedAt) {
110
- throw refuse(id, "experiment.stoppedAt: before the run started");
111
- }
112
- last.stoppedAt = stoppedAt;
113
- return runs;
73
+ function declaredRuns(id, to, declaration) {
74
+ if (to === "draft") {
75
+ return [];
114
76
  }
115
77
  const startedAt = runInstant(id, "startedAt", declaration?.startedAt);
116
- if (last?.stoppedAt != null && startedAt < last.stoppedAt) {
117
- throw refuse(id, "experiment.startedAt: before the previous run ended");
118
- }
119
78
  if (to === "running") {
120
- runs.push({ startedAt, stoppedAt: null });
121
- return runs;
79
+ return [{ startedAt, stoppedAt: null }];
122
80
  }
123
81
  const stoppedAt = runInstant(id, "stoppedAt", declaration?.stoppedAt);
124
82
  if (stoppedAt < startedAt) {
125
83
  throw refuse(id, "experiment.stoppedAt: before experiment.startedAt");
126
84
  }
127
- runs.push({ startedAt, stoppedAt });
128
- return runs;
85
+ return [{ startedAt, stoppedAt }];
129
86
  }
130
- function resolvedExperiment(id, content, current, declaration) {
131
- const existing = current?.experiment ?? null;
87
+ function resolvedExperiment(id, content, declaration) {
132
88
  const requested = content.experiment;
133
- if (existing && existing.status !== "draft") {
134
- const frozen = requested !== null &&
135
- requested.key === existing.key &&
136
- JSON.stringify(requested.variations) ===
137
- JSON.stringify(existing.variations.map((v) => ({ key: v.key, weight: v.weight }))) &&
138
- content.websiteId === current?.websiteId;
139
- if (!frozen) {
140
- throw refuse(id, "the experiment has left draft: its key, variations and website can no longer change");
141
- }
142
- }
143
89
  if (!requested) {
144
90
  return null;
145
91
  }
@@ -147,7 +93,7 @@ function resolvedExperiment(id, content, current, declaration) {
147
93
  key: requested.key,
148
94
  status: requested.status,
149
95
  variations: requested.variations,
150
- runs: declaredRuns(id, existing, requested.status, declaration.experiment),
96
+ runs: declaredRuns(id, requested.status, declaration.experiment),
151
97
  };
152
98
  }
153
99
  async function assertWebsiteOfTenant(id, websiteId, tenantId) {
@@ -161,38 +107,6 @@ async function assertUniqueKey(id, model, websiteId, experiment) {
161
107
  throw refuse(id, `another funnel of the website already uses the experiment key "${experiment.key}"`);
162
108
  }
163
109
  }
164
- async function refreshFunnel(model, existing, content, declaration) {
165
- const id = existing._id;
166
- if (!(0, declarations_1.isUntouchedSinceDeclared)(existing.declaredHash, storedContent(existing))) {
167
- if (existing.declaredHash) {
168
- await model.compareDeclared(existing, { declaredHash: "" });
169
- }
170
- return { id, status: "kept" };
171
- }
172
- const declaredHash = (0, declarations_1.contentHash)(content);
173
- if (declaredHash === existing.declaredHash) {
174
- return { id, status: "unchanged" };
175
- }
176
- const experiment = resolvedExperiment(id, content, existing, declaration);
177
- await assertUniqueKey(id, model, content.websiteId, experiment);
178
- const previousWebsiteId = existing.websiteId;
179
- const applied = await model.compareDeclared(existing, {
180
- websiteId: content.websiteId,
181
- name: content.name,
182
- steps: content.steps,
183
- conversionWindowMs: content.conversionWindowMs,
184
- experiment,
185
- declaredHash,
186
- });
187
- if (!applied) {
188
- return { id, status: "kept" };
189
- }
190
- (0, experiment_definitions_1.invalidateExperimentDefinitions)(content.websiteId);
191
- if (previousWebsiteId !== content.websiteId) {
192
- (0, experiment_definitions_1.invalidateExperimentDefinitions)(previousWebsiteId);
193
- }
194
- return { id, status: "updated" };
195
- }
196
110
  async function ensureFunnel(declaration) {
197
111
  const id = (0, declarations_1.requireDeclaredId)(OPERATION, declaration?.id);
198
112
  const tenantId = (0, declarations_1.declaredTenant)(OPERATION, id, declaration.tenantId);
@@ -201,9 +115,9 @@ async function ensureFunnel(declaration) {
201
115
  const model = (0, interface_database_decorators_1.GetModel)(db_1.FunnelsModel, tenantId);
202
116
  const existing = await model.get(id);
203
117
  if (existing) {
204
- return refreshFunnel(model, existing, content, declaration);
118
+ return { id, status: "kept" };
205
119
  }
206
- const experiment = resolvedExperiment(id, content, undefined, declaration);
120
+ const experiment = resolvedExperiment(id, content, declaration);
207
121
  await assertUniqueKey(id, model, content.websiteId, experiment);
208
122
  const funnel = {
209
123
  _id: id,
@@ -212,17 +126,15 @@ async function ensureFunnel(declaration) {
212
126
  steps: content.steps,
213
127
  conversionWindowMs: content.conversionWindowMs,
214
128
  experiment,
215
- declaredHash: (0, declarations_1.contentHash)(content),
216
129
  };
217
130
  try {
218
131
  await model.insert(funnel);
219
132
  }
220
133
  catch (err) {
221
- const raced = await model.get(id);
222
- if (!raced) {
134
+ if (!(await model.get(id))) {
223
135
  throw err;
224
136
  }
225
- return refreshFunnel(model, raced, content, declaration);
137
+ return { id, status: "kept" };
226
138
  }
227
139
  (0, experiment_definitions_1.invalidateExperimentDefinitions)(content.websiteId);
228
140
  return { id, status: "created" };
@@ -1 +1 @@
1
- {"version":3,"file":"declared-funnel.js","sourceRoot":"","sources":["../../src/services/declared-funnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declared-funnel.js","sourceRoot":"","sources":["../../src/services/declared-funnel.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,6 @@ const declarations_1 = require("./declarations");
10
10
  const snapshots_1 = require("./snapshots");
11
11
  const url_1 = require("./url");
12
12
  const OPERATION = "EnsurePageSnapshot";
13
- function storedContent(row) {
14
- return {
15
- origin: row.origin,
16
- viewport: { width: row.viewportWidth, height: row.viewportHeight },
17
- document: { width: row.documentWidth, height: row.documentHeight },
18
- colorScheme: row.colorScheme ?? null,
19
- html: row.html
20
- ? (0, node_zlib_1.gunzipSync)(Buffer.from(row.html, "base64")).toString("utf8")
21
- : "",
22
- };
23
- }
24
13
  function refuse(url, reason) {
25
14
  return new declarations_1.MarketingDeclarationError(OPERATION, url, reason);
26
15
  }
@@ -34,21 +23,10 @@ async function requireWebsite(url, websiteId, tenantId) {
34
23
  }
35
24
  return website;
36
25
  }
37
- async function refreshSnapshot(model, existing, row) {
38
- if (!(0, declarations_1.isUntouchedSinceDeclared)(existing.declaredHash, storedContent(existing))) {
39
- return "kept";
40
- }
41
- if (row.declaredHash === existing.declaredHash) {
42
- return "unchanged";
43
- }
44
- const { _id: _unchangedId, ...patch } = row;
45
- return (await model.replaceIfUnchanged(existing, patch)) ? "updated" : "kept";
46
- }
47
26
  async function writeSnapshot(tenantId, website, row) {
48
27
  const model = (0, interface_database_decorators_1.GetModel)(db_1.PageSnapshotsModel, tenantId);
49
- const existing = await model.get(row._id);
50
- if (existing) {
51
- return refreshSnapshot(model, existing, row);
28
+ if (await model.get(row._id)) {
29
+ return "kept";
52
30
  }
53
31
  if ((await model.countByWebsite(website._id)) >= constants_1.MAX_SNAPSHOTS_PER_WEBSITE) {
54
32
  throw refuse(row.url, `the website "${website._id}" already holds its ${constants_1.MAX_SNAPSHOTS_PER_WEBSITE} snapshots`);
@@ -57,11 +35,10 @@ async function writeSnapshot(tenantId, website, row) {
57
35
  await model.insert(row);
58
36
  }
59
37
  catch (err) {
60
- const raced = await model.get(row._id);
61
- if (!raced) {
38
+ if (!(await model.get(row._id))) {
62
39
  throw err;
63
40
  }
64
- return refreshSnapshot(model, raced, row);
41
+ return "kept";
65
42
  }
66
43
  return "created";
67
44
  }
@@ -80,13 +57,7 @@ async function ensurePageSnapshot(declaration) {
80
57
  }
81
58
  const url = (0, url_1.parseTrackedUrl)(input.url).path;
82
59
  const layout = (0, types_1.layoutOfWidth)(input.viewport.width);
83
- const content = {
84
- origin,
85
- viewport: input.viewport,
86
- document: input.document,
87
- colorScheme: input.colorScheme ?? null,
88
- html: (0, snapshots_1.sanitizeSnapshotHtml)(input.html),
89
- };
60
+ const html = (0, snapshots_1.sanitizeSnapshotHtml)(input.html);
90
61
  const now = new Date();
91
62
  const row = {
92
63
  _id: (0, snapshots_1.snapshotId)(website._id, layout, url),
@@ -101,11 +72,11 @@ async function ensurePageSnapshot(declaration) {
101
72
  colorScheme: input.colorScheme,
102
73
  capturedAt: now,
103
74
  bytes: Buffer.byteLength(input.html),
104
- html: (0, node_zlib_1.gzipSync)(content.html).toString("base64"),
105
- declaredHash: (0, declarations_1.contentHash)(content),
75
+ scrollRoot: (0, snapshots_1.hasScrollRoot)(html),
76
+ html: (0, node_zlib_1.gzipSync)(html).toString("base64"),
106
77
  };
107
78
  const status = await writeSnapshot(tenantId, website, row);
108
- if (status === "created" || status === "updated") {
79
+ if (status === "created") {
109
80
  (0, snapshots_1.rememberCaptureTime)(row._id, now.getTime());
110
81
  }
111
82
  return { url, layout, status };
@@ -1 +1 @@
1
- {"version":3,"file":"declared-snapshot.js","sourceRoot":"","sources":["../../src/services/declared-snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declared-snapshot.js","sourceRoot":"","sources":["../../src/services/declared-snapshot.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,6 @@ const interface_database_decorators_1 = require("@antelopejs/interface-database-
5
5
  const zod_1 = require("zod");
6
6
  const db_1 = require("@/db");
7
7
  const declarations_1 = require("./declarations");
8
- const experiment_definitions_1 = require("./experiment-definitions");
9
- const origin_guard_1 = require("./origin-guard");
10
- const snapshots_1 = require("./snapshots");
11
8
  const website_cache_1 = require("./website-cache");
12
9
  const website_rules_1 = require("./website-rules");
13
10
  const OPERATION = "EnsureWebsite";
@@ -34,54 +31,17 @@ function declaredContent(id, declaration) {
34
31
  snapshotMaskText: data.snapshotMaskText ?? false,
35
32
  };
36
33
  }
37
- function storedContent(website) {
38
- return {
39
- name: website.name,
40
- domain: website.domain,
41
- extraDomains: website.extraDomains ?? [],
42
- trackingEnabled: website.trackingEnabled,
43
- snapshotsEnabled: website.snapshotsEnabled ?? false,
44
- snapshotMaskText: website.snapshotMaskText ?? false,
45
- };
46
- }
47
34
  async function assertHostsFree(website) {
48
35
  const conflict = await (0, website_rules_1.tenantHostConflict)(website);
49
36
  if (conflict) {
50
37
  throw new declarations_1.MarketingDeclarationError(OPERATION, website._id, `the host "${conflict.hostname}" is already declared by the website "${conflict.website.name}"`);
51
38
  }
52
39
  }
53
- async function refreshWebsite(existing, tenantId, content) {
54
- const id = existing._id;
40
+ function keptWebsite(existing, tenantId) {
55
41
  if (existing.tenantId !== tenantId) {
56
- throw new declarations_1.MarketingDeclarationError(OPERATION, id, "this id already names a website of another tenant");
57
- }
58
- if (!(0, declarations_1.isUntouchedSinceDeclared)(existing.declaredHash, storedContent(existing))) {
59
- if (existing.declaredHash) {
60
- await (0, interface_database_decorators_1.GetModel)(db_1.WebsitesModel).compareDeclared(existing, {
61
- declaredHash: "",
62
- });
63
- }
64
- return { id, status: "kept" };
42
+ throw new declarations_1.MarketingDeclarationError(OPERATION, existing._id, "this id already names a website of another tenant");
65
43
  }
66
- const declaredHash = (0, declarations_1.contentHash)(content);
67
- if (declaredHash === existing.declaredHash) {
68
- return { id, status: "unchanged" };
69
- }
70
- const before = storedContent(existing);
71
- const patch = { ...content, declaredHash, updatedAt: new Date() };
72
- const refreshed = Object.assign({}, existing, patch);
73
- await assertHostsFree(refreshed);
74
- if (!(await (0, interface_database_decorators_1.GetModel)(db_1.WebsitesModel).compareDeclared(existing, patch))) {
75
- return { id, status: "kept" };
76
- }
77
- if (before.snapshotsEnabled !== content.snapshotsEnabled ||
78
- before.snapshotMaskText !== content.snapshotMaskText) {
79
- await (0, snapshots_1.deleteSnapshots)(tenantId, id);
80
- }
81
- (0, website_cache_1.invalidateWebsiteCache)(id);
82
- (0, experiment_definitions_1.invalidateExperimentDefinitions)(id);
83
- (0, origin_guard_1.forgetAcceptedSources)(refreshed);
84
- return { id, status: "updated" };
44
+ return { id: existing._id, status: "kept" };
85
45
  }
86
46
  async function ensureWebsite(declaration) {
87
47
  const id = (0, declarations_1.requireDeclaredId)(OPERATION, declaration?.id);
@@ -90,14 +50,13 @@ async function ensureWebsite(declaration) {
90
50
  const model = (0, interface_database_decorators_1.GetModel)(db_1.WebsitesModel);
91
51
  const existing = await model.get(id);
92
52
  if (existing) {
93
- return refreshWebsite(existing, tenantId, content);
53
+ return keptWebsite(existing, tenantId);
94
54
  }
95
55
  const now = new Date();
96
56
  const website = {
97
57
  _id: id,
98
58
  tenantId,
99
59
  ...content,
100
- declaredHash: (0, declarations_1.contentHash)(content),
101
60
  createdAt: now,
102
61
  updatedAt: now,
103
62
  };
@@ -110,7 +69,7 @@ async function ensureWebsite(declaration) {
110
69
  if (!raced) {
111
70
  throw err;
112
71
  }
113
- return refreshWebsite(raced, tenantId, content);
72
+ return keptWebsite(raced, tenantId);
114
73
  }
115
74
  (0, website_cache_1.invalidateWebsiteCache)(id);
116
75
  return { id, status: "created" };
@@ -1 +1 @@
1
- {"version":3,"file":"declared-website.js","sourceRoot":"","sources":["../../src/services/declared-website.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declared-website.js","sourceRoot":"","sources":["../../src/services/declared-website.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { CellSubline, DefaultDisplays } from "@antelopejs/interface-dms/bas
3
3
  import type { ComposedText } from "@antelopejs/interface-dms/base/types/composed-text";
4
4
  import type { ConfirmDialog } from "@antelopejs/interface-dms/base/types/confirm-dialog";
5
5
  import type { Funnel } from "@/db/tables/funnels.table";
6
+ import type { ComparisonKind } from "./period";
6
7
  import type { FunnelSummaryRow } from "./funnel-report";
7
8
  export interface FunnelTableRow {
8
9
  _id: string;
@@ -18,7 +19,7 @@ export interface FunnelTableRow {
18
19
  comparison: CellSubline | null;
19
20
  status: string | null;
20
21
  }
21
- export declare function funnelTablePayload(rows: FunnelSummaryRow[], kind: string | undefined): {
22
+ export declare function funnelTablePayload(rows: FunnelSummaryRow[], kind: string | undefined, comparison?: ComparisonKind): {
22
23
  results: FunnelTableRow[];
23
24
  total: number;
24
25
  };
@@ -27,5 +28,5 @@ export interface FunnelCoverage {
27
28
  period: boolean;
28
29
  previous: boolean;
29
30
  }
30
- export declare function winnerBanner(rows: FunnelSummaryRow[], coverage?: FunnelCoverage): BannerContent | null;
31
+ export declare function winnerBanner(rows: FunnelSummaryRow[], coverage?: FunnelCoverage, comparison?: ComparisonKind): BannerContent | null;
31
32
  export declare function funnelDeleteConfirmation(funnel: Funnel): ConfirmDialog;
@@ -95,7 +95,7 @@ const day = (value) => ({
95
95
  value,
96
96
  format: "day",
97
97
  });
98
- function comparisonOf(row) {
98
+ function comparisonOf(row, comparison) {
99
99
  const experiment = row.experiment;
100
100
  if (experiment?.status === "running" && experiment.since) {
101
101
  return {
@@ -125,7 +125,7 @@ function comparisonOf(row) {
125
125
  const tone = (0, composed_1.deltaTone)(row.deltaPoints);
126
126
  return {
127
127
  text: {
128
- key: `${COMPOSE_PREFIX}delta`,
128
+ key: `${COMPOSE_PREFIX}${comparison === "previous-year" ? "delta_previous_year" : "delta"}`,
129
129
  params: {
130
130
  sign,
131
131
  value: {
@@ -137,7 +137,7 @@ function comparisonOf(row) {
137
137
  tone: tone === "success" || tone === "error" ? tone : "muted",
138
138
  };
139
139
  }
140
- function funnelTablePayload(rows, kind) {
140
+ function funnelTablePayload(rows, kind, comparison = "previous-period") {
141
141
  const results = rows
142
142
  .filter((row) => !kind || row.kind === kind)
143
143
  .map((row) => ({
@@ -151,7 +151,7 @@ function funnelTablePayload(rows, kind) {
151
151
  completed: row.completed,
152
152
  conversion: row.conversion,
153
153
  conversionText: (0, composed_1.percentText)(row.conversion),
154
- comparison: comparisonOf(row),
154
+ comparison: comparisonOf(row, comparison),
155
155
  status: row.experiment?.status ?? null,
156
156
  }));
157
157
  return { results, total: results.length };
@@ -191,7 +191,7 @@ function winnerOf(rows) {
191
191
  ],
192
192
  };
193
193
  }
194
- function coverageBanner(coverage) {
194
+ function coverageBanner(coverage, comparison) {
195
195
  if (coverage.since === null || (!coverage.period && !coverage.previous)) {
196
196
  return null;
197
197
  }
@@ -202,15 +202,15 @@ function coverageBanner(coverage) {
202
202
  icon: "i-ph-clock-counter-clockwise",
203
203
  title: coverage.period
204
204
  ? { key: `${COVERAGE_PREFIX}period_title`, params }
205
- : `${COVERAGE_PREFIX}previous_title`,
205
+ : `${COVERAGE_PREFIX}${comparison === "previous-year" ? "previous_year_title" : "previous_title"}`,
206
206
  description: { key: `${COVERAGE_PREFIX}description`, params },
207
207
  };
208
208
  }
209
- function winnerBanner(rows, coverage) {
209
+ function winnerBanner(rows, coverage, comparison = "previous-period") {
210
210
  if (coverage?.period) {
211
- return coverageBanner(coverage);
211
+ return coverageBanner(coverage, comparison);
212
212
  }
213
- return winnerOf(rows) ?? (coverage ? coverageBanner(coverage) : null);
213
+ return (winnerOf(rows) ?? (coverage ? coverageBanner(coverage, comparison) : null));
214
214
  }
215
215
  function funnelDeleteConfirmation(funnel) {
216
216
  const running = funnel.experiment?.status === "running";
@@ -1 +1 @@
1
- {"version":3,"file":"funnels-table.js","sourceRoot":"","sources":["../../src/services/funnels-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"funnels-table.js","sourceRoot":"","sources":["../../src/services/funnels-table.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,20 @@ export interface MarketingScrollDepthPayload {
5
5
  reached: number[];
6
6
  truncated: boolean;
7
7
  }
8
+ export declare function mergeClickHeatmaps(heatmaps: MarketingHeatmapPayload[]): MarketingHeatmapPayload;
8
9
  export declare function computeClickHeatmap(tenantId: string, websiteIds: string[], path: string, window: QueryWindow): Promise<MarketingHeatmapPayload>;
9
10
  export declare function computeScrollDepth(tenantId: string, websiteIds: string[], path: string, window: QueryWindow): Promise<MarketingScrollDepthPayload>;
11
+ export declare function mergeScrollDepths(depths: MarketingScrollDepthPayload[]): MarketingScrollDepthPayload;
10
12
  export interface PageActivity {
11
13
  clicks: Map<string, number>;
12
14
  sampled: Map<string, number>;
13
15
  sampleRate: number | null;
14
16
  }
15
17
  export declare function computePageActivity(tenantId: string, websiteId: string, window: QueryWindow): Promise<PageActivity>;
18
+ export declare function computeScopedPageActivity(sites: Array<{
19
+ tenantId: string;
20
+ websiteId: string;
21
+ }>, window: QueryWindow): Promise<PageActivity>;
16
22
  export interface HeatmapData {
17
23
  events: number;
18
24
  snapshots: number;