@elizaos/plugin-simple-views 2.0.3-beta.5
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/LICENSE +21 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +184 -0
- package/dist/plugin.js.map +1 -0
- package/dist/register.d.ts +2 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +26 -0
- package/dist/register.js.map +1 -0
- package/dist/routes.d.ts +3 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +64 -0
- package/dist/routes.js.map +1 -0
- package/dist/simple-views-view-bundle.d.ts +2 -0
- package/dist/simple-views-view-bundle.d.ts.map +1 -0
- package/dist/simple-views-view-bundle.js +6 -0
- package/dist/simple-views-view-bundle.js.map +1 -0
- package/dist/simple-views.interact.d.ts +9 -0
- package/dist/simple-views.interact.d.ts.map +1 -0
- package/dist/simple-views.interact.js +230 -0
- package/dist/simple-views.interact.js.map +1 -0
- package/dist/storage.d.ts +44 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +179 -0
- package/dist/storage.js.map +1 -0
- package/dist/ui.d.ts +3 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +1041 -0
- package/dist/ui.js.map +1 -0
- package/dist/views/bundle.js +1159 -0
- package/dist/views/bundle.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/simple-views.interact.ts"],"sourcesContent":["import {\n makeId,\n normalizeColor,\n normalizeDateKey,\n nowIso,\n readEvents,\n readNotes,\n readSelectedDate,\n type SimpleCalendarEvent,\n type SimpleViewsSnapshot,\n type StickyNote,\n simpleViewsSnapshot,\n todayDateKey,\n writeEvents,\n writeNotes,\n writeSelectedDate,\n} from \"./storage.js\";\n\nexport interface SimpleViewsInteractResult {\n success: boolean;\n text: string;\n state: SimpleViewsSnapshot;\n [key: string]: unknown;\n}\n\ntype SimpleViewsInteractFields = {\n success: boolean;\n text: string;\n} & Record<string, unknown>;\n\nfunction textParam(\n params: Record<string, unknown> | undefined,\n key: string,\n): string {\n const value = params?.[key];\n return typeof value === \"string\" ? value.trim() : \"\";\n}\n\nfunction normalizeLookup(value: string): string {\n return value.toLowerCase().replace(/\\s+/g, \" \").trim();\n}\n\nfunction summarizeNotes(notes: StickyNote[]): string {\n if (notes.length === 0) return \"No sticky notes yet.\";\n return notes.map((note) => `${note.title}: ${note.body}`).join(\"\\n\");\n}\n\nfunction summarizeEvents(events: SimpleCalendarEvent[], date?: string): string {\n const filtered = date\n ? events.filter((event) => event.date === date)\n : events;\n if (filtered.length === 0) {\n return date ? `No calendar events for ${date}.` : \"No calendar events yet.\";\n }\n return filtered\n .map(\n (event) =>\n `${event.date} ${event.time} - ${event.title}${event.notes ? `: ${event.notes}` : \"\"}`,\n )\n .join(\"\\n\");\n}\n\nfunction resolveNoteDeleteTarget(\n notes: StickyNote[],\n target: string,\n): StickyNote | { ambiguous: StickyNote[] } | null {\n const normalized = normalizeLookup(target);\n if (!normalized) return null;\n\n const exact = notes.filter(\n (note) =>\n normalizeLookup(note.id) === normalized ||\n normalizeLookup(note.title) === normalized,\n );\n if (exact.length === 1) return exact[0];\n if (exact.length > 1) return { ambiguous: exact };\n\n const titleMatches = notes.filter((note) =>\n normalizeLookup(note.title).includes(normalized),\n );\n if (titleMatches.length === 1) return titleMatches[0];\n if (titleMatches.length > 1) return { ambiguous: titleMatches };\n\n const bodyMatches = notes.filter((note) =>\n normalizeLookup(note.body).includes(normalized),\n );\n if (bodyMatches.length === 1) return bodyMatches[0];\n if (bodyMatches.length > 1) return { ambiguous: bodyMatches };\n\n return null;\n}\n\nfunction result(fields: SimpleViewsInteractFields): SimpleViewsInteractResult {\n return { ...fields, state: simpleViewsSnapshot() };\n}\n\nexport async function interact(\n capability: string,\n params?: Record<string, unknown>,\n): Promise<SimpleViewsInteractResult> {\n if (capability === \"get-notes\") {\n const notes = readNotes();\n return result({\n success: true,\n text: summarizeNotes(notes),\n notes,\n });\n }\n\n if (capability === \"create-note\") {\n const now = nowIso();\n const note: StickyNote = {\n id: makeId(\"note\"),\n title: textParam(params, \"title\") || \"Untitled\",\n body:\n textParam(params, \"body\") || textParam(params, \"content\") || \"New note\",\n color: normalizeColor(params?.color),\n createdAt: now,\n updatedAt: now,\n };\n writeNotes([note, ...readNotes()]);\n return result({\n success: true,\n text: `Created sticky note \"${note.title}\".`,\n created: true,\n note,\n });\n }\n\n if (capability === \"delete-note\") {\n const target =\n textParam(params, \"id\") ||\n textParam(params, \"title\") ||\n textParam(params, \"query\") ||\n textParam(params, \"name\");\n if (!target) {\n return result({\n success: false,\n text: \"Note id, title, or query is required.\",\n deleted: false,\n reason: \"target is required\",\n });\n }\n\n const before = readNotes();\n const resolved = resolveNoteDeleteTarget(before, target);\n if (!resolved) {\n return result({\n success: false,\n text: `No sticky note found for \"${target}\".`,\n deleted: false,\n target,\n });\n }\n if (\"ambiguous\" in resolved) {\n return result({\n success: false,\n text: `\"${target}\" matches multiple sticky notes: ${resolved.ambiguous\n .map((note) => note.title)\n .join(\", \")}.`,\n deleted: false,\n target,\n candidates: resolved.ambiguous,\n });\n }\n\n writeNotes(before.filter((note) => note.id !== resolved.id));\n return result({\n success: true,\n text: `Deleted sticky note \"${resolved.title}\".`,\n deleted: true,\n id: resolved.id,\n note: resolved,\n });\n }\n\n if (capability === \"clear-notes\") {\n writeNotes([]);\n return result({\n success: true,\n text: \"Cleared all sticky notes.\",\n cleared: true,\n });\n }\n\n if (capability === \"get-calendar-state\") {\n const requestedDate = textParam(params, \"date\");\n const selectedDate = requestedDate\n ? normalizeDateKey(requestedDate)\n : readSelectedDate();\n if (!selectedDate) {\n return result({\n success: false,\n text: \"Date must be YYYY-MM-DD.\",\n reason: \"date must be YYYY-MM-DD\",\n });\n }\n const events = readEvents();\n return result({\n success: true,\n text: summarizeEvents(events, selectedDate),\n selectedDate,\n events,\n });\n }\n\n if (capability === \"select-calendar-date\") {\n const date = normalizeDateKey(textParam(params, \"date\"));\n if (!date) {\n return result({\n success: false,\n text: \"Date must be YYYY-MM-DD.\",\n selected: false,\n reason: \"date must be YYYY-MM-DD\",\n });\n }\n writeSelectedDate(date);\n return result({\n success: true,\n text: `Selected ${date}.`,\n selected: true,\n date,\n });\n }\n\n if (capability === \"create-calendar-event\") {\n const requestedDate = textParam(params, \"date\");\n const date = requestedDate\n ? normalizeDateKey(requestedDate)\n : readSelectedDate() || todayDateKey();\n if (!date) {\n return result({\n success: false,\n text: \"Date must be YYYY-MM-DD.\",\n created: false,\n reason: \"date must be YYYY-MM-DD\",\n });\n }\n\n const event: SimpleCalendarEvent = {\n id: makeId(\"event\"),\n title: textParam(params, \"title\") || \"Untitled event\",\n date,\n time: textParam(params, \"time\") || \"09:00\",\n notes: textParam(params, \"notes\"),\n color: normalizeColor(params?.color),\n createdAt: nowIso(),\n };\n writeEvents([...readEvents(), event]);\n writeSelectedDate(date);\n return result({\n success: true,\n text: `Created calendar event \"${event.title}\" for ${event.date} at ${event.time}.`,\n created: true,\n event,\n });\n }\n\n if (capability === \"delete-calendar-event\") {\n const id = textParam(params, \"id\");\n if (!id) {\n return result({\n success: false,\n text: \"Event id is required.\",\n deleted: false,\n reason: \"id is required\",\n });\n }\n\n const before = readEvents();\n const event = before.find((candidate) => candidate.id === id);\n if (!event) {\n return result({\n success: false,\n text: `No calendar event found for \"${id}\".`,\n deleted: false,\n id,\n });\n }\n\n writeEvents(before.filter((candidate) => candidate.id !== id));\n return result({\n success: true,\n text: `Deleted calendar event \"${event.title}\".`,\n deleted: true,\n id,\n event,\n });\n }\n\n throw new Error(`Simple views do not support capability \"${capability}\".`);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type StickyColor = "yellow" | "green" | "rose" | "slate";
|
|
2
|
+
export interface StickyNote {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
body: string;
|
|
6
|
+
color: StickyColor;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SimpleCalendarEvent {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
date: string;
|
|
14
|
+
time: string;
|
|
15
|
+
notes: string;
|
|
16
|
+
color: StickyColor;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SimpleViewsSnapshot {
|
|
20
|
+
notes: StickyNote[];
|
|
21
|
+
events: SimpleCalendarEvent[];
|
|
22
|
+
selectedDate: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const SIMPLE_VIEWS_EVENT = "eliza:simple-views:update";
|
|
25
|
+
export declare const NOTES_KEY = "eliza.simpleViews.notes.v2";
|
|
26
|
+
export declare const CALENDAR_EVENTS_KEY = "eliza.simpleViews.calendar.events.v2";
|
|
27
|
+
export declare const CALENDAR_CURSOR_KEY = "eliza.simpleViews.calendar.cursor.v2";
|
|
28
|
+
export declare function normalizeColor(value: unknown): StickyColor;
|
|
29
|
+
export declare function readNotes(): StickyNote[];
|
|
30
|
+
export declare function writeNotes(notes: StickyNote[]): void;
|
|
31
|
+
export declare function readEvents(): SimpleCalendarEvent[];
|
|
32
|
+
export declare function writeEvents(events: SimpleCalendarEvent[]): void;
|
|
33
|
+
export declare function nowIso(): string;
|
|
34
|
+
export declare function makeId(prefix: string): string;
|
|
35
|
+
export declare function todayDateKey(date?: Date): string;
|
|
36
|
+
export declare function normalizeDateKey(value: unknown): string | null;
|
|
37
|
+
export declare function readSelectedDate(): string;
|
|
38
|
+
export declare function writeSelectedDate(date: string): void;
|
|
39
|
+
export declare function simpleViewsSnapshot(): SimpleViewsSnapshot;
|
|
40
|
+
export declare function applySimpleViewsSnapshot(snapshot: SimpleViewsSnapshot, options?: {
|
|
41
|
+
preserveLocalDataOnEmpty?: boolean;
|
|
42
|
+
}): void;
|
|
43
|
+
export declare function isSimpleViewsSnapshot(value: unknown): value is SimpleViewsSnapshot;
|
|
44
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,SAAS,+BAA+B,CAAC;AACtD,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAC1E,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AA0F1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAS1D;AAmCD,wBAAgB,SAAS,IAAI,UAAU,EAAE,CAExC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAEpD;AAED,wBAAgB,UAAU,IAAI,mBAAmB,EAAE,CAElD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAE/D;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED,wBAAgB,YAAY,CAAC,IAAI,OAAa,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAqB9D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,mBAAmB,CAMzD;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE;IAAE,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,IAAI,CAcN;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAO9B"}
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
const SIMPLE_VIEWS_EVENT = "eliza:simple-views:update";
|
|
2
|
+
const NOTES_KEY = "eliza.simpleViews.notes.v2";
|
|
3
|
+
const CALENDAR_EVENTS_KEY = "eliza.simpleViews.calendar.events.v2";
|
|
4
|
+
const CALENDAR_CURSOR_KEY = "eliza.simpleViews.calendar.cursor.v2";
|
|
5
|
+
const DEFAULT_NOTES = [];
|
|
6
|
+
const DEFAULT_EVENTS = [];
|
|
7
|
+
const DATE_KEY_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
8
|
+
const serverJsonStore = /* @__PURE__ */ new Map();
|
|
9
|
+
const serverTextStore = /* @__PURE__ */ new Map();
|
|
10
|
+
function browserStorage() {
|
|
11
|
+
if (typeof window === "undefined") return null;
|
|
12
|
+
try {
|
|
13
|
+
return window.localStorage ?? null;
|
|
14
|
+
} catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function emitSimpleViewsUpdate(key) {
|
|
19
|
+
if (typeof window === "undefined") return;
|
|
20
|
+
window.dispatchEvent(
|
|
21
|
+
new CustomEvent(SIMPLE_VIEWS_EVENT, { detail: { key } })
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
function readJson(key, fallback, isValid) {
|
|
25
|
+
const storage = browserStorage();
|
|
26
|
+
if (!storage) {
|
|
27
|
+
const value = serverJsonStore.get(key);
|
|
28
|
+
return isValid(value) ? value : fallback;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const raw = storage.getItem(key);
|
|
32
|
+
if (!raw) return fallback;
|
|
33
|
+
const parsed = JSON.parse(raw);
|
|
34
|
+
return isValid(parsed) ? parsed : fallback;
|
|
35
|
+
} catch {
|
|
36
|
+
return fallback;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function writeJson(key, value) {
|
|
40
|
+
const storage = browserStorage();
|
|
41
|
+
if (!storage) {
|
|
42
|
+
serverJsonStore.set(key, value);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
storage.setItem(key, JSON.stringify(value));
|
|
47
|
+
emitSimpleViewsUpdate(key);
|
|
48
|
+
} catch {
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function readText(key, fallback) {
|
|
52
|
+
const storage = browserStorage();
|
|
53
|
+
if (!storage) return serverTextStore.get(key) ?? fallback;
|
|
54
|
+
try {
|
|
55
|
+
return storage.getItem(key) ?? fallback;
|
|
56
|
+
} catch {
|
|
57
|
+
return fallback;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function writeText(key, value) {
|
|
61
|
+
const storage = browserStorage();
|
|
62
|
+
if (!storage) {
|
|
63
|
+
serverTextStore.set(key, value);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
storage.setItem(key, value);
|
|
68
|
+
emitSimpleViewsUpdate(key);
|
|
69
|
+
} catch {
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function isRecord(value) {
|
|
73
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
74
|
+
}
|
|
75
|
+
function normalizeColor(value) {
|
|
76
|
+
return value === "green" || value === "rose" || value === "pink" || value === "slate" ? value === "pink" ? "rose" : value : "yellow";
|
|
77
|
+
}
|
|
78
|
+
function isStickyNote(value) {
|
|
79
|
+
if (!isRecord(value)) return false;
|
|
80
|
+
return typeof value.id === "string" && typeof value.title === "string" && typeof value.body === "string" && typeof value.createdAt === "string" && typeof value.updatedAt === "string" && normalizeColor(value.color) === value.color;
|
|
81
|
+
}
|
|
82
|
+
function isCalendarEvent(value) {
|
|
83
|
+
if (!isRecord(value)) return false;
|
|
84
|
+
return typeof value.id === "string" && typeof value.title === "string" && normalizeDateKey(value.date) === value.date && typeof value.time === "string" && typeof value.notes === "string" && typeof value.createdAt === "string" && normalizeColor(value.color) === value.color;
|
|
85
|
+
}
|
|
86
|
+
function isStickyNoteArray(value) {
|
|
87
|
+
return Array.isArray(value) && value.every(isStickyNote);
|
|
88
|
+
}
|
|
89
|
+
function isCalendarEventArray(value) {
|
|
90
|
+
return Array.isArray(value) && value.every(isCalendarEvent);
|
|
91
|
+
}
|
|
92
|
+
function readNotes() {
|
|
93
|
+
return readJson(NOTES_KEY, DEFAULT_NOTES, isStickyNoteArray);
|
|
94
|
+
}
|
|
95
|
+
function writeNotes(notes) {
|
|
96
|
+
writeJson(NOTES_KEY, notes);
|
|
97
|
+
}
|
|
98
|
+
function readEvents() {
|
|
99
|
+
return readJson(CALENDAR_EVENTS_KEY, DEFAULT_EVENTS, isCalendarEventArray);
|
|
100
|
+
}
|
|
101
|
+
function writeEvents(events) {
|
|
102
|
+
writeJson(CALENDAR_EVENTS_KEY, events);
|
|
103
|
+
}
|
|
104
|
+
function nowIso() {
|
|
105
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
106
|
+
}
|
|
107
|
+
function makeId(prefix) {
|
|
108
|
+
const cryptoObject = globalThis.crypto;
|
|
109
|
+
if (typeof cryptoObject?.randomUUID === "function") {
|
|
110
|
+
return `${prefix}-${cryptoObject.randomUUID()}`;
|
|
111
|
+
}
|
|
112
|
+
return `${prefix}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
113
|
+
}
|
|
114
|
+
function todayDateKey(date = /* @__PURE__ */ new Date()) {
|
|
115
|
+
return date.toISOString().slice(0, 10);
|
|
116
|
+
}
|
|
117
|
+
function normalizeDateKey(value) {
|
|
118
|
+
if (typeof value !== "string") return null;
|
|
119
|
+
const match = DATE_KEY_PATTERN.exec(value.trim());
|
|
120
|
+
if (!match) return null;
|
|
121
|
+
const year = Number(match[1]);
|
|
122
|
+
const month = Number(match[2]);
|
|
123
|
+
const day = Number(match[3]);
|
|
124
|
+
if (year < 1e3 || month < 1 || month > 12 || day < 1 || day > 31) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
128
|
+
if (date.getUTCFullYear() !== year || date.getUTCMonth() !== month - 1 || date.getUTCDate() !== day) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return date.toISOString().slice(0, 10);
|
|
132
|
+
}
|
|
133
|
+
function readSelectedDate() {
|
|
134
|
+
return normalizeDateKey(readText(CALENDAR_CURSOR_KEY, "")) ?? todayDateKey();
|
|
135
|
+
}
|
|
136
|
+
function writeSelectedDate(date) {
|
|
137
|
+
writeText(CALENDAR_CURSOR_KEY, date);
|
|
138
|
+
}
|
|
139
|
+
function simpleViewsSnapshot() {
|
|
140
|
+
return {
|
|
141
|
+
notes: readNotes(),
|
|
142
|
+
events: readEvents(),
|
|
143
|
+
selectedDate: readSelectedDate()
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function applySimpleViewsSnapshot(snapshot, options = {}) {
|
|
147
|
+
const hasLocalData = readNotes().length > 0 || readEvents().length > 0;
|
|
148
|
+
if (options.preserveLocalDataOnEmpty && hasLocalData && snapshot.notes.length === 0 && snapshot.events.length === 0) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
writeNotes(snapshot.notes);
|
|
152
|
+
writeEvents(snapshot.events);
|
|
153
|
+
writeSelectedDate(snapshot.selectedDate);
|
|
154
|
+
}
|
|
155
|
+
function isSimpleViewsSnapshot(value) {
|
|
156
|
+
if (!isRecord(value)) return false;
|
|
157
|
+
return isStickyNoteArray(value.notes) && isCalendarEventArray(value.events) && normalizeDateKey(value.selectedDate) === value.selectedDate;
|
|
158
|
+
}
|
|
159
|
+
export {
|
|
160
|
+
CALENDAR_CURSOR_KEY,
|
|
161
|
+
CALENDAR_EVENTS_KEY,
|
|
162
|
+
NOTES_KEY,
|
|
163
|
+
SIMPLE_VIEWS_EVENT,
|
|
164
|
+
applySimpleViewsSnapshot,
|
|
165
|
+
isSimpleViewsSnapshot,
|
|
166
|
+
makeId,
|
|
167
|
+
normalizeColor,
|
|
168
|
+
normalizeDateKey,
|
|
169
|
+
nowIso,
|
|
170
|
+
readEvents,
|
|
171
|
+
readNotes,
|
|
172
|
+
readSelectedDate,
|
|
173
|
+
simpleViewsSnapshot,
|
|
174
|
+
todayDateKey,
|
|
175
|
+
writeEvents,
|
|
176
|
+
writeNotes,
|
|
177
|
+
writeSelectedDate
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/storage.ts"],"sourcesContent":["export type StickyColor = \"yellow\" | \"green\" | \"rose\" | \"slate\";\n\nexport interface StickyNote {\n id: string;\n title: string;\n body: string;\n color: StickyColor;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface SimpleCalendarEvent {\n id: string;\n title: string;\n date: string;\n time: string;\n notes: string;\n color: StickyColor;\n createdAt: string;\n}\n\nexport interface SimpleViewsSnapshot {\n notes: StickyNote[];\n events: SimpleCalendarEvent[];\n selectedDate: string;\n}\n\nexport const SIMPLE_VIEWS_EVENT = \"eliza:simple-views:update\";\nexport const NOTES_KEY = \"eliza.simpleViews.notes.v2\";\nexport const CALENDAR_EVENTS_KEY = \"eliza.simpleViews.calendar.events.v2\";\nexport const CALENDAR_CURSOR_KEY = \"eliza.simpleViews.calendar.cursor.v2\";\n\nconst DEFAULT_NOTES: StickyNote[] = [];\nconst DEFAULT_EVENTS: SimpleCalendarEvent[] = [];\nconst DATE_KEY_PATTERN = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst serverJsonStore = new Map<string, unknown>();\nconst serverTextStore = new Map<string, string>();\n\nfunction browserStorage(): Storage | null {\n if (typeof window === \"undefined\") return null;\n try {\n return window.localStorage ?? null;\n } catch {\n return null;\n }\n}\n\nfunction emitSimpleViewsUpdate(key: string): void {\n if (typeof window === \"undefined\") return;\n window.dispatchEvent(\n new CustomEvent(SIMPLE_VIEWS_EVENT, { detail: { key } }),\n );\n}\n\nfunction readJson<T>(\n key: string,\n fallback: T,\n isValid: (value: unknown) => value is T,\n): T {\n const storage = browserStorage();\n if (!storage) {\n const value = serverJsonStore.get(key);\n return isValid(value) ? value : fallback;\n }\n\n try {\n const raw = storage.getItem(key);\n if (!raw) return fallback;\n const parsed = JSON.parse(raw) as unknown;\n return isValid(parsed) ? parsed : fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction writeJson<T>(key: string, value: T): void {\n const storage = browserStorage();\n if (!storage) {\n serverJsonStore.set(key, value);\n return;\n }\n\n try {\n storage.setItem(key, JSON.stringify(value));\n emitSimpleViewsUpdate(key);\n } catch {\n // Storage can be unavailable or quota-limited; keep the UI alive.\n }\n}\n\nfunction readText(key: string, fallback: string): string {\n const storage = browserStorage();\n if (!storage) return serverTextStore.get(key) ?? fallback;\n\n try {\n return storage.getItem(key) ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction writeText(key: string, value: string): void {\n const storage = browserStorage();\n if (!storage) {\n serverTextStore.set(key, value);\n return;\n }\n\n try {\n storage.setItem(key, value);\n emitSimpleViewsUpdate(key);\n } catch {\n // Storage can be unavailable or quota-limited; keep the UI alive.\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function normalizeColor(value: unknown): StickyColor {\n return value === \"green\" ||\n value === \"rose\" ||\n value === \"pink\" ||\n value === \"slate\"\n ? value === \"pink\"\n ? \"rose\"\n : value\n : \"yellow\";\n}\n\nfunction isStickyNote(value: unknown): value is StickyNote {\n if (!isRecord(value)) return false;\n return (\n typeof value.id === \"string\" &&\n typeof value.title === \"string\" &&\n typeof value.body === \"string\" &&\n typeof value.createdAt === \"string\" &&\n typeof value.updatedAt === \"string\" &&\n normalizeColor(value.color) === value.color\n );\n}\n\nfunction isCalendarEvent(value: unknown): value is SimpleCalendarEvent {\n if (!isRecord(value)) return false;\n return (\n typeof value.id === \"string\" &&\n typeof value.title === \"string\" &&\n normalizeDateKey(value.date) === value.date &&\n typeof value.time === \"string\" &&\n typeof value.notes === \"string\" &&\n typeof value.createdAt === \"string\" &&\n normalizeColor(value.color) === value.color\n );\n}\n\nfunction isStickyNoteArray(value: unknown): value is StickyNote[] {\n return Array.isArray(value) && value.every(isStickyNote);\n}\n\nfunction isCalendarEventArray(value: unknown): value is SimpleCalendarEvent[] {\n return Array.isArray(value) && value.every(isCalendarEvent);\n}\n\nexport function readNotes(): StickyNote[] {\n return readJson(NOTES_KEY, DEFAULT_NOTES, isStickyNoteArray);\n}\n\nexport function writeNotes(notes: StickyNote[]): void {\n writeJson(NOTES_KEY, notes);\n}\n\nexport function readEvents(): SimpleCalendarEvent[] {\n return readJson(CALENDAR_EVENTS_KEY, DEFAULT_EVENTS, isCalendarEventArray);\n}\n\nexport function writeEvents(events: SimpleCalendarEvent[]): void {\n writeJson(CALENDAR_EVENTS_KEY, events);\n}\n\nexport function nowIso(): string {\n return new Date().toISOString();\n}\n\nexport function makeId(prefix: string): string {\n const cryptoObject = globalThis.crypto;\n if (typeof cryptoObject?.randomUUID === \"function\") {\n return `${prefix}-${cryptoObject.randomUUID()}`;\n }\n return `${prefix}-${Date.now().toString(36)}-${Math.random()\n .toString(36)\n .slice(2, 8)}`;\n}\n\nexport function todayDateKey(date = new Date()): string {\n return date.toISOString().slice(0, 10);\n}\n\nexport function normalizeDateKey(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const match = DATE_KEY_PATTERN.exec(value.trim());\n if (!match) return null;\n\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (year < 1000 || month < 1 || month > 12 || day < 1 || day > 31) {\n return null;\n }\n\n const date = new Date(Date.UTC(year, month - 1, day));\n if (\n date.getUTCFullYear() !== year ||\n date.getUTCMonth() !== month - 1 ||\n date.getUTCDate() !== day\n ) {\n return null;\n }\n return date.toISOString().slice(0, 10);\n}\n\nexport function readSelectedDate(): string {\n return normalizeDateKey(readText(CALENDAR_CURSOR_KEY, \"\")) ?? todayDateKey();\n}\n\nexport function writeSelectedDate(date: string): void {\n writeText(CALENDAR_CURSOR_KEY, date);\n}\n\nexport function simpleViewsSnapshot(): SimpleViewsSnapshot {\n return {\n notes: readNotes(),\n events: readEvents(),\n selectedDate: readSelectedDate(),\n };\n}\n\nexport function applySimpleViewsSnapshot(\n snapshot: SimpleViewsSnapshot,\n options: { preserveLocalDataOnEmpty?: boolean } = {},\n): void {\n const hasLocalData = readNotes().length > 0 || readEvents().length > 0;\n if (\n options.preserveLocalDataOnEmpty &&\n hasLocalData &&\n snapshot.notes.length === 0 &&\n snapshot.events.length === 0\n ) {\n return;\n }\n\n writeNotes(snapshot.notes);\n writeEvents(snapshot.events);\n writeSelectedDate(snapshot.selectedDate);\n}\n\nexport function isSimpleViewsSnapshot(\n value: unknown,\n): value is SimpleViewsSnapshot {\n if (!isRecord(value)) return false;\n return (\n isStickyNoteArray(value.notes) &&\n isCalendarEventArray(value.events) &&\n normalizeDateKey(value.selectedDate) === value.selectedDate\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/ui.d.ts
ADDED
package/dist/ui.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.tsx"],"names":[],"mappings":"AAyZA,wBAAgB,SAAS,4CAkKxB;AA4ND,wBAAgB,kBAAkB,4CAqSjC"}
|