browser-cookie-bridge 1.5.4 → 1.5.5
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Browser Cookie Bridge",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.5",
|
|
5
5
|
"description": "Transfers selected browser data locally between supported browsers and embedded app browsers.",
|
|
6
6
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5o6lDkXzU/23Jm2QRk4mfuxNnr3VlEIjRHcZr93Gdo7PI7asHJQhigaMGT6UOz0lkaTn1F+TGIPlsJo9GNBSsxbCfxWoBSXcFQFrPolY5LEfKaMtZQQ6eb4UAnp+bbUwb1den4On0piWU47Yzl6i0Jcdg4EG5H1kCSF/6nJsbKgF7OTaR/3drULu40yRvflzSXRhly3UDO7c5mgHJsaMwVV+VILsxbcPOoRINjuo3zDC737HFs67dpf38xF3tjSVL0HURAWKKobMvfABiDfVEm5O0Lvf+57d1Ib12QLT2qtVXNDy3iYwX+w2S0wH2vIMsfvoFPlRdmeqft70kZOqXwIDAQAB",
|
|
7
7
|
"permissions": ["alarms", "cookies", "history"],
|
package/macos-app/Info.plist
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
<key>CFBundleInfoDictionaryVersion</key><string>6.0</string>
|
|
11
11
|
<key>CFBundleName</key><string>Browser Cookie Bridge</string>
|
|
12
12
|
<key>CFBundlePackageType</key><string>APPL</string>
|
|
13
|
-
<key>CFBundleShortVersionString</key><string>1.5.
|
|
14
|
-
<key>CFBundleVersion</key><string>
|
|
13
|
+
<key>CFBundleShortVersionString</key><string>1.5.5</string>
|
|
14
|
+
<key>CFBundleVersion</key><string>42</string>
|
|
15
15
|
<key>LSMinimumSystemVersion</key><string>13.5</string>
|
|
16
16
|
<key>NSHighResolutionCapable</key><true/>
|
|
17
17
|
</dict>
|
|
@@ -758,12 +758,14 @@ final class SyncModel: ObservableObject {
|
|
|
758
758
|
self.secondaryStatus = "No cloud profile was changed; temporary profile data was removed"
|
|
759
759
|
} else if success {
|
|
760
760
|
self.state = partial ? .warning : .success
|
|
761
|
-
if self.isGrokBotTarget
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
self.
|
|
761
|
+
if self.isGrokBotTarget {
|
|
762
|
+
let parsed = self.parseGrokBotResult(from: output)
|
|
763
|
+
let outputPath = parsed?.outputPath ?? grokBotOutputPath ?? self.grokBotOutputPath
|
|
764
|
+
self.grokBotOutputPath = outputPath
|
|
765
|
+
self.grokBotPrompt = parsed?.prompt ?? Self.grokBotFallbackPrompt
|
|
765
766
|
self.primaryStatus = partial ? "Grok Bot transfer created with warnings" : "Grok Bot transfer file ready"
|
|
766
767
|
self.secondaryStatus = self.lastMeaningfulLine(output) ?? "Attach the .bcbx file to any Grok Bot and paste the prompt"
|
|
768
|
+
self.presentGrokBotResultSheet()
|
|
767
769
|
} else {
|
|
768
770
|
self.primaryStatus = self.isBrowserlessTarget
|
|
769
771
|
? (partial ? "Browserless profile uploaded with omissions" : "Browserless profile uploaded")
|
|
@@ -1169,6 +1171,21 @@ final class SyncModel: ObservableObject {
|
|
|
1169
1171
|
isDirectTarget || selectedTargetID == "browserless" || isGrokBotTarget ? [] : [selectedSourceID, selectedTargetID]
|
|
1170
1172
|
}
|
|
1171
1173
|
|
|
1174
|
+
private static let grokBotFallbackPrompt = """
|
|
1175
|
+
On your Grok Bot cloud computer only — do not access my local Mac and do not print cookie values.
|
|
1176
|
+
|
|
1177
|
+
1. Save the attached GrokBot-Import.bcbx to the cloud computer.
|
|
1178
|
+
2. Unzip it: unzip -o GrokBot-Import.bcbx -d bcb-import && cd bcb-import
|
|
1179
|
+
3. Run: node import.mjs
|
|
1180
|
+
4. Report only how many cookies were imported per domain, then delete the bcb-import folder and any copies of the bundle.
|
|
1181
|
+
"""
|
|
1182
|
+
|
|
1183
|
+
private func presentGrokBotResultSheet() {
|
|
1184
|
+
DispatchQueue.main.async { [weak self] in
|
|
1185
|
+
self?.showingGrokBotResult = true
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1172
1189
|
private struct GrokBotResultPayload: Decodable {
|
|
1173
1190
|
let outputPath: String
|
|
1174
1191
|
let prompt: String
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -13,6 +13,7 @@ import { isChromiumBrowserRunning, readChromiumProfile } from "./chromium-reader
|
|
|
13
13
|
import { uploadBrowserlessProfile } from "./browserless.js";
|
|
14
14
|
import { inspectBrowserlessProfile } from "./browserless-preflight.js";
|
|
15
15
|
import {
|
|
16
|
+
formatGrokBotResultLine,
|
|
16
17
|
grokBotSummary,
|
|
17
18
|
writeGrokBotBundle,
|
|
18
19
|
} from "./grok-bot-export.js";
|
|
@@ -310,13 +311,10 @@ async function sync(args, { signal } = {}) {
|
|
|
310
311
|
});
|
|
311
312
|
result.sourceCookieSkipped = payload.cookieStats.skipped;
|
|
312
313
|
console.log(grokBotSummary(result));
|
|
313
|
-
console.log(
|
|
314
|
+
console.log(formatGrokBotResultLine({
|
|
314
315
|
outputPath: result.outputPath,
|
|
315
|
-
cookieCount: result.cookieCount,
|
|
316
|
-
domainCount: result.domainCount,
|
|
317
|
-
domains: result.domains,
|
|
318
316
|
prompt: result.prompt,
|
|
319
|
-
})
|
|
317
|
+
}));
|
|
320
318
|
return result;
|
|
321
319
|
}
|
|
322
320
|
if (target === "browserless") {
|
package/src/grok-bot-export.js
CHANGED
|
@@ -157,6 +157,11 @@ export function grokBotSummary(result) {
|
|
|
157
157
|
return `Grok Bot transfer file created: ${result.cookieCount} cookies across ${domainNote} from ${result.sourceBrowser}.${skipped} Attach ${path.basename(result.outputPath)} to any Grok Bot and paste the prompt. The bundle includes the decryption key—treat the file as credentials and do not share it.`;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
/** Machine-readable sync result for the macOS app (keep small — no domain lists). */
|
|
161
|
+
export function formatGrokBotResultLine({ outputPath, prompt }) {
|
|
162
|
+
return `BCB_GROK_RESULT ${JSON.stringify({ outputPath, prompt })}`;
|
|
163
|
+
}
|
|
164
|
+
|
|
160
165
|
export function filterCookies(cookies, onlyDomains = []) {
|
|
161
166
|
const domains = normalizeDomainFilters(onlyDomains);
|
|
162
167
|
if (!domains.length) return cookies;
|