@caretcms/core 0.1.2 → 0.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/README.md +109 -13
- package/dist/contracts.d.ts +1 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +1 -0
- package/dist/contracts.js.map +1 -1
- package/dist/index.d.ts +31 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +146 -30
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +17 -6
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +57 -14
- package/dist/loader.js.map +1 -1
- package/dist/markdown/block-context.d.ts +21 -0
- package/dist/markdown/block-context.d.ts.map +1 -0
- package/dist/markdown/block-context.js +27 -0
- package/dist/markdown/block-context.js.map +1 -0
- package/dist/markdown/canonical-body.d.ts +30 -0
- package/dist/markdown/canonical-body.d.ts.map +1 -0
- package/dist/markdown/canonical-body.js +54 -0
- package/dist/markdown/canonical-body.js.map +1 -0
- package/dist/markdown/contracts.d.ts +66 -0
- package/dist/markdown/contracts.d.ts.map +1 -0
- package/dist/markdown/contracts.js +102 -0
- package/dist/markdown/contracts.js.map +1 -0
- package/dist/markdown/html-to-snodes.d.ts +26 -0
- package/dist/markdown/html-to-snodes.d.ts.map +1 -0
- package/dist/markdown/html-to-snodes.js +118 -0
- package/dist/markdown/html-to-snodes.js.map +1 -0
- package/dist/markdown/remark.d.ts +35 -0
- package/dist/markdown/remark.d.ts.map +1 -0
- package/dist/markdown/remark.js +66 -0
- package/dist/markdown/remark.js.map +1 -0
- package/dist/markdown/satteri.d.ts +19 -0
- package/dist/markdown/satteri.d.ts.map +1 -0
- package/dist/markdown/satteri.js +144 -0
- package/dist/markdown/satteri.js.map +1 -0
- package/dist/markdown/serialize.d.ts +60 -0
- package/dist/markdown/serialize.d.ts.map +1 -0
- package/dist/markdown/serialize.js +264 -0
- package/dist/markdown/serialize.js.map +1 -0
- package/dist/markdown/splice.d.ts +32 -0
- package/dist/markdown/splice.d.ts.map +1 -0
- package/dist/markdown/splice.js +44 -0
- package/dist/markdown/splice.js.map +1 -0
- package/dist/markdown/stamp.d.ts +68 -0
- package/dist/markdown/stamp.d.ts.map +1 -0
- package/dist/markdown/stamp.js +131 -0
- package/dist/markdown/stamp.js.map +1 -0
- package/dist/runtime/auth/rate-limiter.d.ts.map +1 -1
- package/dist/runtime/auth/rate-limiter.js +5 -0
- package/dist/runtime/auth/rate-limiter.js.map +1 -1
- package/dist/runtime/auth/session.d.ts +3 -3
- package/dist/runtime/auth/session.d.ts.map +1 -1
- package/dist/runtime/auth/session.js +68 -21
- package/dist/runtime/auth/session.js.map +1 -1
- package/dist/runtime/config.d.ts +3 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +4 -1
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/content.d.ts.map +1 -1
- package/dist/runtime/content.js +4 -2
- package/dist/runtime/content.js.map +1 -1
- package/dist/runtime/i18n.d.ts +86 -0
- package/dist/runtime/i18n.d.ts.map +1 -0
- package/dist/runtime/i18n.js +168 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/middleware.d.ts.map +1 -1
- package/dist/runtime/middleware.js +61 -6
- package/dist/runtime/middleware.js.map +1 -1
- package/dist/runtime/mutations/contracts.d.ts +28 -1
- package/dist/runtime/mutations/contracts.d.ts.map +1 -1
- package/dist/runtime/mutations/contracts.js +76 -0
- package/dist/runtime/mutations/contracts.js.map +1 -1
- package/dist/runtime/mutations/engine.d.ts +6 -1
- package/dist/runtime/mutations/engine.d.ts.map +1 -1
- package/dist/runtime/mutations/engine.js +271 -51
- package/dist/runtime/mutations/engine.js.map +1 -1
- package/dist/runtime/providers.d.ts +2 -1
- package/dist/runtime/providers.d.ts.map +1 -1
- package/dist/runtime/providers.js +7 -1
- package/dist/runtime/providers.js.map +1 -1
- package/dist/runtime/publish.d.ts +13 -1
- package/dist/runtime/publish.d.ts.map +1 -1
- package/dist/runtime/publish.js +80 -4
- package/dist/runtime/publish.js.map +1 -1
- package/dist/runtime/request-context.d.ts +14 -2
- package/dist/runtime/request-context.d.ts.map +1 -1
- package/dist/runtime/request-context.js +7 -1
- package/dist/runtime/request-context.js.map +1 -1
- package/dist/runtime/rewrite.d.ts.map +1 -1
- package/dist/runtime/rewrite.js +109 -3
- package/dist/runtime/rewrite.js.map +1 -1
- package/dist/runtime/rich-allowlist.d.ts.map +1 -1
- package/dist/runtime/rich-allowlist.js +5 -1
- package/dist/runtime/rich-allowlist.js.map +1 -1
- package/dist/runtime/routes/admin-entry.d.ts.map +1 -1
- package/dist/runtime/routes/admin-entry.js +114 -18
- package/dist/runtime/routes/admin-entry.js.map +1 -1
- package/dist/runtime/routes/admin.d.ts.map +1 -1
- package/dist/runtime/routes/admin.js +33 -15
- package/dist/runtime/routes/admin.js.map +1 -1
- package/dist/runtime/routes/auth-login.d.ts.map +1 -1
- package/dist/runtime/routes/auth-login.js +4 -0
- package/dist/runtime/routes/auth-login.js.map +1 -1
- package/dist/runtime/routes/auth-logout.d.ts.map +1 -1
- package/dist/runtime/routes/auth-logout.js +7 -2
- package/dist/runtime/routes/auth-logout.js.map +1 -1
- package/dist/runtime/routes/auth-session.d.ts.map +1 -1
- package/dist/runtime/routes/auth-session.js +4 -2
- package/dist/runtime/routes/auth-session.js.map +1 -1
- package/dist/runtime/routes/collection-list.d.ts.map +1 -1
- package/dist/runtime/routes/collection-list.js +64 -41
- package/dist/runtime/routes/collection-list.js.map +1 -1
- package/dist/runtime/routes/entries.d.ts.map +1 -1
- package/dist/runtime/routes/entries.js +16 -6
- package/dist/runtime/routes/entries.js.map +1 -1
- package/dist/runtime/routes/history.d.ts.map +1 -1
- package/dist/runtime/routes/history.js +50 -22
- package/dist/runtime/routes/history.js.map +1 -1
- package/dist/runtime/routes/mutate.d.ts.map +1 -1
- package/dist/runtime/routes/mutate.js +40 -6
- package/dist/runtime/routes/mutate.js.map +1 -1
- package/dist/runtime/routes/publish.d.ts.map +1 -1
- package/dist/runtime/routes/publish.js +5 -2
- package/dist/runtime/routes/publish.js.map +1 -1
- package/dist/runtime/routes/schema.d.ts.map +1 -1
- package/dist/runtime/routes/schema.js +11 -3
- package/dist/runtime/routes/schema.js.map +1 -1
- package/dist/runtime/routes/studio-home.d.ts.map +1 -1
- package/dist/runtime/routes/studio-home.js +38 -19
- package/dist/runtime/routes/studio-home.js.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.d.ts.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.js +11 -1
- package/dist/runtime/routes/theme-stylesheet.js.map +1 -1
- package/dist/runtime/schema-registry.d.ts +8 -1
- package/dist/runtime/schema-registry.d.ts.map +1 -1
- package/dist/runtime/schema-registry.js +47 -3
- package/dist/runtime/schema-registry.js.map +1 -1
- package/dist/runtime/storage/atomic-write.d.ts.map +1 -1
- package/dist/runtime/storage/atomic-write.js +8 -3
- package/dist/runtime/storage/atomic-write.js.map +1 -1
- package/dist/runtime/storage/markdown-adapter.d.ts +19 -0
- package/dist/runtime/storage/markdown-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/markdown-adapter.js +41 -0
- package/dist/runtime/storage/markdown-adapter.js.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.d.ts +8 -0
- package/dist/runtime/storage/session-overlay-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.js +24 -2
- package/dist/runtime/storage/session-overlay-adapter.js.map +1 -1
- package/dist/runtime/themes/preset-tokens.js +4 -4
- package/dist/runtime/themes/preset-tokens.js.map +1 -1
- package/dist/runtime/utils.d.ts +10 -0
- package/dist/runtime/utils.d.ts.map +1 -1
- package/dist/runtime/utils.js +16 -0
- package/dist/runtime/utils.js.map +1 -1
- package/dist/runtime/views/studio-layout.d.ts +3 -0
- package/dist/runtime/views/studio-layout.d.ts.map +1 -1
- package/dist/runtime/views/studio-layout.js +36 -13
- package/dist/runtime/views/studio-layout.js.map +1 -1
- package/dist/schema-utils.d.ts +7 -0
- package/dist/schema-utils.d.ts.map +1 -1
- package/dist/schema-utils.js +143 -0
- package/dist/schema-utils.js.map +1 -1
- package/dist/types.d.ts +83 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/cms/admin-entry.css +135 -13
- package/static/cms/admin-entry.js +509 -86
- package/static/cms/editor/guards.js +1 -1
- package/static/cms/editor/image-edit.js +42 -11
- package/static/cms/editor/image.css +7 -1
- package/static/cms/editor/md-block-edit.js +176 -0
- package/static/cms/editor/md-serialize.js +301 -0
- package/static/cms/editor/panel.css +69 -25
- package/static/cms/editor/panel.js +58 -1
- package/static/cms/editor/rich-toolbar.js +4 -3
- package/static/cms/editor/sanitize.js +2 -1
- package/static/cms/editor/sync.js +277 -56
- package/static/cms/editor/text-edit.js +68 -17
- package/static/cms/editor/text-link-interactions.js +4 -4
- package/static/cms/editor/toast.css +114 -2
- package/static/cms/editor/toast.js +121 -22
- package/static/cms/editor/tokens-and-text.css +73 -3
- package/static/cms/editor/toolbar.css +19 -6
- package/static/cms/editor/toolbar.js +64 -23
- package/static/cms/editor.css +1 -1
- package/static/cms/editor.js +14 -3
- package/static/cms/studio-tokens.css +4 -4
- package/static/cms/studio.css +24 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
export const EN_STUDIO_MESSAGES = {
|
|
2
|
+
"nav.studio": "Studio",
|
|
3
|
+
"nav.signOut": "Sign out",
|
|
4
|
+
"home.title": "Content Studio",
|
|
5
|
+
"home.intro": "Manage your collections and entries.",
|
|
6
|
+
"home.empty": "No collections yet. Create one from Studio, edit any data-caret element on your site, or run npx @caretcms/caretize to make existing pages editable.",
|
|
7
|
+
"count.entry": "entry",
|
|
8
|
+
"count.entries": "entries",
|
|
9
|
+
"common.error": "Error",
|
|
10
|
+
"common.loading": "Loading…",
|
|
11
|
+
"common.close": "Close",
|
|
12
|
+
"common.cancel": "Cancel",
|
|
13
|
+
"common.retry": "Retry",
|
|
14
|
+
"common.saving": "Saving…",
|
|
15
|
+
"collection.search": "Search",
|
|
16
|
+
"collection.searchPlaceholder": "Search entries…",
|
|
17
|
+
"collection.reorder": "Reorder",
|
|
18
|
+
"collection.reordering": "Reordering…",
|
|
19
|
+
"collection.new": "+ New",
|
|
20
|
+
"collection.noEntries": "No entries yet.",
|
|
21
|
+
"collection.createFirst": "Create First Entry",
|
|
22
|
+
"collection.failed": "Failed to load entries.",
|
|
23
|
+
"collection.saveOrder": "Save Order",
|
|
24
|
+
"collection.newEntry": "New Entry",
|
|
25
|
+
"collection.entryId": "Entry ID (slug)",
|
|
26
|
+
"collection.entryIdPlaceholder": "e.g. my-first-entry",
|
|
27
|
+
"collection.idHint": "Use a permanent internal address such as quiet-structures. Lowercase letters, numbers, and hyphens only.",
|
|
28
|
+
"collection.publishHint": "You’ll add the content on the next screen. Collections with a Published switch remain hidden until you turn it on and Save.",
|
|
29
|
+
"collection.create": "Create",
|
|
30
|
+
"collection.untitled": "Untitled",
|
|
31
|
+
"collection.published": "Published",
|
|
32
|
+
"collection.unpublished": "Unpublished",
|
|
33
|
+
"collection.invalid": "Invalid stored data — open to repair",
|
|
34
|
+
"collection.invalidId": "Use lowercase letters, numbers, and hyphens only.",
|
|
35
|
+
"collection.duplicateId": "An entry with this ID already exists.",
|
|
36
|
+
"collection.createFailed": "Failed to create entry. Try again.",
|
|
37
|
+
"entry.notFound": "Entry not found.",
|
|
38
|
+
"entry.goBack": "Go back",
|
|
39
|
+
"entry.savingLive": "Saving live",
|
|
40
|
+
"entry.savingPreview": "Saving to private preview",
|
|
41
|
+
"entry.preview": "Preview site ↗",
|
|
42
|
+
"entry.history": "History",
|
|
43
|
+
"entry.delete": "Delete",
|
|
44
|
+
"entry.saveLive": "Save live",
|
|
45
|
+
"entry.saveDraft": "Save draft",
|
|
46
|
+
"entry.guideTitle": "How editing works",
|
|
47
|
+
"entry.guideCopy": "Edit any field, add or remove repeatable rows, then choose Save. In the sidebar Studio, text and image edits preview on the page as you work; Save confirms them and refreshes the visual preview for structural changes. Click an image preview to replace it, or paste an image URL. The Published switch controls whether signed-out visitors can see an entry.",
|
|
48
|
+
"entry.versionHistory": "Version History",
|
|
49
|
+
"entry.deleteTitle": "Delete Entry",
|
|
50
|
+
"entry.deleteCopy": "Permanently delete this entry? A snapshot will be saved to history for recovery.",
|
|
51
|
+
"entry.allSaved": "All changes saved",
|
|
52
|
+
"entry.unsaved": "Unsaved changes",
|
|
53
|
+
"entry.savingChanges": "Saving changes…",
|
|
54
|
+
"entry.saved": "Saved",
|
|
55
|
+
"entry.liveConfirm": "Save these changes directly to the live site?",
|
|
56
|
+
"entry.validationFailed": "Validation failed",
|
|
57
|
+
"entry.changedElsewhere": "Changed elsewhere — Save again to overwrite",
|
|
58
|
+
"entry.deleteFailed": "Delete failed",
|
|
59
|
+
"entry.deleting": "Deleting…",
|
|
60
|
+
"entry.newGuideTitle": "Entry created with safe defaults",
|
|
61
|
+
"entry.newGuideCopy": "Fill in the fields below. Save becomes available after your first change. In the sidebar Studio, text and image edits preview on the page as you work; Save confirms them and refreshes the visual preview for structural changes. The Published switch controls whether signed-out visitors can see this entry.",
|
|
62
|
+
"field.add": "Add",
|
|
63
|
+
"field.remove": "Remove",
|
|
64
|
+
"field.moveUp": "Move up",
|
|
65
|
+
"field.moveDown": "Move down",
|
|
66
|
+
"field.drag": "Drag to reorder",
|
|
67
|
+
"field.replaceImage": "Replace image",
|
|
68
|
+
"field.uploadOrReplaceImage": "Upload or replace image",
|
|
69
|
+
"field.chooseImage": "Choose an image",
|
|
70
|
+
"login.title": "Sign in",
|
|
71
|
+
"login.password": "Password",
|
|
72
|
+
"login.placeholder": "Enter editor password",
|
|
73
|
+
"login.submit": "Sign in",
|
|
74
|
+
"login.invalid": "Invalid password.",
|
|
75
|
+
"login.status": "Sign in to manage content.",
|
|
76
|
+
"login.noPassword": "Caret needs an editor password before you can sign in.",
|
|
77
|
+
"login.devPassword": "Temporary dev password active — check your terminal to sign in.",
|
|
78
|
+
"login.back": "← Back to site",
|
|
79
|
+
"login.failed": "Login failed",
|
|
80
|
+
};
|
|
81
|
+
const ES_STUDIO_MESSAGES = {
|
|
82
|
+
"nav.studio": "Estudio",
|
|
83
|
+
"nav.signOut": "Cerrar sesión",
|
|
84
|
+
"home.title": "Estudio de contenido",
|
|
85
|
+
"home.intro": "Administra tus colecciones y entradas.",
|
|
86
|
+
"home.empty": "Todavía no hay colecciones. Crea una desde el Estudio, edita un elemento data-caret del sitio o ejecuta npx @caretcms/caretize para hacer editables las páginas existentes.",
|
|
87
|
+
"count.entry": "entrada",
|
|
88
|
+
"count.entries": "entradas",
|
|
89
|
+
"common.error": "Error",
|
|
90
|
+
"common.loading": "Cargando…",
|
|
91
|
+
"common.close": "Cerrar",
|
|
92
|
+
"common.cancel": "Cancelar",
|
|
93
|
+
"common.retry": "Reintentar",
|
|
94
|
+
"common.saving": "Guardando…",
|
|
95
|
+
"collection.search": "Buscar",
|
|
96
|
+
"collection.searchPlaceholder": "Buscar entradas…",
|
|
97
|
+
"collection.reorder": "Reordenar",
|
|
98
|
+
"collection.reordering": "Reordenando…",
|
|
99
|
+
"collection.new": "+ Nueva",
|
|
100
|
+
"collection.noEntries": "Todavía no hay entradas.",
|
|
101
|
+
"collection.createFirst": "Crear la primera entrada",
|
|
102
|
+
"collection.failed": "No se pudieron cargar las entradas.",
|
|
103
|
+
"collection.saveOrder": "Guardar orden",
|
|
104
|
+
"collection.newEntry": "Nueva entrada",
|
|
105
|
+
"collection.entryId": "ID de la entrada (slug)",
|
|
106
|
+
"collection.entryIdPlaceholder": "p. ej., mi-primera-entrada",
|
|
107
|
+
"collection.idHint": "Usa una dirección interna permanente como estructuras-tranquilas. Solo letras minúsculas, números y guiones.",
|
|
108
|
+
"collection.publishHint": "Agregarás el contenido en la siguiente pantalla. Las entradas con el interruptor Publicado permanecen ocultas hasta que lo actives y guardes.",
|
|
109
|
+
"collection.create": "Crear",
|
|
110
|
+
"collection.untitled": "Sin título",
|
|
111
|
+
"collection.published": "Publicado",
|
|
112
|
+
"collection.unpublished": "Sin publicar",
|
|
113
|
+
"collection.invalid": "Datos guardados no válidos — abre para corregir",
|
|
114
|
+
"collection.invalidId": "Usa solo letras minúsculas, números y guiones.",
|
|
115
|
+
"collection.duplicateId": "Ya existe una entrada con este ID.",
|
|
116
|
+
"collection.createFailed": "No se pudo crear la entrada. Inténtalo de nuevo.",
|
|
117
|
+
"entry.notFound": "No se encontró la entrada.",
|
|
118
|
+
"entry.goBack": "Volver",
|
|
119
|
+
"entry.savingLive": "Guardado directo en el sitio",
|
|
120
|
+
"entry.savingPreview": "Guardado en vista previa privada",
|
|
121
|
+
"entry.preview": "Ver sitio ↗",
|
|
122
|
+
"entry.history": "Historial",
|
|
123
|
+
"entry.delete": "Eliminar",
|
|
124
|
+
"entry.saveLive": "Guardar en vivo",
|
|
125
|
+
"entry.saveDraft": "Guardar borrador",
|
|
126
|
+
"entry.guideTitle": "Cómo funciona la edición",
|
|
127
|
+
"entry.guideCopy": "Edita cualquier campo, agrega o elimina filas repetibles y luego guarda. En el Estudio lateral, los cambios de texto e imagen aparecen mientras trabajas; Guardar los confirma y actualiza la vista para los cambios estructurales. Haz clic en una imagen para reemplazarla o pega una URL. El interruptor Publicado controla si los visitantes pueden ver la entrada.",
|
|
128
|
+
"entry.versionHistory": "Historial de versiones",
|
|
129
|
+
"entry.deleteTitle": "Eliminar entrada",
|
|
130
|
+
"entry.deleteCopy": "¿Eliminar esta entrada permanentemente? Se guardará una copia en el historial para poder recuperarla.",
|
|
131
|
+
"entry.allSaved": "Todos los cambios están guardados",
|
|
132
|
+
"entry.unsaved": "Cambios sin guardar",
|
|
133
|
+
"entry.savingChanges": "Guardando cambios…",
|
|
134
|
+
"entry.saved": "Guardado",
|
|
135
|
+
"entry.liveConfirm": "¿Guardar estos cambios directamente en el sitio público?",
|
|
136
|
+
"entry.validationFailed": "La validación falló",
|
|
137
|
+
"entry.changedElsewhere": "Hubo cambios en otro lugar — vuelve a guardar para sobrescribir",
|
|
138
|
+
"entry.deleteFailed": "No se pudo eliminar",
|
|
139
|
+
"entry.deleting": "Eliminando…",
|
|
140
|
+
"entry.newGuideTitle": "Entrada creada con valores seguros",
|
|
141
|
+
"entry.newGuideCopy": "Completa los campos. Guardar estará disponible después del primer cambio. En el Estudio lateral, los cambios de texto e imagen aparecen mientras trabajas; Guardar los confirma y actualiza la vista para los cambios estructurales. El interruptor Publicado controla si los visitantes pueden ver esta entrada.",
|
|
142
|
+
"field.add": "Agregar",
|
|
143
|
+
"field.remove": "Eliminar",
|
|
144
|
+
"field.moveUp": "Mover arriba",
|
|
145
|
+
"field.moveDown": "Mover abajo",
|
|
146
|
+
"field.drag": "Arrastrar para reordenar",
|
|
147
|
+
"field.replaceImage": "Reemplazar imagen",
|
|
148
|
+
"field.uploadOrReplaceImage": "Subir o reemplazar imagen",
|
|
149
|
+
"field.chooseImage": "Elegir una imagen",
|
|
150
|
+
"login.title": "Iniciar sesión",
|
|
151
|
+
"login.password": "Contraseña",
|
|
152
|
+
"login.placeholder": "Ingresa la contraseña de edición",
|
|
153
|
+
"login.submit": "Iniciar sesión",
|
|
154
|
+
"login.invalid": "Contraseña incorrecta.",
|
|
155
|
+
"login.status": "Inicia sesión para administrar el contenido.",
|
|
156
|
+
"login.noPassword": "Caret necesita una contraseña de edición antes de iniciar sesión.",
|
|
157
|
+
"login.devPassword": "La contraseña temporal de desarrollo está activa — consúltala en la terminal.",
|
|
158
|
+
"login.back": "← Volver al sitio",
|
|
159
|
+
"login.failed": "No se pudo iniciar sesión",
|
|
160
|
+
};
|
|
161
|
+
export function resolveStudioDictionary(locale = "en", overrides = {}) {
|
|
162
|
+
return {
|
|
163
|
+
...EN_STUDIO_MESSAGES,
|
|
164
|
+
...(locale === "es" ? ES_STUDIO_MESSAGES : {}),
|
|
165
|
+
...overrides,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/runtime/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"AAWA,OAAO,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAqFF,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AA4B9C,wBAAsB,SAAS,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,QAAQ,CAAC,CA+JnB"}
|
|
@@ -5,6 +5,7 @@ import { runWithRequestContext } from "./request-context.js";
|
|
|
5
5
|
import { rewriteCaretAttributes } from "./rewrite.js";
|
|
6
6
|
import { hasStega, stegaClean } from "./stega.js";
|
|
7
7
|
import { SessionOverlayAdapter } from "./storage/session-overlay-adapter.js";
|
|
8
|
+
import { EDITOR_ID_RE } from "./storage/id-contracts.js";
|
|
8
9
|
// Side-effect import: registers any user-provided schemas into the schema registry
|
|
9
10
|
import "virtual:caretcms/schemas";
|
|
10
11
|
let _cachedRuntimeEnv;
|
|
@@ -77,9 +78,35 @@ async function resolveRuntimeEnv() {
|
|
|
77
78
|
}
|
|
78
79
|
return _cachedRuntimeEnv;
|
|
79
80
|
}
|
|
81
|
+
async function authenticateIdentity(adapter, request) {
|
|
82
|
+
if (!adapter)
|
|
83
|
+
return null;
|
|
84
|
+
try {
|
|
85
|
+
const identity = await adapter.authenticate(request);
|
|
86
|
+
if (!identity)
|
|
87
|
+
return null;
|
|
88
|
+
if (!EDITOR_ID_RE.test(identity.id)) {
|
|
89
|
+
console.error("[caretcms] Identity adapter returned an unsafe editor id; access denied.");
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
id: identity.id,
|
|
94
|
+
...(typeof identity.name === "string" ? { name: identity.name } : {}),
|
|
95
|
+
...(typeof identity.email === "string" ? { email: identity.email } : {}),
|
|
96
|
+
...(Array.isArray(identity.roles)
|
|
97
|
+
? { roles: identity.roles.filter((role) => typeof role === "string") }
|
|
98
|
+
: {}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error("[caretcms] Identity adapter authentication failed; access denied.", error);
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
80
106
|
export async function onRequest(context, next) {
|
|
81
107
|
const services = await getRuntimeServices();
|
|
82
108
|
const runtimeEnv = await resolveRuntimeEnv();
|
|
109
|
+
const request = context.request ?? new Request("http://localhost/");
|
|
83
110
|
let adapter = services.adapter;
|
|
84
111
|
let uploadHandler = services.uploadHandler;
|
|
85
112
|
let sessionId = null;
|
|
@@ -87,8 +114,15 @@ export async function onRequest(context, next) {
|
|
|
87
114
|
let setCookieHeader = null;
|
|
88
115
|
let overlayActive = false;
|
|
89
116
|
const demoMode = isDemoModeEnabled(runtimeEnv);
|
|
117
|
+
const identity = demoMode
|
|
118
|
+
? null
|
|
119
|
+
: await authenticateIdentity(services.identityAdapter, request);
|
|
120
|
+
if (identity)
|
|
121
|
+
editorId = identity.id;
|
|
122
|
+
else if (!demoMode && !services.identityAdapter) {
|
|
123
|
+
editorId = getEditorId(context);
|
|
124
|
+
}
|
|
90
125
|
if (demoMode) {
|
|
91
|
-
const request = context.request ?? new Request("http://localhost/");
|
|
92
126
|
const resolution = resolveDemoSession(context, request);
|
|
93
127
|
sessionId = resolution.sessionId;
|
|
94
128
|
setCookieHeader = resolution.setCookieHeader;
|
|
@@ -107,10 +141,11 @@ export async function onRequest(context, next) {
|
|
|
107
141
|
else if (isPreviewRequest(context) && services.adapter.makeEditorOverlay) {
|
|
108
142
|
// Draft/preview mode: an authenticated editor opting into preview reads and
|
|
109
143
|
// writes through their per-editor overlay (the public site keeps seeing the
|
|
110
|
-
// base). Keyed by the editor id from the session cookie; absent that
|
|
111
|
-
// no editor session so we leave the
|
|
112
|
-
// flushes the overlay back to the base.
|
|
113
|
-
const id =
|
|
144
|
+
// base). Keyed by the editor id from the session cookie; absent that (an
|
|
145
|
+
// unauthenticated preview request), there's no editor session so we leave the
|
|
146
|
+
// base adapter in place. Publish later flushes the overlay back to the base.
|
|
147
|
+
const id = identity?.id
|
|
148
|
+
?? (services.identityAdapter ? null : getEditorId(context));
|
|
114
149
|
if (id) {
|
|
115
150
|
const overlay = await services.adapter.makeEditorOverlay(id);
|
|
116
151
|
adapter = new SessionOverlayAdapter(services.adapter, overlay);
|
|
@@ -123,8 +158,11 @@ export async function onRequest(context, next) {
|
|
|
123
158
|
uploadHandler,
|
|
124
159
|
sessionId,
|
|
125
160
|
editorId,
|
|
161
|
+
identity,
|
|
162
|
+
identityAuthoritative: services.identityAdapter !== null,
|
|
126
163
|
demoMode,
|
|
127
164
|
overlayActive,
|
|
165
|
+
runtimeEnv,
|
|
128
166
|
editor: false,
|
|
129
167
|
};
|
|
130
168
|
return runWithRequestContext(requestContext, async () => {
|
|
@@ -134,6 +172,7 @@ export async function onRequest(context, next) {
|
|
|
134
172
|
// Mutate the live context object so the loaders see the gate during render.
|
|
135
173
|
requestContext.editor = isEditor;
|
|
136
174
|
context.locals.isEditor = isEditor;
|
|
175
|
+
context.locals.caretIdentity = identity;
|
|
137
176
|
const inner = await next();
|
|
138
177
|
const contentType = inner.headers.get("content-type") ?? "";
|
|
139
178
|
const contentEncoding = inner.headers.get("content-encoding") ?? "";
|
|
@@ -156,7 +195,23 @@ export async function onRequest(context, next) {
|
|
|
156
195
|
// so the two valued forms cover every binding the engine can act on.
|
|
157
196
|
const hasBindings = BINDING_PROBE_RE.test(html);
|
|
158
197
|
if (hasBindings) {
|
|
159
|
-
|
|
198
|
+
// An authenticated editor in server delivery reads live base content
|
|
199
|
+
// (field edits save straight through), but their inline BODY-block
|
|
200
|
+
// edits are always deferred drafts. Preview those on the editor's own
|
|
201
|
+
// requests so a reload shows staged prose instead of silently
|
|
202
|
+
// reverting to the source. ONLY the rewrite needs the overlay — it
|
|
203
|
+
// injects the drafted `__body` HTML into stamped blocks — so loaders
|
|
204
|
+
// and field writes keep using the base adapter and "changes save
|
|
205
|
+
// directly" still holds. Demo/preview already overlay everything via
|
|
206
|
+
// `adapter`; the public (editor === false) always reads the base.
|
|
207
|
+
let rewriteAdapter = adapter;
|
|
208
|
+
if (!overlayActive && requestContext.editor && services.adapter.makeEditorOverlay) {
|
|
209
|
+
const id = editorId ?? getEditorId(context);
|
|
210
|
+
if (id) {
|
|
211
|
+
rewriteAdapter = new SessionOverlayAdapter(services.adapter, await services.adapter.makeEditorOverlay(id));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
html = await rewriteCaretAttributes(html, rewriteAdapter, {
|
|
160
215
|
allowedClasses: services.allowedClasses,
|
|
161
216
|
});
|
|
162
217
|
rewritten = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { StorageAdapter } from "../../types.js";
|
|
2
|
+
import { type MdSrc } from "../../markdown/contracts.js";
|
|
3
|
+
/**
|
|
4
|
+
* Upper bound on an `md_block` HTML payload (UTF-16 code units). A block is a
|
|
5
|
+
* single paragraph/heading/list item; even generous prose stays far below this.
|
|
6
|
+
* A dedicated cap (vs the blanket 1MB JSON body cap) keeps one block edit from
|
|
7
|
+
* dragging megabytes into the draft overlay and every subsequent publish.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MAX_MD_BLOCK_HTML_LENGTH: number;
|
|
2
10
|
export type MutationIssue = {
|
|
3
11
|
path: string;
|
|
4
12
|
code: string;
|
|
@@ -54,6 +62,9 @@ export type CreateCollectionCommand = {
|
|
|
54
62
|
icon?: string;
|
|
55
63
|
creatable?: boolean;
|
|
56
64
|
orderable?: boolean;
|
|
65
|
+
deletable?: boolean;
|
|
66
|
+
singletonId?: string;
|
|
67
|
+
order?: number;
|
|
57
68
|
schema: {
|
|
58
69
|
type: "object";
|
|
59
70
|
properties: Record<string, unknown>;
|
|
@@ -66,7 +77,23 @@ export type DeleteCollectionCommand = {
|
|
|
66
77
|
type: "delete_collection";
|
|
67
78
|
id: string;
|
|
68
79
|
};
|
|
69
|
-
export type
|
|
80
|
+
export type MdBlockCommand = {
|
|
81
|
+
type: "md_block";
|
|
82
|
+
collection: string;
|
|
83
|
+
id: string;
|
|
84
|
+
/** Block identity within the entry body (`data-caret-md` blockPath segment). */
|
|
85
|
+
blockPath: string;
|
|
86
|
+
/** Verified source hint (`data-caret-md-src` value, parsed). */
|
|
87
|
+
src: MdSrc;
|
|
88
|
+
/**
|
|
89
|
+
* The edited block's inline HTML. The ONLY content field — markdown is
|
|
90
|
+
* derived server-side after sanitization, never accepted from the client
|
|
91
|
+
* (client markdown would be spliced into source files verbatim on publish).
|
|
92
|
+
*/
|
|
93
|
+
html: string;
|
|
94
|
+
expectedRevision?: number;
|
|
95
|
+
};
|
|
96
|
+
export type CmsMutationCommand = SaveFieldCommand | PutEntryCommand | DeleteEntryCommand | ReorderEntriesCommand | UpdatePageLayoutCommand | CreateCollectionCommand | DeleteCollectionCommand | MdBlockCommand;
|
|
70
97
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
71
98
|
/**
|
|
72
99
|
* Validate a collection name's *format* (not its existence). A well-formed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { COLLECTION_NAME_RE, ENTRY_ID_RE } from "../storage/id-contracts.js";
|
|
2
|
+
import { BLOCK_PATH_RE, BODY_OVERLAY_KEY, parseMdSrc, } from "../../markdown/contracts.js";
|
|
3
|
+
/**
|
|
4
|
+
* Upper bound on an `md_block` HTML payload (UTF-16 code units). A block is a
|
|
5
|
+
* single paragraph/heading/list item; even generous prose stays far below this.
|
|
6
|
+
* A dedicated cap (vs the blanket 1MB JSON body cap) keeps one block edit from
|
|
7
|
+
* dragging megabytes into the draft overlay and every subsequent publish.
|
|
8
|
+
*/
|
|
9
|
+
export const MAX_MD_BLOCK_HTML_LENGTH = 64 * 1024;
|
|
2
10
|
export function isRecord(value) {
|
|
3
11
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4
12
|
}
|
|
@@ -62,6 +70,12 @@ async function parseSaveFieldCommand(adapter, input) {
|
|
|
62
70
|
if (expectedRevision === null) {
|
|
63
71
|
issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
|
|
64
72
|
}
|
|
73
|
+
// The body-draft map is written ONLY by md_block (whose markdown is derived
|
|
74
|
+
// server-side). A save_field into it would smuggle unvalidated markdown that
|
|
75
|
+
// publish later splices into a source file.
|
|
76
|
+
if (field && (field === BODY_OVERLAY_KEY || field.startsWith(`${BODY_OVERLAY_KEY}.`))) {
|
|
77
|
+
issues.push(issue("field", "reserved_field", `"${BODY_OVERLAY_KEY}" is reserved`));
|
|
78
|
+
}
|
|
65
79
|
if (issues.length > 0 || !collection || !id || !field || typeof value !== "string") {
|
|
66
80
|
return { ok: false, issues };
|
|
67
81
|
}
|
|
@@ -92,6 +106,10 @@ async function parsePutEntryCommand(adapter, input) {
|
|
|
92
106
|
if (expectedRevision === null) {
|
|
93
107
|
issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
|
|
94
108
|
}
|
|
109
|
+
// See parseSaveFieldCommand: only md_block may write the body-draft map.
|
|
110
|
+
if (isRecord(data) && Object.prototype.hasOwnProperty.call(data, BODY_OVERLAY_KEY)) {
|
|
111
|
+
issues.push(issue(`data.${BODY_OVERLAY_KEY}`, "reserved_field", `"${BODY_OVERLAY_KEY}" is reserved`));
|
|
112
|
+
}
|
|
95
113
|
if (issues.length > 0 || !collection || !id || !isRecord(data))
|
|
96
114
|
return { ok: false, issues };
|
|
97
115
|
return {
|
|
@@ -228,6 +246,53 @@ async function parseUpdatePageLayoutCommand(adapter, input) {
|
|
|
228
246
|
},
|
|
229
247
|
};
|
|
230
248
|
}
|
|
249
|
+
async function parseMdBlockCommand(adapter, input) {
|
|
250
|
+
const issues = [];
|
|
251
|
+
const collection = await parseCollection(adapter, input.collection);
|
|
252
|
+
const id = parseEntryId(input.id);
|
|
253
|
+
const blockPath = typeof input.blockPath === "string" ? input.blockPath : null;
|
|
254
|
+
const src = typeof input.src === "string" ? parseMdSrc(input.src) : null;
|
|
255
|
+
const html = input.html;
|
|
256
|
+
const expectedRevision = asOptionalExpectedRevision(input.expectedRevision);
|
|
257
|
+
if (!collection)
|
|
258
|
+
issues.push(issue("collection", "invalid_type", "Invalid collection"));
|
|
259
|
+
if (!id)
|
|
260
|
+
issues.push(issue("id", "invalid_type", "Invalid id"));
|
|
261
|
+
if (!blockPath || !BLOCK_PATH_RE.test(blockPath)) {
|
|
262
|
+
issues.push(issue("blockPath", "invalid_type", "Invalid block path"));
|
|
263
|
+
}
|
|
264
|
+
if (!src)
|
|
265
|
+
issues.push(issue("src", "invalid_type", "Invalid source hint"));
|
|
266
|
+
if (typeof html !== "string") {
|
|
267
|
+
issues.push(issue("html", "invalid_type", "html must be a string"));
|
|
268
|
+
}
|
|
269
|
+
else if (html.length > MAX_MD_BLOCK_HTML_LENGTH) {
|
|
270
|
+
issues.push(issue("html", "too_long", `html exceeds ${MAX_MD_BLOCK_HTML_LENGTH} characters`));
|
|
271
|
+
}
|
|
272
|
+
if (expectedRevision === null) {
|
|
273
|
+
issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
|
|
274
|
+
}
|
|
275
|
+
if (issues.length > 0 ||
|
|
276
|
+
!collection ||
|
|
277
|
+
!id ||
|
|
278
|
+
!blockPath ||
|
|
279
|
+
!src ||
|
|
280
|
+
typeof html !== "string") {
|
|
281
|
+
return { ok: false, issues };
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
ok: true,
|
|
285
|
+
command: {
|
|
286
|
+
type: "md_block",
|
|
287
|
+
collection,
|
|
288
|
+
id,
|
|
289
|
+
blockPath,
|
|
290
|
+
src,
|
|
291
|
+
html,
|
|
292
|
+
expectedRevision: expectedRevision ?? undefined,
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
}
|
|
231
296
|
export async function parseMutationCommand(adapter, input) {
|
|
232
297
|
if (!isRecord(input)) {
|
|
233
298
|
return {
|
|
@@ -257,6 +322,8 @@ export async function parseMutationCommand(adapter, input) {
|
|
|
257
322
|
return parseCreateCollectionCommand(adapter, input);
|
|
258
323
|
case "delete_collection":
|
|
259
324
|
return parseDeleteCollectionCommand(adapter, input);
|
|
325
|
+
case "md_block":
|
|
326
|
+
return parseMdBlockCommand(adapter, input);
|
|
260
327
|
default:
|
|
261
328
|
return {
|
|
262
329
|
ok: false,
|
|
@@ -276,6 +343,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
|
|
|
276
343
|
const icon = typeof input.icon === "string" ? input.icon : undefined;
|
|
277
344
|
const creatable = typeof input.creatable === "boolean" ? input.creatable : undefined;
|
|
278
345
|
const orderable = typeof input.orderable === "boolean" ? input.orderable : undefined;
|
|
346
|
+
const deletable = typeof input.deletable === "boolean" ? input.deletable : undefined;
|
|
347
|
+
const singletonId = input.singletonId === undefined ? undefined : parseEntryId(input.singletonId);
|
|
348
|
+
const order = typeof input.order === "number" && Number.isFinite(input.order) ? input.order : undefined;
|
|
279
349
|
const schema = input.schema;
|
|
280
350
|
if (!id) {
|
|
281
351
|
issues.push(issue("id", "invalid_type", "Collection ID must be lowercase alphanumeric with hyphens/underscores"));
|
|
@@ -286,6 +356,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
|
|
|
286
356
|
if (!isRecord(schema) || schema.type !== "object" || !isRecord(schema.properties)) {
|
|
287
357
|
issues.push(issue("schema", "invalid_type", "Schema must be a valid JSON Schema object with properties"));
|
|
288
358
|
}
|
|
359
|
+
if (input.singletonId !== undefined && !singletonId) {
|
|
360
|
+
issues.push(issue("singletonId", "invalid_type", "singletonId must be a valid entry id"));
|
|
361
|
+
}
|
|
289
362
|
if (issues.length > 0 || !id || !label || !isRecord(schema)) {
|
|
290
363
|
return { ok: false, issues };
|
|
291
364
|
}
|
|
@@ -299,6 +372,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
|
|
|
299
372
|
icon,
|
|
300
373
|
creatable,
|
|
301
374
|
orderable,
|
|
375
|
+
deletable,
|
|
376
|
+
singletonId: singletonId ?? undefined,
|
|
377
|
+
order,
|
|
302
378
|
schema: schema,
|
|
303
379
|
},
|
|
304
380
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { StorageAdapter } from "../../types.js";
|
|
2
2
|
import { type MutationIssue } from "./contracts.js";
|
|
3
|
+
/** Request-scoped extras a route can thread into `executeMutation`. */
|
|
4
|
+
export interface MutationOptions {
|
|
5
|
+
/** Per-tag class allowlist for the md_block HTML re-sanitize. */
|
|
6
|
+
allowedClasses?: Record<string, string[]>;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Run `task` while holding the same per-entry lock the mutation engine uses,
|
|
5
10
|
* so an out-of-band write (e.g. a history restore) is serialized against any
|
|
@@ -25,6 +30,6 @@ type MutationResult = {
|
|
|
25
30
|
status: number;
|
|
26
31
|
body: MutationErrorBody;
|
|
27
32
|
};
|
|
28
|
-
export declare function executeMutation(adapter: StorageAdapter, input: unknown): Promise<MutationResult>;
|
|
33
|
+
export declare function executeMutation(adapter: StorageAdapter, input: unknown, options?: MutationOptions): Promise<MutationResult>;
|
|
29
34
|
export {};
|
|
30
35
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAOxB,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC3C;AAmDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAud3D,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CA6BzB"}
|