@antelopejs/dms-marketing 0.7.0 → 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.
- package/README.md +2 -2
- package/dist/db/models/funnels.model.d.ts +0 -1
- package/dist/db/models/funnels.model.js +0 -18
- package/dist/db/models/funnels.model.js.map +1 -1
- package/dist/db/models/page_snapshots.model.d.ts +0 -1
- package/dist/db/models/page_snapshots.model.js +0 -14
- package/dist/db/models/page_snapshots.model.js.map +1 -1
- package/dist/db/models/websites.model.d.ts +0 -1
- package/dist/db/models/websites.model.js +0 -29
- package/dist/db/models/websites.model.js.map +1 -1
- package/dist/db/tables/funnels.table.d.ts +0 -1
- package/dist/db/tables/funnels.table.js +0 -4
- package/dist/db/tables/funnels.table.js.map +1 -1
- package/dist/db/tables/page_snapshots.table.d.ts +0 -1
- package/dist/db/tables/page_snapshots.table.js +0 -4
- package/dist/db/tables/page_snapshots.table.js.map +1 -1
- package/dist/db/tables/websites.table.d.ts +0 -1
- package/dist/db/tables/websites.table.js +0 -4
- package/dist/db/tables/websites.table.js.map +1 -1
- package/dist/implementations/dms-marketing/index.js +0 -5
- package/dist/implementations/dms-marketing/index.js.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/services/declarations.d.ts +0 -2
- package/dist/services/declarations.js +0 -11
- package/dist/services/declarations.js.map +1 -1
- package/dist/services/declared-funnel.js +11 -99
- package/dist/services/declared-funnel.js.map +1 -1
- package/dist/services/declared-snapshot.js +8 -37
- package/dist/services/declared-snapshot.js.map +1 -1
- package/dist/services/declared-website.js +5 -46
- package/dist/services/declared-website.js.map +1 -1
- package/dist/services/snapshots.d.ts +1 -0
- package/dist/services/snapshots.js +6 -2
- package/dist/services/snapshots.js.map +1 -1
- package/frontend-vue/app/components/PagesExplorer.vue +1 -1
- package/frontend-vue/package.json +1 -1
- package/package.json +7 -7
- package/skills/dms-marketing/SKILL.md +8 -7
- package/dist/services/readiness.d.ts +0 -2
- package/dist/services/readiness.js +0 -15
- package/dist/services/readiness.js.map +0 -1
package/README.md
CHANGED
|
@@ -43,8 +43,8 @@ Behind a reverse proxy, set the DMS `auth.trustedProxies` option: see [Installat
|
|
|
43
43
|
|
|
44
44
|
| Package | Version |
|
|
45
45
|
| --- | --- |
|
|
46
|
-
| `@antelopejs/dms` | `>=0.
|
|
47
|
-
| `@antelopejs/interface-dms` | `>=0.
|
|
46
|
+
| `@antelopejs/dms` | `>=0.11.0 <1.0.0` |
|
|
47
|
+
| `@antelopejs/interface-dms` | `>=0.9.0 <1.0.0` |
|
|
48
48
|
| `@antelopejs/dms-frontend` (renderer) | `>=0.6.0 <0.7.0` |
|
|
49
49
|
| `@antelopejs/interface-dms-marketing` | `>=0.5.0 <0.6.0` |
|
|
50
50
|
| `@antelopejs/core` (development dependency) | `>=1.16.0 <2` |
|
|
@@ -19,7 +19,6 @@ declare const FunnelsModel_base: {
|
|
|
19
19
|
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
20
20
|
};
|
|
21
21
|
export declare class FunnelsModel extends FunnelsModel_base {
|
|
22
|
-
compareDeclared(expected: Funnel, patch: Partial<Funnel>): Promise<boolean>;
|
|
23
22
|
deleteByWebsite(websiteId: string): Promise<number>;
|
|
24
23
|
listByWebsite(websiteId: string): Promise<Funnel[]>;
|
|
25
24
|
listRunning(websiteId: string): Promise<Funnel[]>;
|
|
@@ -5,24 +5,6 @@ const interface_database_decorators_1 = require("@antelopejs/interface-database-
|
|
|
5
5
|
const funnels_table_1 = require("../tables/funnels.table");
|
|
6
6
|
const RUNNING_STATUS = "running";
|
|
7
7
|
class FunnelsModel extends (0, interface_database_decorators_1.BasicDataModel)(funnels_table_1.Funnel, funnels_table_1.funnelsTableName) {
|
|
8
|
-
async compareDeclared(expected, patch) {
|
|
9
|
-
const count = await this.table
|
|
10
|
-
.filter((row) => row
|
|
11
|
-
.key("_id")
|
|
12
|
-
.eq(expected._id)
|
|
13
|
-
.and(row.key("websiteId").eq(expected.websiteId))
|
|
14
|
-
.and(row.key("name").eq(expected.name))
|
|
15
|
-
.and(row.key("steps").eq(expected.steps))
|
|
16
|
-
.and(row.key("conversionWindowMs").eq(expected.conversionWindowMs))
|
|
17
|
-
.and(row.key("experiment").eq(expected.experiment))
|
|
18
|
-
.and(row
|
|
19
|
-
.key("declaredHash")
|
|
20
|
-
.default("")
|
|
21
|
-
.eq(expected.declaredHash ?? "")))
|
|
22
|
-
.update(FunnelsModel.toDatabase({ ...patch, updatedAt: new Date() }))
|
|
23
|
-
.run();
|
|
24
|
-
return count === 1;
|
|
25
|
-
}
|
|
26
8
|
async deleteByWebsite(websiteId) {
|
|
27
9
|
return this.table.getAll(websiteId, "websiteId").delete().run();
|
|
28
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnels.model.js","sourceRoot":"","sources":["../../../src/db/models/funnels.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,2DAIiC;AAEjC,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,MAAa,YAAa,SAAQ,IAAA,8CAAc,EAAC,sBAAM,EAAE,gCAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"funnels.model.js","sourceRoot":"","sources":["../../../src/db/models/funnels.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,2DAIiC;AAEjC,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,MAAa,YAAa,SAAQ,IAAA,8CAAc,EAAC,sBAAM,EAAE,gCAAgB,CAAC;IACxE,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;aAC9B,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;aAC5B,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;aAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,GAAG;aACA,GAAG,CAAC,YAAY,CAAC;aACjB,IAAI,EAAoB;aACxB,GAAG,CAAC,QAAQ,CAAC;aACb,EAAE,CAAC,cAAc,CAAC,CACtB;aACA,GAAG,EAAE,CAAC;IACX,CAAC;IAQD,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,GAAW,EACX,SAAkB;QAElB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;aACf,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;aAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAClE,CAAC;QACJ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAMD,KAAK,CAAC,gBAAgB,CAAC,GAAa;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aAClC,QAAQ,EAAE;aACV,GAAG,EAAE,CAAC;IACX,CAAC;CACF;AA9DD,oCA8DC"}
|
|
@@ -24,7 +24,6 @@ export declare class PageSnapshotsModel extends PageSnapshotsModel_base {
|
|
|
24
24
|
listCaptures(websiteId: string): Promise<PageSnapshotCapture[]>;
|
|
25
25
|
countByWebsite(websiteId: string, url?: string): Promise<number>;
|
|
26
26
|
upsert(row: PageSnapshot): Promise<void>;
|
|
27
|
-
replaceIfUnchanged(expected: PageSnapshot, patch: Partial<PageSnapshot>): Promise<boolean>;
|
|
28
27
|
deleteByWebsite(websiteId: string, url?: string): Promise<number>;
|
|
29
28
|
deleteOlderThan(cutoff: Date): Promise<number>;
|
|
30
29
|
private byWebsite;
|
|
@@ -23,20 +23,6 @@ class PageSnapshotsModel extends (0, interface_database_decorators_1.BasicDataMo
|
|
|
23
23
|
async upsert(row) {
|
|
24
24
|
await this.table.insert(row, { conflict: "replace" }).run();
|
|
25
25
|
}
|
|
26
|
-
async replaceIfUnchanged(expected, patch) {
|
|
27
|
-
const count = await this.table
|
|
28
|
-
.filter((row) => row
|
|
29
|
-
.key("_id")
|
|
30
|
-
.eq(expected._id)
|
|
31
|
-
.and(row.key("capturedAt").eq(expected.capturedAt))
|
|
32
|
-
.and(row
|
|
33
|
-
.key("declaredHash")
|
|
34
|
-
.default("")
|
|
35
|
-
.eq(expected.declaredHash ?? "")))
|
|
36
|
-
.update(PageSnapshotsModel.toDatabase(patch))
|
|
37
|
-
.run();
|
|
38
|
-
return count === 1;
|
|
39
|
-
}
|
|
40
26
|
async deleteByWebsite(websiteId, url) {
|
|
41
27
|
return this.byWebsite(websiteId, url).delete().run();
|
|
42
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page_snapshots.model.js","sourceRoot":"","sources":["../../../src/db/models/page_snapshots.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,yEAGwC;AACxC,2CAAgD;AAOhD,MAAa,kBAAmB,SAAQ,IAAA,8CAAc,EACpD,mCAAY,EACZ,6CAAsB,CACvB;IAEC,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,GAAW;QAC5C,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;aAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aACvC,GAAG,EAAE,CAAC;IACX,CAAC;IAMD,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;aAChC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC;aACrD,GAAG,EAAoC,CAAC;IAC7C,CAAC;IAGD,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,GAAY;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAiB;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;
|
|
1
|
+
{"version":3,"file":"page_snapshots.model.js","sourceRoot":"","sources":["../../../src/db/models/page_snapshots.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,yEAGwC;AACxC,2CAAgD;AAOhD,MAAa,kBAAmB,SAAQ,IAAA,8CAAc,EACpD,mCAAY,EACZ,6CAAsB,CACvB;IAEC,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,GAAW;QAC5C,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;aAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aACvC,GAAG,EAAE,CAAC;IACX,CAAC;IAMD,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;aAChC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC;aACrD,GAAG,EAAoC,CAAC;IAC7C,CAAC;IAGD,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,GAAY;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAiB;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,GAAY;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAY;QAChC,OAAO,IAAA,6BAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAGO,SAAS,CAAC,SAAiB,EAAE,GAAY;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;CACF;AA7CD,gDA6CC"}
|
|
@@ -19,7 +19,6 @@ declare const WebsitesModel_base: {
|
|
|
19
19
|
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
20
20
|
};
|
|
21
21
|
export declare class WebsitesModel extends WebsitesModel_base {
|
|
22
|
-
compareDeclared(expected: Website, patch: Partial<Website>): Promise<boolean>;
|
|
23
22
|
getByTenant(tenantId: string): Promise<Website[]>;
|
|
24
23
|
listIdsByTenant(tenantId: string): Promise<string[]>;
|
|
25
24
|
getMany(ids: string[]): Promise<Website[]>;
|
|
@@ -4,35 +4,6 @@ exports.WebsitesModel = void 0;
|
|
|
4
4
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
5
|
const websites_table_1 = require("../tables/websites.table");
|
|
6
6
|
class WebsitesModel extends (0, interface_database_decorators_1.BasicDataModel)(websites_table_1.Website, websites_table_1.websitesTableName) {
|
|
7
|
-
async compareDeclared(expected, patch) {
|
|
8
|
-
const count = await this.table
|
|
9
|
-
.filter((row) => row
|
|
10
|
-
.key("_id")
|
|
11
|
-
.eq(expected._id)
|
|
12
|
-
.and(row.key("tenantId").eq(expected.tenantId))
|
|
13
|
-
.and(row.key("name").eq(expected.name))
|
|
14
|
-
.and(row.key("domain").eq(expected.domain))
|
|
15
|
-
.and(row
|
|
16
|
-
.key("extraDomains")
|
|
17
|
-
.default([])
|
|
18
|
-
.eq(expected.extraDomains ?? []))
|
|
19
|
-
.and(row.key("trackingEnabled").eq(expected.trackingEnabled))
|
|
20
|
-
.and(row
|
|
21
|
-
.key("snapshotsEnabled")
|
|
22
|
-
.default(false)
|
|
23
|
-
.eq(expected.snapshotsEnabled ?? false))
|
|
24
|
-
.and(row
|
|
25
|
-
.key("snapshotMaskText")
|
|
26
|
-
.default(false)
|
|
27
|
-
.eq(expected.snapshotMaskText ?? false))
|
|
28
|
-
.and(row
|
|
29
|
-
.key("declaredHash")
|
|
30
|
-
.default("")
|
|
31
|
-
.eq(expected.declaredHash ?? "")))
|
|
32
|
-
.update(WebsitesModel.toDatabase({ ...patch, updatedAt: new Date() }))
|
|
33
|
-
.run();
|
|
34
|
-
return count === 1;
|
|
35
|
-
}
|
|
36
7
|
async getByTenant(tenantId) {
|
|
37
8
|
return this.table
|
|
38
9
|
.getAll(tenantId, "tenantId")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websites.model.js","sourceRoot":"","sources":["../../../src/db/models/websites.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,6DAAsE;AAEtE,MAAa,aAAc,SAAQ,IAAA,8CAAc,EAAC,wBAAO,EAAE,kCAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"websites.model.js","sourceRoot":"","sources":["../../../src/db/models/websites.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,6DAAsE;AAEtE,MAAa,aAAc,SAAQ,IAAA,8CAAc,EAAC,wBAAO,EAAE,kCAAiB,CAAC;IAC3E,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;aAC5B,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;aAC5B,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC5B,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,OAAO,CAAC,GAAa;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChD,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC;CACF;AAlCD,sCAkCC"}
|
|
@@ -38,10 +38,6 @@ __decorate([
|
|
|
38
38
|
(0, interface_database_decorators_1.Field)("any"),
|
|
39
39
|
__metadata("design:type", Object)
|
|
40
40
|
], Funnel.prototype, "experiment", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, interface_database_decorators_1.Field)("string"),
|
|
43
|
-
__metadata("design:type", String)
|
|
44
|
-
], Funnel.prototype, "declaredHash", void 0);
|
|
45
41
|
__decorate([
|
|
46
42
|
(0, interface_database_decorators_1.CreationTime)(),
|
|
47
43
|
(0, interface_database_decorators_1.Field)("date"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnels.table.js","sourceRoot":"","sources":["../../../src/db/tables/funnels.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAOmD;AACnD,mEAAyE;AAE5D,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AAOvC,QAAA,mBAAmB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAsDrE,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"funnels.table.js","sourceRoot":"","sources":["../../../src/db/tables/funnels.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAOmD;AACnD,mEAAyE;AAE5D,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AAOvC,QAAA,mBAAmB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAsDrE,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,qCAAK;CA0BhC,CAAA;AA1BY,wBAAM;AAGT;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;yCACU;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oCACK;AAGb;IADP,IAAA,qCAAK,EAAC,CAAC,KAAK,CAAC,CAAC;;qCACa;AAIpB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kDACmB;AAI3B;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;0CAC+B;AAIpC;IAFP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;yCAAC;AAIhB;IAFP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;yCAAC;iBAzBb,MAAM;IADlB,IAAA,6CAAa,EAAC,wBAAgB,EAAE,8BAAkB,CAAC;GACvC,MAAM,CA0BlB"}
|
|
@@ -70,10 +70,6 @@ __decorate([
|
|
|
70
70
|
(0, interface_database_decorators_1.Field)("string"),
|
|
71
71
|
__metadata("design:type", String)
|
|
72
72
|
], PageSnapshot.prototype, "html", void 0);
|
|
73
|
-
__decorate([
|
|
74
|
-
(0, interface_database_decorators_1.Field)("string"),
|
|
75
|
-
__metadata("design:type", String)
|
|
76
|
-
], PageSnapshot.prototype, "declaredHash", void 0);
|
|
77
73
|
exports.PageSnapshot = PageSnapshot = __decorate([
|
|
78
74
|
(0, interface_database_decorators_1.RegisterTable)(exports.pageSnapshotsTableName, constants_1.TENANT_SCHEMA_NAME)
|
|
79
75
|
], PageSnapshot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page_snapshots.table.js","sourceRoot":"","sources":["../../../src/db/tables/page_snapshots.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAKmD;AACnD,mEAAyE;AAG5D,QAAA,sBAAsB,GAAG,0BAA0B,CAAC;AAS1D,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"page_snapshots.table.js","sourceRoot":"","sources":["../../../src/db/tables/page_snapshots.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAKmD;AACnD,mEAAyE;AAG5D,QAAA,sBAAsB,GAAG,0BAA0B,CAAC;AAS1D,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,qCAAK;CAqDtC,CAAA;AArDY,oCAAY;AAGf;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;+CACU;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;yCACI;AAGZ;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACe;AAIvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACO;AAGf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACc;AAGtB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oDACe;AAGvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACc;AAGtB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oDACe;AAGvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDAC0B;AAKlC;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACM,IAAI;gDAAC;AAMjB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACM;AASd;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;gDACY;AAIrB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACK;uBApDV,YAAY;IADxB,IAAA,6CAAa,EAAC,8BAAsB,EAAE,8BAAkB,CAAC;GAC7C,YAAY,CAqDxB"}
|
|
@@ -49,10 +49,6 @@ __decorate([
|
|
|
49
49
|
(0, interface_database_decorators_1.Field)("boolean"),
|
|
50
50
|
__metadata("design:type", Boolean)
|
|
51
51
|
], Website.prototype, "snapshotMaskText", void 0);
|
|
52
|
-
__decorate([
|
|
53
|
-
(0, interface_database_decorators_1.Field)("string"),
|
|
54
|
-
__metadata("design:type", String)
|
|
55
|
-
], Website.prototype, "declaredHash", void 0);
|
|
56
52
|
__decorate([
|
|
57
53
|
(0, interface_database_decorators_1.Field)("date"),
|
|
58
54
|
__metadata("design:type", Date)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websites.table.js","sourceRoot":"","sources":["../../../src/db/tables/websites.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AAE1D,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAY/C,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"websites.table.js","sourceRoot":"","sources":["../../../src/db/tables/websites.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AAE1D,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAY/C,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,qCAAK;CA4CjC,CAAA;AA5CY,0BAAO;AAGV;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;yCACS;AAGjB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCACK;AAGb;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;uCACO;AAKf;IADP,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;6CACc;AAIxB;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;gDACgB;AAKzB;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;iDACiB;AAS1B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;+CAC+B;AAIvC;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;iDACkB;AAG3B;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;0CAAC;AAIhB;IAFP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;0CAAC;kBA3Cb,OAAO;IADnB,IAAA,6CAAa,EAAC,yBAAiB,EAAE,4BAAgB,CAAC;GACtC,OAAO,CA4CnB"}
|
|
@@ -10,24 +10,19 @@ const declared_funnel_1 = require("@/services/declared-funnel");
|
|
|
10
10
|
const declared_snapshot_1 = require("@/services/declared-snapshot");
|
|
11
11
|
const declared_website_1 = require("@/services/declared-website");
|
|
12
12
|
const heatmap_1 = require("@/services/heatmap");
|
|
13
|
-
const readiness_1 = require("@/services/readiness");
|
|
14
13
|
async function GetClickHeatmap(query) {
|
|
15
14
|
return (0, heatmap_1.buildTenantHeatmap)(query);
|
|
16
15
|
}
|
|
17
16
|
async function EnsureWebsite(declaration) {
|
|
18
|
-
await (0, readiness_1.whenMarketingReady)();
|
|
19
17
|
return (0, declared_website_1.ensureWebsite)(declaration);
|
|
20
18
|
}
|
|
21
19
|
async function EnsureFunnel(declaration) {
|
|
22
|
-
await (0, readiness_1.whenMarketingReady)();
|
|
23
20
|
return (0, declared_funnel_1.ensureFunnel)(declaration);
|
|
24
21
|
}
|
|
25
22
|
async function EnsurePageSnapshot(declaration) {
|
|
26
|
-
await (0, readiness_1.whenMarketingReady)();
|
|
27
23
|
return (0, declared_snapshot_1.ensurePageSnapshot)(declaration);
|
|
28
24
|
}
|
|
29
25
|
async function ImportAnalytics(batch) {
|
|
30
|
-
await (0, readiness_1.whenMarketingReady)();
|
|
31
26
|
return (0, analytics_import_1.importAnalytics)(batch);
|
|
32
27
|
}
|
|
33
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/dms-marketing/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/dms-marketing/index.ts"],"names":[],"mappings":";;AAiBA,0CAIC;AAED,sCAIC;AAED,oCAIC;AAED,gDAIC;AAED,0CAIC;AAlCD,kEAA8D;AAC9D,gEAA0D;AAC1D,oEAAkE;AAClE,kEAA4D;AAC5D,gDAAwD;AAEjD,KAAK,UAAU,eAAe,CACnC,KAA4B;IAE5B,OAAO,IAAA,4BAAkB,EAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,WAAwC;IAExC,OAAO,IAAA,gCAAa,EAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,WAAuC;IAEvC,OAAO,IAAA,8BAAY,EAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,WAA6C;IAE7C,OAAO,IAAA,sCAAkB,EAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,KAA+B;IAE/B,OAAO,IAAA,kCAAe,EAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,6 @@ const node_cron_1 = __importDefault(require("node-cron"));
|
|
|
52
52
|
const config_1 = require("./config");
|
|
53
53
|
const hooks_2 = require("./hooks");
|
|
54
54
|
const frontend_module_1 = require("./frontend-module");
|
|
55
|
-
const readiness_1 = require("./services/readiness");
|
|
56
55
|
const services_1 = require("./services");
|
|
57
56
|
const constants_1 = require("./types/constants");
|
|
58
57
|
const HOURLY_CRON = "0 * * * *";
|
|
@@ -70,7 +69,6 @@ async function construct(config) {
|
|
|
70
69
|
async function onDatabaseInitialized() {
|
|
71
70
|
const settings = (0, interface_database_decorators_1.GetModel)(db_1.MarketingSettingsModel);
|
|
72
71
|
await (0, services_1.loadSettings)(settings);
|
|
73
|
-
(0, readiness_1.markMarketingReady)();
|
|
74
72
|
settingsReload ??= setInterval(() => {
|
|
75
73
|
void (0, services_1.reloadSettings)(settings).catch(logReloadError);
|
|
76
74
|
}, SETTINGS_RELOAD_MS);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,8BAgBC;AAoCD,0BAAkC;AAElC,oBAYC;AAhGD,6BAA8C;AAC9C,sBAAoB;AACpB,oBAAkB;AAClB,mBAAiB;AAEjB,+DAAgE;AAChE,gEAA6D;AAC7D,6FAAqE;AACrE,2DAAqE;AACrE,yDAAmE;AACnE,0DAAqD;AACrD,qCAAmE;AACnE,mCAAyD;AACzD,uDAAmD;AACnD,yCAMoB;AACpB,iDAAkD;AAElD,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,MAAM,kBAAkB,GAAG,EAAE,GAAG,yBAAa,CAAC;AAE9C,IAAI,SAAS,GAAyB,IAAI,CAAC;AAC3C,IAAI,cAAc,GAA0B,IAAI,CAAC;AAE1C,KAAK,UAAU,SAAS,CAC7B,MAAgC;IAEhC,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;IAClB,MAAM,IAAA,4BAAiB,GAAE,CAAC;IAC1B,IAAA,sCAA8B,GAAE,CAAC;IACjC,IAAA,oBAAY,EAAC,YAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IAI/D,IAAA,mCAAkB,EAChB,wDAAa,qCAAqC,GAAC,EACnD,wDAAa,iCAAiC,GAAC,CAChD,CAAC;IAEF,MAAM,IAAA,wBAAiB,EAAC,IAAA,gCAAc,EAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAQD,KAAK,UAAU,qBAAqB;IAClC,MAAM,QAAQ,GAAG,IAAA,wCAAQ,EAAC,2BAAsB,CAAC,CAAC;IAIlD,MAAM,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC;IAI7B,cAAc,KAAK,WAAW,CAAC,GAAG,EAAE;QAClC,KAAK,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACvB,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,SAAS,KAAK,mBAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAC5C,KAAK,IAAA,yBAAc,EAAC,QAAQ,CAAC;aAC1B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAA,0BAAe,EAAC,aAAa,CAAC,CAAC;aAC1C,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,iBAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,iBAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,OAAO,KAAU,CAAC;AAElC,SAAgB,IAAI;IAClB,IAAA,+BAAoB,GAAE,CAAC;IACvB,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,CAAC;QAC9B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QAGd,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -5,7 +5,5 @@ export declare class MarketingDeclarationError extends Error {
|
|
|
5
5
|
export declare const declaredIdSchema: z.ZodString;
|
|
6
6
|
export declare function requireDeclaredId(operation: string, value: unknown): string;
|
|
7
7
|
export declare function declaredTenant(operation: string, id: string, tenantId: unknown): string;
|
|
8
|
-
export declare function contentHash(content: unknown): string;
|
|
9
|
-
export declare function isUntouchedSinceDeclared(declaredHash: string | undefined, currentContent: unknown): declaredHash is string;
|
|
10
8
|
export declare function instantOf(value: unknown): number | undefined;
|
|
11
9
|
export declare function describeIssue(error: unknown): string;
|
|
@@ -3,11 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.declaredIdSchema = exports.MarketingDeclarationError = void 0;
|
|
4
4
|
exports.requireDeclaredId = requireDeclaredId;
|
|
5
5
|
exports.declaredTenant = declaredTenant;
|
|
6
|
-
exports.contentHash = contentHash;
|
|
7
|
-
exports.isUntouchedSinceDeclared = isUntouchedSinceDeclared;
|
|
8
6
|
exports.instantOf = instantOf;
|
|
9
7
|
exports.describeIssue = describeIssue;
|
|
10
|
-
const node_crypto_1 = require("node:crypto");
|
|
11
8
|
const zod_1 = require("zod");
|
|
12
9
|
const constants_1 = require("@/types/constants");
|
|
13
10
|
class MarketingDeclarationError extends Error {
|
|
@@ -33,14 +30,6 @@ function declaredTenant(operation, id, tenantId) {
|
|
|
33
30
|
}
|
|
34
31
|
return tenantId;
|
|
35
32
|
}
|
|
36
|
-
function contentHash(content) {
|
|
37
|
-
return (0, node_crypto_1.createHash)("sha256").update(JSON.stringify(content)).digest("hex");
|
|
38
|
-
}
|
|
39
|
-
function isUntouchedSinceDeclared(declaredHash, currentContent) {
|
|
40
|
-
return (declaredHash !== undefined &&
|
|
41
|
-
declaredHash !== null &&
|
|
42
|
-
contentHash(currentContent) === declaredHash);
|
|
43
|
-
}
|
|
44
33
|
function instantOf(value) {
|
|
45
34
|
const ms = typeof value === "number"
|
|
46
35
|
? value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../src/services/declarations.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../src/services/declarations.ts"],"names":[],"mappings":";;;AAoBA,8CAUC;AAED,wCAiBC;AAGD,8BAQC;AASD,sCAQC;AA7ED,6BAAwB;AACxB,iDAAwD;AASxD,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,SAAiB,EAAE,EAAU,EAAE,MAAc;QACvD,KAAK,CAAC,mBAAmB,SAAS,KAAK,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AALD,8DAKC;AAEY,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAAmB,CAAC,CAAC;AAGtE,SAAgB,iBAAiB,CAAC,SAAiB,EAAE,KAAc;IACjE,MAAM,MAAM,GAAG,wBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,yBAAyB,CACjC,SAAS,EACT,MAAM,CAAC,KAAK,CAAC,EACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAgB,cAAc,CAC5B,SAAiB,EACjB,EAAU,EACV,QAAiB;IAEjB,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QACtB,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,EAC5B,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,SAAS,EACT,EAAE,EACF,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGD,SAAgB,SAAS,CAAC,KAAc;IACtC,MAAM,EAAE,GACN,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAGD,MAAM,iBAAiB,GAA2B;IAChD,yCAAyC,EACvC,4CAA4C;CAC/C,CAAC;AAGF,SAAgB,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,OAAO,CAAC;QAC1E,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -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,
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
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
|
-
|
|
128
|
-
return runs;
|
|
85
|
+
return [{ startedAt, stoppedAt }];
|
|
129
86
|
}
|
|
130
|
-
function resolvedExperiment(id, content,
|
|
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,
|
|
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
|
|
118
|
+
return { id, status: "kept" };
|
|
205
119
|
}
|
|
206
|
-
const experiment = resolvedExperiment(id, content,
|
|
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
|
-
|
|
222
|
-
if (!raced) {
|
|
134
|
+
if (!(await model.get(id))) {
|
|
223
135
|
throw err;
|
|
224
136
|
}
|
|
225
|
-
return
|
|
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":";;
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
61
|
-
if (!raced) {
|
|
38
|
+
if (!(await model.get(row._id))) {
|
|
62
39
|
throw err;
|
|
63
40
|
}
|
|
64
|
-
return
|
|
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
|
|
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
|
-
|
|
105
|
-
|
|
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"
|
|
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":";;
|
|
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
|
-
|
|
54
|
-
const id = existing._id;
|
|
40
|
+
function keptWebsite(existing, tenantId) {
|
|
55
41
|
if (existing.tenantId !== tenantId) {
|
|
56
|
-
throw new declarations_1.MarketingDeclarationError(OPERATION,
|
|
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
|
-
|
|
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
|
|
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
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"declared-website.js","sourceRoot":"","sources":["../../src/services/declared-website.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Website } from "@/db/tables/websites.table";
|
|
2
2
|
import { type SnapshotColorScheme, type SnapshotLayout, type SnapshotRequestInput } from "@/types";
|
|
3
3
|
export declare function snapshotId(websiteId: string, layout: SnapshotLayout, url: string): string;
|
|
4
|
+
export declare function hasScrollRoot(html: string): boolean;
|
|
4
5
|
export declare function rememberCaptureTime(id: string, capturedAt: number): void;
|
|
5
6
|
export declare function forgetCaptureTimes(): void;
|
|
6
7
|
export declare function wantsSnapshot(website: Website, url: string, viewportWidth: number, visitorId: string, scrollRoot?: boolean): Promise<string | undefined>;
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.snapshotId = snapshotId;
|
|
7
|
+
exports.hasScrollRoot = hasScrollRoot;
|
|
7
8
|
exports.rememberCaptureTime = rememberCaptureTime;
|
|
8
9
|
exports.forgetCaptureTimes = forgetCaptureTimes;
|
|
9
10
|
exports.wantsSnapshot = wantsSnapshot;
|
|
@@ -50,12 +51,15 @@ async function captureStateOf(website, id) {
|
|
|
50
51
|
const state = row
|
|
51
52
|
? {
|
|
52
53
|
capturedAt: row.capturedAt.getTime(),
|
|
53
|
-
unmarked: row.scrollRoot === undefined
|
|
54
|
+
unmarked: row.scrollRoot === undefined,
|
|
54
55
|
}
|
|
55
56
|
: NO_CAPTURE;
|
|
56
57
|
captureStates.set(id, state);
|
|
57
58
|
return state;
|
|
58
59
|
}
|
|
60
|
+
function hasScrollRoot(html) {
|
|
61
|
+
return html.includes(SCROLL_ROOT_ATTRIBUTE);
|
|
62
|
+
}
|
|
59
63
|
function rememberCaptureTime(id, capturedAt) {
|
|
60
64
|
captureStates.set(id, { capturedAt, unmarked: false });
|
|
61
65
|
}
|
|
@@ -255,7 +259,7 @@ async function storeSnapshot(website, input, visitorId) {
|
|
|
255
259
|
capturedAt: now,
|
|
256
260
|
bytes: stored.bytes,
|
|
257
261
|
html: stored.html,
|
|
258
|
-
scrollRoot: "html" in input && input.html
|
|
262
|
+
scrollRoot: "html" in input && hasScrollRoot(input.html),
|
|
259
263
|
});
|
|
260
264
|
captureStates.set(id, { capturedAt: now.getTime(), unmarked: false });
|
|
261
265
|
(0, realtime_1.noteCollected)(website.tenantId, 1);
|
|
@@ -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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"}
|
|
@@ -390,7 +390,7 @@ const usedIn = computed(() =>
|
|
|
390
390
|
// holds its place, until the browser hydrating it is mounted. A client
|
|
391
391
|
// navigation draws it with the list, from the first render: mounted later,
|
|
392
392
|
// it would come in after the list, and its skeleton after none.
|
|
393
|
-
const mounted = ref(!import.meta.env.SSR && !
|
|
393
|
+
const mounted = ref(!import.meta.env.SSR && !isDmsHydrating())
|
|
394
394
|
if (mounted.value) {
|
|
395
395
|
selectFirst(inventory.value)
|
|
396
396
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/dms-marketing",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "First-party marketing analytics for the AntelopeJS DMS: traffic dashboards, conversion funnels with A/B splits and click heatmaps, without cookies or external services.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ab-testing",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"@antelopejs/interface-api": ">=0.0.15 <1.0.0",
|
|
48
48
|
"@antelopejs/interface-api-util": ">=0.1.3 <1.0.0",
|
|
49
49
|
"@antelopejs/interface-core": ">=0.2.4 <1.0.0",
|
|
50
|
-
"@antelopejs/interface-data-api": ">=0.
|
|
51
|
-
"@antelopejs/interface-database": ">=0.1.
|
|
52
|
-
"@antelopejs/interface-database-decorators": ">=0.1.
|
|
53
|
-
"@antelopejs/interface-dms": ">=0.
|
|
50
|
+
"@antelopejs/interface-data-api": ">=0.4.0 <1.0.0",
|
|
51
|
+
"@antelopejs/interface-database": ">=0.1.11 <1.0.0",
|
|
52
|
+
"@antelopejs/interface-database-decorators": ">=0.1.10 <1.0.0",
|
|
53
|
+
"@antelopejs/interface-dms": ">=0.9.0 <1.0.0",
|
|
54
54
|
"@antelopejs/interface-dms-marketing": ">=0.5.0 <0.6.0",
|
|
55
55
|
"defu": "^6.1.4",
|
|
56
56
|
"maxmind": "^5.0.7",
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
"zod": "~3.24.4"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@antelopejs/core": ">=1.17.
|
|
63
|
+
"@antelopejs/core": ">=1.17.1 <2",
|
|
64
64
|
"@antelopejs/interface-mongodb": ">=0.0.6 <1.0.0",
|
|
65
|
-
"@antelopejs/mongodb": "1.
|
|
65
|
+
"@antelopejs/mongodb": "1.5.0",
|
|
66
66
|
"@antelopejs/tooling-configs": ">=0.0.9 <1.0.0",
|
|
67
67
|
"@types/node": "^22.19.15",
|
|
68
68
|
"@types/sanitize-html": "^2.16.2",
|
|
@@ -101,11 +101,11 @@ config: { dashboardTracking: { enabled: true, websiteName: "Dashboard", excludeP
|
|
|
101
101
|
|
|
102
102
|
## Content from code
|
|
103
103
|
|
|
104
|
-
Never write the module's tables. From a
|
|
105
|
-
`
|
|
104
|
+
Never write the module's tables. From a `Hook.TENANT_BEING_PROVISIONED` handler (once per tenant, the
|
|
105
|
+
`default` one included; never `start()` or DATABASE_INITIALIZED) use `@antelopejs/interface-dms-marketing`:
|
|
106
106
|
|
|
107
107
|
```typescript
|
|
108
|
-
|
|
108
|
+
RegisterHook(Hook.TENANT_BEING_PROVISIONED, async ({ tenantId }) => {
|
|
109
109
|
await EnsureWebsite({ tenantId, id: "shop-site", name: "Shop", domain: "shop.example.com",
|
|
110
110
|
snapshotsEnabled: true }); // id = data-website-id, global
|
|
111
111
|
await EnsureFunnel({ tenantId, id: "shop-quote", websiteId: "shop-site", name: "Quote",
|
|
@@ -116,11 +116,12 @@ await EnsurePageSnapshot({ tenantId, websiteId: "shop-site", url: "https://shop.
|
|
|
116
116
|
html, viewport: { width: 1280, height: 800 }, document: { width: 1280, height: 2600 } });
|
|
117
117
|
await ImportAnalytics({ tenantId, importId: "shop-history", websiteId: "shop-site", sessions: [
|
|
118
118
|
{ visitor: "v1", userAgent, country: "BE", events: [{ kind: "pageview", at: "2026-10-01T09:00:00Z", url }] }] });
|
|
119
|
+
});
|
|
119
120
|
```
|
|
120
121
|
|
|
121
|
-
- Ensure*
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
- Ensure* write once, from `Hook.TENANT_BEING_PROVISIONED`: `created`, or `kept` for an id that already exists
|
|
123
|
+
(no hash, no refresh); delete a record in the dashboard to re-take it. Dashboard rules apply (hostnames,
|
|
124
|
+
1-10 steps, 2-8 arms); a split is created draft, running (one open run) or stopped (one closed run).
|
|
124
125
|
- ImportAnalytics replays through the live collect pipeline with trusted timestamps (same sessions,
|
|
125
126
|
raw events and daily rows); once per importId + website, later calls `in_progress` (first still replaying, counts not final),
|
|
126
127
|
then `skipped` (or `failed`); ≤ 10,000 sessions and
|
|
@@ -128,7 +129,7 @@ await ImportAnalytics({ tenantId, importId: "shop-history", websiteId: "shop-sit
|
|
|
128
129
|
draft splits. `startedAt` on a running split makes imported exposures count.
|
|
129
130
|
- EnsurePageSnapshot: the heatmap backdrop of a page the tracker cannot capture (not online, imported
|
|
130
131
|
history); keyed by path + layout of `viewport` (desktop ≥ 1024, tablet ≥ 600, phone); sanitized like a
|
|
131
|
-
capture (a `<style>` with `<` before a letter, `!`, `/` or `?` is dropped: CSS-escape that character); needs `snapshotsEnabled`; a live capture replaces it and is
|
|
132
|
+
capture (a `<style>` with `<` before a letter, `!`, `/` or `?` is dropped: CSS-escape that character); needs `snapshotsEnabled`; a live capture replaces it; an existing snapshot of that page and layout is `kept`.
|
|
132
133
|
- `tenantId` is required on every content call: no default. Full contract: the interface package's
|
|
133
134
|
`docs/1.index.md`.
|
|
134
135
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.markMarketingReady = markMarketingReady;
|
|
4
|
-
exports.whenMarketingReady = whenMarketingReady;
|
|
5
|
-
let markReady = () => { };
|
|
6
|
-
const ready = new Promise((resolve) => {
|
|
7
|
-
markReady = resolve;
|
|
8
|
-
});
|
|
9
|
-
function markMarketingReady() {
|
|
10
|
-
markReady();
|
|
11
|
-
}
|
|
12
|
-
function whenMarketingReady() {
|
|
13
|
-
return ready;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=readiness.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/services/readiness.ts"],"names":[],"mappings":";;AAWA,gDAEC;AAED,gDAEC;AAXD,IAAI,SAAS,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;AACrC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IAC1C,SAAS,GAAG,OAAO,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,SAAgB,kBAAkB;IAChC,SAAS,EAAE,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,KAAK,CAAC;AACf,CAAC"}
|