selfstore 1.8.20 → 1.8.22
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 +109 -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 +29 -22
- 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);
|
|
@@ -689,7 +696,7 @@ var EN = {
|
|
|
689
696
|
"error.foreignBackup": "This backup belongs to a different app. Open it in the app that created it."
|
|
690
697
|
};
|
|
691
698
|
var FR = {
|
|
692
|
-
"connect.title": "O\xF9 enregistrer vos donn\xE9es
|
|
699
|
+
"connect.title": "O\xF9 enregistrer vos donn\xE9es\xA0?",
|
|
693
700
|
"connect.recommended": "Recommand\xE9",
|
|
694
701
|
"connect.resume": "Reprendre ma sauvegarde",
|
|
695
702
|
"connect.or": "ou",
|
|
@@ -725,8 +732,8 @@ var FR = {
|
|
|
725
732
|
"connect.password.submit": "Ouvrir",
|
|
726
733
|
"connect.password.show": "Afficher le mot de passe",
|
|
727
734
|
"connect.password.hide": "Masquer le mot de passe",
|
|
728
|
-
"connect.password.forgot": "Mot de passe oubli\xE9
|
|
729
|
-
"connect.password.forgot.warn": "Sans le mot de passe, cette sauvegarde ne peut pas \xEAtre ouverte. Vous pouvez repartir d'une sauvegarde vide
|
|
735
|
+
"connect.password.forgot": "Mot de passe oubli\xE9\xA0?",
|
|
736
|
+
"connect.password.forgot.warn": "Sans le mot de passe, cette sauvegarde ne peut pas \xEAtre ouverte. Vous pouvez repartir d'une sauvegarde vide\xA0: l'ancienne sera perdue d\xE9finitivement.",
|
|
730
737
|
"connect.password.forgot.confirm": "Remplacer la sauvegarde",
|
|
731
738
|
"connect.password.forgot.back": "Retour",
|
|
732
739
|
"connect.conflict.title": "Une sauvegarde existe d\xE9j\xE0 ici",
|
|
@@ -741,12 +748,12 @@ var FR = {
|
|
|
741
748
|
"connect.webdav.password": "Mot de passe",
|
|
742
749
|
"connect.webdav.submit": "Connecter",
|
|
743
750
|
"connect.webdav.signup": "Cr\xE9er un compte",
|
|
744
|
-
"connect.webdav.help.more": "Comment faire
|
|
751
|
+
"connect.webdav.help.more": "Comment faire\xA0?",
|
|
745
752
|
"connect.done": "Connect\xE9. Vos donn\xE9es sont enregistr\xE9es.",
|
|
746
|
-
"connect.done.manual": "Mode export
|
|
753
|
+
"connect.done.manual": "Mode export\xA0: ce navigateur ne peut pas garder le fichier ouvert.",
|
|
747
754
|
"error.generic": "Cela n'a pas fonctionn\xE9. V\xE9rifiez la connexion et r\xE9essayez.",
|
|
748
755
|
"error.targetUnavailable": "La sauvegarde ne r\xE9pond pas. R\xE9essayez dans un instant.",
|
|
749
|
-
"error.authExpired": "Acc\xE8s expir\xE9
|
|
756
|
+
"error.authExpired": "Acc\xE8s expir\xE9\xA0: reconnectez-vous pour continuer.",
|
|
750
757
|
"error.decryptFailed": "Cette sauvegarde n'a pas pu \xEAtre ouverte avec ce mot de passe.",
|
|
751
758
|
"error.badFormat": "Ce fichier ne ressemble pas \xE0 une sauvegarde lisible.",
|
|
752
759
|
"error.foreignBackup": "Cette sauvegarde appartient \xE0 une autre application. Ouvrez-la dans l'application qui l'a cr\xE9\xE9e."
|
|
@@ -1521,7 +1528,7 @@ var FR2 = {
|
|
|
1521
1528
|
"share.remove": "Retirer",
|
|
1522
1529
|
"share.stop": "Arr\xEAter le partage",
|
|
1523
1530
|
"share.empty": "Personne d'autre n'a acc\xE8s pour le moment.",
|
|
1524
|
-
"share.stale": "Connexion instable
|
|
1531
|
+
"share.stale": "Connexion instable\xA0: cette vue est peut-\xEAtre en retard.",
|
|
1525
1532
|
"error.generic": "Cela n'a pas fonctionn\xE9. V\xE9rifiez la connexion et r\xE9essayez.",
|
|
1526
1533
|
"error.targetUnavailable": "Le service de partage ne r\xE9pond pas. R\xE9essayez dans un instant."
|
|
1527
1534
|
};
|
|
@@ -2349,11 +2356,11 @@ var FR6 = {
|
|
|
2349
2356
|
"backups.newTitle": "Nouvelle sauvegarde",
|
|
2350
2357
|
"backups.startsBlank": "Elle d\xE9marre vide.",
|
|
2351
2358
|
"backups.namePh": "Son nom",
|
|
2352
|
-
"backups.willBe": "Fichier
|
|
2359
|
+
"backups.willBe": "Fichier\xA0: {file}",
|
|
2353
2360
|
"backups.taken": "Ce nom est d\xE9j\xE0 pris.",
|
|
2354
2361
|
"backups.create": "Cr\xE9er",
|
|
2355
2362
|
"backups.renameTitle": "Renommer cette sauvegarde",
|
|
2356
|
-
"backups.pwHint": "Cette sauvegarde est prot\xE9g\xE9e
|
|
2363
|
+
"backups.pwHint": "Cette sauvegarde est prot\xE9g\xE9e\xA0: entrez son mot de passe.",
|
|
2357
2364
|
"backups.pwShow": "Afficher le mot de passe",
|
|
2358
2365
|
"backups.pwHide": "Masquer le mot de passe",
|
|
2359
2366
|
"backups.cancel": "Annuler",
|
|
@@ -2374,7 +2381,7 @@ var FR6 = {
|
|
|
2374
2381
|
"backups.replica.remove": "Retirer",
|
|
2375
2382
|
"backups.replica.save": "Ajouter la copie",
|
|
2376
2383
|
"backups.replica.webdav.url": "URL du fichier sur le serveur (https://hote:8443/dav/fichier.zip)",
|
|
2377
|
-
"backups.replica.webdav.help": "L'URL compl\xE8te du fichier de sauvegarde, port personnalis\xE9 compris. Le serveur doit autoriser cette application \xE0 le joindre (CORS)
|
|
2384
|
+
"backups.replica.webdav.help": "L'URL compl\xE8te du fichier de sauvegarde, port personnalis\xE9 compris. Le serveur doit autoriser cette application \xE0 le joindre (CORS)\xA0: certains h\xE9bergeurs ne le font pas et ne se connecteront pas depuis un navigateur.",
|
|
2378
2385
|
"backups.replica.webdav.user": "Identifiant",
|
|
2379
2386
|
"backups.replica.webdav.password": "Mot de passe",
|
|
2380
2387
|
"backups.replica.s3.endpoint": "URL du point d'acc\xE8s",
|
|
@@ -3463,8 +3470,8 @@ var EN7 = {
|
|
|
3463
3470
|
"gate.defer.note": "Data kept only in this browser is lost if its storage is cleared."
|
|
3464
3471
|
};
|
|
3465
3472
|
var FR7 = {
|
|
3466
|
-
"gate.title": "O\xF9 enregistrer vos donn\xE9es
|
|
3467
|
-
"gate.hint": "Elles sont chiffr\xE9es sur cet appareil. Choisissez une sauvegarde
|
|
3473
|
+
"gate.title": "O\xF9 enregistrer vos donn\xE9es\xA0?",
|
|
3474
|
+
"gate.hint": "Elles sont chiffr\xE9es sur cet appareil. Choisissez une sauvegarde\xA0: tout y sera enregistr\xE9 automatiquement.",
|
|
3468
3475
|
"gate.fine": "",
|
|
3469
3476
|
"gate.defer": "Plus tard - garder sur cet appareil seulement",
|
|
3470
3477
|
"gate.defer.note": "Sans sauvegarde, les donn\xE9es disparaissent si le stockage de cet appareil est vid\xE9."
|