@netnodeag/kraftwerk 0.78.1 → 0.80.0

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.
Files changed (70) hide show
  1. package/README.md +83 -0
  2. package/dist/cli/daemon.js +10 -9
  3. package/dist/cli/doctor.js +1 -1
  4. package/dist/cli/entities.d.ts +8 -0
  5. package/dist/cli/entities.js +222 -0
  6. package/dist/cli/init.js +3 -0
  7. package/dist/cli/kraftwerk.js +7 -0
  8. package/dist/cli/ui.js +2 -1
  9. package/dist/client/routes.d.ts +16 -0
  10. package/dist/client/routes.js +16 -0
  11. package/dist/config.d.ts +25 -0
  12. package/dist/config.js +17 -6
  13. package/dist/core/chat/context.js +5 -2
  14. package/dist/core/entities.d.ts +171 -0
  15. package/dist/core/entities.js +441 -0
  16. package/dist/core/git.js +3 -1
  17. package/dist/core/journal.d.ts +12 -2
  18. package/dist/core/journal.js +50 -5
  19. package/dist/core/log.d.ts +18 -0
  20. package/dist/core/log.js +23 -0
  21. package/dist/core/projects.d.ts +22 -33
  22. package/dist/core/projects.js +40 -134
  23. package/dist/core/records.d.ts +28 -0
  24. package/dist/core/records.js +71 -0
  25. package/dist/core/refs.d.ts +74 -0
  26. package/dist/core/refs.js +143 -0
  27. package/dist/core/search.d.ts +10 -0
  28. package/dist/core/search.js +12 -0
  29. package/dist/core/settings.d.ts +4 -0
  30. package/dist/core/settings.js +24 -3
  31. package/dist/core/slug.d.ts +9 -0
  32. package/dist/core/slug.js +18 -0
  33. package/dist/core/trash.d.ts +1 -1
  34. package/dist/server/api/devices.js +2 -1
  35. package/dist/server/api/entities.d.ts +74 -0
  36. package/dist/server/api/entities.js +60 -0
  37. package/dist/server/api/index.d.ts +66 -4
  38. package/dist/server/api/index.js +5 -0
  39. package/dist/server/api/projects.d.ts +3 -0
  40. package/dist/server/api/projects.js +3 -0
  41. package/dist/server/api/workspace.d.ts +15 -0
  42. package/dist/server/api/workspace.js +12 -4
  43. package/dist/server/cloud.js +3 -2
  44. package/dist/server/relay.d.ts +3 -2
  45. package/dist/server/relay.js +7 -7
  46. package/dist/server/server.js +3 -2
  47. package/package.json +1 -1
  48. package/schema/kraftwerk.schema.json +54 -0
  49. package/web/dist/assets/{dist-Crnb8VVO.js → dist-1PajaYPg.js} +1 -1
  50. package/web/dist/assets/{dist-B-yVL5lk.js → dist-B4dqwo7_.js} +1 -1
  51. package/web/dist/assets/dist-Bp1iMuQ7.js +1 -0
  52. package/web/dist/assets/{dist-C90kUzps.js → dist-CK2u1OXb.js} +1 -1
  53. package/web/dist/assets/{dist-DQbifCX0.js → dist-D-f0nszo.js} +1 -1
  54. package/web/dist/assets/{dist-BTc878j7.js → dist-DKduisGW.js} +1 -1
  55. package/web/dist/assets/{dist-D0rjnN8S.js → dist-DgKgeYFJ.js} +1 -1
  56. package/web/dist/assets/{dist-D4SDXoGw.js → dist-DlZPeneT.js} +1 -1
  57. package/web/dist/assets/{dist-DHRhdODt.js → dist-K_3Y5Nbl.js} +1 -1
  58. package/web/dist/assets/{dist-B9EMB1Ie.js → dist-NX4_yvho.js} +1 -1
  59. package/web/dist/assets/{dist-CpLdAqFQ.js → dist-u_oAKIhZ.js} +1 -1
  60. package/web/dist/assets/{editor-DHAdW1g_.js → editor-CE9TlKkJ.js} +3 -3
  61. package/web/dist/assets/index-Dvt-vE1h.css +2 -0
  62. package/web/dist/assets/index-IAuwD22j.js +231 -0
  63. package/web/dist/index.html +2 -2
  64. package/web/dist-remote/assets/index-D6Wznb5o.js +27 -0
  65. package/web/dist-remote/index.html +2 -2
  66. package/web/dist-remote/sw.js +1 -1
  67. package/web/dist/assets/dist-lSJ-O7kT.js +0 -1
  68. package/web/dist/assets/index-BKDJocDd.css +0 -2
  69. package/web/dist/assets/index-D7JVAjll.js +0 -231
  70. package/web/dist-remote/assets/index-2nAI1HTV.js +0 -13
