@opentabs-dev/mcp-server 0.0.34 → 0.0.36
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/adapter-files.d.ts +4 -2
- package/dist/adapter-files.d.ts.map +1 -1
- package/dist/adapter-files.js +39 -24
- package/dist/adapter-files.js.map +1 -1
- package/dist/audit-disk.d.ts +2 -2
- package/dist/audit-disk.d.ts.map +1 -1
- package/dist/audit-disk.js +19 -8
- package/dist/audit-disk.js.map +1 -1
- package/dist/browser-tool-names.d.ts.map +1 -1
- package/dist/browser-tool-names.js +2 -0
- package/dist/browser-tool-names.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-apis.d.ts +16 -4
- package/dist/browser-tools/analyze-site/detect-apis.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-apis.js +65 -8
- package/dist/browser-tools/analyze-site/detect-apis.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-auth.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-auth.js +10 -5
- package/dist/browser-tools/analyze-site/detect-auth.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-framework.d.ts +10 -1
- package/dist/browser-tools/analyze-site/detect-framework.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-framework.js +19 -1
- package/dist/browser-tools/analyze-site/detect-framework.js.map +1 -1
- package/dist/browser-tools/analyze-site/index.d.ts +37 -8
- package/dist/browser-tools/analyze-site/index.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/index.js +79 -43
- package/dist/browser-tools/analyze-site/index.js.map +1 -1
- package/dist/browser-tools/analyze-site.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site.js +9 -8
- package/dist/browser-tools/analyze-site.js.map +1 -1
- package/dist/browser-tools/disable-network-capture.d.ts.map +1 -1
- package/dist/browser-tools/disable-network-capture.js +8 -1
- package/dist/browser-tools/disable-network-capture.js.map +1 -1
- package/dist/browser-tools/enable-network-capture.d.ts +1 -0
- package/dist/browser-tools/enable-network-capture.d.ts.map +1 -1
- package/dist/browser-tools/enable-network-capture.js +20 -8
- package/dist/browser-tools/enable-network-capture.js.map +1 -1
- package/dist/browser-tools/execute-script.d.ts +3 -3
- package/dist/browser-tools/execute-script.d.ts.map +1 -1
- package/dist/browser-tools/execute-script.js +9 -4
- package/dist/browser-tools/execute-script.js.map +1 -1
- package/dist/browser-tools/export-har.d.ts +15 -0
- package/dist/browser-tools/export-har.d.ts.map +1 -0
- package/dist/browser-tools/export-har.js +196 -0
- package/dist/browser-tools/export-har.js.map +1 -0
- package/dist/browser-tools/extension-get-logs.d.ts +2 -2
- package/dist/browser-tools/get-console-logs.d.ts +2 -2
- package/dist/browser-tools/get-websocket-frames.d.ts +10 -0
- package/dist/browser-tools/get-websocket-frames.d.ts.map +1 -0
- package/dist/browser-tools/get-websocket-frames.js +27 -0
- package/dist/browser-tools/get-websocket-frames.js.map +1 -0
- package/dist/browser-tools/index.d.ts.map +1 -1
- package/dist/browser-tools/index.js +4 -0
- package/dist/browser-tools/index.js.map +1 -1
- package/dist/browser-tools/reload-extension.d.ts.map +1 -1
- package/dist/browser-tools/reload-extension.js +1 -3
- package/dist/browser-tools/reload-extension.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -18
- package/dist/config.js.map +1 -1
- package/dist/dev-proxy.d.ts +12 -0
- package/dist/dev-proxy.d.ts.map +1 -0
- package/dist/dev-proxy.js +229 -0
- package/dist/dev-proxy.js.map +1 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +6 -1
- package/dist/discovery.js.map +1 -1
- package/dist/extension-handlers.d.ts +1 -1
- package/dist/extension-handlers.d.ts.map +1 -1
- package/dist/extension-handlers.js +3 -4
- package/dist/extension-handlers.js.map +1 -1
- package/dist/extension-protocol.d.ts +4 -2
- package/dist/extension-protocol.d.ts.map +1 -1
- package/dist/extension-protocol.js +16 -15
- package/dist/extension-protocol.js.map +1 -1
- package/dist/file-watcher.d.ts +1 -1
- package/dist/file-watcher.d.ts.map +1 -1
- package/dist/file-watcher.js +48 -16
- package/dist/file-watcher.js.map +1 -1
- package/dist/http-routes.d.ts +3 -2
- package/dist/http-routes.d.ts.map +1 -1
- package/dist/http-routes.js +34 -13
- package/dist/http-routes.js.map +1 -1
- package/dist/index.d.ts +12 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -54
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +12 -10
- package/dist/loader.js.map +1 -1
- package/dist/log-buffer.d.ts +3 -1
- package/dist/log-buffer.d.ts.map +1 -1
- package/dist/log-buffer.js +12 -3
- package/dist/log-buffer.js.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp-setup.d.ts +1 -1
- package/dist/mcp-setup.js +2 -2
- package/dist/mcp-tool-dispatch.d.ts +14 -1
- package/dist/mcp-tool-dispatch.d.ts.map +1 -1
- package/dist/mcp-tool-dispatch.js +4 -2
- package/dist/mcp-tool-dispatch.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +5 -3
- package/dist/permissions.js.map +1 -1
- package/dist/plugin-management.d.ts +1 -1
- package/dist/plugin-management.d.ts.map +1 -1
- package/dist/plugin-management.js +46 -29
- package/dist/plugin-management.js.map +1 -1
- package/dist/registry.js +5 -5
- package/dist/registry.js.map +1 -1
- package/dist/reload.d.ts +7 -8
- package/dist/reload.d.ts.map +1 -1
- package/dist/reload.js +83 -40
- package/dist/reload.js.map +1 -1
- package/dist/resolver.d.ts +3 -3
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +11 -26
- package/dist/resolver.js.map +1 -1
- package/dist/sanitize-error.d.ts.map +1 -1
- package/dist/sanitize-error.js +12 -6
- package/dist/sanitize-error.js.map +1 -1
- package/dist/sdk-version.d.ts.map +1 -1
- package/dist/sdk-version.js +2 -2
- package/dist/sdk-version.js.map +1 -1
- package/dist/server-node.d.ts +9 -13
- package/dist/server-node.d.ts.map +1 -1
- package/dist/server-node.js +55 -18
- package/dist/server-node.js.map +1 -1
- package/dist/shutdown.d.ts +7 -6
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +14 -10
- package/dist/shutdown.js.map +1 -1
- package/dist/state.d.ts +12 -3
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +22 -7
- package/dist/state.js.map +1 -1
- package/dist/version-check.d.ts +6 -4
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +42 -13
- package/dist/version-check.js.map +1 -1
- package/package.json +6 -7
package/dist/adapter-files.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { ServerState } from './state.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Ensure the adapters directory exists, creating it if necessary.
|
|
8
8
|
* Caches the result on ServerState so mkdir is called at most once per
|
|
9
|
-
* server lifetime. The flag survives
|
|
9
|
+
* server lifetime. The flag survives hot reloads (via globalThis state).
|
|
10
10
|
*/
|
|
11
11
|
declare const ensureAdaptersDir: (state: ServerState) => Promise<void>;
|
|
12
12
|
/** Prefix for dynamically generated exec script files */
|
|
@@ -40,7 +40,9 @@ declare const cleanupStaleAdapterFiles: (currentPluginNames: Set<string>) => Pro
|
|
|
40
40
|
/**
|
|
41
41
|
* Write a dynamic exec script to the adapters/ directory.
|
|
42
42
|
* Wraps the user's code in an IIFE that captures the result (sync or async)
|
|
43
|
-
* into globalThis.__openTabs
|
|
43
|
+
* into namespaced keys on globalThis.__openTabs for the extension to read back.
|
|
44
|
+
* Each execution uses keys derived from its UUID (`__execResult_<uuid>` and
|
|
45
|
+
* `__execAsync_<uuid>`) so concurrent executions on the same tab do not collide.
|
|
44
46
|
*
|
|
45
47
|
* Returns the filename (relative to adapters/) for the extension to inject.
|
|
46
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-files.d.ts","sourceRoot":"","sources":["../src/adapter-files.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,QAAA,MAAM,iBAAiB,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,IAAI,CAIjE,CAAC;AAEF,yDAAyD;AACzD,QAAA,MAAM,gBAAgB,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-files.d.ts","sourceRoot":"","sources":["../src/adapter-files.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,QAAA,MAAM,iBAAiB,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,IAAI,CAIjE,CAAC;AAEF,yDAAyD;AACzD,QAAA,MAAM,gBAAgB,YAAY,CAAC;AAKnC,yEAAyE;AACzE,QAAA,MAAM,wBAAwB,QAAS,CAAC;AAExC,qEAAqE;AACrE,QAAA,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,KAAG;IAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAQvF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,gBAAgB,GAAU,YAAY,MAAM,EAAE,MAAM,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAiCpG,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,wBAAwB,GAAU,oBAAoB,GAAG,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,IAAI,CAgDrF,CAAC;AAMF;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,GAAU,OAAO,WAAW,EAAE,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAwC7F,CAAC;AAEF,4EAA4E;AAC5E,QAAA,MAAM,cAAc,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,qBAAqB,QAAa,OAAO,CAAC,IAAI,CAiBnD,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,wBAAwB,EACxB,gBAAgB,GACjB,CAAC"}
|
package/dist/adapter-files.js
CHANGED
|
@@ -11,16 +11,18 @@ import { join } from 'node:path';
|
|
|
11
11
|
/**
|
|
12
12
|
* Ensure the adapters directory exists, creating it if necessary.
|
|
13
13
|
* Caches the result on ServerState so mkdir is called at most once per
|
|
14
|
-
* server lifetime. The flag survives
|
|
14
|
+
* server lifetime. The flag survives hot reloads (via globalThis state).
|
|
15
15
|
*/
|
|
16
16
|
const ensureAdaptersDir = async (state) => {
|
|
17
17
|
if (state.adaptersDirReady)
|
|
18
18
|
return;
|
|
19
|
-
await mkdir(getAdaptersDir(), { recursive: true });
|
|
19
|
+
await mkdir(getAdaptersDir(), { recursive: true, mode: 0o700 });
|
|
20
20
|
state.adaptersDirReady = true;
|
|
21
21
|
};
|
|
22
22
|
/** Prefix for dynamically generated exec script files */
|
|
23
23
|
const EXEC_FILE_PREFIX = '__exec-';
|
|
24
|
+
/** Escape special regex characters in a string for use in a RegExp */
|
|
25
|
+
const escapeRegex = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
24
26
|
/** Timeout for batch adapter file writes in sendSyncFull (10 seconds) */
|
|
25
27
|
const ADAPTER_WRITE_TIMEOUT_MS = 10_000;
|
|
26
28
|
/** Create a cancellable timeout promise for use with Promise.race */
|
|
@@ -49,16 +51,8 @@ const writeAdapterFile = async (pluginName, iife, sourceMap) => {
|
|
|
49
51
|
const adaptersDir = getAdaptersDir();
|
|
50
52
|
const contentHash = createHash('sha256').update(iife).digest('hex').slice(0, 8);
|
|
51
53
|
const baseName = `${pluginName}-${contentHash}`;
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
try {
|
|
55
|
-
entries = await readdir(adaptersDir);
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
entries = [];
|
|
59
|
-
}
|
|
60
|
-
const oldFiles = entries.filter(f => f.startsWith(`${pluginName}-`) && f !== `${baseName}.js` && f !== `${baseName}.js.map` && !f.endsWith('.tmp'));
|
|
61
|
-
await Promise.allSettled(oldFiles.map(f => unlink(join(adaptersDir, f)).catch(() => { })));
|
|
54
|
+
// Write the new adapter file before deleting old versions so there is always
|
|
55
|
+
// at least one valid adapter file on disk for this plugin.
|
|
62
56
|
let content = iife;
|
|
63
57
|
if (sourceMap) {
|
|
64
58
|
// Rewrite sourceMappingURL to use the per-plugin hashed filename
|
|
@@ -68,6 +62,19 @@ const writeAdapterFile = async (pluginName, iife, sourceMap) => {
|
|
|
68
62
|
await atomicWrite(mapFinalPath, sourceMap);
|
|
69
63
|
}
|
|
70
64
|
await atomicWrite(join(adaptersDir, `${baseName}.js`), content);
|
|
65
|
+
// Clean up old hashed versions of the same plugin now that the new file is on disk.
|
|
66
|
+
// Using a regex prevents prefix collisions (e.g., plugin 'foo' must not delete
|
|
67
|
+
// files for plugin 'foo-bar').
|
|
68
|
+
let entries;
|
|
69
|
+
try {
|
|
70
|
+
entries = await readdir(adaptersDir);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
entries = [];
|
|
74
|
+
}
|
|
75
|
+
const pluginFileRegex = new RegExp(`^${escapeRegex(pluginName)}-[0-9a-f]{8}\\.js(\\.map)?$`);
|
|
76
|
+
const oldFiles = entries.filter(f => pluginFileRegex.test(f) && f !== `${baseName}.js` && f !== `${baseName}.js.map`);
|
|
77
|
+
await Promise.allSettled(oldFiles.map(f => unlink(join(adaptersDir, f))));
|
|
71
78
|
return `adapters/${baseName}.js`;
|
|
72
79
|
};
|
|
73
80
|
/**
|
|
@@ -109,7 +116,7 @@ const cleanupStaleAdapterFiles = async (currentPluginNames) => {
|
|
|
109
116
|
});
|
|
110
117
|
if (staleFiles.length === 0)
|
|
111
118
|
return;
|
|
112
|
-
const results = await Promise.allSettled(staleFiles.map(f => unlink(join(adaptersDir, f))
|
|
119
|
+
const results = await Promise.allSettled(staleFiles.map(f => unlink(join(adaptersDir, f))));
|
|
113
120
|
let deleted = 0;
|
|
114
121
|
for (const [i, result] of results.entries()) {
|
|
115
122
|
if (result.status === 'rejected') {
|
|
@@ -128,7 +135,9 @@ const cleanupStaleAdapterFiles = async (currentPluginNames) => {
|
|
|
128
135
|
/**
|
|
129
136
|
* Write a dynamic exec script to the adapters/ directory.
|
|
130
137
|
* Wraps the user's code in an IIFE that captures the result (sync or async)
|
|
131
|
-
* into globalThis.__openTabs
|
|
138
|
+
* into namespaced keys on globalThis.__openTabs for the extension to read back.
|
|
139
|
+
* Each execution uses keys derived from its UUID (`__execResult_<uuid>` and
|
|
140
|
+
* `__execAsync_<uuid>`) so concurrent executions on the same tab do not collide.
|
|
132
141
|
*
|
|
133
142
|
* Returns the filename (relative to adapters/) for the extension to inject.
|
|
134
143
|
*/
|
|
@@ -136,9 +145,12 @@ const writeExecFile = async (state, execId, code) => {
|
|
|
136
145
|
await ensureAdaptersDir(state);
|
|
137
146
|
const filename = `${EXEC_FILE_PREFIX}${execId}.js`;
|
|
138
147
|
const finalPath = join(getAdaptersDir(), filename);
|
|
148
|
+
const resultKey = `__execResult_${execId}`;
|
|
149
|
+
const asyncKey = `__execAsync_${execId}`;
|
|
139
150
|
// Wrap user code to capture sync/async results and errors.
|
|
140
|
-
// The wrapper stores results at globalThis.__openTabs
|
|
141
|
-
//
|
|
151
|
+
// The wrapper stores results at namespaced keys on globalThis.__openTabs
|
|
152
|
+
// so concurrent executions do not collide. The extension reads the
|
|
153
|
+
// namespaced key matching this execution's UUID and cleans it up.
|
|
142
154
|
//
|
|
143
155
|
// User code is passed as a JSON-escaped string literal to new Function(),
|
|
144
156
|
// preventing IIFE wrapper breakout attacks. The Function constructor
|
|
@@ -147,18 +159,20 @@ const writeExecFile = async (state, execId, code) => {
|
|
|
147
159
|
const wrapped = [
|
|
148
160
|
'(function() {',
|
|
149
161
|
' var __ot = globalThis.__openTabs = globalThis.__openTabs || {};',
|
|
162
|
+
` var __resultKey = ${JSON.stringify(resultKey)};`,
|
|
163
|
+
` var __asyncKey = ${JSON.stringify(asyncKey)};`,
|
|
150
164
|
' try {',
|
|
151
165
|
` var __userFn = new Function(${JSON.stringify(code)});`,
|
|
152
166
|
' var __r = __userFn();',
|
|
153
167
|
' if (__r && typeof __r === "object" && typeof __r.then === "function") {',
|
|
154
|
-
' __ot
|
|
155
|
-
' __r.then(function(v) { __ot
|
|
156
|
-
' .catch(function(e) { __ot
|
|
168
|
+
' __ot[__asyncKey] = true;',
|
|
169
|
+
' __r.then(function(v) { __ot[__resultKey] = { value: v }; })',
|
|
170
|
+
' .catch(function(e) { __ot[__resultKey] = { error: e instanceof Error ? e.message : String(e) }; });',
|
|
157
171
|
' } else {',
|
|
158
|
-
' __ot
|
|
172
|
+
' __ot[__resultKey] = { value: __r };',
|
|
159
173
|
' }',
|
|
160
174
|
' } catch (e) {',
|
|
161
|
-
' __ot
|
|
175
|
+
' __ot[__resultKey] = { error: e instanceof Error ? e.message : String(e) };',
|
|
162
176
|
' }',
|
|
163
177
|
'})();',
|
|
164
178
|
].join('\n');
|
|
@@ -168,7 +182,7 @@ const writeExecFile = async (state, execId, code) => {
|
|
|
168
182
|
/** Delete a dynamic exec script file. Fire-and-forget — logs on failure. */
|
|
169
183
|
const deleteExecFile = async (filename) => {
|
|
170
184
|
try {
|
|
171
|
-
await unlink(join(getAdaptersDir(), filename))
|
|
185
|
+
await unlink(join(getAdaptersDir(), filename));
|
|
172
186
|
}
|
|
173
187
|
catch {
|
|
174
188
|
log.warn(`Failed to delete exec file: ${filename}`);
|
|
@@ -190,8 +204,9 @@ const cleanupStaleExecFiles = async () => {
|
|
|
190
204
|
const staleExecFiles = entries.filter(f => f.startsWith(EXEC_FILE_PREFIX) && (f.endsWith('.js') || f.endsWith('.js.tmp')));
|
|
191
205
|
if (staleExecFiles.length === 0)
|
|
192
206
|
return;
|
|
193
|
-
await Promise.allSettled(staleExecFiles.map(f => unlink(join(adaptersDir, f))
|
|
194
|
-
|
|
207
|
+
const results = await Promise.allSettled(staleExecFiles.map(f => unlink(join(adaptersDir, f))));
|
|
208
|
+
const deleted = results.filter(r => r.status === 'fulfilled').length;
|
|
209
|
+
log.info(`Cleaned up ${deleted} stale exec file(s)`);
|
|
195
210
|
};
|
|
196
211
|
export { ensureAdaptersDir, writeAdapterFile, cleanupStaleAdapterFiles, writeExecFile, deleteExecFile, cleanupStaleExecFiles, timeoutRace, ADAPTER_WRITE_TIMEOUT_MS, EXEC_FILE_PREFIX, };
|
|
197
212
|
//# sourceMappingURL=adapter-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-files.js","sourceRoot":"","sources":["../src/adapter-files.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAkB,EAAiB,EAAE;IACpE,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO;IACnC,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-files.js","sourceRoot":"","sources":["../src/adapter-files.ts"],"names":[],"mappings":"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"}
|
package/dist/audit-disk.d.ts
CHANGED
|
@@ -14,10 +14,10 @@ declare const getAuditLogPath: () => string;
|
|
|
14
14
|
* Append an audit entry to the disk-based audit log.
|
|
15
15
|
*
|
|
16
16
|
* Fire-and-forget: errors are caught and logged, never thrown.
|
|
17
|
-
* Rotation is checked
|
|
17
|
+
* Rotation is checked once every ROTATION_CHECK_INTERVAL writes to avoid per-write stat() overhead.
|
|
18
18
|
*/
|
|
19
19
|
declare const appendAuditEntryToDisk: (entry: AuditEntry) => Promise<void>;
|
|
20
|
-
/** Reset initialized state (for testing) */
|
|
20
|
+
/** Reset initialized state and write counter (for testing) */
|
|
21
21
|
declare const _resetInitialized: () => void;
|
|
22
22
|
export { appendAuditEntryToDisk, getAuditLogPath, _resetInitialized };
|
|
23
23
|
//# sourceMappingURL=audit-disk.d.ts.map
|
package/dist/audit-disk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-disk.d.ts","sourceRoot":"","sources":["../src/audit-disk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-disk.d.ts","sourceRoot":"","sources":["../src/audit-disk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAuC7C,yCAAyC;AACzC,QAAA,MAAM,eAAe,QAAO,MAA2C,CAAC;AAExE;;;;;GAKG;AACH,QAAA,MAAM,sBAAsB,GAAU,OAAO,UAAU,KAAG,OAAO,CAAC,IAAI,CA2BrE,CAAC;AAEF,8DAA8D;AAC9D,QAAA,MAAM,iBAAiB,QAAO,IAI7B,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/audit-disk.js
CHANGED
|
@@ -14,8 +14,12 @@ import { appendFile, rename, stat, unlink } from 'node:fs/promises';
|
|
|
14
14
|
import { join } from 'node:path';
|
|
15
15
|
/** Maximum audit.log size before rotation (10 MB) */
|
|
16
16
|
const MAX_AUDIT_FILE_SIZE = 10 * 1024 * 1024;
|
|
17
|
-
/** globalThis key for persisting the initialized flag across
|
|
17
|
+
/** globalThis key for persisting the initialized flag across hot reloads */
|
|
18
18
|
const INITIALIZED_KEY = '__opentabs_audit_initialized__';
|
|
19
|
+
/** globalThis key for persisting the write counter across hot reloads */
|
|
20
|
+
const WRITE_COUNT_KEY = '__opentabs_audit_write_count__';
|
|
21
|
+
/** Check rotation every N writes to avoid per-write stat() syscalls */
|
|
22
|
+
const ROTATION_CHECK_INTERVAL = 100;
|
|
19
23
|
/**
|
|
20
24
|
* Rotate the audit log if it exceeds MAX_AUDIT_FILE_SIZE.
|
|
21
25
|
* Renames audit.log → audit.log.1, deleting any existing audit.log.1 first.
|
|
@@ -45,18 +49,23 @@ const getAuditLogPath = () => join(getConfigDir(), 'audit.log');
|
|
|
45
49
|
* Append an audit entry to the disk-based audit log.
|
|
46
50
|
*
|
|
47
51
|
* Fire-and-forget: errors are caught and logged, never thrown.
|
|
48
|
-
* Rotation is checked
|
|
52
|
+
* Rotation is checked once every ROTATION_CHECK_INTERVAL writes to avoid per-write stat() overhead.
|
|
49
53
|
*/
|
|
50
54
|
const appendAuditEntryToDisk = async (entry) => {
|
|
51
55
|
try {
|
|
52
56
|
const auditPath = getAuditLogPath();
|
|
53
57
|
const line = JSON.stringify(entry) + '\n';
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
const g = globalThis;
|
|
59
|
+
const count = g[WRITE_COUNT_KEY] ?? 0;
|
|
60
|
+
// Rotate if the file exceeds the size limit — checked every ROTATION_CHECK_INTERVAL writes
|
|
61
|
+
if (count % ROTATION_CHECK_INTERVAL === 0) {
|
|
62
|
+
await rotateIfNeeded(auditPath);
|
|
63
|
+
}
|
|
64
|
+
// Increment counter after the rotation check so count=0 always checks on the first write
|
|
65
|
+
g[WRITE_COUNT_KEY] = count + 1;
|
|
56
66
|
// Append the entry
|
|
57
67
|
await appendFile(auditPath, line, { mode: 0o600 });
|
|
58
|
-
// Set permissions on first write this session (survives
|
|
59
|
-
const g = globalThis;
|
|
68
|
+
// Set permissions on first write this session (survives hot reloads)
|
|
60
69
|
if (!g[INITIALIZED_KEY]) {
|
|
61
70
|
await safeChmod(auditPath, 0o600);
|
|
62
71
|
g[INITIALIZED_KEY] = true;
|
|
@@ -66,9 +75,11 @@ const appendAuditEntryToDisk = async (entry) => {
|
|
|
66
75
|
log.warn(`Failed to write audit entry to disk: ${toErrorMessage(err)}`);
|
|
67
76
|
}
|
|
68
77
|
};
|
|
69
|
-
/** Reset initialized state (for testing) */
|
|
78
|
+
/** Reset initialized state and write counter (for testing) */
|
|
70
79
|
const _resetInitialized = () => {
|
|
71
|
-
|
|
80
|
+
const g = globalThis;
|
|
81
|
+
g[INITIALIZED_KEY] = false;
|
|
82
|
+
g[WRITE_COUNT_KEY] = 0;
|
|
72
83
|
};
|
|
73
84
|
export { appendAuditEntryToDisk, getAuditLogPath, _resetInitialized };
|
|
74
85
|
//# sourceMappingURL=audit-disk.js.map
|
package/dist/audit-disk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-disk.js","sourceRoot":"","sources":["../src/audit-disk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,
|
|
1
|
+
{"version":3,"file":"audit-disk.js","sourceRoot":"","sources":["../src/audit-disk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-tool-names.d.ts","sourceRoot":"","sources":["../src/browser-tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,QAAA,MAAM,kBAAkB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"browser-tool-names.d.ts","sourceRoot":"","sources":["../src/browser-tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,QAAA,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAwCxC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -32,6 +32,8 @@ const BROWSER_TOOL_NAMES = [
|
|
|
32
32
|
'browser_delete_cookies',
|
|
33
33
|
'browser_enable_network_capture',
|
|
34
34
|
'browser_get_network_requests',
|
|
35
|
+
'browser_get_websocket_frames',
|
|
36
|
+
'browser_export_har',
|
|
35
37
|
'browser_disable_network_capture',
|
|
36
38
|
'browser_get_console_logs',
|
|
37
39
|
'browser_clear_console_logs',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-tool-names.js","sourceRoot":"","sources":["../src/browser-tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,kBAAkB,GAAsB;IAC5C,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,uBAAuB;IACvB,0BAA0B;IAC1B,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,gCAAgC;IAChC,8BAA8B;IAC9B,iCAAiC;IACjC,0BAA0B;IAC1B,4BAA4B;IAC5B,wBAAwB;IACxB,8BAA8B;IAC9B,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,oBAAoB;IACpB,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,qBAAqB;CACtB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser-tool-names.js","sourceRoot":"","sources":["../src/browser-tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,kBAAkB,GAAsB;IAC5C,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,uBAAuB;IACvB,0BAA0B;IAC1B,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,gCAAgC;IAChC,8BAA8B;IAC9B,8BAA8B;IAC9B,oBAAoB;IACpB,iCAAiC;IACjC,0BAA0B;IAC1B,4BAA4B;IAC5B,wBAAwB;IACxB,8BAA8B;IAC9B,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,oBAAoB;IACpB,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,qBAAqB;CACtB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
import type { NetworkRequest } from './detect-auth.js';
|
|
9
9
|
/** Supported API protocol classifications for captured network requests. */
|
|
10
10
|
type ApiProtocol = 'rest' | 'graphql' | 'grpc-web' | 'jsonrpc' | 'trpc' | 'websocket' | 'sse' | 'form-submission';
|
|
11
|
+
/** A captured WebSocket frame from the network capture engine. */
|
|
12
|
+
interface WsFrame {
|
|
13
|
+
url: string;
|
|
14
|
+
direction: 'sent' | 'received';
|
|
15
|
+
data: string;
|
|
16
|
+
opcode: number;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
}
|
|
11
19
|
/** A single detected API endpoint with its protocol, auth info, and call frequency. */
|
|
12
20
|
interface ApiEndpoint {
|
|
13
21
|
url: string;
|
|
@@ -18,6 +26,7 @@ interface ApiEndpoint {
|
|
|
18
26
|
requestBodySample: string | undefined;
|
|
19
27
|
responseStatus: number | undefined;
|
|
20
28
|
callCount: number;
|
|
29
|
+
wsFrameSamples: string[] | undefined;
|
|
21
30
|
}
|
|
22
31
|
/** Result of API pattern detection: classified endpoints and the primary API base URL. */
|
|
23
32
|
interface ApiAnalysis {
|
|
@@ -27,10 +36,13 @@ interface ApiAnalysis {
|
|
|
27
36
|
/**
|
|
28
37
|
* Analyze captured network requests and detect API patterns.
|
|
29
38
|
*
|
|
30
|
-
* This is a pure function: takes an array of captured network requests
|
|
31
|
-
* classifies by protocol, groups by
|
|
39
|
+
* This is a pure function: takes an array of captured network requests and
|
|
40
|
+
* optionally captured WebSocket frames, classifies by protocol, groups by
|
|
41
|
+
* endpoint, and filters noise. When WebSocket frames are provided, the first
|
|
42
|
+
* few unique received text frame payloads are attached to WebSocket endpoints
|
|
43
|
+
* as wsFrameSamples.
|
|
32
44
|
*/
|
|
33
|
-
declare const detectApis: (requests: NetworkRequest[]) => ApiAnalysis;
|
|
45
|
+
declare const detectApis: (requests: NetworkRequest[], wsFrames?: WsFrame[]) => ApiAnalysis;
|
|
34
46
|
export { detectApis };
|
|
35
|
-
export type { ApiProtocol, ApiEndpoint, ApiAnalysis };
|
|
47
|
+
export type { ApiProtocol, ApiEndpoint, ApiAnalysis, WsFrame };
|
|
36
48
|
//# sourceMappingURL=detect-apis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-apis.d.ts","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-apis.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,4EAA4E;AAC5E,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAElH,uFAAuF;AACvF,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"detect-apis.d.ts","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-apis.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,4EAA4E;AAC5E,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAElH,kEAAkE;AAClE,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uFAAuF;AACvF,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACtC;AAED,0FAA0F;AAC1F,UAAU,WAAW;IACnB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AA4WD;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,UAAU,cAAc,EAAE,EAAE,WAAW,OAAO,EAAE,KAAG,WAwEtE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -259,6 +259,28 @@ const classifyProtocol = (req) => {
|
|
|
259
259
|
return undefined;
|
|
260
260
|
};
|
|
261
261
|
// ---------------------------------------------------------------------------
|
|
262
|
+
// WebSocket URL normalization
|
|
263
|
+
// ---------------------------------------------------------------------------
|
|
264
|
+
/**
|
|
265
|
+
* Normalizes a WebSocket URL for comparison by converting wss:// to https://
|
|
266
|
+
* and ws:// to http://, then returning origin + pathname (no query string).
|
|
267
|
+
* This allows matching frame URLs (wss://) against endpoint URLs derived from
|
|
268
|
+
* HTTP upgrade requests (https://).
|
|
269
|
+
*/
|
|
270
|
+
const normalizeWsUrl = (url) => {
|
|
271
|
+
try {
|
|
272
|
+
const parsed = new URL(url);
|
|
273
|
+
if (parsed.protocol === 'wss:')
|
|
274
|
+
parsed.protocol = 'https:';
|
|
275
|
+
else if (parsed.protocol === 'ws:')
|
|
276
|
+
parsed.protocol = 'http:';
|
|
277
|
+
return `${parsed.origin}${parsed.pathname}`;
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return url;
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
// ---------------------------------------------------------------------------
|
|
262
284
|
// Grouping
|
|
263
285
|
// ---------------------------------------------------------------------------
|
|
264
286
|
/** Generate a grouping key for deduplication: method + normalized URL path. */
|
|
@@ -294,11 +316,11 @@ const detectPrimaryApiBaseUrl = (endpoints) => {
|
|
|
294
316
|
try {
|
|
295
317
|
const parsed = new URL(endpoint.url);
|
|
296
318
|
const pathSegments = parsed.pathname.split('/').filter(Boolean);
|
|
297
|
-
// Register origin alone and each incremental path prefix
|
|
298
|
-
prefixCounts.set(parsed.origin, (prefixCounts.get(parsed.origin) ?? 0) +
|
|
319
|
+
// Register origin alone and each incremental path prefix (count each endpoint once)
|
|
320
|
+
prefixCounts.set(parsed.origin, (prefixCounts.get(parsed.origin) ?? 0) + 1);
|
|
299
321
|
for (let depth = 1; depth <= Math.min(pathSegments.length, 3); depth++) {
|
|
300
322
|
const prefix = `${parsed.origin}/${pathSegments.slice(0, depth).join('/')}`;
|
|
301
|
-
prefixCounts.set(prefix, (prefixCounts.get(prefix) ?? 0) +
|
|
323
|
+
prefixCounts.set(prefix, (prefixCounts.get(prefix) ?? 0) + 1);
|
|
302
324
|
}
|
|
303
325
|
}
|
|
304
326
|
catch {
|
|
@@ -308,8 +330,7 @@ const detectPrimaryApiBaseUrl = (endpoints) => {
|
|
|
308
330
|
if (prefixCounts.size === 0)
|
|
309
331
|
return undefined;
|
|
310
332
|
// Find the deepest prefix that is shared by at least 2 endpoints (or all if only 1)
|
|
311
|
-
const
|
|
312
|
-
const minCount = totalEndpoints > 1 ? 2 : 1;
|
|
333
|
+
const minCount = endpoints.length > 1 ? 2 : 1;
|
|
313
334
|
let bestPrefix;
|
|
314
335
|
let bestDepth = -1;
|
|
315
336
|
let bestCount = 0;
|
|
@@ -330,13 +351,20 @@ const detectPrimaryApiBaseUrl = (endpoints) => {
|
|
|
330
351
|
// Main export
|
|
331
352
|
// ---------------------------------------------------------------------------
|
|
332
353
|
const MAX_BODY_SAMPLE_LENGTH = 500;
|
|
354
|
+
/** Maximum number of WebSocket frame samples to include per endpoint. */
|
|
355
|
+
const MAX_WS_FRAME_SAMPLES = 5;
|
|
356
|
+
/** Maximum length per WebSocket frame sample payload. */
|
|
357
|
+
const MAX_WS_FRAME_SAMPLE_LENGTH = 500;
|
|
333
358
|
/**
|
|
334
359
|
* Analyze captured network requests and detect API patterns.
|
|
335
360
|
*
|
|
336
|
-
* This is a pure function: takes an array of captured network requests
|
|
337
|
-
* classifies by protocol, groups by
|
|
361
|
+
* This is a pure function: takes an array of captured network requests and
|
|
362
|
+
* optionally captured WebSocket frames, classifies by protocol, groups by
|
|
363
|
+
* endpoint, and filters noise. When WebSocket frames are provided, the first
|
|
364
|
+
* few unique received text frame payloads are attached to WebSocket endpoints
|
|
365
|
+
* as wsFrameSamples.
|
|
338
366
|
*/
|
|
339
|
-
const detectApis = (requests) => {
|
|
367
|
+
const detectApis = (requests, wsFrames) => {
|
|
340
368
|
// Phase 1: Filter noise
|
|
341
369
|
const apiRequests = requests.filter(req => !isNoise(req));
|
|
342
370
|
// Phase 2: Classify and group
|
|
@@ -370,10 +398,39 @@ const detectApis = (requests) => {
|
|
|
370
398
|
requestBodySample: truncateBody(req.requestBody, MAX_BODY_SAMPLE_LENGTH),
|
|
371
399
|
responseStatus: req.status,
|
|
372
400
|
callCount: 1,
|
|
401
|
+
wsFrameSamples: undefined,
|
|
373
402
|
});
|
|
374
403
|
}
|
|
375
404
|
}
|
|
376
405
|
const endpoints = [...groups.values()];
|
|
406
|
+
// Enrich WebSocket endpoints with frame samples when frames are available
|
|
407
|
+
if (wsFrames && wsFrames.length > 0) {
|
|
408
|
+
for (const ep of endpoints) {
|
|
409
|
+
if (ep.protocol !== 'websocket')
|
|
410
|
+
continue;
|
|
411
|
+
// Collect unique received text frames (opcode 1) for this endpoint URL
|
|
412
|
+
const seen = new Set();
|
|
413
|
+
const samples = [];
|
|
414
|
+
for (const frame of wsFrames) {
|
|
415
|
+
if (samples.length >= MAX_WS_FRAME_SAMPLES)
|
|
416
|
+
break;
|
|
417
|
+
if (frame.direction !== 'received' || frame.opcode !== 1)
|
|
418
|
+
continue;
|
|
419
|
+
if (normalizeWsUrl(frame.url) !== normalizeWsUrl(ep.url))
|
|
420
|
+
continue;
|
|
421
|
+
const payload = frame.data.length > MAX_WS_FRAME_SAMPLE_LENGTH
|
|
422
|
+
? frame.data.slice(0, MAX_WS_FRAME_SAMPLE_LENGTH) + '...'
|
|
423
|
+
: frame.data;
|
|
424
|
+
if (seen.has(payload))
|
|
425
|
+
continue;
|
|
426
|
+
seen.add(payload);
|
|
427
|
+
samples.push(payload);
|
|
428
|
+
}
|
|
429
|
+
if (samples.length > 0) {
|
|
430
|
+
ep.wsFrameSamples = samples;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
377
434
|
return {
|
|
378
435
|
endpoints,
|
|
379
436
|
primaryApiBaseUrl: detectPrimaryApiBaseUrl(endpoints),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-apis.js","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-apis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"detect-apis.js","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-apis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-auth.d.ts","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,mFAAmF;AACnF,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,0EAA0E;AAC1E,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mBAAmB,EAAE,YAAY,EAAE,CAAC;IACpC,qBAAqB,EAAE,YAAY,EAAE,CAAC;IACtC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,EAAE,WAAW,EAAE,CAAC;CAC9B;AAMD,iFAAiF;AACjF,KAAK,cAAc,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,oBAAoB,GACpB,aAAa,CAAC;AAElB,yGAAyG;AACzG,UAAU,UAAU;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0GAA0G;AAC1G,UAAU,YAAY;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"detect-auth.d.ts","sourceRoot":"","sources":["../../../src/browser-tools/analyze-site/detect-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,mFAAmF;AACnF,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,0EAA0E;AAC1E,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mBAAmB,EAAE,YAAY,EAAE,CAAC;IACpC,qBAAqB,EAAE,YAAY,EAAE,CAAC;IACtC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,EAAE,WAAW,EAAE,CAAC;CAC9B;AAMD,iFAAiF;AACjF,KAAK,cAAc,GACf,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,oBAAoB,GACpB,aAAa,CAAC;AAElB,yGAAyG;AACzG,UAAU,UAAU;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0GAA0G;AAC1G,UAAU,YAAY;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AA4XD;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAI,OAAO,kBAAkB,KAAG,YAqC/C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACb,CAAC"}
|
|
@@ -29,13 +29,13 @@ const SESSION_COOKIE_PATTERNS = [
|
|
|
29
29
|
// ---------------------------------------------------------------------------
|
|
30
30
|
// JWT detection
|
|
31
31
|
// ---------------------------------------------------------------------------
|
|
32
|
-
const BASE64URL_SEGMENT = /^[A-Za-z0-9_-]
|
|
32
|
+
const BASE64URL_SEGMENT = /^[A-Za-z0-9_-]+$/;
|
|
33
33
|
/** Returns true if the string looks like a JWT (three dot-separated base64url segments). */
|
|
34
34
|
const looksLikeJwt = (value) => {
|
|
35
35
|
const parts = value.split('.');
|
|
36
36
|
if (parts.length !== 3)
|
|
37
37
|
return false;
|
|
38
|
-
return parts.every(p => p.length
|
|
38
|
+
return parts.every(p => p.length >= 10 && BASE64URL_SEGMENT.test(p));
|
|
39
39
|
};
|
|
40
40
|
// ---------------------------------------------------------------------------
|
|
41
41
|
// Auth-related key pattern (used for globals and storage)
|
|
@@ -196,10 +196,15 @@ const detectBasicAuth = (requests) => {
|
|
|
196
196
|
});
|
|
197
197
|
if (!hasBasicPrefix)
|
|
198
198
|
return [];
|
|
199
|
-
const
|
|
200
|
-
|
|
199
|
+
const basicReq = requestsWithAuth.find(r => {
|
|
200
|
+
if (!r.requestHeaders)
|
|
201
|
+
return false;
|
|
202
|
+
const val = getHeaderValue(r.requestHeaders, 'authorization');
|
|
203
|
+
return val !== undefined && val.startsWith('Basic ');
|
|
204
|
+
});
|
|
205
|
+
if (!basicReq)
|
|
201
206
|
return [];
|
|
202
|
-
const sampleUrl =
|
|
207
|
+
const sampleUrl = basicReq.url;
|
|
203
208
|
return [
|
|
204
209
|
{
|
|
205
210
|
type: 'basic-auth',
|