@abraca/schema 2.3.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/dist/abracadabra-schema.cjs +853 -0
- package/dist/abracadabra-schema.cjs.map +1 -0
- package/dist/abracadabra-schema.esm.js +781 -0
- package/dist/abracadabra-schema.esm.js.map +1 -0
- package/dist/index.d.ts +2538 -0
- package/package.json +41 -0
- package/src/crdt.ts +63 -0
- package/src/generated/calendar.ts +35 -0
- package/src/generated/chart.ts +35 -0
- package/src/generated/checklist.ts +35 -0
- package/src/generated/dashboard.ts +35 -0
- package/src/generated/doc.ts +35 -0
- package/src/generated/gallery.ts +35 -0
- package/src/generated/graph.ts +35 -0
- package/src/generated/json-schema/calendar.json +140 -0
- package/src/generated/json-schema/chart.json +164 -0
- package/src/generated/json-schema/checklist.json +138 -0
- package/src/generated/json-schema/dashboard.json +122 -0
- package/src/generated/json-schema/doc.json +122 -0
- package/src/generated/json-schema/gallery.json +157 -0
- package/src/generated/json-schema/graph.json +125 -0
- package/src/generated/json-schema/kanban.json +145 -0
- package/src/generated/json-schema/map.json +125 -0
- package/src/generated/json-schema/outline.json +122 -0
- package/src/generated/json-schema/overview.json +122 -0
- package/src/generated/json-schema/plugin-manifest.json +221 -0
- package/src/generated/json-schema/prose.json +122 -0
- package/src/generated/json-schema/sheets.json +135 -0
- package/src/generated/json-schema/slides.json +129 -0
- package/src/generated/json-schema/table.json +136 -0
- package/src/generated/json-schema/timeline.json +122 -0
- package/src/generated/kanban.ts +35 -0
- package/src/generated/map.ts +35 -0
- package/src/generated/markdown/calendar.md +59 -0
- package/src/generated/markdown/chart.md +62 -0
- package/src/generated/markdown/checklist.md +58 -0
- package/src/generated/markdown/dashboard.md +56 -0
- package/src/generated/markdown/doc.md +56 -0
- package/src/generated/markdown/gallery.md +61 -0
- package/src/generated/markdown/graph.md +57 -0
- package/src/generated/markdown/kanban.md +62 -0
- package/src/generated/markdown/map.md +57 -0
- package/src/generated/markdown/outline.md +56 -0
- package/src/generated/markdown/overview.md +56 -0
- package/src/generated/markdown/prose.md +56 -0
- package/src/generated/markdown/sheets.md +59 -0
- package/src/generated/markdown/slides.md +57 -0
- package/src/generated/markdown/table.md +58 -0
- package/src/generated/markdown/timeline.md +56 -0
- package/src/generated/outline.ts +35 -0
- package/src/generated/overview.ts +35 -0
- package/src/generated/prose.ts +35 -0
- package/src/generated/rust/calendar.rs +125 -0
- package/src/generated/rust/chart.rs +151 -0
- package/src/generated/rust/checklist.rs +123 -0
- package/src/generated/rust/dashboard.rs +101 -0
- package/src/generated/rust/doc.rs +101 -0
- package/src/generated/rust/gallery.rs +146 -0
- package/src/generated/rust/graph.rs +104 -0
- package/src/generated/rust/kanban.rs +127 -0
- package/src/generated/rust/map.rs +104 -0
- package/src/generated/rust/outline.rs +101 -0
- package/src/generated/rust/overview.rs +101 -0
- package/src/generated/rust/prose.rs +101 -0
- package/src/generated/rust/sheets.rs +110 -0
- package/src/generated/rust/slides.rs +111 -0
- package/src/generated/rust/table.rs +121 -0
- package/src/generated/rust/timeline.rs +101 -0
- package/src/generated/sheets.ts +35 -0
- package/src/generated/slides.ts +35 -0
- package/src/generated/table.ts +35 -0
- package/src/generated/timeline.ts +35 -0
- package/src/index.ts +389 -0
- package/src/manifest/plugin-manifest.ts +212 -0
- package/src/query.ts +150 -0
- package/src/types/calendar.ts +23 -0
- package/src/types/chart.ts +36 -0
- package/src/types/checklist.ts +22 -0
- package/src/types/dashboard.ts +18 -0
- package/src/types/doc.ts +19 -0
- package/src/types/gallery.ts +24 -0
- package/src/types/graph.ts +21 -0
- package/src/types/kanban.ts +27 -0
- package/src/types/map.ts +21 -0
- package/src/types/outline.ts +17 -0
- package/src/types/overview.ts +17 -0
- package/src/types/prose.ts +19 -0
- package/src/types/sheets.ts +24 -0
- package/src/types/slides.ts +22 -0
- package/src/types/table.ts +22 -0
- package/src/types/timeline.ts +18 -0
- package/src/types/universal.ts +59 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slides` — two-axis presentation. Direct children are slides;
|
|
3
|
+
* grandchildren are sub-slides (both untyped); per-slide
|
|
4
|
+
* `slidesTransition` / `color` flow through the universal/untyped
|
|
5
|
+
* paths.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { defineDocType, defineSchema } from "../index.ts";
|
|
10
|
+
import { UniversalMeta } from "./universal.ts";
|
|
11
|
+
|
|
12
|
+
export const SlidesMeta = UniversalMeta.extend({
|
|
13
|
+
slidesTheme: z.enum(["dark", "light"]).optional(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export const Slides = defineDocType({
|
|
17
|
+
name: "slides",
|
|
18
|
+
version: 1,
|
|
19
|
+
meta: SlidesMeta,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const slidesSchema = defineSchema({ types: [Slides] });
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `table` — collaborative spreadsheet. Direct children are columns;
|
|
3
|
+
* grandchildren are positional cells (row N = Nth child of each
|
|
4
|
+
* column). Descendants are untyped.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { defineDocType, defineSchema } from "../index.ts";
|
|
9
|
+
import { UniversalMeta } from "./universal.ts";
|
|
10
|
+
|
|
11
|
+
export const TableMeta = UniversalMeta.extend({
|
|
12
|
+
tableMode: z.enum(["hierarchy", "flat"]).optional(),
|
|
13
|
+
tableSortDir: z.enum(["asc", "desc"]).optional(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export const Table = defineDocType({
|
|
17
|
+
name: "table",
|
|
18
|
+
version: 1,
|
|
19
|
+
meta: TableMeta,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const tableSchema = defineSchema({ types: [Table] });
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `timeline` — Gantt-style project timeline. Direct children are epics;
|
|
3
|
+
* grandchildren are tasks (both untyped). Per-bar `dateStart` /
|
|
4
|
+
* `dateEnd` / `taskProgress` / `color` use universal keys.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { defineDocType, defineSchema } from "../index.ts";
|
|
8
|
+
import { UniversalMeta } from "./universal.ts";
|
|
9
|
+
|
|
10
|
+
export const TimelineMeta = UniversalMeta;
|
|
11
|
+
|
|
12
|
+
export const Timeline = defineDocType({
|
|
13
|
+
name: "timeline",
|
|
14
|
+
version: 1,
|
|
15
|
+
meta: TimelineMeta,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const timelineSchema = defineSchema({ types: [Timeline] });
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal meta keys that may appear on any typed root.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the canonical list in `page-type-guidelines.md` §4.5 plus the
|
|
5
|
+
* three cross-cutting cover keys (`coverUploadId`/`coverDocId`/
|
|
6
|
+
* `coverMimeType`). Every key is optional. Per-type schemas merge this
|
|
7
|
+
* object via `UniversalMeta.extend({ ... })`.
|
|
8
|
+
*
|
|
9
|
+
* Descendant-only keys (cell formatting, geo, dashboard layout, spatial
|
|
10
|
+
* transforms, EXIF media metadata, etc.) are deliberately excluded —
|
|
11
|
+
* descendants are untyped and unvalidated by the registry, so those
|
|
12
|
+
* keys flow through the untyped meta path without per-type constraints.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
|
|
17
|
+
const hexColor = z.string().regex(/^#[0-9a-fA-F]{6}$/);
|
|
18
|
+
const hhmm = z.string().regex(/^[0-2]\d:[0-5]\d$/);
|
|
19
|
+
|
|
20
|
+
export const UniversalMeta = z.strictObject({
|
|
21
|
+
color: hexColor.optional(),
|
|
22
|
+
icon: z.string().optional(),
|
|
23
|
+
datetimeStart: z.iso.datetime().optional(),
|
|
24
|
+
datetimeEnd: z.iso.datetime().optional(),
|
|
25
|
+
allDay: z.boolean().optional(),
|
|
26
|
+
dateStart: z.iso.date().optional(),
|
|
27
|
+
dateEnd: z.iso.date().optional(),
|
|
28
|
+
timeStart: hhmm.optional(),
|
|
29
|
+
timeEnd: hhmm.optional(),
|
|
30
|
+
tags: z.array(z.string()).optional(),
|
|
31
|
+
checked: z.boolean().optional(),
|
|
32
|
+
priority: z.number().int().min(0).max(4).optional(),
|
|
33
|
+
status: z.string().optional(),
|
|
34
|
+
rating: z.number().min(0).max(5).optional(),
|
|
35
|
+
url: z.string().optional(),
|
|
36
|
+
email: z.string().optional(),
|
|
37
|
+
phone: z.string().optional(),
|
|
38
|
+
number: z.number().optional(),
|
|
39
|
+
unit: z.string().optional(),
|
|
40
|
+
subtitle: z.string().optional(),
|
|
41
|
+
note: z.string().optional(),
|
|
42
|
+
taskProgress: z.number().min(0).max(100).optional(),
|
|
43
|
+
/**
|
|
44
|
+
* User id (UUID) the entry is assigned to. Indexed by the v2 query
|
|
45
|
+
* layer (`doc_meta_index.assigned_to`) so "all cards assigned to me"
|
|
46
|
+
* is a single indexed lookup. Server does not validate referential
|
|
47
|
+
* integrity — it's just a tag.
|
|
48
|
+
*/
|
|
49
|
+
assignedTo: z.string().optional(),
|
|
50
|
+
coverUploadId: z.string().optional(),
|
|
51
|
+
coverDocId: z.string().optional(),
|
|
52
|
+
coverMimeType: z.string().optional(),
|
|
53
|
+
/**
|
|
54
|
+
* Migration version. Read by `runMigrations` to determine which
|
|
55
|
+
* forward-migrations to apply when projecting an old document.
|
|
56
|
+
* Absent ⇒ assume version 1.
|
|
57
|
+
*/
|
|
58
|
+
__schemaVersion: z.number().int().min(1).optional(),
|
|
59
|
+
});
|