canto-data 1.0.3 → 1.1.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.
- package/README.md +22 -12
- package/dist/format.d.ts +6 -3
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +31 -26
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +13 -3
- package/dist/migration.js.map +1 -1
- package/dist/migrations/index.d.ts +1 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +2 -1
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/v0_16_0_to_v0_17_0.d.ts +1 -1
- package/dist/migrations/v0_16_0_to_v0_17_0.d.ts.map +1 -1
- package/dist/migrations/v0_16_0_to_v0_17_0.js +7 -5
- package/dist/migrations/v0_16_0_to_v0_17_0.js.map +1 -1
- package/dist/migrations/v0_17_0_to_v0_18_0.d.ts +9 -0
- package/dist/migrations/v0_17_0_to_v0_18_0.d.ts.map +1 -0
- package/dist/migrations/v0_17_0_to_v0_18_0.js +18 -0
- package/dist/migrations/v0_17_0_to_v0_18_0.js.map +1 -0
- package/dist/types.d.ts +17 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -4
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +3 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +106 -59
- package/dist/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Data model library for [Canto](https://github.com/pboueke/canto), a private encrypted journaling app.
|
|
4
4
|
|
|
5
5
|
[](LICENSE)
|
|
6
|
-

|
|
7
|
+

|
|
8
8
|

|
|
9
9
|
|
|
10
|
-
`canto-data` provides TypeScript types, runtime validation, schema versioning, migration infrastructure, and export format utilities for Canto journals.
|
|
10
|
+
`canto-data` provides TypeScript types, runtime validation, schema versioning, migration infrastructure, and export format utilities for Canto journals. It defines attachment metadata only; it does not encrypt, store, stream, or upload attachment bytes.
|
|
11
11
|
|
|
12
12
|
This package is **MIT-licensed** and has **zero dependencies**. It can be used independently of the Canto app to read, validate, and manipulate Canto journal data.
|
|
13
13
|
|
|
@@ -36,8 +36,8 @@ What `canto-data` owns:
|
|
|
36
36
|
What it does **not** include:
|
|
37
37
|
|
|
38
38
|
- Encryption and decryption
|
|
39
|
-
-
|
|
40
|
-
- Sync integrations
|
|
39
|
+
- Attachment storage, chunk I/O, and byte reassembly
|
|
40
|
+
- Sync integrations and remote uploads
|
|
41
41
|
- UI components
|
|
42
42
|
|
|
43
43
|
Those pieces live in the [Canto app](https://github.com/pboueke/canto).
|
|
@@ -191,7 +191,12 @@ JournalContent
|
|
|
191
191
|
│ ├── type: 'image'
|
|
192
192
|
│ ├── encrypted: boolean
|
|
193
193
|
│ ├── size?: number (bytes)
|
|
194
|
-
│
|
|
194
|
+
│ ├── deleted: boolean
|
|
195
|
+
│ └── content?: AttachmentContent (absent for legacy monolithic bytes)
|
|
196
|
+
│ ├── format: 'canto-chunked-v1'
|
|
197
|
+
│ ├── byteLength: number (exact plaintext bytes)
|
|
198
|
+
│ ├── chunkSize: number (maximum plaintext bytes per chunk)
|
|
199
|
+
│ └── chunkCount: number (ceil(byteLength / chunkSize))
|
|
195
200
|
└── files: Attachment[]
|
|
196
201
|
└── same fields as images, with type: 'file'
|
|
197
202
|
```
|
|
@@ -206,13 +211,14 @@ Canto journal schemas follow [semver](https://semver.org/):
|
|
|
206
211
|
| New optional field | MINOR | No |
|
|
207
212
|
| Documentation or validation fix | PATCH | No |
|
|
208
213
|
|
|
209
|
-
The schema version is stored in `JournalContent.schemaVersion` and `ExportManifest.schemaVersion`. Legacy data without `schemaVersion` is treated as `0.16.0`. Migrations are forward-only.
|
|
214
|
+
The schema version is stored in `JournalContent.schemaVersion` and `ExportManifest.schemaVersion`. Legacy data without `schemaVersion` is treated as `0.16.0`. Migrations are forward-only. Descriptor-absent attachments remain supported; a reader that only supports schema `0.17.0` cannot consume a future `0.18.0` archive.
|
|
210
215
|
|
|
211
216
|
### Migration History
|
|
212
217
|
|
|
213
218
|
| From | To | Description |
|
|
214
219
|
| ------ | ------ | --------------------------------------------------- |
|
|
215
220
|
| 0.16.0 | 0.17.0 | Remove deprecated `showMarkdownPlaceholder` setting |
|
|
221
|
+
| 0.17.0 | 0.18.0 | No-op additive attachment-content descriptor schema |
|
|
216
222
|
|
|
217
223
|
## Export Format Details
|
|
218
224
|
|
|
@@ -221,8 +227,8 @@ The schema version is stored in `JournalContent.schemaVersion` and `ExportManife
|
|
|
221
227
|
```json
|
|
222
228
|
{
|
|
223
229
|
"version": 1,
|
|
224
|
-
"schemaVersion": "0.
|
|
225
|
-
"appVersion": "
|
|
230
|
+
"schemaVersion": "0.18.0",
|
|
231
|
+
"appVersion": "1.1.0",
|
|
226
232
|
"exportDate": "2026-01-01T00:00:00.000Z",
|
|
227
233
|
"encrypted": false,
|
|
228
234
|
"journalTitle": "My Journal",
|
|
@@ -236,15 +242,19 @@ The schema version is stored in `JournalContent.schemaVersion` and `ExportManife
|
|
|
236
242
|
- `encrypted`: If `true`, all JSON and attachment content is AES-256-GCM encrypted
|
|
237
243
|
- `salt` and `kdfIterations`: Present for password-protected journals
|
|
238
244
|
|
|
245
|
+
Archive format version `1` remains flat: each attachment is one reconstructed raw member under `attachments/{type}-{id}.{ext}`. A chunked local attachment's `content` descriptor is omitted when its path is rewritten to that archive member. Old v1 archives and descriptor-absent attachments remain readable.
|
|
246
|
+
|
|
239
247
|
### Encrypted Exports
|
|
240
248
|
|
|
241
|
-
|
|
249
|
+
For Canto app exports, when `encrypted: true`, decryption requires the journal password. The ciphertext format is `[12-byte nonce][ciphertext][16-byte GCM tag]` using AES-256-GCM. This library does not perform that encryption or decryption; see [Canto SECURITY.md](https://github.com/pboueke/canto/blob/main/SECURITY.md) for the full encryption model.
|
|
242
250
|
|
|
243
251
|
### Import Behavior
|
|
244
252
|
|
|
245
253
|
Importing always creates a new journal with new UUIDs, so re-importing the same archive is safe. Shared attachments get individual copies per page.
|
|
246
254
|
|
|
247
|
-
## Filesystem Structure
|
|
255
|
+
## Canto App Filesystem Structure
|
|
256
|
+
|
|
257
|
+
The following is Canto app storage documentation only; `canto-data` does not implement these storage backends.
|
|
248
258
|
|
|
249
259
|
### Native (Android and iOS)
|
|
250
260
|
|
|
@@ -275,7 +285,7 @@ Virtual paths mirror native layout:
|
|
|
275
285
|
|
|
276
286
|
### Google Drive
|
|
277
287
|
|
|
278
|
-
|
|
288
|
+
The Canto app encrypts journal content with AES-256-GCM before Google Drive upload. Only the registry and sync index are stored unencrypted; `canto-data` has no Drive behavior.
|
|
279
289
|
|
|
280
290
|
```text
|
|
281
291
|
My Drive/Canto/
|
package/dist/format.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Page } from
|
|
1
|
+
import type { Page, AttachmentContent } from "./types";
|
|
2
2
|
export interface ExportManifest {
|
|
3
3
|
/** Manifest format version (always 1). */
|
|
4
4
|
version: 1;
|
|
@@ -28,16 +28,19 @@ export declare function parseManifest(json: string): ExportManifest;
|
|
|
28
28
|
export interface AttachmentEntry {
|
|
29
29
|
/** Index into the flat attachments/ folder inside the ZIP */
|
|
30
30
|
zipFilename: string;
|
|
31
|
-
/**
|
|
31
|
+
/** Local storage locator: a file path for legacy attachments or a storage root for chunked attachments. */
|
|
32
32
|
diskPath: string;
|
|
33
33
|
/** Whether the on-disk file is password-encrypted */
|
|
34
34
|
isPasswordEncrypted: boolean;
|
|
35
|
+
/** Optional local content descriptor for selecting a chunk-aware reader. */
|
|
36
|
+
content?: AttachmentContent;
|
|
35
37
|
}
|
|
36
38
|
/** Collect unique attachments from pages for export, building portable ZIP filenames. */
|
|
37
39
|
export declare function collectAttachmentEntries(pages: Page[]): AttachmentEntry[];
|
|
38
40
|
/**
|
|
39
41
|
* Rewrite attachment paths in pages to use portable ZIP filenames.
|
|
40
|
-
*
|
|
42
|
+
* A rewritten flat-v1 ZIP path identifies a reconstructed payload, so its local
|
|
43
|
+
* content descriptor is omitted. Unmapped attachments retain every property.
|
|
41
44
|
*/
|
|
42
45
|
export declare function rewriteAttachmentPaths(pages: Page[], pathMap: Map<string, string>): Page[];
|
|
43
46
|
/** Serialize pages to a map of pageId → JSON string. */
|
package/dist/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;AASnE,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,OAAO,EAAE,CAAC,CAAC;IACX,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,GACzB,cAAc,CAWhB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAkE1D;AAMD,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,2GAA2G;IAC3G,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAyBzE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,IAAI,EAAE,CAcR;AAMD,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjE;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAOrE"}
|
package/dist/format.js
CHANGED
|
@@ -32,29 +32,29 @@ function parseManifest(json) {
|
|
|
32
32
|
raw = JSON.parse(json);
|
|
33
33
|
}
|
|
34
34
|
catch {
|
|
35
|
-
throw new validation_1.ValidationError(
|
|
35
|
+
throw new validation_1.ValidationError("manifest", "valid JSON", "parse error");
|
|
36
36
|
}
|
|
37
|
-
if (!raw || typeof raw !==
|
|
38
|
-
throw new validation_1.ValidationError(
|
|
37
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
38
|
+
throw new validation_1.ValidationError("manifest", "object", typeof raw);
|
|
39
39
|
}
|
|
40
40
|
const o = raw;
|
|
41
41
|
if (o.version !== 1) {
|
|
42
|
-
throw new validation_1.ValidationError(
|
|
42
|
+
throw new validation_1.ValidationError("manifest.version", "1", String(o.version));
|
|
43
43
|
}
|
|
44
|
-
if (typeof o.appVersion !==
|
|
45
|
-
throw new validation_1.ValidationError(
|
|
44
|
+
if (typeof o.appVersion !== "string") {
|
|
45
|
+
throw new validation_1.ValidationError("manifest.appVersion", "string", typeof o.appVersion);
|
|
46
46
|
}
|
|
47
|
-
if (typeof o.exportDate !==
|
|
48
|
-
throw new validation_1.ValidationError(
|
|
47
|
+
if (typeof o.exportDate !== "string") {
|
|
48
|
+
throw new validation_1.ValidationError("manifest.exportDate", "string", typeof o.exportDate);
|
|
49
49
|
}
|
|
50
|
-
if (typeof o.encrypted !==
|
|
51
|
-
throw new validation_1.ValidationError(
|
|
50
|
+
if (typeof o.encrypted !== "boolean") {
|
|
51
|
+
throw new validation_1.ValidationError("manifest.encrypted", "boolean", typeof o.encrypted);
|
|
52
52
|
}
|
|
53
|
-
if (typeof o.journalTitle !==
|
|
54
|
-
throw new validation_1.ValidationError(
|
|
53
|
+
if (typeof o.journalTitle !== "string") {
|
|
54
|
+
throw new validation_1.ValidationError("manifest.journalTitle", "string", typeof o.journalTitle);
|
|
55
55
|
}
|
|
56
56
|
// Legacy manifests don't have schemaVersion — default to "0.16.0"
|
|
57
|
-
const schemaVersion = typeof o.schemaVersion ===
|
|
57
|
+
const schemaVersion = typeof o.schemaVersion === "string" ? o.schemaVersion : "0.16.0";
|
|
58
58
|
return {
|
|
59
59
|
version: 1,
|
|
60
60
|
schemaVersion,
|
|
@@ -62,8 +62,10 @@ function parseManifest(json) {
|
|
|
62
62
|
exportDate: o.exportDate,
|
|
63
63
|
encrypted: o.encrypted,
|
|
64
64
|
journalTitle: o.journalTitle,
|
|
65
|
-
...(typeof o.salt ===
|
|
66
|
-
...(typeof o.kdfIterations ===
|
|
65
|
+
...(typeof o.salt === "string" ? { salt: o.salt } : {}),
|
|
66
|
+
...(typeof o.kdfIterations === "number"
|
|
67
|
+
? { kdfIterations: o.kdfIterations }
|
|
68
|
+
: {}),
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
/** Collect unique attachments from pages for export, building portable ZIP filenames. */
|
|
@@ -76,13 +78,14 @@ function collectAttachmentEntries(pages) {
|
|
|
76
78
|
if (!att.path || seen.has(att.path))
|
|
77
79
|
continue;
|
|
78
80
|
seen.add(att.path);
|
|
79
|
-
const parts = att.name.split(
|
|
80
|
-
const ext = parts.length > 1 ? parts.pop() :
|
|
81
|
+
const parts = att.name.split(".");
|
|
82
|
+
const ext = parts.length > 1 ? parts.pop() : "bin";
|
|
81
83
|
const zipFilename = `${att.type}-${att.id}.${ext}`;
|
|
82
84
|
entries.push({
|
|
83
85
|
zipFilename,
|
|
84
86
|
diskPath: att.path,
|
|
85
87
|
isPasswordEncrypted: att.encrypted,
|
|
88
|
+
...(att.content !== undefined ? { content: att.content } : {}),
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
}
|
|
@@ -90,19 +93,21 @@ function collectAttachmentEntries(pages) {
|
|
|
90
93
|
}
|
|
91
94
|
/**
|
|
92
95
|
* Rewrite attachment paths in pages to use portable ZIP filenames.
|
|
93
|
-
*
|
|
96
|
+
* A rewritten flat-v1 ZIP path identifies a reconstructed payload, so its local
|
|
97
|
+
* content descriptor is omitted. Unmapped attachments retain every property.
|
|
94
98
|
*/
|
|
95
99
|
function rewriteAttachmentPaths(pages, pathMap) {
|
|
100
|
+
const rewriteAttachment = (attachment) => {
|
|
101
|
+
const zipPath = pathMap.get(attachment.path);
|
|
102
|
+
if (zipPath === undefined)
|
|
103
|
+
return { ...attachment };
|
|
104
|
+
const { content: _content, ...legacyAttachment } = attachment;
|
|
105
|
+
return { ...legacyAttachment, path: zipPath };
|
|
106
|
+
};
|
|
96
107
|
return pages.map((page) => ({
|
|
97
108
|
...page,
|
|
98
|
-
images: page.images.map(
|
|
99
|
-
|
|
100
|
-
path: pathMap.get(a.path) ?? a.path,
|
|
101
|
-
})),
|
|
102
|
-
files: page.files.map((a) => ({
|
|
103
|
-
...a,
|
|
104
|
-
path: pathMap.get(a.path) ?? a.path,
|
|
105
|
-
})),
|
|
109
|
+
images: page.images.map(rewriteAttachment),
|
|
110
|
+
files: page.files.map(rewriteAttachment),
|
|
106
111
|
}));
|
|
107
112
|
}
|
|
108
113
|
// ---------------------------------------------------------------------------
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":";;AA+BA,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export type { GeoLocation, Comment, Attachment, Page, PagePreview, JournalSettings, Journal, JournalContent, Filter, SyncProvider, } from
|
|
2
|
-
export { DEFAULT_JOURNAL_SETTINGS, pageToPreview } from
|
|
3
|
-
export { SCHEMA_VERSION, compareVersions, needsMigration, isFutureVersion, isMajorUpgrade, } from
|
|
4
|
-
export { ValidationError, isGeoLocation, isComment, isAttachment, isPage, isJournal, isJournalContent, validateGeoLocation, validateComment, validateAttachment, validatePage, validateJournalSettings, validateJournal, validateJournalContent, } from
|
|
5
|
-
export type { Migration, MigrationResult } from
|
|
6
|
-
export { migrateIfNeeded } from
|
|
7
|
-
export type { ExportManifest, AttachmentEntry, BuildManifestOptions } from
|
|
8
|
-
export { buildExportManifest, parseManifest, collectAttachmentEntries, rewriteAttachmentPaths, serializePages, deserializePages, } from
|
|
1
|
+
export type { GeoLocation, Comment, Attachment, ChunkedAttachmentContent, AttachmentContent, Page, PagePreview, JournalSettings, Journal, JournalContent, Filter, SyncProvider, } from "./types";
|
|
2
|
+
export { CHUNKED_ATTACHMENT_CONTENT_FORMAT, DEFAULT_JOURNAL_SETTINGS, pageToPreview, } from "./types";
|
|
3
|
+
export { SCHEMA_VERSION, compareVersions, needsMigration, isFutureVersion, isMajorUpgrade, } from "./version";
|
|
4
|
+
export { ValidationError, isGeoLocation, isComment, isAttachment, isChunkedAttachmentContent, isPage, isJournal, isJournalContent, validateGeoLocation, validateComment, validateAttachment, validateChunkedAttachmentContent, validatePage, validateJournalSettings, validateJournal, validateJournalContent, } from "./validation";
|
|
5
|
+
export type { Migration, MigrationResult } from "./migration";
|
|
6
|
+
export { migrateIfNeeded } from "./migration";
|
|
7
|
+
export type { ExportManifest, AttachmentEntry, BuildManifestOptions, } from "./format";
|
|
8
|
+
export { buildExportManifest, parseManifest, collectAttachmentEntries, rewriteAttachmentPaths, serializePages, deserializePages, } from "./format";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,IAAI,EACJ,WAAW,EACX,eAAe,EACf,OAAO,EACP,cAAc,EACd,MAAM,EACN,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,OAAO,EACP,cAAc,EACd,MAAM,EACN,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,YAAY,EACZ,0BAA0B,EAC1B,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gCAAgC,EAChC,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deserializePages = exports.serializePages = exports.rewriteAttachmentPaths = exports.collectAttachmentEntries = exports.parseManifest = exports.buildExportManifest = exports.migrateIfNeeded = exports.validateJournalContent = exports.validateJournal = exports.validateJournalSettings = exports.validatePage = exports.validateAttachment = exports.validateComment = exports.validateGeoLocation = exports.isJournalContent = exports.isJournal = exports.isPage = exports.isAttachment = exports.isComment = exports.isGeoLocation = exports.ValidationError = exports.isMajorUpgrade = exports.isFutureVersion = exports.needsMigration = exports.compareVersions = exports.SCHEMA_VERSION = exports.pageToPreview = exports.DEFAULT_JOURNAL_SETTINGS = void 0;
|
|
3
|
+
exports.deserializePages = exports.serializePages = exports.rewriteAttachmentPaths = exports.collectAttachmentEntries = exports.parseManifest = exports.buildExportManifest = exports.migrateIfNeeded = exports.validateJournalContent = exports.validateJournal = exports.validateJournalSettings = exports.validatePage = exports.validateChunkedAttachmentContent = exports.validateAttachment = exports.validateComment = exports.validateGeoLocation = exports.isJournalContent = exports.isJournal = exports.isPage = exports.isChunkedAttachmentContent = exports.isAttachment = exports.isComment = exports.isGeoLocation = exports.ValidationError = exports.isMajorUpgrade = exports.isFutureVersion = exports.needsMigration = exports.compareVersions = exports.SCHEMA_VERSION = exports.pageToPreview = exports.DEFAULT_JOURNAL_SETTINGS = exports.CHUNKED_ATTACHMENT_CONTENT_FORMAT = void 0;
|
|
4
4
|
var types_1 = require("./types");
|
|
5
|
+
Object.defineProperty(exports, "CHUNKED_ATTACHMENT_CONTENT_FORMAT", { enumerable: true, get: function () { return types_1.CHUNKED_ATTACHMENT_CONTENT_FORMAT; } });
|
|
5
6
|
Object.defineProperty(exports, "DEFAULT_JOURNAL_SETTINGS", { enumerable: true, get: function () { return types_1.DEFAULT_JOURNAL_SETTINGS; } });
|
|
6
7
|
Object.defineProperty(exports, "pageToPreview", { enumerable: true, get: function () { return types_1.pageToPreview; } });
|
|
7
8
|
// Version
|
|
@@ -17,12 +18,14 @@ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: funct
|
|
|
17
18
|
Object.defineProperty(exports, "isGeoLocation", { enumerable: true, get: function () { return validation_1.isGeoLocation; } });
|
|
18
19
|
Object.defineProperty(exports, "isComment", { enumerable: true, get: function () { return validation_1.isComment; } });
|
|
19
20
|
Object.defineProperty(exports, "isAttachment", { enumerable: true, get: function () { return validation_1.isAttachment; } });
|
|
21
|
+
Object.defineProperty(exports, "isChunkedAttachmentContent", { enumerable: true, get: function () { return validation_1.isChunkedAttachmentContent; } });
|
|
20
22
|
Object.defineProperty(exports, "isPage", { enumerable: true, get: function () { return validation_1.isPage; } });
|
|
21
23
|
Object.defineProperty(exports, "isJournal", { enumerable: true, get: function () { return validation_1.isJournal; } });
|
|
22
24
|
Object.defineProperty(exports, "isJournalContent", { enumerable: true, get: function () { return validation_1.isJournalContent; } });
|
|
23
25
|
Object.defineProperty(exports, "validateGeoLocation", { enumerable: true, get: function () { return validation_1.validateGeoLocation; } });
|
|
24
26
|
Object.defineProperty(exports, "validateComment", { enumerable: true, get: function () { return validation_1.validateComment; } });
|
|
25
27
|
Object.defineProperty(exports, "validateAttachment", { enumerable: true, get: function () { return validation_1.validateAttachment; } });
|
|
28
|
+
Object.defineProperty(exports, "validateChunkedAttachmentContent", { enumerable: true, get: function () { return validation_1.validateChunkedAttachmentContent; } });
|
|
26
29
|
Object.defineProperty(exports, "validatePage", { enumerable: true, get: function () { return validation_1.validatePage; } });
|
|
27
30
|
Object.defineProperty(exports, "validateJournalSettings", { enumerable: true, get: function () { return validation_1.validateJournalSettings; } });
|
|
28
31
|
Object.defineProperty(exports, "validateJournal", { enumerable: true, get: function () { return validation_1.validateJournal; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAgBA,iCAIiB;AAHf,0HAAA,iCAAiC,OAAA;AACjC,iHAAA,wBAAwB,OAAA;AACxB,sGAAA,aAAa,OAAA;AAGf,UAAU;AACV,qCAMmB;AALjB,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AAGhB,aAAa;AACb,2CAiBsB;AAhBpB,6GAAA,eAAe,OAAA;AACf,2GAAA,aAAa,OAAA;AACb,uGAAA,SAAS,OAAA;AACT,0GAAA,YAAY,OAAA;AACZ,wHAAA,0BAA0B,OAAA;AAC1B,oGAAA,MAAM,OAAA;AACN,uGAAA,SAAS,OAAA;AACT,8GAAA,gBAAgB,OAAA;AAChB,iHAAA,mBAAmB,OAAA;AACnB,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,8HAAA,gCAAgC,OAAA;AAChC,0GAAA,YAAY,OAAA;AACZ,qHAAA,uBAAuB,OAAA;AACvB,6GAAA,eAAe,OAAA;AACf,oHAAA,sBAAsB,OAAA;AAKxB,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AAQxB,mCAOkB;AANhB,6GAAA,mBAAmB,OAAA;AACnB,uGAAA,aAAa,OAAA;AACb,kHAAA,wBAAwB,OAAA;AACxB,gHAAA,sBAAsB,OAAA;AACtB,wGAAA,cAAc,OAAA;AACd,0GAAA,gBAAgB,OAAA"}
|
package/dist/migration.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAsDjB"}
|
package/dist/migration.js
CHANGED
|
@@ -11,13 +11,18 @@ const index_1 = require("./migrations/index");
|
|
|
11
11
|
* - Throws if the data is from a future version (can't downgrade).
|
|
12
12
|
*/
|
|
13
13
|
function migrateIfNeeded(data, fromVersion) {
|
|
14
|
-
const version = fromVersion ??
|
|
14
|
+
const version = fromVersion ?? "0.16.0";
|
|
15
15
|
if ((0, version_1.isFutureVersion)(version)) {
|
|
16
16
|
throw new Error(`Cannot open data with schema version ${version} — ` +
|
|
17
17
|
`this app supports up to ${version_1.SCHEMA_VERSION}. Please update the app.`);
|
|
18
18
|
}
|
|
19
19
|
if ((0, version_1.compareVersions)(version, version_1.SCHEMA_VERSION) === 0) {
|
|
20
|
-
return {
|
|
20
|
+
return {
|
|
21
|
+
data,
|
|
22
|
+
migrated: false,
|
|
23
|
+
fromVersion: version,
|
|
24
|
+
toVersion: version_1.SCHEMA_VERSION,
|
|
25
|
+
};
|
|
21
26
|
}
|
|
22
27
|
let current = version;
|
|
23
28
|
let result = data;
|
|
@@ -42,6 +47,11 @@ function migrateIfNeeded(data, fromVersion) {
|
|
|
42
47
|
throw new Error(`No migration path from ${version} to ${version_1.SCHEMA_VERSION}. ` +
|
|
43
48
|
`Reached ${current} but no further migrations available.`);
|
|
44
49
|
}
|
|
45
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
data: result,
|
|
52
|
+
migrated: true,
|
|
53
|
+
fromVersion: version,
|
|
54
|
+
toVersion: version_1.SCHEMA_VERSION,
|
|
55
|
+
};
|
|
46
56
|
}
|
|
47
57
|
//# sourceMappingURL=migration.js.map
|
package/dist/migration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":";;AAwBA,
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":";;AAwBA,0CAyDC;AAjFD,uCAA6E;AAC7E,8CAAgD;AAgBhD;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,IAAa,EACb,WAAoB;IAEpB,MAAM,OAAO,GAAG,WAAW,IAAI,QAAQ,CAAC;IAExC,IAAI,IAAA,yBAAe,EAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,wCAAwC,OAAO,KAAK;YAClD,2BAA2B,wBAAc,0BAA0B,CACtE,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,yBAAe,EAAC,OAAO,EAAE,wBAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,wBAAc;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,4BAA4B;IAC5B,KAAK,MAAM,SAAS,IAAI,kBAAU,EAAE,CAAC;QACnC,IAAI,IAAA,yBAAe,EAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,CAAC,IAAI,MAAM,SAAS,CAAC,EAAE,YAAY,GAAG,EAAE;oBAC5D,KAAK,SAAS,CAAC,WAAW,GAAG,CAChC,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;QACzB,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAA,yBAAe,EAAC,OAAO,EAAE,wBAAc,CAAC,KAAK,CAAC;YAAE,MAAM;IAC5D,CAAC;IAED,IAAI,IAAA,yBAAe,EAAC,OAAO,EAAE,wBAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,0BAA0B,OAAO,OAAO,wBAAc,IAAI;YACxD,WAAW,OAAO,uCAAuC,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,wBAAc;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EAA6C,CAAC"}
|
package/dist/migrations/index.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MIGRATIONS = void 0;
|
|
4
4
|
const v0_16_0_to_v0_17_0_1 = require("./v0_16_0_to_v0_17_0");
|
|
5
|
+
const v0_17_0_to_v0_18_0_1 = require("./v0_17_0_to_v0_18_0");
|
|
5
6
|
/**
|
|
6
7
|
* Registry of all schema migrations, ordered from oldest to newest.
|
|
7
8
|
*/
|
|
8
|
-
exports.MIGRATIONS = [v0_16_0_to_v0_17_0_1.v0_16_0_to_v0_17_0];
|
|
9
|
+
exports.MIGRATIONS = [v0_16_0_to_v0_17_0_1.v0_16_0_to_v0_17_0, v0_17_0_to_v0_18_0_1.v0_17_0_to_v0_18_0];
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D;;GAEG;AACU,QAAA,UAAU,GAAgB,CAAC,uCAAkB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAC1D,6DAA0D;AAE1D;;GAEG;AACU,QAAA,UAAU,GAAgB,CAAC,uCAAkB,EAAE,uCAAkB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v0_16_0_to_v0_17_0.d.ts","sourceRoot":"","sources":["../../src/migrations/v0_16_0_to_v0_17_0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"v0_16_0_to_v0_17_0.d.ts","sourceRoot":"","sources":["../../src/migrations/v0_16_0_to_v0_17_0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAiBhC,CAAC"}
|
|
@@ -8,13 +8,15 @@ exports.v0_16_0_to_v0_17_0 = void 0;
|
|
|
8
8
|
* This field was a dead toggle that had no effect on the UI.
|
|
9
9
|
*/
|
|
10
10
|
exports.v0_16_0_to_v0_17_0 = {
|
|
11
|
-
from:
|
|
12
|
-
to:
|
|
13
|
-
description:
|
|
11
|
+
from: "0.16.0",
|
|
12
|
+
to: "0.17.0",
|
|
13
|
+
description: "Remove deprecated showMarkdownPlaceholder setting",
|
|
14
14
|
migrate(data) {
|
|
15
|
-
if (data && typeof data ===
|
|
15
|
+
if (data && typeof data === "object" && "settings" in data) {
|
|
16
16
|
const settings = data.settings;
|
|
17
|
-
if (settings &&
|
|
17
|
+
if (settings &&
|
|
18
|
+
typeof settings === "object" &&
|
|
19
|
+
"showMarkdownPlaceholder" in settings) {
|
|
18
20
|
delete settings.showMarkdownPlaceholder;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v0_16_0_to_v0_17_0.js","sourceRoot":"","sources":["../../src/migrations/v0_16_0_to_v0_17_0.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACU,QAAA,kBAAkB,GAAc;IAC3C,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,mDAAmD;IAChE,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAI,IAAgC,CAAC,QAAQ,CAAC;YAC5D,
|
|
1
|
+
{"version":3,"file":"v0_16_0_to_v0_17_0.js","sourceRoot":"","sources":["../../src/migrations/v0_16_0_to_v0_17_0.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACU,QAAA,kBAAkB,GAAc;IAC3C,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,mDAAmD;IAChE,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAI,IAAgC,CAAC,QAAQ,CAAC;YAC5D,IACE,QAAQ;gBACR,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,yBAAyB,IAAI,QAAQ,EACrC,CAAC;gBACD,OAAQ,QAAoC,CAAC,uBAAuB,CAAC;YACvE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Migration } from "../migration";
|
|
2
|
+
/**
|
|
3
|
+
* Migration from schema v0.17.0 to v0.18.0.
|
|
4
|
+
*
|
|
5
|
+
* Attachment content descriptors are additive. Legacy attachment data stays
|
|
6
|
+
* descriptor-absent; this package does not convert attachment bytes or storage.
|
|
7
|
+
*/
|
|
8
|
+
export declare const v0_17_0_to_v0_18_0: Migration;
|
|
9
|
+
//# sourceMappingURL=v0_17_0_to_v0_18_0.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v0_17_0_to_v0_18_0.d.ts","sourceRoot":"","sources":["../../src/migrations/v0_17_0_to_v0_18_0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAOhC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.v0_17_0_to_v0_18_0 = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Migration from schema v0.17.0 to v0.18.0.
|
|
6
|
+
*
|
|
7
|
+
* Attachment content descriptors are additive. Legacy attachment data stays
|
|
8
|
+
* descriptor-absent; this package does not convert attachment bytes or storage.
|
|
9
|
+
*/
|
|
10
|
+
exports.v0_17_0_to_v0_18_0 = {
|
|
11
|
+
from: "0.17.0",
|
|
12
|
+
to: "0.18.0",
|
|
13
|
+
description: "Additive chunked attachment-content descriptor schema",
|
|
14
|
+
migrate(data) {
|
|
15
|
+
return data;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=v0_17_0_to_v0_18_0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v0_17_0_to_v0_18_0.js","sourceRoot":"","sources":["../../src/migrations/v0_17_0_to_v0_18_0.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACU,QAAA,kBAAkB,GAAc;IAC3C,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,uDAAuD;IACpE,OAAO,CAAC,IAAa;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,14 +9,28 @@ export interface Comment {
|
|
|
9
9
|
text: string;
|
|
10
10
|
date: string;
|
|
11
11
|
}
|
|
12
|
+
export declare const CHUNKED_ATTACHMENT_CONTENT_FORMAT: "canto-chunked-v1";
|
|
13
|
+
export interface ChunkedAttachmentContent {
|
|
14
|
+
format: typeof CHUNKED_ATTACHMENT_CONTENT_FORMAT;
|
|
15
|
+
/** Exact plaintext byte length. Authoritative when present. */
|
|
16
|
+
byteLength: number;
|
|
17
|
+
/** Maximum plaintext bytes in one chunk. */
|
|
18
|
+
chunkSize: number;
|
|
19
|
+
/** Number of ordered chunks. */
|
|
20
|
+
chunkCount: number;
|
|
21
|
+
}
|
|
22
|
+
/** Extensible attachment-content descriptor union. */
|
|
23
|
+
export type AttachmentContent = ChunkedAttachmentContent;
|
|
12
24
|
export interface Attachment {
|
|
13
25
|
id: string;
|
|
14
26
|
path: string;
|
|
15
27
|
name: string;
|
|
16
|
-
type:
|
|
28
|
+
type: "image" | "file";
|
|
17
29
|
encrypted: boolean;
|
|
18
30
|
size?: number;
|
|
19
31
|
deleted: boolean;
|
|
32
|
+
/** Absent for legacy monolithic attachment content. */
|
|
33
|
+
content?: AttachmentContent;
|
|
20
34
|
}
|
|
21
35
|
export interface Page {
|
|
22
36
|
id: string;
|
|
@@ -44,14 +58,14 @@ export interface PagePreview {
|
|
|
44
58
|
firstImage?: string;
|
|
45
59
|
thumbnail?: string;
|
|
46
60
|
}
|
|
47
|
-
export type SyncProvider =
|
|
61
|
+
export type SyncProvider = "gdrive";
|
|
48
62
|
export interface JournalSettings {
|
|
49
63
|
use24h: boolean;
|
|
50
64
|
previewTags: boolean;
|
|
51
65
|
previewThumbnail: boolean;
|
|
52
66
|
previewIcons: boolean;
|
|
53
67
|
filterBar: boolean;
|
|
54
|
-
sort:
|
|
68
|
+
sort: "ascending" | "descending" | "none";
|
|
55
69
|
autoLocation: boolean;
|
|
56
70
|
remoteSync: boolean;
|
|
57
71
|
syncProvider?: SyncProvider;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_JOURNAL_SETTINGS = void 0;
|
|
3
|
+
exports.DEFAULT_JOURNAL_SETTINGS = exports.CHUNKED_ATTACHMENT_CONTENT_FORMAT = void 0;
|
|
4
4
|
exports.pageToPreview = pageToPreview;
|
|
5
|
+
exports.CHUNKED_ATTACHMENT_CONTENT_FORMAT = "canto-chunked-v1";
|
|
5
6
|
exports.DEFAULT_JOURNAL_SETTINGS = {
|
|
6
7
|
use24h: false,
|
|
7
8
|
previewTags: true,
|
|
8
9
|
previewThumbnail: true,
|
|
9
10
|
previewIcons: true,
|
|
10
11
|
filterBar: true,
|
|
11
|
-
sort:
|
|
12
|
+
sort: "descending",
|
|
12
13
|
autoLocation: false,
|
|
13
14
|
remoteSync: false,
|
|
14
15
|
autoSync: false,
|
|
15
16
|
};
|
|
16
17
|
function pageToPreview(page) {
|
|
17
|
-
const firstLine = page.text.split(
|
|
18
|
+
const firstLine = page.text.split("\n").find((l) => l.trim().length > 0) ?? "";
|
|
18
19
|
const previewText = firstLine.substring(0, 120);
|
|
19
20
|
const firstNonEncryptedImage = page.images.find((img) => !img.encrypted && !img.deleted);
|
|
20
|
-
const searchText = page.text.toLowerCase() +
|
|
21
|
+
const searchText = page.text.toLowerCase() + " " + page.tags.join(" ").toLowerCase();
|
|
21
22
|
return {
|
|
22
23
|
id: page.id,
|
|
23
24
|
date: page.date,
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAiIA,sCAyBC;AA7IY,QAAA,iCAAiC,GAAG,kBAA2B,CAAC;AAwGhE,QAAA,wBAAwB,GAAoB;IACvD,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,SAAgB,aAAa,CAAC,IAAU;IACtC,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhD,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC7C,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,CACxC,CAAC;IAEF,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAEpE,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW;QACX,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAChC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACpC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;QAC5B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACrC,UAAU,EAAE,sBAAsB,EAAE,IAAI;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC"}
|
package/dist/validation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GeoLocation, Comment, Attachment, Page, Journal, JournalContent, JournalSettings } from
|
|
1
|
+
import type { GeoLocation, Comment, Attachment, Page, Journal, JournalContent, JournalSettings, ChunkedAttachmentContent } from "./types";
|
|
2
2
|
export declare class ValidationError extends Error {
|
|
3
3
|
readonly field: string;
|
|
4
4
|
readonly expected: string;
|
|
@@ -7,12 +7,14 @@ export declare class ValidationError extends Error {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function isGeoLocation(v: unknown): v is GeoLocation;
|
|
9
9
|
export declare function isComment(v: unknown): v is Comment;
|
|
10
|
+
export declare function isChunkedAttachmentContent(v: unknown): v is ChunkedAttachmentContent;
|
|
10
11
|
export declare function isAttachment(v: unknown): v is Attachment;
|
|
11
12
|
export declare function isPage(v: unknown): v is Page;
|
|
12
13
|
export declare function isJournal(v: unknown): v is Journal;
|
|
13
14
|
export declare function isJournalContent(v: unknown): v is JournalContent;
|
|
14
15
|
export declare function validateGeoLocation(v: unknown, path?: string): GeoLocation;
|
|
15
16
|
export declare function validateComment(v: unknown, path?: string): Comment;
|
|
17
|
+
export declare function validateChunkedAttachmentContent(v: unknown, path?: string): ChunkedAttachmentContent;
|
|
16
18
|
export declare function validateAttachment(v: unknown, path?: string): Attachment;
|
|
17
19
|
export declare function validatePage(v: unknown, path?: string): Page;
|
|
18
20
|
export declare function validateJournalSettings(v: unknown, path?: string): JournalSettings;
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,IAAI,EACJ,OAAO,EACP,cAAc,EACd,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,KAAK,EAAE,MAAM;aACb,QAAQ,EAAE,MAAM;aAChB,QAAQ,EAAE,MAAM;gBAFhB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;CAKnC;AA+ED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAI1D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAQlD;AAED,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,OAAO,GACT,CAAC,IAAI,wBAAwB,CAc/B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAYxD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,CAc5C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAUlD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAQhE;AAMD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,OAAO,EACV,IAAI,SAAa,GAChB,WAAW,CAsBb;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,SAAY,GAAG,OAAO,CAOrE;AAED,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,OAAO,EACV,IAAI,SAAY,GACf,wBAAwB,CA0B1B;AAED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,OAAO,EACV,IAAI,SAAe,GAClB,UAAU,CAcZ;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,SAAS,GAAG,IAAI,CAgC5D;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,OAAO,EACV,IAAI,SAAa,GAChB,eAAe,CAiBjB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,SAAY,GAAG,OAAO,CAarE;AAED,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,OAAO,EACV,IAAI,SAAY,GACf,cAAc,CAWhB"}
|
package/dist/validation.js
CHANGED
|
@@ -3,24 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ValidationError = void 0;
|
|
4
4
|
exports.isGeoLocation = isGeoLocation;
|
|
5
5
|
exports.isComment = isComment;
|
|
6
|
+
exports.isChunkedAttachmentContent = isChunkedAttachmentContent;
|
|
6
7
|
exports.isAttachment = isAttachment;
|
|
7
8
|
exports.isPage = isPage;
|
|
8
9
|
exports.isJournal = isJournal;
|
|
9
10
|
exports.isJournalContent = isJournalContent;
|
|
10
11
|
exports.validateGeoLocation = validateGeoLocation;
|
|
11
12
|
exports.validateComment = validateComment;
|
|
13
|
+
exports.validateChunkedAttachmentContent = validateChunkedAttachmentContent;
|
|
12
14
|
exports.validateAttachment = validateAttachment;
|
|
13
15
|
exports.validatePage = validatePage;
|
|
14
16
|
exports.validateJournalSettings = validateJournalSettings;
|
|
15
17
|
exports.validateJournal = validateJournal;
|
|
16
18
|
exports.validateJournalContent = validateJournalContent;
|
|
19
|
+
const types_1 = require("./types");
|
|
17
20
|
class ValidationError extends Error {
|
|
18
21
|
constructor(field, expected, received) {
|
|
19
22
|
super(`Invalid field "${field}": expected ${expected}, got ${received}`);
|
|
20
23
|
this.field = field;
|
|
21
24
|
this.expected = expected;
|
|
22
25
|
this.received = received;
|
|
23
|
-
this.name =
|
|
26
|
+
this.name = "ValidationError";
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
exports.ValidationError = ValidationError;
|
|
@@ -29,9 +32,9 @@ exports.ValidationError = ValidationError;
|
|
|
29
32
|
// ---------------------------------------------------------------------------
|
|
30
33
|
function typeOf(v) {
|
|
31
34
|
if (v === null)
|
|
32
|
-
return
|
|
35
|
+
return "null";
|
|
33
36
|
if (Array.isArray(v))
|
|
34
|
-
return
|
|
37
|
+
return "array";
|
|
35
38
|
return typeof v;
|
|
36
39
|
}
|
|
37
40
|
function checkType(path, value, expected) {
|
|
@@ -46,105 +49,130 @@ function checkOptionalType(path, value, expected) {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
function checkEnum(path, value, allowed) {
|
|
49
|
-
if (typeof value !==
|
|
52
|
+
if (typeof value !== "string" || !allowed.includes(value)) {
|
|
50
53
|
throw new ValidationError(path, `one of ${JSON.stringify(allowed)}`, JSON.stringify(value));
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
function checkString(path, value) {
|
|
54
|
-
checkType(path, value,
|
|
57
|
+
checkType(path, value, "string");
|
|
55
58
|
}
|
|
56
59
|
function checkNumber(path, value) {
|
|
57
|
-
checkType(path, value,
|
|
60
|
+
checkType(path, value, "number");
|
|
58
61
|
if (!Number.isFinite(value)) {
|
|
59
|
-
throw new ValidationError(path,
|
|
62
|
+
throw new ValidationError(path, "finite number", String(value));
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
function checkBoolean(path, value) {
|
|
63
|
-
checkType(path, value,
|
|
66
|
+
checkType(path, value, "boolean");
|
|
64
67
|
}
|
|
65
68
|
function checkArray(path, value) {
|
|
66
|
-
checkType(path, value,
|
|
69
|
+
checkType(path, value, "array");
|
|
67
70
|
}
|
|
68
71
|
function checkObject(path, value) {
|
|
69
|
-
if (value === null || typeof value !==
|
|
70
|
-
throw new ValidationError(path,
|
|
72
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
73
|
+
throw new ValidationError(path, "object", typeOf(value));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function checkNonNegativeSafeInteger(path, value) {
|
|
77
|
+
checkType(path, value, "number");
|
|
78
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
79
|
+
throw new ValidationError(path, "non-negative safe integer", String(value));
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
// ---------------------------------------------------------------------------
|
|
74
83
|
// Type guards (boolean, no throw)
|
|
75
84
|
// ---------------------------------------------------------------------------
|
|
76
85
|
function isGeoLocation(v) {
|
|
77
|
-
if (!v || typeof v !==
|
|
86
|
+
if (!v || typeof v !== "object")
|
|
78
87
|
return false;
|
|
79
88
|
const o = v;
|
|
80
|
-
return typeof o.latitude ===
|
|
89
|
+
return typeof o.latitude === "number" && typeof o.longitude === "number";
|
|
81
90
|
}
|
|
82
91
|
function isComment(v) {
|
|
83
|
-
if (!v || typeof v !==
|
|
92
|
+
if (!v || typeof v !== "object")
|
|
93
|
+
return false;
|
|
94
|
+
const o = v;
|
|
95
|
+
return (typeof o.id === "string" &&
|
|
96
|
+
typeof o.text === "string" &&
|
|
97
|
+
typeof o.date === "string");
|
|
98
|
+
}
|
|
99
|
+
function isChunkedAttachmentContent(v) {
|
|
100
|
+
if (!v || typeof v !== "object" || Array.isArray(v))
|
|
84
101
|
return false;
|
|
85
102
|
const o = v;
|
|
86
|
-
return
|
|
103
|
+
return (o.format === types_1.CHUNKED_ATTACHMENT_CONTENT_FORMAT &&
|
|
104
|
+
Number.isSafeInteger(o.byteLength) &&
|
|
105
|
+
o.byteLength >= 0 &&
|
|
106
|
+
Number.isSafeInteger(o.chunkSize) &&
|
|
107
|
+
o.chunkSize > 0 &&
|
|
108
|
+
Number.isSafeInteger(o.chunkCount) &&
|
|
109
|
+
o.chunkCount >= 0 &&
|
|
110
|
+
o.chunkCount ===
|
|
111
|
+
Math.ceil(o.byteLength / o.chunkSize));
|
|
87
112
|
}
|
|
88
113
|
function isAttachment(v) {
|
|
89
|
-
if (!v || typeof v !==
|
|
114
|
+
if (!v || typeof v !== "object")
|
|
90
115
|
return false;
|
|
91
116
|
const o = v;
|
|
92
|
-
return (typeof o.id ===
|
|
93
|
-
typeof o.path ===
|
|
94
|
-
typeof o.name ===
|
|
95
|
-
(o.type ===
|
|
96
|
-
typeof o.encrypted ===
|
|
97
|
-
typeof o.deleted ===
|
|
117
|
+
return (typeof o.id === "string" &&
|
|
118
|
+
typeof o.path === "string" &&
|
|
119
|
+
typeof o.name === "string" &&
|
|
120
|
+
(o.type === "image" || o.type === "file") &&
|
|
121
|
+
typeof o.encrypted === "boolean" &&
|
|
122
|
+
typeof o.deleted === "boolean" &&
|
|
123
|
+
(o.content === undefined || isChunkedAttachmentContent(o.content)));
|
|
98
124
|
}
|
|
99
125
|
function isPage(v) {
|
|
100
|
-
if (!v || typeof v !==
|
|
126
|
+
if (!v || typeof v !== "object")
|
|
101
127
|
return false;
|
|
102
128
|
const o = v;
|
|
103
|
-
return (typeof o.id ===
|
|
104
|
-
typeof o.text ===
|
|
105
|
-
typeof o.date ===
|
|
129
|
+
return (typeof o.id === "string" &&
|
|
130
|
+
typeof o.text === "string" &&
|
|
131
|
+
typeof o.date === "string" &&
|
|
106
132
|
Array.isArray(o.tags) &&
|
|
107
133
|
Array.isArray(o.files) &&
|
|
108
134
|
Array.isArray(o.images) &&
|
|
109
135
|
Array.isArray(o.comments) &&
|
|
110
|
-
typeof o.modified ===
|
|
111
|
-
typeof o.deleted ===
|
|
136
|
+
typeof o.modified === "number" &&
|
|
137
|
+
typeof o.deleted === "boolean");
|
|
112
138
|
}
|
|
113
139
|
function isJournal(v) {
|
|
114
|
-
if (!v || typeof v !==
|
|
140
|
+
if (!v || typeof v !== "object")
|
|
115
141
|
return false;
|
|
116
142
|
const o = v;
|
|
117
|
-
return (typeof o.id ===
|
|
118
|
-
typeof o.title ===
|
|
119
|
-
typeof o.icon ===
|
|
120
|
-
typeof o.date ===
|
|
121
|
-
typeof o.secure ===
|
|
143
|
+
return (typeof o.id === "string" &&
|
|
144
|
+
typeof o.title === "string" &&
|
|
145
|
+
typeof o.icon === "string" &&
|
|
146
|
+
typeof o.date === "string" &&
|
|
147
|
+
typeof o.secure === "boolean");
|
|
122
148
|
}
|
|
123
149
|
function isJournalContent(v) {
|
|
124
150
|
if (!isJournal(v))
|
|
125
151
|
return false;
|
|
126
152
|
const o = v;
|
|
127
|
-
return Array.isArray(o.pages) &&
|
|
153
|
+
return (Array.isArray(o.pages) &&
|
|
154
|
+
typeof o.settings === "object" &&
|
|
155
|
+
o.settings !== null);
|
|
128
156
|
}
|
|
129
157
|
// ---------------------------------------------------------------------------
|
|
130
158
|
// Structural validators (throw ValidationError with field path)
|
|
131
159
|
// ---------------------------------------------------------------------------
|
|
132
|
-
function validateGeoLocation(v, path =
|
|
160
|
+
function validateGeoLocation(v, path = "location") {
|
|
133
161
|
checkObject(path, v);
|
|
134
162
|
const o = v;
|
|
135
163
|
checkNumber(`${path}.latitude`, o.latitude);
|
|
136
164
|
checkNumber(`${path}.longitude`, o.longitude);
|
|
137
165
|
if (o.latitude < -90 || o.latitude > 90) {
|
|
138
|
-
throw new ValidationError(`${path}.latitude`,
|
|
166
|
+
throw new ValidationError(`${path}.latitude`, "number in range [-90, 90]", String(o.latitude));
|
|
139
167
|
}
|
|
140
168
|
if (o.longitude < -180 || o.longitude > 180) {
|
|
141
|
-
throw new ValidationError(`${path}.longitude`,
|
|
169
|
+
throw new ValidationError(`${path}.longitude`, "number in range [-180, 180]", String(o.longitude));
|
|
142
170
|
}
|
|
143
|
-
checkOptionalType(`${path}.altitude`, o.altitude,
|
|
144
|
-
checkOptionalType(`${path}.accuracy`, o.accuracy,
|
|
171
|
+
checkOptionalType(`${path}.altitude`, o.altitude, "number");
|
|
172
|
+
checkOptionalType(`${path}.accuracy`, o.accuracy, "number");
|
|
145
173
|
return v;
|
|
146
174
|
}
|
|
147
|
-
function validateComment(v, path =
|
|
175
|
+
function validateComment(v, path = "comment") {
|
|
148
176
|
checkObject(path, v);
|
|
149
177
|
const o = v;
|
|
150
178
|
checkString(`${path}.id`, o.id);
|
|
@@ -152,33 +180,52 @@ function validateComment(v, path = 'comment') {
|
|
|
152
180
|
checkString(`${path}.date`, o.date);
|
|
153
181
|
return v;
|
|
154
182
|
}
|
|
155
|
-
function
|
|
183
|
+
function validateChunkedAttachmentContent(v, path = "content") {
|
|
184
|
+
checkObject(path, v);
|
|
185
|
+
const o = v;
|
|
186
|
+
checkEnum(`${path}.format`, o.format, [types_1.CHUNKED_ATTACHMENT_CONTENT_FORMAT]);
|
|
187
|
+
checkNonNegativeSafeInteger(`${path}.byteLength`, o.byteLength);
|
|
188
|
+
checkNonNegativeSafeInteger(`${path}.chunkSize`, o.chunkSize);
|
|
189
|
+
if (o.chunkSize === 0) {
|
|
190
|
+
throw new ValidationError(`${path}.chunkSize`, "positive safe integer", "0");
|
|
191
|
+
}
|
|
192
|
+
checkNonNegativeSafeInteger(`${path}.chunkCount`, o.chunkCount);
|
|
193
|
+
const expectedChunkCount = Math.ceil(o.byteLength / o.chunkSize);
|
|
194
|
+
if (o.chunkCount !== expectedChunkCount) {
|
|
195
|
+
throw new ValidationError(`${path}.chunkCount`, `Math.ceil(byteLength / chunkSize) = ${expectedChunkCount}`, String(o.chunkCount));
|
|
196
|
+
}
|
|
197
|
+
return v;
|
|
198
|
+
}
|
|
199
|
+
function validateAttachment(v, path = "attachment") {
|
|
156
200
|
checkObject(path, v);
|
|
157
201
|
const o = v;
|
|
158
202
|
checkString(`${path}.id`, o.id);
|
|
159
203
|
checkString(`${path}.path`, o.path);
|
|
160
204
|
checkString(`${path}.name`, o.name);
|
|
161
|
-
checkEnum(`${path}.type`, o.type, [
|
|
205
|
+
checkEnum(`${path}.type`, o.type, ["image", "file"]);
|
|
162
206
|
checkBoolean(`${path}.encrypted`, o.encrypted);
|
|
163
|
-
checkOptionalType(`${path}.size`, o.size,
|
|
207
|
+
checkOptionalType(`${path}.size`, o.size, "number");
|
|
164
208
|
checkBoolean(`${path}.deleted`, o.deleted);
|
|
209
|
+
if (o.content !== undefined) {
|
|
210
|
+
validateChunkedAttachmentContent(o.content, `${path}.content`);
|
|
211
|
+
}
|
|
165
212
|
return v;
|
|
166
213
|
}
|
|
167
|
-
function validatePage(v, path =
|
|
214
|
+
function validatePage(v, path = "page") {
|
|
168
215
|
checkObject(path, v);
|
|
169
216
|
const o = v;
|
|
170
217
|
checkString(`${path}.id`, o.id);
|
|
171
218
|
checkString(`${path}.text`, o.text);
|
|
172
219
|
checkString(`${path}.date`, o.date);
|
|
173
|
-
checkOptionalType(`${path}.thumbnail`, o.thumbnail,
|
|
220
|
+
checkOptionalType(`${path}.thumbnail`, o.thumbnail, "string");
|
|
174
221
|
if (o.location !== undefined && o.location !== null) {
|
|
175
222
|
validateGeoLocation(o.location, `${path}.location`);
|
|
176
223
|
}
|
|
177
224
|
checkArray(`${path}.tags`, o.tags);
|
|
178
225
|
for (let i = 0; i < o.tags.length; i++) {
|
|
179
226
|
checkString(`${path}.tags[${i}]`, o.tags[i]);
|
|
180
|
-
if (o.tags[i].trim() ===
|
|
181
|
-
throw new ValidationError(`${path}.tags[${i}]`,
|
|
227
|
+
if (o.tags[i].trim() === "") {
|
|
228
|
+
throw new ValidationError(`${path}.tags[${i}]`, "non-empty string", '""');
|
|
182
229
|
}
|
|
183
230
|
}
|
|
184
231
|
checkArray(`${path}.files`, o.files);
|
|
@@ -197,7 +244,7 @@ function validatePage(v, path = 'page') {
|
|
|
197
244
|
checkBoolean(`${path}.deleted`, o.deleted);
|
|
198
245
|
return v;
|
|
199
246
|
}
|
|
200
|
-
function validateJournalSettings(v, path =
|
|
247
|
+
function validateJournalSettings(v, path = "settings") {
|
|
201
248
|
checkObject(path, v);
|
|
202
249
|
const o = v;
|
|
203
250
|
checkBoolean(`${path}.use24h`, o.use24h);
|
|
@@ -205,17 +252,17 @@ function validateJournalSettings(v, path = 'settings') {
|
|
|
205
252
|
checkBoolean(`${path}.previewThumbnail`, o.previewThumbnail);
|
|
206
253
|
checkBoolean(`${path}.previewIcons`, o.previewIcons);
|
|
207
254
|
checkBoolean(`${path}.filterBar`, o.filterBar);
|
|
208
|
-
checkEnum(`${path}.sort`, o.sort, [
|
|
255
|
+
checkEnum(`${path}.sort`, o.sort, ["ascending", "descending", "none"]);
|
|
209
256
|
checkBoolean(`${path}.autoLocation`, o.autoLocation);
|
|
210
257
|
checkBoolean(`${path}.remoteSync`, o.remoteSync);
|
|
211
258
|
if (o.syncProvider !== undefined) {
|
|
212
|
-
checkEnum(`${path}.syncProvider`, o.syncProvider, [
|
|
259
|
+
checkEnum(`${path}.syncProvider`, o.syncProvider, ["gdrive"]);
|
|
213
260
|
}
|
|
214
261
|
checkBoolean(`${path}.autoSync`, o.autoSync);
|
|
215
|
-
checkOptionalType(`${path}.themeOverride`, o.themeOverride,
|
|
262
|
+
checkOptionalType(`${path}.themeOverride`, o.themeOverride, "string");
|
|
216
263
|
return v;
|
|
217
264
|
}
|
|
218
|
-
function validateJournal(v, path =
|
|
265
|
+
function validateJournal(v, path = "journal") {
|
|
219
266
|
checkObject(path, v);
|
|
220
267
|
const o = v;
|
|
221
268
|
checkString(`${path}.id`, o.id);
|
|
@@ -223,13 +270,13 @@ function validateJournal(v, path = 'journal') {
|
|
|
223
270
|
checkString(`${path}.icon`, o.icon);
|
|
224
271
|
checkString(`${path}.date`, o.date);
|
|
225
272
|
checkBoolean(`${path}.secure`, o.secure);
|
|
226
|
-
checkOptionalType(`${path}.salt`, o.salt,
|
|
227
|
-
checkOptionalType(`${path}.biometric`, o.biometric,
|
|
228
|
-
checkOptionalType(`${path}.kdfIterations`, o.kdfIterations,
|
|
229
|
-
checkOptionalType(`${path}.themeOverride`, o.themeOverride,
|
|
273
|
+
checkOptionalType(`${path}.salt`, o.salt, "string");
|
|
274
|
+
checkOptionalType(`${path}.biometric`, o.biometric, "boolean");
|
|
275
|
+
checkOptionalType(`${path}.kdfIterations`, o.kdfIterations, "number");
|
|
276
|
+
checkOptionalType(`${path}.themeOverride`, o.themeOverride, "string");
|
|
230
277
|
return v;
|
|
231
278
|
}
|
|
232
|
-
function validateJournalContent(v, path =
|
|
279
|
+
function validateJournalContent(v, path = "journal") {
|
|
233
280
|
validateJournal(v, path);
|
|
234
281
|
const o = v;
|
|
235
282
|
checkArray(`${path}.pages`, o.pages);
|
|
@@ -238,7 +285,7 @@ function validateJournalContent(v, path = 'journal') {
|
|
|
238
285
|
}
|
|
239
286
|
validateJournalSettings(o.settings, `${path}.settings`);
|
|
240
287
|
// schemaVersion is optional for backward compat (legacy journals lack it)
|
|
241
|
-
checkOptionalType(`${path}.schemaVersion`, o.schemaVersion,
|
|
288
|
+
checkOptionalType(`${path}.schemaVersion`, o.schemaVersion, "string");
|
|
242
289
|
return v;
|
|
243
290
|
}
|
|
244
291
|
//# sourceMappingURL=validation.js.map
|
package/dist/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Current Canto journal schema version (semver). */
|
|
2
|
-
export declare const SCHEMA_VERSION = "0.
|
|
2
|
+
export declare const SCHEMA_VERSION = "0.18.0";
|
|
3
3
|
/** Compare two semver strings. Returns -1 (a < b), 0 (equal), or 1 (a > b). */
|
|
4
4
|
export declare function compareVersions(a: string, b: string): -1 | 0 | 1;
|
|
5
5
|
/** True if `version` needs migration to reach SCHEMA_VERSION (strictly older). */
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,eAAO,MAAM,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,eAAO,MAAM,cAAc,WAAW,CAAC;AAavC,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAQhE;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIhE"}
|
package/dist/version.js
CHANGED
|
@@ -6,10 +6,10 @@ exports.needsMigration = needsMigration;
|
|
|
6
6
|
exports.isFutureVersion = isFutureVersion;
|
|
7
7
|
exports.isMajorUpgrade = isMajorUpgrade;
|
|
8
8
|
/** Current Canto journal schema version (semver). */
|
|
9
|
-
exports.SCHEMA_VERSION =
|
|
9
|
+
exports.SCHEMA_VERSION = "0.18.0";
|
|
10
10
|
/** Parse a semver string into [major, minor, patch]. Throws on invalid format. */
|
|
11
11
|
function parseSemver(v) {
|
|
12
|
-
const parts = v.split(
|
|
12
|
+
const parts = v.split(".").map(Number);
|
|
13
13
|
if (parts.length !== 3 || parts.some(isNaN)) {
|
|
14
14
|
throw new Error(`Invalid schema version: "${v}" (expected semver like "1.0.0")`);
|
|
15
15
|
}
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAeA,0CAQC;AAGD,wCAEC;AAGD,0CAEC;AAGD,wCAIC;AAxCD,qDAAqD;AACxC,QAAA,cAAc,GAAG,QAAQ,CAAC;AAEvC,kFAAkF;AAClF,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,4BAA4B,CAAC,kCAAkC,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,KAAiC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,SAAgB,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kFAAkF;AAClF,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,eAAe,CAAC,OAAO,EAAE,sBAAc,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,qEAAqE;AACrE,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,eAAe,CAAC,OAAO,EAAE,sBAAc,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,iFAAiF;AACjF,SAAgB,cAAc,CAAC,IAAY,EAAE,EAAU;IACrD,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,KAAK,GAAG,OAAO,CAAC;AACzB,CAAC"}
|