witbitz-code 1.15.0__tar.gz → 1.15.2__tar.gz
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.
- {witbitz_code-1.15.0/src/witbitz_code.egg-info → witbitz_code-1.15.2}/PKG-INFO +1 -1
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/pyproject.toml +1 -1
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/__init__.py +1 -1
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browse-tree.mjs +5 -5
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/ui.py +3 -2
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/ui_static/app.css +1 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/ui_static/app.js +8 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/ui_static/index.html +5 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2/src/witbitz_code.egg-info}/PKG-INFO +1 -1
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_ui.py +1 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/LICENSE +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/README.md +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/setup.cfg +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/__main__.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/_js.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/account.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/app.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/asks.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/attachments.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/auto.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/auto_runner.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/browse.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/browsetree.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/cli.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/codekeys.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/codetools.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/compress.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/computers.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/confidential.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/confidential_models.json +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/connector.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/devicelink.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/dirs.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/files.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/folders.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/gateway.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/icons/witbitz-code-wsl.ico +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/icons/witbitz-code.ico +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/images.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/keys.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/link.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/mkdir.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/models.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/net.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/offered_models.json +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/notes-init.md +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browse-cdp.mjs +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browse-local.mjs +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browse-publisher.mjs +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browser.js +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-media-server.mjs +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-notes.js +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-progress.js +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/outputs.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/pair.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/pairings.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/payers.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/plugins.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/policy.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/ports.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/qr.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/receipt.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/relay.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/remind.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/seccheck.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/seen.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/selfupdate.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/tinfoil_read.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/tools_catalog.json +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/tools_probe.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/toolsetup.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/uitools.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/uninstall.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/winagent.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/winbg.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/winconsole.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/wizard.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/wslstart.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code.egg-info/SOURCES.txt +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code.egg-info/dependency_links.txt +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code.egg-info/entry_points.txt +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code.egg-info/requires.txt +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code.egg-info/top_level.txt +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_asks.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_attachments.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_auto.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_browse.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_browsetree.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_cli.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_codekeys.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_codetools.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_confidential.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_connector_e2e.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_devicelink.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_dirs.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_files.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_files_and_compress.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_folders.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_images.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_outputs.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_pair_flows.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_plugins.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_policy.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_ports.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_ports_win.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_registry.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_relay_codec.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_remind.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_seccheck.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_selfupdate.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_setup.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_tools_probe.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_toolsetup.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_ui_page.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_uitools.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_uninstall.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_winagent.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_winbg.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_winconsole.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_windows_files.py +0 -0
- {witbitz_code-1.15.0 → witbitz_code-1.15.2}/tests/test_wslstart.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "witbitz-code"
|
|
7
|
-
version = "1.15.
|
|
7
|
+
version = "1.15.2"
|
|
8
8
|
description = "Reach OpenCode on this computer from the Witbitz Spaces Code section, through an end-to-end sealed relay."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
// tools/browse-tree/pin.json
|
|
5
5
|
var pin_default = {
|
|
6
6
|
_: "THE CLOUD COMPUTER'S BROWSER FOR LINUX that this release installs (tools/browse-tree; make.sh writes it). The files are public at <base><tag>/; both sha256s are checked before anything is unpacked.",
|
|
7
|
-
tag: "
|
|
7
|
+
tag: "p2y",
|
|
8
8
|
base: "https://drwev5vxt2t2e.cloudfront.net/browse-tree/",
|
|
9
|
-
pcr0: "
|
|
10
|
-
commit: "
|
|
9
|
+
pcr0: "5a0c2c755715eae50b73fdc13856a6df963bf772e68db5f0155e729c3d822807684f3df10945430f7f75c2e36419e0a0",
|
|
10
|
+
commit: "f45e85eb16a84c90b126915ba8ca8914e2204650",
|
|
11
11
|
tree: {
|
|
12
12
|
file: "tree.tar.zst",
|
|
13
|
-
sha256: "
|
|
14
|
-
size:
|
|
13
|
+
sha256: "d992f07bbfec50467d9a462a4d443f714332d57cf7dc5a928eb9bde4bd023fc2",
|
|
14
|
+
size: 664651711
|
|
15
15
|
},
|
|
16
16
|
lab: {
|
|
17
17
|
file: "ccvm-lab.bin",
|
|
@@ -229,7 +229,7 @@ class Manager:
|
|
|
229
229
|
for p in ps:
|
|
230
230
|
paired.append({"name": p.get("name") or "", "account": p.get("account") or "", "port": wizard.port_of(p), "keys": await self.keys(p),
|
|
231
231
|
"computer": p.get("computerId") or "", "app": pp.app_label(p)})
|
|
232
|
-
pair = {k: v for k, v in self.pair_state.items() if k != "log"}
|
|
232
|
+
pair = {k: v for k, v in self.pair_state.items() if k != "log" and (k != "code" or self.pair_state.get("state") == "waiting")}
|
|
233
233
|
serving = self.serving()
|
|
234
234
|
if serving["state"] == "stopped" and ps:
|
|
235
235
|
el = await self.elsewhere()
|
|
@@ -354,7 +354,8 @@ class Manager:
|
|
|
354
354
|
ch = devicelink.new_link_challenge()
|
|
355
355
|
self.qr_svg = qr.qr_svg(ch.text)
|
|
356
356
|
n = int(self.pair_state.get("n", 0)) + 1
|
|
357
|
-
|
|
357
|
+
# The code as text beside the QR: a computer cannot scan its own screen, and Add a device takes it pasted.
|
|
358
|
+
self.pair_state = {"state": "waiting", "n": n, "until": int(time.time() * 1000) + link.LIFE_MS, "message": "", "code": ch.text}
|
|
358
359
|
self.pair_task = asyncio.ensure_future(self._pair_run(ch, await self._pair_port()))
|
|
359
360
|
return {"ok": True}
|
|
360
361
|
|
|
@@ -50,6 +50,7 @@ footer { font-size: 13px; text-align: center; }
|
|
|
50
50
|
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
|
|
51
51
|
.actions:not(:has(button:not([hidden]))) { display: none; }
|
|
52
52
|
button.small { font-size: 13px; padding: 2px 10px; margin-left: 8px; }
|
|
53
|
+
pre.cmd.code { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; user-select: all; }
|
|
53
54
|
pre.cmd { background: var(--off-bg); color: var(--text); padding: 8px 10px; border-radius: 8px; }
|
|
54
55
|
/* the security check (seccheck.py) */
|
|
55
56
|
p.small, div.small { font-size: 12.5px; }
|
|
@@ -92,11 +92,14 @@ function render(s) {
|
|
|
92
92
|
const want = '/api/pair/qr.svg?n=' + s.pair.n
|
|
93
93
|
if ($('qr').getAttribute('src') !== want) $('qr').setAttribute('src', want)
|
|
94
94
|
show($('qr').parentElement, true)
|
|
95
|
+
$('pairCode').textContent = s.pair.code || ''
|
|
96
|
+
show($('codeBox'), !!s.pair.code)
|
|
95
97
|
const left = Math.max(0, Math.round((s.pair.until - Date.now()) / 60000))
|
|
96
98
|
$('pairMsg').textContent = `Waiting for your phone… (this code works for ${left || 'under a'} minute${left === 1 ? '' : 's'})`
|
|
97
99
|
show($('pairRetry'), false)
|
|
98
100
|
} else if (s.pair.state === 'failed') {
|
|
99
101
|
show($('qr').parentElement, false)
|
|
102
|
+
show($('codeBox'), false)
|
|
100
103
|
$('pairMsg').textContent = s.pair.message || 'Pairing did not finish.'
|
|
101
104
|
show($('pairRetry'), true)
|
|
102
105
|
}
|
|
@@ -306,6 +309,11 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
306
309
|
// same OpenCode); nothing is unpaired. Code here pauses while the code is up and comes back when it is scanned or cancelled.
|
|
307
310
|
$('pairAdd').onclick = () => act('/api/pair', {}, 'Add another account? A new code appears — scan it from the other account: Code in Spaces → Computers → Add a computer. Code on this computer pauses until it is scanned or cancelled.')
|
|
308
311
|
$('pairCancel').onclick = () => act('/api/pair/cancel', {})
|
|
312
|
+
$('pairCopy').onclick = async () => {
|
|
313
|
+
const b = $('pairCopy')
|
|
314
|
+
try { await navigator.clipboard.writeText($('pairCode').textContent); b.textContent = 'Copied ✓' } catch { b.textContent = 'Select the code above and copy it' }
|
|
315
|
+
setTimeout(() => { b.textContent = 'Copy the code' }, 2000)
|
|
316
|
+
}
|
|
309
317
|
$('pairRetry').onclick = () => act('/api/pair', {})
|
|
310
318
|
$('login').onchange = (e) => act('/api/login', { on: e.target.checked })
|
|
311
319
|
refresh(true)
|
|
@@ -45,6 +45,11 @@
|
|
|
45
45
|
<li>Scan this code with the account that should reach this computer.</li>
|
|
46
46
|
</ol>
|
|
47
47
|
<div class="qr-wrap"><img id="qr" alt="Pairing code — scan it in Spaces" width="260" height="260"></div>
|
|
48
|
+
<div id="codeBox" hidden>
|
|
49
|
+
<p class="muted">On this computer? Copy the code and paste it under <b>…or paste the code</b> in Add a device.</p>
|
|
50
|
+
<pre id="pairCode" class="cmd code"></pre>
|
|
51
|
+
<div class="actions"><button id="pairCopy" type="button" class="ghost">Copy the code</button></div>
|
|
52
|
+
</div>
|
|
48
53
|
<p id="pairMsg" class="muted">Waiting for your phone…</p>
|
|
49
54
|
<div class="actions"><button id="pairCancel" type="button" class="ghost">Cancel</button><button id="pairRetry" type="button" hidden>Show a new code</button></div>
|
|
50
55
|
</section>
|
|
@@ -147,6 +147,7 @@ def test_unpair_then_pair_again_with_the_code_on_the_page_then_it_serves():
|
|
|
147
147
|
assert (await c.post(f"{base}/api/pair", headers=authed(srv), json={})).json() == {"ok": True}
|
|
148
148
|
st = (await c.get(f"{base}/api/status", headers=authed(srv))).json()
|
|
149
149
|
assert st["pair"]["state"] == "waiting" and st["pair"]["n"] == 1
|
|
150
|
+
assert st["pair"]["code"].startswith("wbzlink1:"), "the code as text too: a computer cannot scan its own screen, Add a device takes it pasted"
|
|
150
151
|
qr = await c.get(f"{base}/api/pair/qr.svg?n=1", headers={"cookie": f"wbui_{srv.port}=T0KEN"})
|
|
151
152
|
assert qr.status_code == 200 and qr.content.startswith(b"<svg"), "the code an <img> loads with the cookie alone"
|
|
152
153
|
assert (await c.get(f"{base}/api/pair/qr.svg")).status_code == 403
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browse-cdp.mjs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-browser.js
RENAMED
|
File without changes
|
|
File without changes
|
{witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-notes.js
RENAMED
|
File without changes
|
{witbitz_code-1.15.0 → witbitz_code-1.15.2}/src/witbitz_code/opencode_plugins/witbitz-progress.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|