@sonicjs-cms/core 2.0.12 → 2.0.13
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/{chunk-K5WUGEXH.cjs → chunk-2CP6535T.cjs} +114 -114
- package/dist/{chunk-K5WUGEXH.cjs.map → chunk-2CP6535T.cjs.map} +1 -1
- package/dist/{chunk-3OKKNBPD.cjs → chunk-HFFNEGZB.cjs} +4 -4
- package/dist/chunk-HFFNEGZB.cjs.map +1 -0
- package/dist/{chunk-AUVW4I3D.js → chunk-I3R77LQC.js} +2 -2
- package/dist/{chunk-AUVW4I3D.js.map → chunk-I3R77LQC.js.map} +1 -1
- package/dist/{chunk-RDJ2QLA2.cjs → chunk-JQIQRMPA.cjs} +2 -2
- package/dist/{chunk-RDJ2QLA2.cjs.map → chunk-JQIQRMPA.cjs.map} +1 -1
- package/dist/{chunk-RKNHW6QU.js → chunk-MOWI4WYE.js} +5 -5
- package/dist/chunk-MOWI4WYE.js.map +1 -0
- package/dist/{chunk-LBSKQKYL.js → chunk-PFNUOW6W.js} +3 -3
- package/dist/{chunk-LBSKQKYL.js.map → chunk-PFNUOW6W.js.map} +1 -1
- package/dist/{chunk-6B4ENDQM.js → chunk-QWIXOMHW.js} +9 -9
- package/dist/{chunk-6B4ENDQM.js.map → chunk-QWIXOMHW.js.map} +1 -1
- package/dist/{chunk-3F4LF7LW.cjs → chunk-U2WYUO32.cjs} +11 -11
- package/dist/{chunk-3F4LF7LW.cjs.map → chunk-U2WYUO32.cjs.map} +1 -1
- package/dist/{chunk-2HRF65VF.cjs → chunk-WFHLBYNA.cjs} +3 -3
- package/dist/{chunk-2HRF65VF.cjs.map → chunk-WFHLBYNA.cjs.map} +1 -1
- package/dist/{chunk-F4IGVB2V.cjs → chunk-WML2ZMHH.cjs} +4 -4
- package/dist/{chunk-F4IGVB2V.cjs.map → chunk-WML2ZMHH.cjs.map} +1 -1
- package/dist/{chunk-DSDHGJ4F.js → chunk-ZALNKBLS.js} +3 -3
- package/dist/{chunk-DSDHGJ4F.js.map → chunk-ZALNKBLS.js.map} +1 -1
- package/dist/{chunk-M2YDOOBC.js → chunk-ZNESOOF2.js} +3 -3
- package/dist/{chunk-M2YDOOBC.js.map → chunk-ZNESOOF2.js.map} +1 -1
- package/dist/index.cjs +118 -118
- package/dist/index.js +10 -10
- package/dist/middleware.cjs +23 -23
- package/dist/middleware.js +2 -2
- package/dist/migrations-GVG73ZJC.js +4 -0
- package/dist/{migrations-DURR3GZX.js.map → migrations-GVG73ZJC.js.map} +1 -1
- package/dist/migrations-S52MEE4J.cjs +13 -0
- package/dist/{migrations-P5BD7WQK.cjs.map → migrations-S52MEE4J.cjs.map} +1 -1
- package/dist/routes.cjs +26 -26
- package/dist/routes.js +6 -6
- package/dist/services.cjs +15 -15
- package/dist/services.js +3 -3
- package/dist/utils.cjs +20 -20
- package/dist/utils.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-3OKKNBPD.cjs.map +0 -1
- package/dist/chunk-RKNHW6QU.js.map +0 -1
- package/dist/migrations-DURR3GZX.js +0 -4
- package/dist/migrations-P5BD7WQK.cjs +0 -13
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var crypto = require('crypto');
|
|
4
|
-
|
|
5
3
|
// src/utils/telemetry-config.ts
|
|
6
4
|
var DEFAULT_TELEMETRY_CONFIG = {
|
|
7
5
|
enabled: true,
|
|
@@ -36,6 +34,8 @@ function shouldSkipEvent(eventName, sampleRate = 1) {
|
|
|
36
34
|
}
|
|
37
35
|
return Math.abs(hash % 100) / 100 > sampleRate;
|
|
38
36
|
}
|
|
37
|
+
|
|
38
|
+
// src/utils/telemetry-id.ts
|
|
39
39
|
function generateInstallationId() {
|
|
40
40
|
return crypto.randomUUID();
|
|
41
41
|
}
|
|
@@ -66,5 +66,5 @@ exports.isTelemetryEnabled = isTelemetryEnabled;
|
|
|
66
66
|
exports.sanitizeErrorMessage = sanitizeErrorMessage;
|
|
67
67
|
exports.sanitizeRoute = sanitizeRoute;
|
|
68
68
|
exports.shouldSkipEvent = shouldSkipEvent;
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-HFFNEGZB.cjs.map
|
|
70
|
+
//# sourceMappingURL=chunk-HFFNEGZB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/telemetry-config.ts","../src/utils/telemetry-id.ts"],"names":[],"mappings":"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","file":"chunk-HFFNEGZB.cjs","sourcesContent":["/**\n * Telemetry Configuration Utilities\n *\n * Manages telemetry settings and opt-out mechanisms\n */\n\nimport type { TelemetryConfig } from '../types/telemetry'\n\n/**\n * Default telemetry configuration\n */\nexport const DEFAULT_TELEMETRY_CONFIG: TelemetryConfig = {\n enabled: true,\n apiKey: process.env.POSTHOG_API_KEY || 'phc_VuhFUIJLXzwyGjlgQ67dbNeSh5x4cp9F8i15hZFIDhs',\n host: process.env.POSTHOG_HOST || 'https://us.i.posthog.com',\n debug: process.env.NODE_ENV === 'development'\n}\n\n/**\n * Check if telemetry is enabled via environment variables\n */\nexport function isTelemetryEnabled(): boolean {\n // Check for explicit opt-out\n const telemetryEnv = process.env.SONICJS_TELEMETRY\n if (telemetryEnv === 'false' || telemetryEnv === '0' || telemetryEnv === 'disabled') {\n return false\n }\n\n // Check for DO_NOT_TRACK environment variable (common standard)\n const doNotTrack = process.env.DO_NOT_TRACK\n if (doNotTrack === '1' || doNotTrack === 'true') {\n return false\n }\n\n // Default to enabled (opt-out model)\n return true\n}\n\n/**\n * Get telemetry configuration from environment\n */\nexport function getTelemetryConfig(): TelemetryConfig {\n return {\n ...DEFAULT_TELEMETRY_CONFIG,\n enabled: isTelemetryEnabled()\n }\n}\n\n/**\n * Check if telemetry should be skipped for this event\n * Used to implement sampling or rate limiting if needed\n */\nexport function shouldSkipEvent(eventName: string, sampleRate: number = 1.0): boolean {\n if (sampleRate >= 1.0) return false\n if (sampleRate <= 0) return true\n\n // Use a consistent hash of the event name for deterministic sampling\n let hash = 0\n for (let i = 0; i < eventName.length; i++) {\n hash = ((hash << 5) - hash) + eventName.charCodeAt(i)\n hash = hash & hash\n }\n\n return Math.abs(hash % 100) / 100 > sampleRate\n}\n","/**\n * Telemetry ID Utilities\n *\n * Generates and manages anonymous installation IDs\n */\n\n/**\n * Generate a new anonymous installation ID\n * Uses globalThis.crypto for Cloudflare Workers compatibility\n */\nexport function generateInstallationId(): string {\n return crypto.randomUUID()\n}\n\n/**\n * Generate a project-specific ID from project name\n * Uses a simple hash to anonymize while maintaining consistency\n */\nexport function generateProjectId(projectName: string): string {\n // Simple hash function to anonymize project names\n let hash = 0\n for (let i = 0; i < projectName.length; i++) {\n const char = projectName.charCodeAt(i)\n hash = ((hash << 5) - hash) + char\n hash = hash & hash // Convert to 32bit integer\n }\n return `proj_${Math.abs(hash).toString(36)}`\n}\n\n/**\n * Sanitize error messages to remove any potential PII\n */\nexport function sanitizeErrorMessage(error: Error | string): string {\n const message = typeof error === 'string' ? error : error.message\n\n // Extract error type/category only\n const errorType = message.split(':')[0].trim()\n\n // Remove file paths that might contain usernames\n const sanitized = errorType\n .replace(/\\/Users\\/[^/]+/g, '/Users/***')\n .replace(/\\/home\\/[^/]+/g, '/home/***')\n .replace(/C:\\\\Users\\\\[^\\\\]+/g, 'C:\\\\Users\\\\***')\n .replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g, '***@***.***')\n\n return sanitized\n}\n\n/**\n * Sanitize route to remove any user-specific data\n */\nexport function sanitizeRoute(route: string): string {\n return route\n // Remove UUIDs\n .replace(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/gi, ':id')\n // Remove numeric IDs\n .replace(/\\/\\d+/g, '/:id')\n // Remove email patterns\n .replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g, ':email')\n}\n"]}
|
|
@@ -1546,5 +1546,5 @@ var MigrationService = class {
|
|
|
1546
1546
|
};
|
|
1547
1547
|
|
|
1548
1548
|
export { MigrationService };
|
|
1549
|
-
//# sourceMappingURL=chunk-
|
|
1550
|
-
//# sourceMappingURL=chunk-
|
|
1549
|
+
//# sourceMappingURL=chunk-I3R77LQC.js.map
|
|
1550
|
+
//# sourceMappingURL=chunk-I3R77LQC.js.map
|