codex-blocker 0.1.2 → 0.1.4

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/server.d.ts CHANGED
@@ -3,17 +3,15 @@ interface CodexActivity {
3
3
  cwd?: string;
4
4
  idleTimeoutMs?: number;
5
5
  }
6
- type ServerMessage = {
6
+
7
+ type StateMessage = {
7
8
  type: "state";
8
9
  blocked: boolean;
9
10
  sessions: number;
10
11
  working: number;
11
12
  waitingForInput: number;
12
- } | {
13
- type: "pong";
14
13
  };
15
-
16
- type StateChangeCallback = (message: ServerMessage) => void;
14
+ type StateChangeCallback = (message: StateMessage) => void;
17
15
  declare class SessionState {
18
16
  private sessions;
19
17
  private listeners;
@@ -38,12 +36,53 @@ declare class SessionState {
38
36
  destroy(): void;
39
37
  }
40
38
 
39
+ type PairingStatus = {
40
+ active: boolean;
41
+ expiresAt: number | null;
42
+ };
43
+ type ExtensionPairingCode = {
44
+ code: string;
45
+ expiresAt: number;
46
+ };
47
+ declare class ExtensionPairingManager {
48
+ private readonly now;
49
+ private pairing;
50
+ constructor(now?: () => number);
51
+ startPairing(regenerateCode?: boolean): ExtensionPairingCode;
52
+ getStatus(): PairingStatus;
53
+ confirmPairingCode(code: string): boolean;
54
+ private expireIfNeeded;
55
+ }
56
+ type MobileQrPairingCode = {
57
+ expiresAt: number;
58
+ qrNonce: string;
59
+ qrExpiresAt: number;
60
+ };
61
+ declare class MobileQrPairingManager {
62
+ private readonly now;
63
+ private pairing;
64
+ constructor(now?: () => number);
65
+ startPairing(refreshQr?: boolean): MobileQrPairingCode;
66
+ getStatus(): PairingStatus;
67
+ confirmPairingQrNonce(qrNonce: string): boolean;
68
+ private expireIfNeeded;
69
+ }
70
+
71
+ declare function isTrustedChromeExtensionOrigin(origin?: string | null): boolean;
72
+ declare function isLoopbackClientIp(clientIp?: string | null): boolean;
41
73
  type ServerOptions = {
42
74
  sessionsDir?: string;
43
75
  startWatcher?: boolean;
44
- tokenPath?: string;
45
76
  state?: SessionState;
46
77
  log?: boolean;
78
+ bindHost?: string;
79
+ mobile?: boolean;
80
+ mobileServiceName?: string;
81
+ publishMdns?: boolean;
82
+ extensionPairingManager?: ExtensionPairingManager;
83
+ mobileQrPairingManager?: MobileQrPairingManager;
84
+ mobileQrOutput?: boolean;
85
+ autoStartMobilePairing?: boolean;
47
86
  };
48
87
  type ServerHandle = {
49
88
  port: number;
@@ -52,4 +91,4 @@ type ServerHandle = {
52
91
  };
53
92
  declare function startServer(port?: number, options?: ServerOptions): ServerHandle;
54
93
 
55
- export { type ServerHandle, type ServerOptions, startServer };
94
+ export { type ServerHandle, type ServerOptions, isLoopbackClientIp, isTrustedChromeExtensionOrigin, startServer };
package/dist/server.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import {
2
+ isLoopbackClientIp,
3
+ isTrustedChromeExtensionOrigin,
2
4
  startServer
3
- } from "./chunk-KNFNSOAX.js";
5
+ } from "./chunk-OIDV724O.js";
4
6
  export {
7
+ isLoopbackClientIp,
8
+ isTrustedChromeExtensionOrigin,
5
9
  startServer
6
10
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-blocker",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Automatically blocks distracting websites unless Codex is actively running. Forked from Theo Browne's (T3) Claude Blocker",
5
5
  "author": "Adam Blumoff ",
6
6
  "repository": {
@@ -26,10 +26,14 @@
26
26
  "typecheck": "tsc --noEmit"
27
27
  },
28
28
  "dependencies": {
29
+ "bonjour-service": "^1.3.0",
30
+ "qrcode": "^1.5.4",
29
31
  "ws": "^8.18.0"
30
32
  },
31
33
  "devDependencies": {
34
+ "@codex-blocker/shared": "workspace:*",
32
35
  "@types/node": "^22.10.2",
36
+ "@types/qrcode": "^1.5.5",
33
37
  "@types/ws": "^8.5.13",
34
38
  "tsup": "^8.3.5",
35
39
  "tsx": "^4.19.2",