qapture2 0.10.0 → 0.10.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.
- package/dist/{chunk-5W5FS7JY.js → chunk-F66JBHJG.js} +50 -5
- package/dist/{chunk-R6WVHVXO.cjs → chunk-PEPHZGI2.cjs} +50 -5
- package/dist/index.cjs +5 -5
- package/dist/index.js +1 -1
- package/dist/next.cjs +4 -4
- package/dist/next.js +1 -1
- package/dist/standalone.cjs +2 -2
- package/dist/standalone.js +1 -1
- package/package.json +1 -1
|
@@ -1939,6 +1939,8 @@ var STR = {
|
|
|
1939
1939
|
exact_unsupported: "Needs a desktop browser \u2014 phones cannot photograph the screen",
|
|
1940
1940
|
exact_native_hint: "Screenshots are real photographs, taken by the qapture helper on this machine with the same engine as Cmd+Shift+4. It never asks permission and leaves nothing recording, so it costs no battery. Nothing leaves your device.",
|
|
1941
1941
|
exact_native_on: "Real screenshots on \u2014 local helper",
|
|
1942
|
+
exact_helper_offer: "To stop being asked every time: run this next to your dev server and leave it going. macOS asks once for Screen Recording, then never again.",
|
|
1943
|
+
exact_helper_safari: "Safari cannot reach the local helper on an https site \u2014 it blocks loopback as mixed content, and no setting changes that. Open this site in Chrome for screenshots that never ask, or turn the option above off to stay on redrawn shots.",
|
|
1942
1944
|
sync_title: "Save to a folder",
|
|
1943
1945
|
sync_hint: "Every note is written to your disk the moment you save it \u2014 nothing is lost if this browser dies.",
|
|
1944
1946
|
sync_choose: "Choose folder",
|
|
@@ -2178,6 +2180,8 @@ var STR = {
|
|
|
2178
2180
|
exact_turn_on: "\u062A\u0641\u0639\u064A\u0644",
|
|
2179
2181
|
exact_native_hint: "\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0635\u0648\u0631 \u062D\u0642\u064A\u0642\u064A\u0629 \u064A\u0644\u062A\u0642\u0637\u0647\u0627 \u0645\u0633\u0627\u0639\u062F qapture \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u062C\u0647\u0627\u0632 \u0628\u0627\u0644\u0645\u062D\u0631\u0643 \u0646\u0641\u0633\u0647 \u0627\u0644\u0630\u064A \u064A\u0633\u062A\u062E\u062F\u0645\u0647 Cmd+Shift+4. \u0644\u0627 \u064A\u0637\u0644\u0628 \u0625\u0630\u0646\u064B\u0627 \u0648\u0644\u0627 \u064A\u062A\u0631\u0643 \u0623\u064A \u062A\u0633\u062C\u064A\u0644 \u064A\u0639\u0645\u0644\u060C \u0641\u0644\u0627 \u064A\u0633\u062A\u0647\u0644\u0643 \u0627\u0644\u0628\u0637\u0627\u0631\u064A\u0629. \u0648\u0644\u0627 \u0634\u064A\u0621 \u064A\u063A\u0627\u062F\u0631 \u062C\u0647\u0627\u0632\u0643.",
|
|
2180
2182
|
exact_native_on: "\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u062D\u0642\u064A\u0642\u064A\u0629 \u0645\u0641\u0639\u0651\u0644\u0629 \u2014 \u0627\u0644\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u062D\u0644\u064A",
|
|
2183
|
+
exact_helper_offer: "\u0644\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0633\u0624\u0627\u0644 \u0641\u064A \u0643\u0644 \u0645\u0631\u0629: \u0634\u063A\u0651\u0644 \u0647\u0630\u0627 \u0627\u0644\u0623\u0645\u0631 \u0628\u062C\u0627\u0646\u0628 \u062E\u0627\u062F\u0645 \u0627\u0644\u062A\u0637\u0648\u064A\u0631 \u0648\u0627\u062A\u0631\u0643\u0647 \u064A\u0639\u0645\u0644. \u064A\u0637\u0644\u0628 \u0645\u0627\u0643 \u0625\u0630\u0646 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u0634\u0627\u0634\u0629 \u0645\u0631\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637.",
|
|
2184
|
+
exact_helper_safari: "\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 Safari \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u062D\u0644\u064A \u0639\u0644\u0649 \u0645\u0648\u0642\u0639 https \u2014 \u0641\u0647\u0648 \u064A\u062D\u062C\u0628 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u062D\u0644\u064A \u0643\u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u062A\u0644\u0637\u060C \u0648\u0644\u0627 \u064A\u063A\u064A\u0651\u0631 \u0630\u0644\u0643 \u0623\u064A \u0625\u0639\u062F\u0627\u062F. \u0627\u0641\u062A\u062D \u0627\u0644\u0645\u0648\u0642\u0639 \u0641\u064A Chrome \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0644\u0642\u0637\u0627\u062A \u0628\u0644\u0627 \u0633\u0624\u0627\u0644\u060C \u0623\u0648 \u0623\u0637\u0641\u0626 \u0627\u0644\u062E\u064A\u0627\u0631 \u0623\u0639\u0644\u0627\u0647 \u0644\u0644\u0628\u0642\u0627\u0621 \u0639\u0644\u0649 \u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u0645\u064F\u0639\u0627\u062F \u0631\u0633\u0645\u0647\u0627.",
|
|
2181
2185
|
exact_unsupported: "\u064A\u062A\u0637\u0644\u0628 \u0645\u062A\u0635\u0641\u062D \u0633\u0637\u062D \u0645\u0643\u062A\u0628 \u2014 \u0627\u0644\u0647\u0648\u0627\u062A\u0641 \u0644\u0627 \u062A\u0633\u062A\u0637\u064A\u0639 \u062A\u0635\u0648\u064A\u0631 \u0627\u0644\u0634\u0627\u0634\u0629",
|
|
2182
2186
|
sync_title: "\u0627\u0644\u062D\u0641\u0638 \u0641\u064A \u0645\u062C\u0644\u062F",
|
|
2183
2187
|
sync_hint: "\u062A\u064F\u0643\u062A\u0628 \u0643\u0644 \u0645\u0644\u0627\u062D\u0638\u0629 \u0639\u0644\u0649 \u0627\u0644\u0642\u0631\u0635 \u0644\u062D\u0638\u0629 \u062D\u0641\u0638\u0647\u0627 \u2014 \u0644\u0627 \u0634\u064A\u0621 \u064A\u0636\u064A\u0639 \u0625\u0630\u0627 \u062A\u0639\u0637\u0651\u0644 \u0627\u0644\u0645\u062A\u0635\u0641\u062D.",
|
|
@@ -2533,6 +2537,13 @@ var PROBE_TIMEOUT_MS = 700;
|
|
|
2533
2537
|
var SHOT_TIMEOUT_MS = 9e3;
|
|
2534
2538
|
var ABSENT_RECHECK_MS = 3e4;
|
|
2535
2539
|
var configuredPort = DEFAULT_SHOT_PORT;
|
|
2540
|
+
function helperReachableHere() {
|
|
2541
|
+
if (typeof window === "undefined") return false;
|
|
2542
|
+
if (window.location.protocol !== "https:") return true;
|
|
2543
|
+
const ua = navigator.userAgent;
|
|
2544
|
+
const isSafari = /Safari/.test(ua) && !/Chrome|Chromium|Edg|OPR/.test(ua);
|
|
2545
|
+
return !isSafari;
|
|
2546
|
+
}
|
|
2536
2547
|
function setShotPort(port) {
|
|
2537
2548
|
if (!Number.isInteger(port) || port <= 0 || port >= 65536) return;
|
|
2538
2549
|
if (port === configuredPort) return;
|
|
@@ -2559,6 +2570,7 @@ async function fetchWithTimeout(url, init, ms) {
|
|
|
2559
2570
|
}
|
|
2560
2571
|
async function isNativeShotAvailable(port = configuredPort) {
|
|
2561
2572
|
if (typeof window === "undefined") return false;
|
|
2573
|
+
if (!helperReachableHere()) return false;
|
|
2562
2574
|
const now2 = Date.now();
|
|
2563
2575
|
if (lastProbeResult && cachedBase) return true;
|
|
2564
2576
|
if (!lastProbeResult && now2 - lastProbeAt < ABSENT_RECHECK_MS) return false;
|
|
@@ -2568,6 +2580,16 @@ async function isNativeShotAvailable(port = configuredPort) {
|
|
|
2568
2580
|
cachedBase = lastProbeResult ? baseUrl(port) : null;
|
|
2569
2581
|
return lastProbeResult;
|
|
2570
2582
|
}
|
|
2583
|
+
function helperStartCommand(port = configuredPort) {
|
|
2584
|
+
const flags = [];
|
|
2585
|
+
if (port !== DEFAULT_SHOT_PORT) flags.push(`--port ${port}`);
|
|
2586
|
+
if (typeof window !== "undefined") {
|
|
2587
|
+
const origin = window.location.origin;
|
|
2588
|
+
const local = /^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:|$)/.test(origin);
|
|
2589
|
+
if (!local) flags.push(`--allow ${origin}`);
|
|
2590
|
+
}
|
|
2591
|
+
return `npx qapture2 shots${flags.length ? " " + flags.join(" ") : ""}`;
|
|
2592
|
+
}
|
|
2571
2593
|
function resetNativeShotProbe() {
|
|
2572
2594
|
cachedBase = null;
|
|
2573
2595
|
lastProbeAt = 0;
|
|
@@ -2633,6 +2655,12 @@ var CALIBRATION_SETTLE_MS = 220;
|
|
|
2633
2655
|
var FRESH_FRAME_TIMEOUT_MS = 500;
|
|
2634
2656
|
var VIDEO_READY_TIMEOUT_MS = 4e3;
|
|
2635
2657
|
var nativeReady = false;
|
|
2658
|
+
function isHelperReachableHere() {
|
|
2659
|
+
return helperReachableHere();
|
|
2660
|
+
}
|
|
2661
|
+
function getHelperCommand() {
|
|
2662
|
+
return helperStartCommand();
|
|
2663
|
+
}
|
|
2636
2664
|
async function refreshNativeAvailability(port) {
|
|
2637
2665
|
if (typeof port === "number") setShotPort(port);
|
|
2638
2666
|
nativeReady = await isNativeShotAvailable();
|
|
@@ -6062,7 +6090,13 @@ function QaProvider({
|
|
|
6062
6090
|
gradeStep,
|
|
6063
6091
|
evidenceByStep,
|
|
6064
6092
|
// v0.4 — screenshots
|
|
6065
|
-
exactShots: {
|
|
6093
|
+
exactShots: {
|
|
6094
|
+
supported: exactSupported,
|
|
6095
|
+
status: exactStatus,
|
|
6096
|
+
frozenAt,
|
|
6097
|
+
helperReachable: isHelperReachableHere(),
|
|
6098
|
+
helperCommand: getHelperCommand()
|
|
6099
|
+
},
|
|
6066
6100
|
enableExactShots,
|
|
6067
6101
|
photographNow,
|
|
6068
6102
|
disableExactShots,
|
|
@@ -8399,7 +8433,7 @@ function upgradeHint(latest) {
|
|
|
8399
8433
|
}
|
|
8400
8434
|
|
|
8401
8435
|
// src/version.ts
|
|
8402
|
-
var QA_VERSION = "0.10.
|
|
8436
|
+
var QA_VERSION = "0.10.1" ;
|
|
8403
8437
|
function Section({
|
|
8404
8438
|
icon,
|
|
8405
8439
|
title,
|
|
@@ -8666,7 +8700,18 @@ function SettingsSheet({ onClose }) {
|
|
|
8666
8700
|
t("exact_turn_on")
|
|
8667
8701
|
]
|
|
8668
8702
|
}
|
|
8669
|
-
)
|
|
8703
|
+
),
|
|
8704
|
+
exactShots.status !== "native" && (exactShots.helperReachable ? /* @__PURE__ */ jsxs("div", { className: "qa-mt-2", children: [
|
|
8705
|
+
/* @__PURE__ */ jsx("p", { className: "qa-m-0 qa-mb-1 qa-text-10 qa-text-lo qa-leading-relaxed", children: t("exact_helper_offer") }),
|
|
8706
|
+
/* @__PURE__ */ jsx(
|
|
8707
|
+
"code",
|
|
8708
|
+
{
|
|
8709
|
+
className: "qa-block qa-rounded-lg qa-bg-2 qa-border qa-border-subtle qa-px-2 qa-py-1.5 qa-text-10 qa-text-hi",
|
|
8710
|
+
style: { userSelect: "all", wordBreak: "break-all" },
|
|
8711
|
+
children: exactShots.helperCommand
|
|
8712
|
+
}
|
|
8713
|
+
)
|
|
8714
|
+
] }) : /* @__PURE__ */ jsx("p", { className: "qa-m-0 qa-mt-2 qa-text-10 qa-text-mid qa-leading-relaxed", children: t("exact_helper_safari") }))
|
|
8670
8715
|
] }),
|
|
8671
8716
|
/* @__PURE__ */ jsx("div", { className: "qa-h-px qa-bg-3 qa-mt-3 qa-mb-4" }),
|
|
8672
8717
|
/* @__PURE__ */ jsxs("label", { className: "qa-flex qa-items-start qa-gap-2 qa-text-xs qa-text-hi", style: { cursor: "pointer" }, children: [
|
|
@@ -11558,5 +11603,5 @@ function Qapture({ config }) {
|
|
|
11558
11603
|
}
|
|
11559
11604
|
|
|
11560
11605
|
export { Qapture, deleteQaDatabase, initQaStudio };
|
|
11561
|
-
//# sourceMappingURL=chunk-
|
|
11562
|
-
//# sourceMappingURL=chunk-
|
|
11606
|
+
//# sourceMappingURL=chunk-F66JBHJG.js.map
|
|
11607
|
+
//# sourceMappingURL=chunk-F66JBHJG.js.map
|
|
@@ -1946,6 +1946,8 @@ var STR = {
|
|
|
1946
1946
|
exact_unsupported: "Needs a desktop browser \u2014 phones cannot photograph the screen",
|
|
1947
1947
|
exact_native_hint: "Screenshots are real photographs, taken by the qapture helper on this machine with the same engine as Cmd+Shift+4. It never asks permission and leaves nothing recording, so it costs no battery. Nothing leaves your device.",
|
|
1948
1948
|
exact_native_on: "Real screenshots on \u2014 local helper",
|
|
1949
|
+
exact_helper_offer: "To stop being asked every time: run this next to your dev server and leave it going. macOS asks once for Screen Recording, then never again.",
|
|
1950
|
+
exact_helper_safari: "Safari cannot reach the local helper on an https site \u2014 it blocks loopback as mixed content, and no setting changes that. Open this site in Chrome for screenshots that never ask, or turn the option above off to stay on redrawn shots.",
|
|
1949
1951
|
sync_title: "Save to a folder",
|
|
1950
1952
|
sync_hint: "Every note is written to your disk the moment you save it \u2014 nothing is lost if this browser dies.",
|
|
1951
1953
|
sync_choose: "Choose folder",
|
|
@@ -2185,6 +2187,8 @@ var STR = {
|
|
|
2185
2187
|
exact_turn_on: "\u062A\u0641\u0639\u064A\u0644",
|
|
2186
2188
|
exact_native_hint: "\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0635\u0648\u0631 \u062D\u0642\u064A\u0642\u064A\u0629 \u064A\u0644\u062A\u0642\u0637\u0647\u0627 \u0645\u0633\u0627\u0639\u062F qapture \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u062C\u0647\u0627\u0632 \u0628\u0627\u0644\u0645\u062D\u0631\u0643 \u0646\u0641\u0633\u0647 \u0627\u0644\u0630\u064A \u064A\u0633\u062A\u062E\u062F\u0645\u0647 Cmd+Shift+4. \u0644\u0627 \u064A\u0637\u0644\u0628 \u0625\u0630\u0646\u064B\u0627 \u0648\u0644\u0627 \u064A\u062A\u0631\u0643 \u0623\u064A \u062A\u0633\u062C\u064A\u0644 \u064A\u0639\u0645\u0644\u060C \u0641\u0644\u0627 \u064A\u0633\u062A\u0647\u0644\u0643 \u0627\u0644\u0628\u0637\u0627\u0631\u064A\u0629. \u0648\u0644\u0627 \u0634\u064A\u0621 \u064A\u063A\u0627\u062F\u0631 \u062C\u0647\u0627\u0632\u0643.",
|
|
2187
2189
|
exact_native_on: "\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u062D\u0642\u064A\u0642\u064A\u0629 \u0645\u0641\u0639\u0651\u0644\u0629 \u2014 \u0627\u0644\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u062D\u0644\u064A",
|
|
2190
|
+
exact_helper_offer: "\u0644\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0633\u0624\u0627\u0644 \u0641\u064A \u0643\u0644 \u0645\u0631\u0629: \u0634\u063A\u0651\u0644 \u0647\u0630\u0627 \u0627\u0644\u0623\u0645\u0631 \u0628\u062C\u0627\u0646\u0628 \u062E\u0627\u062F\u0645 \u0627\u0644\u062A\u0637\u0648\u064A\u0631 \u0648\u0627\u062A\u0631\u0643\u0647 \u064A\u0639\u0645\u0644. \u064A\u0637\u0644\u0628 \u0645\u0627\u0643 \u0625\u0630\u0646 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u0634\u0627\u0634\u0629 \u0645\u0631\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637.",
|
|
2191
|
+
exact_helper_safari: "\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 Safari \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u062D\u0644\u064A \u0639\u0644\u0649 \u0645\u0648\u0642\u0639 https \u2014 \u0641\u0647\u0648 \u064A\u062D\u062C\u0628 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u062D\u0644\u064A \u0643\u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u062A\u0644\u0637\u060C \u0648\u0644\u0627 \u064A\u063A\u064A\u0651\u0631 \u0630\u0644\u0643 \u0623\u064A \u0625\u0639\u062F\u0627\u062F. \u0627\u0641\u062A\u062D \u0627\u0644\u0645\u0648\u0642\u0639 \u0641\u064A Chrome \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0644\u0642\u0637\u0627\u062A \u0628\u0644\u0627 \u0633\u0624\u0627\u0644\u060C \u0623\u0648 \u0623\u0637\u0641\u0626 \u0627\u0644\u062E\u064A\u0627\u0631 \u0623\u0639\u0644\u0627\u0647 \u0644\u0644\u0628\u0642\u0627\u0621 \u0639\u0644\u0649 \u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u0645\u064F\u0639\u0627\u062F \u0631\u0633\u0645\u0647\u0627.",
|
|
2188
2192
|
exact_unsupported: "\u064A\u062A\u0637\u0644\u0628 \u0645\u062A\u0635\u0641\u062D \u0633\u0637\u062D \u0645\u0643\u062A\u0628 \u2014 \u0627\u0644\u0647\u0648\u0627\u062A\u0641 \u0644\u0627 \u062A\u0633\u062A\u0637\u064A\u0639 \u062A\u0635\u0648\u064A\u0631 \u0627\u0644\u0634\u0627\u0634\u0629",
|
|
2189
2193
|
sync_title: "\u0627\u0644\u062D\u0641\u0638 \u0641\u064A \u0645\u062C\u0644\u062F",
|
|
2190
2194
|
sync_hint: "\u062A\u064F\u0643\u062A\u0628 \u0643\u0644 \u0645\u0644\u0627\u062D\u0638\u0629 \u0639\u0644\u0649 \u0627\u0644\u0642\u0631\u0635 \u0644\u062D\u0638\u0629 \u062D\u0641\u0638\u0647\u0627 \u2014 \u0644\u0627 \u0634\u064A\u0621 \u064A\u0636\u064A\u0639 \u0625\u0630\u0627 \u062A\u0639\u0637\u0651\u0644 \u0627\u0644\u0645\u062A\u0635\u0641\u062D.",
|
|
@@ -2540,6 +2544,13 @@ var PROBE_TIMEOUT_MS = 700;
|
|
|
2540
2544
|
var SHOT_TIMEOUT_MS = 9e3;
|
|
2541
2545
|
var ABSENT_RECHECK_MS = 3e4;
|
|
2542
2546
|
var configuredPort = DEFAULT_SHOT_PORT;
|
|
2547
|
+
function helperReachableHere() {
|
|
2548
|
+
if (typeof window === "undefined") return false;
|
|
2549
|
+
if (window.location.protocol !== "https:") return true;
|
|
2550
|
+
const ua = navigator.userAgent;
|
|
2551
|
+
const isSafari = /Safari/.test(ua) && !/Chrome|Chromium|Edg|OPR/.test(ua);
|
|
2552
|
+
return !isSafari;
|
|
2553
|
+
}
|
|
2543
2554
|
function setShotPort(port) {
|
|
2544
2555
|
if (!Number.isInteger(port) || port <= 0 || port >= 65536) return;
|
|
2545
2556
|
if (port === configuredPort) return;
|
|
@@ -2566,6 +2577,7 @@ async function fetchWithTimeout(url, init, ms) {
|
|
|
2566
2577
|
}
|
|
2567
2578
|
async function isNativeShotAvailable(port = configuredPort) {
|
|
2568
2579
|
if (typeof window === "undefined") return false;
|
|
2580
|
+
if (!helperReachableHere()) return false;
|
|
2569
2581
|
const now2 = Date.now();
|
|
2570
2582
|
if (lastProbeResult && cachedBase) return true;
|
|
2571
2583
|
if (!lastProbeResult && now2 - lastProbeAt < ABSENT_RECHECK_MS) return false;
|
|
@@ -2575,6 +2587,16 @@ async function isNativeShotAvailable(port = configuredPort) {
|
|
|
2575
2587
|
cachedBase = lastProbeResult ? baseUrl(port) : null;
|
|
2576
2588
|
return lastProbeResult;
|
|
2577
2589
|
}
|
|
2590
|
+
function helperStartCommand(port = configuredPort) {
|
|
2591
|
+
const flags = [];
|
|
2592
|
+
if (port !== DEFAULT_SHOT_PORT) flags.push(`--port ${port}`);
|
|
2593
|
+
if (typeof window !== "undefined") {
|
|
2594
|
+
const origin = window.location.origin;
|
|
2595
|
+
const local = /^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:|$)/.test(origin);
|
|
2596
|
+
if (!local) flags.push(`--allow ${origin}`);
|
|
2597
|
+
}
|
|
2598
|
+
return `npx qapture2 shots${flags.length ? " " + flags.join(" ") : ""}`;
|
|
2599
|
+
}
|
|
2578
2600
|
function resetNativeShotProbe() {
|
|
2579
2601
|
cachedBase = null;
|
|
2580
2602
|
lastProbeAt = 0;
|
|
@@ -2640,6 +2662,12 @@ var CALIBRATION_SETTLE_MS = 220;
|
|
|
2640
2662
|
var FRESH_FRAME_TIMEOUT_MS = 500;
|
|
2641
2663
|
var VIDEO_READY_TIMEOUT_MS = 4e3;
|
|
2642
2664
|
var nativeReady = false;
|
|
2665
|
+
function isHelperReachableHere() {
|
|
2666
|
+
return helperReachableHere();
|
|
2667
|
+
}
|
|
2668
|
+
function getHelperCommand() {
|
|
2669
|
+
return helperStartCommand();
|
|
2670
|
+
}
|
|
2643
2671
|
async function refreshNativeAvailability(port) {
|
|
2644
2672
|
if (typeof port === "number") setShotPort(port);
|
|
2645
2673
|
nativeReady = await isNativeShotAvailable();
|
|
@@ -6069,7 +6097,13 @@ function QaProvider({
|
|
|
6069
6097
|
gradeStep,
|
|
6070
6098
|
evidenceByStep,
|
|
6071
6099
|
// v0.4 — screenshots
|
|
6072
|
-
exactShots: {
|
|
6100
|
+
exactShots: {
|
|
6101
|
+
supported: exactSupported,
|
|
6102
|
+
status: exactStatus,
|
|
6103
|
+
frozenAt,
|
|
6104
|
+
helperReachable: isHelperReachableHere(),
|
|
6105
|
+
helperCommand: getHelperCommand()
|
|
6106
|
+
},
|
|
6073
6107
|
enableExactShots,
|
|
6074
6108
|
photographNow,
|
|
6075
6109
|
disableExactShots,
|
|
@@ -8406,7 +8440,7 @@ function upgradeHint(latest) {
|
|
|
8406
8440
|
}
|
|
8407
8441
|
|
|
8408
8442
|
// src/version.ts
|
|
8409
|
-
var QA_VERSION = "0.10.
|
|
8443
|
+
var QA_VERSION = "0.10.1" ;
|
|
8410
8444
|
function Section({
|
|
8411
8445
|
icon,
|
|
8412
8446
|
title,
|
|
@@ -8673,7 +8707,18 @@ function SettingsSheet({ onClose }) {
|
|
|
8673
8707
|
t("exact_turn_on")
|
|
8674
8708
|
]
|
|
8675
8709
|
}
|
|
8676
|
-
)
|
|
8710
|
+
),
|
|
8711
|
+
exactShots.status !== "native" && (exactShots.helperReachable ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "qa-mt-2", children: [
|
|
8712
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "qa-m-0 qa-mb-1 qa-text-10 qa-text-lo qa-leading-relaxed", children: t("exact_helper_offer") }),
|
|
8713
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8714
|
+
"code",
|
|
8715
|
+
{
|
|
8716
|
+
className: "qa-block qa-rounded-lg qa-bg-2 qa-border qa-border-subtle qa-px-2 qa-py-1.5 qa-text-10 qa-text-hi",
|
|
8717
|
+
style: { userSelect: "all", wordBreak: "break-all" },
|
|
8718
|
+
children: exactShots.helperCommand
|
|
8719
|
+
}
|
|
8720
|
+
)
|
|
8721
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "qa-m-0 qa-mt-2 qa-text-10 qa-text-mid qa-leading-relaxed", children: t("exact_helper_safari") }))
|
|
8677
8722
|
] }),
|
|
8678
8723
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "qa-h-px qa-bg-3 qa-mt-3 qa-mb-4" }),
|
|
8679
8724
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "qa-flex qa-items-start qa-gap-2 qa-text-xs qa-text-hi", style: { cursor: "pointer" }, children: [
|
|
@@ -11567,5 +11612,5 @@ function Qapture({ config }) {
|
|
|
11567
11612
|
exports.Qapture = Qapture;
|
|
11568
11613
|
exports.deleteQaDatabase = deleteQaDatabase;
|
|
11569
11614
|
exports.initQaStudio = initQaStudio;
|
|
11570
|
-
//# sourceMappingURL=chunk-
|
|
11571
|
-
//# sourceMappingURL=chunk-
|
|
11615
|
+
//# sourceMappingURL=chunk-PEPHZGI2.cjs.map
|
|
11616
|
+
//# sourceMappingURL=chunk-PEPHZGI2.cjs.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPEPHZGI2_cjs = require('./chunk-PEPHZGI2.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "QaStudio", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkPEPHZGI2_cjs.Qapture; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "Qapture", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkPEPHZGI2_cjs.Qapture; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "deleteQaDatabase", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkPEPHZGI2_cjs.deleteQaDatabase; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "initQaStudio", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkPEPHZGI2_cjs.initQaStudio; }
|
|
22
22
|
});
|
|
23
23
|
//# sourceMappingURL=index.cjs.map
|
|
24
24
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
package/dist/next.cjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkPEPHZGI2_cjs = require('./chunk-PEPHZGI2.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "QaStudio", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkPEPHZGI2_cjs.Qapture; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "Qapture", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkPEPHZGI2_cjs.Qapture; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "initQaStudio", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkPEPHZGI2_cjs.initQaStudio; }
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=next.cjs.map
|
|
21
21
|
//# sourceMappingURL=next.cjs.map
|
package/dist/next.js
CHANGED
package/dist/standalone.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPEPHZGI2_cjs = require('./chunk-PEPHZGI2.cjs');
|
|
4
4
|
|
|
5
5
|
// src/standalone.ts
|
|
6
6
|
if (typeof window !== "undefined" && typeof customElements !== "undefined" && !customElements.get("qapture-widget")) {
|
|
@@ -38,7 +38,7 @@ if (typeof window !== "undefined" && typeof customElements !== "undefined" && !c
|
|
|
38
38
|
|
|
39
39
|
Object.defineProperty(exports, "initQaStudio", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkPEPHZGI2_cjs.initQaStudio; }
|
|
42
42
|
});
|
|
43
43
|
//# sourceMappingURL=standalone.cjs.map
|
|
44
44
|
//# sourceMappingURL=standalone.cjs.map
|
package/dist/standalone.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qapture2",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Drop-in, AI-aware in-browser QA capture widget. A tester annotates the live app (element/region + auto-screenshot + note), tracks a graded testing journey, and exports a ZIP your own coding agent reads. Ships zero AI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|