@valencets/cms 0.6.0 → 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.
- package/dist/auth/auth-routes.d.ts.map +1 -1
- package/dist/auth/auth-routes.js +6 -3
- package/dist/auth/auth-routes.js.map +1 -1
- package/dist/db/column-helpers.d.ts +25 -0
- package/dist/db/column-helpers.d.ts.map +1 -0
- package/dist/db/column-helpers.js +34 -0
- package/dist/db/column-helpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/telemetry-scheduler.d.ts +14 -0
- package/dist/telemetry-scheduler.d.ts.map +1 -0
- package/dist/telemetry-scheduler.js +61 -0
- package/dist/telemetry-scheduler.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA4BxD,wBAAgB,mBAAmB,CAAE,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAS5E;AAUD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,GAC9B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA4BxD,wBAAgB,mBAAmB,CAAE,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAS5E;AAUD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,GAC9B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAoG7B"}
|
package/dist/auth/auth-routes.js
CHANGED
|
@@ -78,10 +78,13 @@ export function createAuthRoutes(pool, collections) {
|
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
const secure = isEncrypted(req);
|
|
81
|
-
const
|
|
81
|
+
const sessionCookie = buildSessionCookie(sessionResult.value, 7200, secure);
|
|
82
|
+
// Set both the HttpOnly session cookie and a JS-readable indicator cookie
|
|
83
|
+
const secureFlag = secure ? '; Secure' : '';
|
|
84
|
+
const indicatorCookie = `cms_authed=1; Path=/; SameSite=Strict${secureFlag}; Max-Age=7200`;
|
|
82
85
|
res.writeHead(200, {
|
|
83
86
|
'Content-Type': 'application/json; charset=utf-8',
|
|
84
|
-
'Set-Cookie':
|
|
87
|
+
'Set-Cookie': [sessionCookie, indicatorCookie]
|
|
85
88
|
});
|
|
86
89
|
res.end(JSON.stringify({ user: { id: user.id, email: user.email, [displayField]: Reflect.get(user, displayField) ?? user.email } }));
|
|
87
90
|
}
|
|
@@ -96,7 +99,7 @@ export function createAuthRoutes(pool, collections) {
|
|
|
96
99
|
const secure = isEncrypted(req);
|
|
97
100
|
res.writeHead(200, {
|
|
98
101
|
'Content-Type': 'application/json; charset=utf-8',
|
|
99
|
-
'Set-Cookie': buildExpiredSessionCookie(secure)
|
|
102
|
+
'Set-Cookie': [buildExpiredSessionCookie(secure), `cms_authed=; Path=/; SameSite=Strict${secure ? '; Secure' : ''}; Max-Age=0`]
|
|
100
103
|
});
|
|
101
104
|
res.end(JSON.stringify({ message: 'Logged out' }));
|
|
102
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column name utilities for custom SQL queries against CMS-managed tables.
|
|
3
|
+
*
|
|
4
|
+
* CMS system columns use snake_case in the database:
|
|
5
|
+
* id, created_at, updated_at, deleted_at
|
|
6
|
+
*
|
|
7
|
+
* User-defined field names are stored as-is (matching the name in valence.config.ts).
|
|
8
|
+
* If you define field.text({ name: 'avatarUrl' }), the column is "avatarUrl" (quoted).
|
|
9
|
+
* If you define field.text({ name: 'avatar_url' }), the column is avatar_url.
|
|
10
|
+
*/
|
|
11
|
+
/** System columns present on every CMS-managed table. Always snake_case. */
|
|
12
|
+
export declare const SYSTEM_COLUMNS: {
|
|
13
|
+
readonly id: "id";
|
|
14
|
+
readonly createdAt: "created_at";
|
|
15
|
+
readonly updatedAt: "updated_at";
|
|
16
|
+
readonly deletedAt: "deleted_at";
|
|
17
|
+
};
|
|
18
|
+
/** Convert a camelCase field name to its DB column name. System columns map to snake_case. */
|
|
19
|
+
export declare function toColumn(fieldName: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Build a SELECT clause from field names, mapping system columns to snake_case.
|
|
22
|
+
* @example selectColumns('id', 'username', 'createdAt') => 'id, username, created_at'
|
|
23
|
+
*/
|
|
24
|
+
export declare function selectColumns(...fields: string[]): string;
|
|
25
|
+
//# sourceMappingURL=column-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-helpers.d.ts","sourceRoot":"","sources":["../../src/db/column-helpers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc;;;;;CAKjB,CAAA;AAEV,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isValidIdentifier } from './sql-sanitize.js';
|
|
2
|
+
/**
|
|
3
|
+
* Column name utilities for custom SQL queries against CMS-managed tables.
|
|
4
|
+
*
|
|
5
|
+
* CMS system columns use snake_case in the database:
|
|
6
|
+
* id, created_at, updated_at, deleted_at
|
|
7
|
+
*
|
|
8
|
+
* User-defined field names are stored as-is (matching the name in valence.config.ts).
|
|
9
|
+
* If you define field.text({ name: 'avatarUrl' }), the column is "avatarUrl" (quoted).
|
|
10
|
+
* If you define field.text({ name: 'avatar_url' }), the column is avatar_url.
|
|
11
|
+
*/
|
|
12
|
+
/** System columns present on every CMS-managed table. Always snake_case. */
|
|
13
|
+
export const SYSTEM_COLUMNS = {
|
|
14
|
+
id: 'id',
|
|
15
|
+
createdAt: 'created_at',
|
|
16
|
+
updatedAt: 'updated_at',
|
|
17
|
+
deletedAt: 'deleted_at'
|
|
18
|
+
};
|
|
19
|
+
/** Convert a camelCase field name to its DB column name. System columns map to snake_case. */
|
|
20
|
+
export function toColumn(fieldName) {
|
|
21
|
+
if (fieldName in SYSTEM_COLUMNS)
|
|
22
|
+
return SYSTEM_COLUMNS[fieldName];
|
|
23
|
+
if (!isValidIdentifier(fieldName))
|
|
24
|
+
return fieldName;
|
|
25
|
+
return /[A-Z]/.test(fieldName) ? `"${fieldName}"` : fieldName;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Build a SELECT clause from field names, mapping system columns to snake_case.
|
|
29
|
+
* @example selectColumns('id', 'username', 'createdAt') => 'id, username, created_at'
|
|
30
|
+
*/
|
|
31
|
+
export function selectColumns(...fields) {
|
|
32
|
+
return fields.map(toColumn).join(', ');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=column-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-helpers.js","sourceRoot":"","sources":["../../src/db/column-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;;;;;GASG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,IAAI;IACR,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;CACf,CAAA;AAEV,8FAA8F;AAC9F,MAAM,UAAU,QAAQ,CAAE,SAAiB;IACzC,IAAI,SAAS,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC,SAAwC,CAAC,CAAA;IAChG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAE,GAAG,MAAgB;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,4 +20,7 @@ export { buildCms } from './config/index.js';
|
|
|
20
20
|
export type { CmsConfig, CmsInstance, Plugin, LocaleConfig, LocalizationConfig } from './config/index.js';
|
|
21
21
|
export { startPublishScheduler } from './scheduler.js';
|
|
22
22
|
export type { SchedulerHandle } from './scheduler.js';
|
|
23
|
+
export { startTelemetryScheduler } from './telemetry-scheduler.js';
|
|
24
|
+
export type { TelemetrySchedulerHandle } from './telemetry-scheduler.js';
|
|
25
|
+
export { SYSTEM_COLUMNS, toColumn, selectColumns } from './db/column-helpers.js';
|
|
23
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,4 +11,6 @@ export { renderLayout, renderDashboard, renderListView, renderEditView, renderFi
|
|
|
11
11
|
export { isUploadEnabled, getMediaFields, getMimeType, getUploadConfig, createServeHandler, buildMediaUrl, createUploadHandler, createLocalStorage, processImageSizes } from './media/index.js';
|
|
12
12
|
export { buildCms } from './config/index.js';
|
|
13
13
|
export { startPublishScheduler } from './scheduler.js';
|
|
14
|
+
export { startTelemetryScheduler } from './telemetry-scheduler.js';
|
|
15
|
+
export { SYSTEM_COLUMNS, toColumn, selectColumns } from './db/column-helpers.js';
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAqC1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAgBtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAS3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGvH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAG/L,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAqC1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAgBtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAS3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGvH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAG/L,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DbPool } from '@valencets/db';
|
|
2
|
+
export interface TelemetrySchedulerHandle {
|
|
3
|
+
readonly stop: () => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Start a periodic telemetry aggregation scheduler.
|
|
7
|
+
* Runs session, event, and daily summary aggregation on the given interval.
|
|
8
|
+
*
|
|
9
|
+
* @param pool — database pool
|
|
10
|
+
* @param siteId — telemetry site identifier (matches daily_summaries.site_id)
|
|
11
|
+
* @param intervalMs — aggregation interval in ms (default 15 minutes)
|
|
12
|
+
*/
|
|
13
|
+
export declare function startTelemetryScheduler(pool: DbPool, siteId?: string, intervalMs?: number): TelemetrySchedulerHandle;
|
|
14
|
+
//# sourceMappingURL=telemetry-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-scheduler.d.ts","sourceRoot":"","sources":["../src/telemetry-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAC1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAkB,EAC1B,UAAU,GAAE,MAAoB,GAC/B,wBAAwB,CA2D1B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Start a periodic telemetry aggregation scheduler.
|
|
3
|
+
* Runs session, event, and daily summary aggregation on the given interval.
|
|
4
|
+
*
|
|
5
|
+
* @param pool — database pool
|
|
6
|
+
* @param siteId — telemetry site identifier (matches daily_summaries.site_id)
|
|
7
|
+
* @param intervalMs — aggregation interval in ms (default 15 minutes)
|
|
8
|
+
*/
|
|
9
|
+
export function startTelemetryScheduler(pool, siteId = 'default', intervalMs = 15 * 60_000) {
|
|
10
|
+
function aggregate() {
|
|
11
|
+
const now = new Date();
|
|
12
|
+
const dayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
13
|
+
const dayEnd = new Date(dayStart.getTime() + 86_400_000);
|
|
14
|
+
const s = dayStart.toISOString();
|
|
15
|
+
const e = dayEnd.toISOString();
|
|
16
|
+
const dateOnly = s.slice(0, 10);
|
|
17
|
+
// Session summaries
|
|
18
|
+
pool.sql.unsafe(`
|
|
19
|
+
INSERT INTO session_summaries (period_start, period_end, total_sessions, unique_referrers, device_mobile, device_desktop, device_tablet)
|
|
20
|
+
SELECT $1::timestamptz, $2::timestamptz, COUNT(*)::int, COUNT(DISTINCT referrer)::int,
|
|
21
|
+
COUNT(*) FILTER (WHERE device_type = 'mobile')::int,
|
|
22
|
+
COUNT(*) FILTER (WHERE device_type = 'desktop')::int,
|
|
23
|
+
COUNT(*) FILTER (WHERE device_type = 'tablet')::int
|
|
24
|
+
FROM sessions WHERE created_at >= $1 AND created_at < $2
|
|
25
|
+
ON CONFLICT (period_start, period_end) DO UPDATE SET
|
|
26
|
+
total_sessions = EXCLUDED.total_sessions, unique_referrers = EXCLUDED.unique_referrers,
|
|
27
|
+
device_mobile = EXCLUDED.device_mobile, device_desktop = EXCLUDED.device_desktop, device_tablet = EXCLUDED.device_tablet
|
|
28
|
+
`, [s, e])
|
|
29
|
+
.then(() => pool.sql.unsafe(`
|
|
30
|
+
INSERT INTO event_summaries (period_start, period_end, event_category, total_count, unique_sessions)
|
|
31
|
+
SELECT $1::timestamptz, $2::timestamptz, event_category, COUNT(*)::int, COUNT(DISTINCT session_id)::int
|
|
32
|
+
FROM events WHERE created_at >= $1 AND created_at < $2
|
|
33
|
+
GROUP BY event_category
|
|
34
|
+
ON CONFLICT (period_start, period_end, event_category) DO UPDATE SET
|
|
35
|
+
total_count = EXCLUDED.total_count, unique_sessions = EXCLUDED.unique_sessions
|
|
36
|
+
`, [s, e]))
|
|
37
|
+
.then(() => Promise.all([
|
|
38
|
+
pool.sql.unsafe('SELECT COALESCE(SUM(total_sessions), 0)::int AS c FROM session_summaries WHERE period_start >= $1 AND period_end <= $2', [s, e]),
|
|
39
|
+
pool.sql.unsafe('SELECT COALESCE(SUM(total_count), 0)::int AS c FROM event_summaries WHERE period_start >= $1 AND period_end <= $2 AND event_category IN (\'CLICK\', \'VIEWPORT_INTERSECT\')', [s, e]),
|
|
40
|
+
pool.sql.unsafe('SELECT COALESCE(SUM(total_count), 0)::int AS c FROM event_summaries WHERE period_start >= $1 AND period_end <= $2 AND event_category IN (\'INTENT_LEAD\', \'LEAD_FORM\', \'LEAD_EMAIL\', \'LEAD_PHONE\')', [s, e])
|
|
41
|
+
]))
|
|
42
|
+
.then(([sessions, pageviews, conversions]) => {
|
|
43
|
+
const sessionCount = sessions[0]?.c ?? 0;
|
|
44
|
+
const pageviewCount = pageviews[0]?.c ?? 0;
|
|
45
|
+
const conversionCount = conversions[0]?.c ?? 0;
|
|
46
|
+
return pool.sql.unsafe(`
|
|
47
|
+
INSERT INTO daily_summaries (site_id, date, business_type, schema_version, session_count, pageview_count, conversion_count, top_referrers, top_pages, intent_counts, avg_flush_ms, rejection_count, synced_at)
|
|
48
|
+
VALUES ($1, $2, 'webapp', 1, $3, $4, $5, '[]', '[]', '{}', 0, 0, NOW())
|
|
49
|
+
ON CONFLICT (site_id, date) DO UPDATE SET
|
|
50
|
+
session_count = EXCLUDED.session_count, pageview_count = EXCLUDED.pageview_count,
|
|
51
|
+
conversion_count = EXCLUDED.conversion_count, synced_at = NOW()
|
|
52
|
+
`, [siteId, dateOnly, sessionCount, pageviewCount, conversionCount]);
|
|
53
|
+
})
|
|
54
|
+
.catch(() => { });
|
|
55
|
+
}
|
|
56
|
+
// Run once immediately, then on interval
|
|
57
|
+
aggregate();
|
|
58
|
+
const timer = setInterval(aggregate, intervalMs);
|
|
59
|
+
return { stop: () => clearInterval(timer) };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=telemetry-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-scheduler.js","sourceRoot":"","sources":["../src/telemetry-scheduler.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,SAAiB,SAAS,EAC1B,aAAqB,EAAE,GAAG,MAAM;IAEhC,SAAS,SAAS;QAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAA;QACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAE/B,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;;;;;;;;;KAUf,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACP,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;;;;;;OAO3B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACV,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,wHAAwH,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACjI;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,6KAA6K,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACtL;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,0MAA0M,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACnN;SACF,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;YAC3C,MAAM,YAAY,GAAI,QAAQ,CAAC,CAAC,CAA0B,EAAE,CAAC,IAAI,CAAC,CAAA;YAClE,MAAM,aAAa,GAAI,SAAS,CAAC,CAAC,CAA0B,EAAE,CAAC,IAAI,CAAC,CAAA;YACpE,MAAM,eAAe,GAAI,WAAW,CAAC,CAAC,CAA0B,EAAE,CAAC,IAAI,CAAC,CAAA;YACxE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;;;;;SAMtB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;QACtE,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAqE,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,yCAAyC;IACzC,SAAS,EAAE,CAAA;IACX,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAChD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAA;AAC7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valencets/cms",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"sharp": "^0.34.5",
|
|
34
34
|
"zod": "^4.3.6",
|
|
35
35
|
"@valencets/core": "0.4.0",
|
|
36
|
-
"@valencets/telemetry": "0.1.4",
|
|
37
36
|
"@valencets/ui": "0.2.0",
|
|
38
|
-
"@valencets/db": "0.1.2"
|
|
37
|
+
"@valencets/db": "0.1.2",
|
|
38
|
+
"@valencets/telemetry": "0.1.4"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^25.4.0",
|