selfstore 1.8.20 → 1.8.21
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/README.md +107 -12
- package/dist/advanced.d.ts +23 -8
- package/dist/advanced.js +23 -12
- package/dist/advanced.js.map +1 -1
- package/dist/backups.d.ts +4 -4
- package/dist/backups.js +8 -6
- package/dist/{cache-lock-KWJUORTS.js → cache-lock-5RNG6CIK.js} +4 -3
- package/dist/cache-lock-5RNG6CIK.js.map +1 -0
- package/dist/{chunk-SKWHKM25.js → chunk-23UAUYSW.js} +40 -4
- package/dist/chunk-23UAUYSW.js.map +1 -0
- package/dist/chunk-3BWBBGFW.js +29 -0
- package/dist/chunk-3BWBBGFW.js.map +1 -0
- package/dist/{chunk-W22V5CRM.js → chunk-3KAAPYPO.js} +3 -3
- package/dist/{chunk-W22V5CRM.js.map → chunk-3KAAPYPO.js.map} +1 -1
- package/dist/chunk-757ZOSUI.js +27 -0
- package/dist/chunk-757ZOSUI.js.map +1 -0
- package/dist/{chunk-DCEXWSM6.js → chunk-AUH35AAQ.js} +3 -3
- package/dist/{chunk-DCEXWSM6.js.map → chunk-AUH35AAQ.js.map} +1 -1
- package/dist/{chunk-ULPGGZ6L.js → chunk-DJZ5S3FI.js} +11 -10
- package/dist/chunk-DJZ5S3FI.js.map +1 -0
- package/dist/{chunk-HOG2IKEP.js → chunk-EBCQ7ZG7.js} +4 -4
- package/dist/{chunk-HOG2IKEP.js.map → chunk-EBCQ7ZG7.js.map} +1 -1
- package/dist/chunk-FJGWTBAL.js +6 -0
- package/dist/chunk-FJGWTBAL.js.map +1 -0
- package/dist/chunk-GW5CYP4C.js +212 -0
- package/dist/chunk-GW5CYP4C.js.map +1 -0
- package/dist/{chunk-MGDXR3RB.js → chunk-HHPJPEEG.js} +6 -5
- package/dist/chunk-HHPJPEEG.js.map +1 -0
- package/dist/{chunk-J5MFXJU6.js → chunk-JTNFZV2B.js} +78 -26
- package/dist/chunk-JTNFZV2B.js.map +1 -0
- package/dist/chunk-JZHWAX34.js +178 -0
- package/dist/chunk-JZHWAX34.js.map +1 -0
- package/dist/chunk-LUNYYH6D.js +223 -0
- package/dist/chunk-LUNYYH6D.js.map +1 -0
- package/dist/{chunk-LKIRWVXM.js → chunk-LYO36VYB.js} +12 -11
- package/dist/chunk-LYO36VYB.js.map +1 -0
- package/dist/{chunk-O3Y6FORN.js → chunk-OY2A5DCB.js} +4 -3
- package/dist/chunk-OY2A5DCB.js.map +1 -0
- package/dist/chunk-QSLHEE2L.js +13 -0
- package/dist/chunk-QSLHEE2L.js.map +1 -0
- package/dist/{chunk-3OBJOMQ2.js → chunk-RREJ2MFN.js} +4 -28
- package/dist/chunk-RREJ2MFN.js.map +1 -0
- package/dist/chunk-XMC67RNM.js +29 -0
- package/dist/chunk-XMC67RNM.js.map +1 -0
- package/dist/{connect-GY1R9c6Q.d.ts → connect-Bob2mofK.d.ts} +3 -3
- package/dist/{drive-BLRsK32w.d.ts → drive-86CHuTij.d.ts} +63 -2
- package/dist/flows.d.ts +5 -5
- package/dist/flows.js +17 -15
- package/dist/flows.js.map +1 -1
- package/dist/groups.js +4 -3
- package/dist/groups.js.map +1 -1
- package/dist/households.d.ts +1 -1
- package/dist/index.d.ts +50 -8
- package/dist/index.js +72 -17
- package/dist/index.js.map +1 -1
- package/dist/kdf-worker.js +7 -2
- package/dist/kdf-worker.js.map +1 -1
- package/dist/{local-DrziuI_t.d.ts → local-8H61XxbL.d.ts} +2 -2
- package/dist/local-XET4G32B.js +7 -0
- package/dist/{local-DPS35F5C.js.map → local-XET4G32B.js.map} +1 -1
- package/dist/{manager-BlSs6Q5S.d.ts → manager-Di6lNE4E.d.ts} +1 -1
- package/dist/manager-drive-YLSLQ63O.js +10 -0
- package/dist/{manager-drive-4WLKOOXO.js.map → manager-drive-YLSLQ63O.js.map} +1 -1
- package/dist/s3-43RWNCV3.js +11 -0
- package/dist/s3-43RWNCV3.js.map +1 -0
- package/dist/{s3-BLgf6hqR.d.ts → s3-BsbVn3fw.d.ts} +1 -1
- package/dist/{store-DhrWMYg_.d.ts → store-CIbiNoiE.d.ts} +1 -1
- package/dist/sync.d.ts +7 -6
- package/dist/sync.js +3 -1
- package/dist/webdav-EEQKX5TZ.js +9 -0
- package/dist/webdav-EEQKX5TZ.js.map +1 -0
- package/dist/widgets.d.ts +19 -5
- package/dist/widgets.js +17 -10
- package/dist/widgets.js.map +1 -1
- package/llms.txt +51 -4
- package/package.json +12 -5
- package/skills/selfstore/SKILL.md +115 -0
- package/dist/cache-lock-KWJUORTS.js.map +0 -1
- package/dist/chunk-3OBJOMQ2.js.map +0 -1
- package/dist/chunk-J5MFXJU6.js.map +0 -1
- package/dist/chunk-LKIRWVXM.js.map +0 -1
- package/dist/chunk-MGDXR3RB.js.map +0 -1
- package/dist/chunk-O3Y6FORN.js.map +0 -1
- package/dist/chunk-SKWHKM25.js.map +0 -1
- package/dist/chunk-TKWU52LK.js +0 -607
- package/dist/chunk-TKWU52LK.js.map +0 -1
- package/dist/chunk-ULPGGZ6L.js.map +0 -1
- package/dist/local-DPS35F5C.js +0 -6
- package/dist/manager-drive-4WLKOOXO.js +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { o as Snapshot, E as EncodeOptions, H as Header } from './store-
|
|
2
|
-
import { a as DriveAuth } from './drive-
|
|
1
|
+
import { o as Snapshot, E as EncodeOptions, H as Header } from './store-CIbiNoiE.js';
|
|
2
|
+
import { a as DriveAuth } from './drive-86CHuTij.js';
|
|
3
3
|
|
|
4
4
|
/** Serialize a snapshot to a portable backup blob (compressed; encrypted if a password is given). */
|
|
5
5
|
declare function exportSnapshot(snapshot: Snapshot, opts: EncodeOptions): Promise<Blob>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { datedName, downloadBlob, pickFromDisk, pickSaveHandle, saveToDisk, writeToHandle } from './chunk-AUH35AAQ.js';
|
|
2
|
+
import './chunk-HHPJPEEG.js';
|
|
3
|
+
import './chunk-OY2A5DCB.js';
|
|
4
|
+
import './chunk-RREJ2MFN.js';
|
|
5
|
+
import './chunk-XMC67RNM.js';
|
|
6
|
+
//# sourceMappingURL=local-XET4G32B.js.map
|
|
7
|
+
//# sourceMappingURL=local-XET4G32B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"local-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"local-XET4G32B.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { K as KV } from './cache-ilsK3Tki.js';
|
|
2
|
-
import { B as BackupTarget, L as LocalStore } from './store-
|
|
2
|
+
import { B as BackupTarget, L as LocalStore } from './store-CIbiNoiE.js';
|
|
3
3
|
import { F as FlowStore } from './machine-ALMkT3mk.js';
|
|
4
4
|
|
|
5
5
|
/** What the destination reports about a listed file (one cheap metadata call). */
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { createBackupsManager, driveBackupsHost } from './chunk-EBCQ7ZG7.js';
|
|
2
|
+
import './chunk-3KAAPYPO.js';
|
|
3
|
+
import './chunk-JTNFZV2B.js';
|
|
4
|
+
import './chunk-757ZOSUI.js';
|
|
5
|
+
import './chunk-HHPJPEEG.js';
|
|
6
|
+
import './chunk-OY2A5DCB.js';
|
|
7
|
+
import './chunk-RREJ2MFN.js';
|
|
8
|
+
import './chunk-XMC67RNM.js';
|
|
9
|
+
//# sourceMappingURL=manager-drive-YLSLQ63O.js.map
|
|
10
|
+
//# sourceMappingURL=manager-drive-YLSLQ63O.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"manager-drive-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"manager-drive-YLSLQ63O.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { connect, fromSession } from './chunk-LUNYYH6D.js';
|
|
2
|
+
import './chunk-QSLHEE2L.js';
|
|
3
|
+
import './chunk-757ZOSUI.js';
|
|
4
|
+
import './chunk-HHPJPEEG.js';
|
|
5
|
+
import './chunk-QBCU7OOP.js';
|
|
6
|
+
import './chunk-OY2A5DCB.js';
|
|
7
|
+
import './chunk-RREJ2MFN.js';
|
|
8
|
+
import './chunk-FJGWTBAL.js';
|
|
9
|
+
import './chunk-XMC67RNM.js';
|
|
10
|
+
//# sourceMappingURL=s3-43RWNCV3.js.map
|
|
11
|
+
//# sourceMappingURL=s3-43RWNCV3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"s3-43RWNCV3.js"}
|
|
@@ -149,7 +149,7 @@ interface EncodeOptions {
|
|
|
149
149
|
extraSecrets?: string[];
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
type SelfstoreErrorCode = 'BAD_FORMAT' | 'UNSUPPORTED_VERSION' | 'PASSWORD_REQUIRED' | 'DECRYPT_FAILED' | 'TOO_LARGE' | 'VERIFY_FAILED' | 'FOREIGN_BACKUP' | 'AUTH_EXPIRED' | 'TARGET_UNAVAILABLE' | 'TARGET_WRITE_FAILED' | 'TARGET_GONE' | 'NOT_CONNECTED' | 'WEAK_PASSWORD' | 'ENCRYPTION_REQUIRED' | 'UNEXPECTEDLY_UNENCRYPTED' | 'SCHEMA_TOO_NEW' | 'IDENTITY_REQUIRED' | 'SIGNATURE_INVALID' | 'NOT_A_RECIPIENT' | 'MANIFEST_ROLLBACK';
|
|
152
|
+
type SelfstoreErrorCode = 'BAD_FORMAT' | 'UNSUPPORTED_VERSION' | 'PASSWORD_REQUIRED' | 'DECRYPT_FAILED' | 'TOO_LARGE' | 'VERIFY_FAILED' | 'FOREIGN_BACKUP' | 'AUTH_EXPIRED' | 'TARGET_UNAVAILABLE' | 'TARGET_WRITE_FAILED' | 'TARGET_GONE' | 'NOT_CONNECTED' | 'WEAK_PASSWORD' | 'ENCRYPTION_REQUIRED' | 'UNEXPECTEDLY_UNENCRYPTED' | 'SCHEMA_TOO_NEW' | 'IDENTITY_REQUIRED' | 'SIGNATURE_INVALID' | 'NOT_A_RECIPIENT' | 'MANIFEST_ROLLBACK' | 'CLOCK_DRIFT';
|
|
153
153
|
/**
|
|
154
154
|
* i18n key for an error code: lower-camel-cased under `error.`, e.g.
|
|
155
155
|
* 'error.authExpired'. The library ships the key, the app owns the copy;
|
package/dist/sync.d.ts
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
* string so a plain string comparison equals causal order.
|
|
5
5
|
*/
|
|
6
6
|
type Hlc = string;
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* A fresh random replica id (one per device). Not a secret - but two replicas
|
|
9
|
+
* sharing an id lose the tiebreak that makes the order total, so it comes from
|
|
10
|
+
* the same source as everything else here. `randomUUID` is exposed only in a
|
|
11
|
+
* secure context; `getRandomValues` is not, which is why the fallback is that
|
|
12
|
+
* one and never `Math.random`.
|
|
13
|
+
*/
|
|
8
14
|
declare function createNode(): string;
|
|
9
15
|
|
|
10
16
|
/**
|
|
@@ -79,11 +85,6 @@ interface ReplicaState {
|
|
|
79
85
|
meta: SyncMeta;
|
|
80
86
|
}
|
|
81
87
|
type State = ReplicaState;
|
|
82
|
-
/**
|
|
83
|
-
* Merge replica `b` into `a` (commutative for the convergent strategies). The
|
|
84
|
-
* optional `base` lets 'manual' tell a true concurrent conflict from a one-sided
|
|
85
|
-
* change; without it, 'manual' errs toward surfacing.
|
|
86
|
-
*/
|
|
87
88
|
declare function merge(a: State, b: State, config: SyncConfig, base?: SyncMeta): MergeResult;
|
|
88
89
|
/**
|
|
89
90
|
* Concurrent same-id edits that a convergent strategy resolves silently by keeping
|
package/dist/sync.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { changes, createMeta, createNode, detectConflicts, merge, stamp } from './chunk-
|
|
1
|
+
export { changes, createMeta, createNode, detectConflicts, merge, stamp } from './chunk-23UAUYSW.js';
|
|
2
|
+
import './chunk-FJGWTBAL.js';
|
|
3
|
+
import './chunk-XMC67RNM.js';
|
|
2
4
|
//# sourceMappingURL=sync.js.map
|
|
3
5
|
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { connect, fromSession, peer } from './chunk-JZHWAX34.js';
|
|
2
|
+
import './chunk-757ZOSUI.js';
|
|
3
|
+
import './chunk-HHPJPEEG.js';
|
|
4
|
+
import './chunk-QBCU7OOP.js';
|
|
5
|
+
import './chunk-OY2A5DCB.js';
|
|
6
|
+
import './chunk-RREJ2MFN.js';
|
|
7
|
+
import './chunk-XMC67RNM.js';
|
|
8
|
+
//# sourceMappingURL=webdav-EEQKX5TZ.js.map
|
|
9
|
+
//# sourceMappingURL=webdav-EEQKX5TZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"webdav-EEQKX5TZ.js"}
|
package/dist/widgets.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { S as StoreLike, F as FlowHost, C as ConnectTargets, a as ConnectFlowOptions, b as ConnectKind, c as ConnectFlow } from './connect-
|
|
1
|
+
import { S as StoreLike, F as FlowHost, C as ConnectTargets, a as ConnectFlowOptions, b as ConnectKind, c as ConnectFlow } from './connect-Bob2mofK.js';
|
|
2
2
|
import { ShareEngine, ShareLevel, ShareFlow, JoinEngine, JoinFlow, ReplicaFlow } from './flows.js';
|
|
3
|
-
import { f as BackupsManager } from './manager-
|
|
4
|
-
import './store-
|
|
3
|
+
import { f as BackupsManager } from './manager-Di6lNE4E.js';
|
|
4
|
+
import './store-CIbiNoiE.js';
|
|
5
5
|
import './cache-ilsK3Tki.js';
|
|
6
6
|
import './sync.js';
|
|
7
|
-
import './drive-
|
|
8
|
-
import './s3-
|
|
7
|
+
import './drive-86CHuTij.js';
|
|
8
|
+
import './s3-BsbVn3fw.js';
|
|
9
9
|
import './machine-ALMkT3mk.js';
|
|
10
10
|
|
|
11
11
|
/** Flat key -> string map; widgets merge a partial override over EN defaults. */
|
|
@@ -685,6 +685,20 @@ declare class SelfstoreDestinationElement extends FlowWidget {
|
|
|
685
685
|
* a host can still mount separately, with every knob they already had. What is
|
|
686
686
|
* added here is only the CHOICE between them, which follows the engine's own
|
|
687
687
|
* status - the same signal the gate uses to decide whether to be on screen.
|
|
688
|
+
*
|
|
689
|
+
* WHERE IT FITS, and where it does not. Before a home is chosen this element IS
|
|
690
|
+
* the gate, and the gate is a full-viewport modal (measured: it covers the page
|
|
691
|
+
* at z-index 280 and takes focus). That is right for an app whose data means
|
|
692
|
+
* nothing until the user answers - a wallet, a record, anything the user will
|
|
693
|
+
* be told is safe - and it is the reason the question is asked once, up front,
|
|
694
|
+
* instead of hiding in a settings screen.
|
|
695
|
+
*
|
|
696
|
+
* It is wrong for a page that must work before any answer: a landing demo, a
|
|
697
|
+
* scratchpad, anything whose whole point is that you can type first. There,
|
|
698
|
+
* mount <selfstore-destination> (the panel on its own, no modal) or
|
|
699
|
+
* <selfstore-status> (one line), and offer the connect journey from a control
|
|
700
|
+
* the user reaches deliberately. Both are the same elements this one composes,
|
|
701
|
+
* so nothing is lost by starting there.
|
|
688
702
|
*/
|
|
689
703
|
|
|
690
704
|
declare class SelfstoreStorageElement extends FlowWidget {
|
package/dist/widgets.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { saveToDisk, datedName } from './chunk-
|
|
2
|
-
import { connectFlow, shareFlow, joinFlow } from './chunk-
|
|
3
|
-
import
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
1
|
+
import { saveToDisk, datedName } from './chunk-AUH35AAQ.js';
|
|
2
|
+
import { connectFlow, shareFlow, joinFlow } from './chunk-LYO36VYB.js';
|
|
3
|
+
import './chunk-3BWBBGFW.js';
|
|
4
|
+
import { isOpenSupported } from './chunk-GW5CYP4C.js';
|
|
5
|
+
import './chunk-3KAAPYPO.js';
|
|
6
|
+
import './chunk-JTNFZV2B.js';
|
|
7
|
+
import './chunk-757ZOSUI.js';
|
|
8
|
+
import './chunk-HHPJPEEG.js';
|
|
9
|
+
import './chunk-OY2A5DCB.js';
|
|
10
|
+
import './chunk-RREJ2MFN.js';
|
|
11
|
+
import './chunk-XMC67RNM.js';
|
|
10
12
|
|
|
11
13
|
// src/widgets/icons.ts
|
|
12
14
|
var INK = "#8a8f98";
|
|
@@ -38,7 +40,12 @@ var baseStyles = `
|
|
|
38
40
|
color: inherit;
|
|
39
41
|
--_accent: var(--selfstore-accent, #2563eb);
|
|
40
42
|
--_accent-ink: var(--selfstore-accent-contrast, #ffffff);
|
|
41
|
-
|
|
43
|
+
/* Dimmed ink is TEXT too - it words every sub, hint and field label - so it
|
|
44
|
+
answers to 4.5:1, and an alpha over the host background is what decides
|
|
45
|
+
that. At 55% a near-black ink on white composited to 3.99:1 and failed;
|
|
46
|
+
62% lands at 5.0:1 there and at 6.3:1 for a near-white ink on a near-black
|
|
47
|
+
page, while still reading a clear step below the main ink. */
|
|
48
|
+
--_ink-dim: var(--selfstore-muted, color-mix(in srgb, currentColor 62%, transparent));
|
|
42
49
|
--_border: var(--selfstore-border, color-mix(in srgb, currentColor 16%, transparent));
|
|
43
50
|
--_radius: var(--selfstore-radius, 12px);
|
|
44
51
|
--_gap: var(--selfstore-gap, 0.6rem);
|