@@ -1,13 +0,0 @@
1
- (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=`kraftwerk-remote`;function t(){return new Promise((t,n)=>{let r=indexedDB.open(e,1);r.onupgradeneeded=()=>{r.result.createObjectStore(`machines`,{keyPath:`key`}),r.result.createObjectStore(`state`)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}async function n(e,n,r){let i=await t();try{return await new Promise((t,a)=>{let o=r(i.transaction(e,n).objectStore(e));o.onsuccess=()=>t(o.result),o.onerror=()=>a(o.error)})}finally{i.close()}}var r=()=>n(`machines`,`readonly`,e=>e.getAll()),i=e=>n(`machines`,`readwrite`,t=>t.delete(e)),a=e=>n(`state`,`readwrite`,t=>t.put(e,`current`));async function o(e){let t=[...new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e))).subarray(0,4)].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,4)}-${t.slice(4)}`}var s=document.getElementById(`app`),c=e=>e.replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]),l=/^[A-Za-z0-9_-]{43}$/;async function u(){if(!(`serviceWorker`in navigator))throw Error(`this browser has no service workers (a private window?)`);let e=await navigator.serviceWorker.register(`/_kw/sw.js`,{scope:`/`});await navigator.serviceWorker.ready;let t=e.active??e.waiting??e.installing;if(!t)throw Error(`the service worker did not start`);return t}function d(e,t){return new Promise((n,r)=>{let i=new MessageChannel,a=setTimeout(()=>r(Error(`no answer — is the machine awake and remote access on?`)),3e4);i.port1.onmessage=e=>{clearTimeout(a);let t=e.data;t.ok?n():r(Error(t.error??`pairing failed`))},e.postMessage({type:`pair`,...t},[i.port2])})}async function f(e,t,n){let r=await o(e),i=/iPhone/.test(navigator.userAgent)?`iPhone`:/iPad/.test(navigator.userAgent)?`iPad`:/Android/.test(navigator.userAgent)?`Android phone`:`browser`;s.innerHTML=`
2
- <h1>Pair with ${c(n)}</h1>
3
- <p class="dim">This phone reaches ${c(n)} from anywhere, end to end encrypted: the relay in between cannot read along.</p>
4
- <div class="card">
5
- <p>Machine key <code>${c(r)}</code><br><span class="dim">The same as <code>kraftwerk remote</code> shows on the machine.</span></p>
6
- <label for="name">Name this device</label>
7
- <input id="name" value="${c(i)}" autocomplete="off" />
8
- <button id="go">Pair</button>
9
- <p id="msg" class="dim"></p>
10
- </div>`;let a=document.getElementById(`go`),l=document.getElementById(`msg`);a.onclick=async()=>{a.disabled=!0,l.className=`dim`,l.textContent=`Connecting…`;try{await d(await u(),{key:e,code:t,label:n,name:document.getElementById(`name`).value.trim()}),history.replaceState(null,``,`/_kw/`),location.href=`/`}catch(e){a.disabled=!1,l.className=`err`,l.textContent=e.message}}}async function p(e){let t=await r().catch(()=>[]),n=await Promise.all(t.map(async e=>`<div class="card machine"><a href="/" data-open="${c(e.key)}">${c(e.label)}<br><span class="dim">key <code>${c(await o(e.key))}</code></span></a><button class="quiet" data-forget="${c(e.key)}">Forget</button></div>`));s.innerHTML=`
11
- <h1>kraftwerk remote</h1>
12
- ${e?`<p class="err">${c(e)}</p>`:``}
13
- ${n.join(``)||`<div class="card"><p>No machine paired on this phone yet.</p><p class="dim">On the Mac: <code>kraftwerk remote on</code>, then <code>kraftwerk remote pair</code> — or scan the QR code under Settings → Devices — and open the link here.</p></div>`}`,s.querySelectorAll(`[data-open]`).forEach(e=>{e.onclick=async t=>{t.preventDefault(),await u(),await a(e.dataset.open),location.href=`/`}}),s.querySelectorAll(`[data-forget]`).forEach(e=>{e.onclick=async()=>{await i(e.dataset.forget),p()}}),t.length&&u().catch(()=>{})}var m=new URLSearchParams(location.hash.slice(1)),h=m.get(`k`)??``,g=m.get(`c`)??``;l.test(h)&&g?f(h,g,m.get(`n`)||`your machine`):p(l.test(h)?"This link has no pairing code — make a new one with `kraftwerk remote pair`.":void 0);