@interfere/constants 0.0.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.
@@ -0,0 +1,55 @@
1
+ /** biome-ignore-all lint/style/noMagicNumbers: Self-explanatory */
2
+ /**
3
+ * Core constants and configuration defaults
4
+ */
5
+ import type { EventType } from "@interfere/schemas/envelope";
6
+ export declare const BACKGROUND_EVENT_TYPES: EventType[];
7
+ export declare const REPLAY_CHUNK_MS = 5000;
8
+ export declare const RAGE_CLICK_THRESHOLD = 3;
9
+ export declare const RAGE_CLICK_TIME_WINDOW = 1000;
10
+ export declare const SESSION_SUMMARY_INTERVAL = 30000;
11
+ export declare const MAX_QUEUE_SIZE = 10;
12
+ export declare const DEFAULT_FLUSH_INTERVAL = 10000;
13
+ export declare const API_PATHS: {
14
+ readonly INGEST_V0: "/ingest/v0";
15
+ readonly RELEASES: "/internal/releases";
16
+ };
17
+ export declare const MS_PER_SECOND = 1000;
18
+ export declare const SECONDS_PER_MINUTE = 60;
19
+ export declare const MINUTES_PER_HOUR = 60;
20
+ export declare const HOURS_PER_DAY = 24;
21
+ export declare const MINUTES_IN_MS: number;
22
+ export declare const HOUR_IN_MS: number;
23
+ export declare const DAY_IN_MS: number;
24
+ export declare const FIVE_SECONDS_MS: number;
25
+ export declare const TEN_SECONDS_MS: number;
26
+ export declare const FIVE_MINUTES_MS: number;
27
+ export declare const THREE_MINUTES_MS: number;
28
+ export declare const THIRTY_MINUTES_MS: number;
29
+ export declare const RADIX_36 = 36;
30
+ export declare const RADIX_16 = 16;
31
+ export declare const RANDOM_SUBSTRING_START = 2;
32
+ export declare const RANDOM_ID_LENGTH_SHORT = 7;
33
+ export declare const RANDOM_ID_LENGTH_MEDIUM = 9;
34
+ export declare const RANDOM_ID_LENGTH_LONG = 13;
35
+ export declare const RANDOM_SUBSTRING_END = 15;
36
+ export declare const MAX_RETRIES = 3;
37
+ export declare const BACKOFF_BASE_MS = 1000;
38
+ export declare const BACKOFF_MULTIPLIER = 2;
39
+ export declare const MAX_BACKOFF_MS = 30000;
40
+ export declare const BATCH_SIZE = 10;
41
+ export declare const BATCH_TIMEOUT_MS = 5000;
42
+ export declare const MAX_BATCH_SIZE = 100;
43
+ export declare const MAX_SESSIONS = 1000;
44
+ export declare const MAX_STORAGE_SIZE_BYTES: number;
45
+ export declare const COMPRESSION_MIN_SIZE = 1000;
46
+ export declare const COMPRESSION_RATIO = 0.7;
47
+ export declare const QUEUE_REDUCTION_FACTOR = 0.9;
48
+ export declare const CLEANUP_INTERVAL_MINUTES = 5;
49
+ export declare const SESSION_CLEANUP_INTERVAL_MS: number;
50
+ export declare const SESSION_KEY = "interfere_session";
51
+ export declare const SESSION_DURATION_MS: number;
52
+ export declare const SESSION_EXTEND_THRESHOLD_MS: number;
53
+ export declare const SESSION_ID_REGEX: RegExp;
54
+ export declare const UUID_REGEX: RegExp;
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,eAAO,MAAM,sBAAsB,EAAE,SAAS,EAG7C,CAAC;AAEF,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAG/C,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAG7C,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAGX,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,QAAqC,CAAC;AAChE,eAAO,MAAM,UAAU,QAAmC,CAAC;AAC3D,eAAO,MAAM,SAAS,QAA6B,CAAC;AAGpD,eAAO,MAAM,eAAe,QAAoB,CAAC;AACjD,eAAO,MAAM,cAAc,QAAqB,CAAC;AAEjD,eAAO,MAAM,eAAe,QAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,QAAoB,CAAC;AAClD,eAAO,MAAM,iBAAiB,QAAqB,CAAC;AAGpD,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,cAAc,QAAS,CAAC;AAGrC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,cAAc,MAAM,CAAC;AAGlC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AACtD,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAGrC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,2BAA2B,QACE,CAAC;AAG3C,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,QAAoB,CAAC;AACrD,eAAO,MAAM,2BAA2B,QAAkB,CAAC;AAG3D,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAC4C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,66 @@
1
+ /** biome-ignore-all lint/style/noMagicNumbers: Self-explanatory */
2
+ // Background event types that don't count as user activity for session timeout
3
+ export const BACKGROUND_EVENT_TYPES = [
4
+ "replay_chunk",
5
+ "session_summary",
6
+ ];
7
+ export const REPLAY_CHUNK_MS = 5000; // Send replay chunks every 5 seconds
8
+ export const RAGE_CLICK_THRESHOLD = 3; // 3 clicks in rapid succession
9
+ export const RAGE_CLICK_TIME_WINDOW = 1000; // Within 1 second
10
+ export const SESSION_SUMMARY_INTERVAL = 30_000; // Send summary every 30 seconds
11
+ // Queue thresholds
12
+ export const MAX_QUEUE_SIZE = 10;
13
+ export const DEFAULT_FLUSH_INTERVAL = 10_000; // 10 seconds
14
+ // API paths
15
+ export const API_PATHS = {
16
+ INGEST_V0: "/ingest/v0",
17
+ RELEASES: "/internal/releases",
18
+ };
19
+ // Time conversion constants
20
+ export const MS_PER_SECOND = 1000;
21
+ export const SECONDS_PER_MINUTE = 60;
22
+ export const MINUTES_PER_HOUR = 60;
23
+ export const HOURS_PER_DAY = 24;
24
+ export const MINUTES_IN_MS = SECONDS_PER_MINUTE * MS_PER_SECOND;
25
+ export const HOUR_IN_MS = MINUTES_PER_HOUR * MINUTES_IN_MS;
26
+ export const DAY_IN_MS = HOURS_PER_DAY * HOUR_IN_MS;
27
+ // Common durations in milliseconds
28
+ export const FIVE_SECONDS_MS = 5 * MS_PER_SECOND;
29
+ export const TEN_SECONDS_MS = 10 * MS_PER_SECOND;
30
+ export const FIVE_MINUTES_MS = 5 * MINUTES_IN_MS;
31
+ export const THREE_MINUTES_MS = 3 * MINUTES_IN_MS;
32
+ export const THIRTY_MINUTES_MS = 30 * MINUTES_IN_MS;
33
+ // ID generation constants
34
+ export const RADIX_36 = 36;
35
+ export const RADIX_16 = 16;
36
+ export const RANDOM_SUBSTRING_START = 2;
37
+ export const RANDOM_ID_LENGTH_SHORT = 7; // For event IDs
38
+ export const RANDOM_ID_LENGTH_MEDIUM = 9; // For window IDs
39
+ export const RANDOM_ID_LENGTH_LONG = 13; // For session IDs
40
+ export const RANDOM_SUBSTRING_END = 15; // Max substring end for Math.random()
41
+ // Retry and backoff constants
42
+ export const MAX_RETRIES = 3;
43
+ export const BACKOFF_BASE_MS = 1000; // 1 second
44
+ export const BACKOFF_MULTIPLIER = 2;
45
+ export const MAX_BACKOFF_MS = 30_000; // 30 seconds
46
+ // Event batching constants
47
+ export const BATCH_SIZE = 10;
48
+ export const BATCH_TIMEOUT_MS = 5000; // 5 seconds
49
+ export const MAX_BATCH_SIZE = 100;
50
+ // Storage limits
51
+ export const MAX_SESSIONS = 1000;
52
+ export const MAX_STORAGE_SIZE_BYTES = 5 * 1024 * 1024; // 5MB
53
+ export const COMPRESSION_MIN_SIZE = 1000; // bytes
54
+ export const COMPRESSION_RATIO = 0.7;
55
+ // Queue management
56
+ export const QUEUE_REDUCTION_FACTOR = 0.9;
57
+ export const CLEANUP_INTERVAL_MINUTES = 5;
58
+ export const SESSION_CLEANUP_INTERVAL_MS = CLEANUP_INTERVAL_MINUTES * MINUTES_IN_MS;
59
+ // Session constants
60
+ export const SESSION_KEY = "interfere_session";
61
+ export const SESSION_DURATION_MS = THIRTY_MINUTES_MS;
62
+ export const SESSION_EXTEND_THRESHOLD_MS = FIVE_MINUTES_MS;
63
+ // Validation patterns
64
+ export const SESSION_ID_REGEX = /^ses_[a-z0-9]+_[a-z0-9]+$/;
65
+ export const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@interfere/constants",
3
+ "version": "0.0.1",
4
+ "license": "MIT",
5
+ "description": "Build apps that never break.",
6
+ "keywords": [
7
+ "observability",
8
+ "typescript",
9
+ "react",
10
+ "logging",
11
+ "error-tracking",
12
+ "session-replay"
13
+ ],
14
+ "homepage": "https://interfere.com",
15
+ "bugs": {
16
+ "url": "mailto:support@interfere.com"
17
+ },
18
+ "author": "Interfere <support@interfere.com> (https://interfere.com)",
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "type": "module",
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "default": "./dist/index.js"
29
+ }
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "dependencies": {
35
+ "@interfere/schemas": "0.0.7"
36
+ },
37
+ "devDependencies": {
38
+ "@types/node": "22.15.29",
39
+ "typescript": "5.9.3",
40
+ "@interfere/typescript-config": "1.0.2"
41
+ },
42
+ "scripts": {
43
+ "build": "tsc",
44
+ "dev": "tsc --watch",
45
+ "check-types": "tsc --noEmit --incremental"
46
+ }
47
+ }