@openleaf-editor/core 0.1.0-beta.1 → 0.1.0-beta.2
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/autolink.d.ts +12 -0
- package/dist/autolink.d.ts.map +1 -0
- package/dist/autolink.js +98 -0
- package/dist/autolink.js.map +1 -0
- package/dist/commands.d.ts +69 -2
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +464 -18
- package/dist/commands.js.map +1 -1
- package/dist/css.d.ts +61 -9
- package/dist/css.d.ts.map +1 -1
- package/dist/css.js +315 -13
- package/dist/css.js.map +1 -1
- package/dist/embed.d.ts +52 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +116 -0
- package/dist/embed.js.map +1 -0
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +22 -15
- package/dist/extensions.js.map +1 -1
- package/dist/formats.d.ts +44 -0
- package/dist/formats.d.ts.map +1 -0
- package/dist/formats.js +111 -0
- package/dist/formats.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/keymap.d.ts.map +1 -1
- package/dist/keymap.js +6 -3
- package/dist/keymap.js.map +1 -1
- package/dist/noneditable.d.ts +14 -0
- package/dist/noneditable.d.ts.map +1 -0
- package/dist/noneditable.js +93 -0
- package/dist/noneditable.js.map +1 -0
- package/dist/preserve.d.ts +45 -0
- package/dist/preserve.d.ts.map +1 -1
- package/dist/preserve.js +113 -34
- package/dist/preserve.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +211 -60
- package/dist/schema.js.map +1 -1
- package/dist/structure.d.ts +44 -0
- package/dist/structure.d.ts.map +1 -0
- package/dist/structure.js +379 -0
- package/dist/structure.js.map +1 -0
- package/dist/tables.d.ts +13 -0
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +224 -19
- package/dist/tables.js.map +1 -1
- package/dist/tokens.d.ts +28 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +68 -0
- package/dist/tokens.js.map +1 -0
- package/dist/visual-aids.d.ts +10 -0
- package/dist/visual-aids.d.ts.map +1 -0
- package/dist/visual-aids.js +61 -0
- package/dist/visual-aids.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural nodes that belong in the base schema for the same reason tables
|
|
3
|
+
* do: without them, stored `<details>`, `<figure>` and a page break become
|
|
4
|
+
* opaque preserved atoms -- faithful, and uneditable.
|
|
5
|
+
*
|
|
6
|
+
* The editing chrome (dialogs, character map, resize handles) lives in
|
|
7
|
+
* `@openleaf-editor/plugins-insert`. What is here is the storage format.
|
|
8
|
+
*/
|
|
9
|
+
import { safeAllowList, safeEmbedSrc } from './embed.js';
|
|
10
|
+
import { IMAGE_ALIGN_CLASS, IMAGE_ALIGN_CLASSES, imageAlignFromClass, safeClassList, safeId } from './tokens.js';
|
|
11
|
+
import { MEDIA_FURNITURE_TAGS, hasMediaFallback, scrub, serializationTarget, } from './preserve.js';
|
|
12
|
+
import { isSafeUrl } from './url.js';
|
|
13
|
+
function boolAttr(el, name) {
|
|
14
|
+
return el.hasAttribute(name);
|
|
15
|
+
}
|
|
16
|
+
function dimension(el, name) {
|
|
17
|
+
const value = el.getAttribute(name);
|
|
18
|
+
if (!value)
|
|
19
|
+
return null;
|
|
20
|
+
return /^\d+(?:\.\d+)?%?$/.test(value) ? value : null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The `<source>`/`<track>` children of a media element, as scrubbed markup.
|
|
24
|
+
*
|
|
25
|
+
* Furniture rather than nodes for the same reason a table's `<colgroup>` is:
|
|
26
|
+
* authors never type into them, and a content expression for something nobody
|
|
27
|
+
* edits buys nothing. Storing them at all is what keeps
|
|
28
|
+
* `<video><source src="clip.webm"></video>` -- which has no `src` of its own --
|
|
29
|
+
* a real editable node. Without it the schema declined the element and the
|
|
30
|
+
* preservation layer's drop rule then deleted the whole thing.
|
|
31
|
+
*/
|
|
32
|
+
function readMediaFurniture(el) {
|
|
33
|
+
let html = '';
|
|
34
|
+
for (const child of Array.from(el.children)) {
|
|
35
|
+
if (!MEDIA_FURNITURE_TAGS.has(child.nodeName.toLowerCase()))
|
|
36
|
+
continue;
|
|
37
|
+
// Dropped whole rather than scrubbed down to `<source>`: `scrub` would strip
|
|
38
|
+
// the unsafe address and leave an element that plays nothing and says
|
|
39
|
+
// nothing. A media element left with no usable source is then declined.
|
|
40
|
+
if (!isSafeUrl(child.getAttribute('src')))
|
|
41
|
+
continue;
|
|
42
|
+
html += scrub(child);
|
|
43
|
+
}
|
|
44
|
+
return html || null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Rebuild stored furniture and append it to the element being serialized.
|
|
48
|
+
*
|
|
49
|
+
* `<template>` is the parsing context because a bare `<source>` is illegal
|
|
50
|
+
* inside a `<div>` and would be silently discarded there -- the same reason the
|
|
51
|
+
* preservation layer uses one.
|
|
52
|
+
*/
|
|
53
|
+
function appendMediaFurniture(host, html, doc) {
|
|
54
|
+
const tpl = doc.createElement('template');
|
|
55
|
+
tpl.innerHTML = html;
|
|
56
|
+
for (const child of Array.from(tpl.content.children)) {
|
|
57
|
+
if (!MEDIA_FURNITURE_TAGS.has(child.nodeName.toLowerCase()))
|
|
58
|
+
continue;
|
|
59
|
+
// Scrubbed on the way out too. Furniture read from a parse has already been
|
|
60
|
+
// through `readMediaFurniture`, but a string written by a command or a
|
|
61
|
+
// dialog has not, and `<source src="x" onerror="...">` must not be stored.
|
|
62
|
+
const clean = doc.createElement('template');
|
|
63
|
+
clean.innerHTML = scrub(child);
|
|
64
|
+
const el = clean.content.firstElementChild;
|
|
65
|
+
if (el)
|
|
66
|
+
host.appendChild(el);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function mediaAttrs(el) {
|
|
70
|
+
// Fallback content has nowhere to live on an atom. Declining hands the element
|
|
71
|
+
// to the preservation layer, which keeps it whole -- see the priority-45 rule
|
|
72
|
+
// in preserve.ts.
|
|
73
|
+
if (hasMediaFallback(el))
|
|
74
|
+
return false;
|
|
75
|
+
const src = el.getAttribute('src');
|
|
76
|
+
if (src !== null && !isSafeUrl(src))
|
|
77
|
+
return false;
|
|
78
|
+
const furniture = readMediaFurniture(el);
|
|
79
|
+
// One or the other. A player with neither has nothing to play.
|
|
80
|
+
if (src === null && furniture === null)
|
|
81
|
+
return false;
|
|
82
|
+
return {
|
|
83
|
+
src,
|
|
84
|
+
furniture,
|
|
85
|
+
title: el.getAttribute('title'),
|
|
86
|
+
controls: boolAttr(el, 'controls'),
|
|
87
|
+
width: dimension(el, 'width'),
|
|
88
|
+
height: dimension(el, 'height'),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Serialize a media element, splicing its furniture back in as children.
|
|
93
|
+
*
|
|
94
|
+
* A real element rather than a spec array whenever there is furniture: an array
|
|
95
|
+
* cannot carry raw markup, and the `<source>` children have to be appended.
|
|
96
|
+
*/
|
|
97
|
+
function mediaToDOM(tag, attrs, furniture) {
|
|
98
|
+
if (!furniture)
|
|
99
|
+
return [tag, attrs];
|
|
100
|
+
const doc = serializationTarget();
|
|
101
|
+
const el = doc.createElement(tag);
|
|
102
|
+
for (const [name, value] of Object.entries(attrs))
|
|
103
|
+
el.setAttribute(name, value);
|
|
104
|
+
appendMediaFurniture(el, furniture, doc);
|
|
105
|
+
return el;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* `<video>` and `<audio>`. `controls` defaults to on: an inserted player
|
|
109
|
+
* without controls is a rectangle that cannot be played from the keyboard,
|
|
110
|
+
* and authors rarely go back to add them.
|
|
111
|
+
*/
|
|
112
|
+
export const video = {
|
|
113
|
+
group: 'block',
|
|
114
|
+
atom: true,
|
|
115
|
+
selectable: true,
|
|
116
|
+
draggable: true,
|
|
117
|
+
attrs: {
|
|
118
|
+
// Optional: source-only media carries its addresses in `furniture` instead.
|
|
119
|
+
src: { default: null },
|
|
120
|
+
furniture: { default: null },
|
|
121
|
+
title: { default: null },
|
|
122
|
+
controls: { default: false },
|
|
123
|
+
width: { default: null },
|
|
124
|
+
height: { default: null },
|
|
125
|
+
poster: { default: null },
|
|
126
|
+
},
|
|
127
|
+
parseDOM: [
|
|
128
|
+
{
|
|
129
|
+
tag: 'video',
|
|
130
|
+
getAttrs(dom) {
|
|
131
|
+
const el = dom;
|
|
132
|
+
const base = mediaAttrs(el);
|
|
133
|
+
if (!base)
|
|
134
|
+
return false;
|
|
135
|
+
const poster = el.getAttribute('poster');
|
|
136
|
+
return {
|
|
137
|
+
...base,
|
|
138
|
+
poster: poster && isSafeUrl(poster) ? poster : null,
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
toDOM(node) {
|
|
144
|
+
const { src, title, controls, width, height, poster, furniture } = node.attrs;
|
|
145
|
+
const attrs = {};
|
|
146
|
+
if (src !== null)
|
|
147
|
+
attrs['src'] = src;
|
|
148
|
+
if (title !== null)
|
|
149
|
+
attrs['title'] = title;
|
|
150
|
+
if (controls)
|
|
151
|
+
attrs['controls'] = '';
|
|
152
|
+
if (width !== null)
|
|
153
|
+
attrs['width'] = width;
|
|
154
|
+
if (height !== null)
|
|
155
|
+
attrs['height'] = height;
|
|
156
|
+
if (poster !== null)
|
|
157
|
+
attrs['poster'] = poster;
|
|
158
|
+
return mediaToDOM('video', attrs, furniture);
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
export const audio = {
|
|
162
|
+
group: 'block',
|
|
163
|
+
atom: true,
|
|
164
|
+
selectable: true,
|
|
165
|
+
draggable: true,
|
|
166
|
+
attrs: {
|
|
167
|
+
src: { default: null },
|
|
168
|
+
furniture: { default: null },
|
|
169
|
+
title: { default: null },
|
|
170
|
+
controls: { default: false },
|
|
171
|
+
},
|
|
172
|
+
parseDOM: [
|
|
173
|
+
{
|
|
174
|
+
tag: 'audio',
|
|
175
|
+
getAttrs(dom) {
|
|
176
|
+
const base = mediaAttrs(dom);
|
|
177
|
+
if (!base)
|
|
178
|
+
return false;
|
|
179
|
+
// Audio has no intrinsic box, so the dimensions mediaAttrs read are not
|
|
180
|
+
// part of this node's shape.
|
|
181
|
+
const { width: _width, height: _height, ...rest } = base;
|
|
182
|
+
return rest;
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
],
|
|
186
|
+
toDOM(node) {
|
|
187
|
+
const { src, title, controls, furniture } = node.attrs;
|
|
188
|
+
const attrs = {};
|
|
189
|
+
if (src !== null)
|
|
190
|
+
attrs['src'] = src;
|
|
191
|
+
if (title !== null)
|
|
192
|
+
attrs['title'] = title;
|
|
193
|
+
if (controls)
|
|
194
|
+
attrs['controls'] = '';
|
|
195
|
+
return mediaToDOM('audio', attrs, furniture);
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* An allowlisted embed. Unsafe iframes are ignored by a sibling parse rule in
|
|
200
|
+
* preserve.ts rather than preserved: an iframe is a nested page, not an
|
|
201
|
+
* author's callout div.
|
|
202
|
+
*/
|
|
203
|
+
export const iframe = {
|
|
204
|
+
group: 'block',
|
|
205
|
+
atom: true,
|
|
206
|
+
selectable: true,
|
|
207
|
+
draggable: true,
|
|
208
|
+
attrs: {
|
|
209
|
+
src: {},
|
|
210
|
+
title: { default: null },
|
|
211
|
+
width: { default: null },
|
|
212
|
+
height: { default: null },
|
|
213
|
+
allow: { default: null },
|
|
214
|
+
allowfullscreen: { default: true },
|
|
215
|
+
},
|
|
216
|
+
parseDOM: [
|
|
217
|
+
{
|
|
218
|
+
tag: 'iframe',
|
|
219
|
+
getAttrs(dom) {
|
|
220
|
+
const el = dom;
|
|
221
|
+
const src = safeEmbedSrc(el.getAttribute('src'));
|
|
222
|
+
if (!src)
|
|
223
|
+
return false;
|
|
224
|
+
return {
|
|
225
|
+
src,
|
|
226
|
+
title: el.getAttribute('title'),
|
|
227
|
+
width: dimension(el, 'width'),
|
|
228
|
+
height: dimension(el, 'height'),
|
|
229
|
+
allow: safeAllowList(el.getAttribute('allow')),
|
|
230
|
+
allowfullscreen: el.hasAttribute('allowfullscreen'),
|
|
231
|
+
};
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
toDOM(node) {
|
|
236
|
+
const { src, title, width, height, allow, allowfullscreen } = node.attrs;
|
|
237
|
+
const attrs = { src: src };
|
|
238
|
+
if (title !== null)
|
|
239
|
+
attrs['title'] = title;
|
|
240
|
+
if (width !== null)
|
|
241
|
+
attrs['width'] = width;
|
|
242
|
+
if (height !== null)
|
|
243
|
+
attrs['height'] = height;
|
|
244
|
+
if (allow !== null)
|
|
245
|
+
attrs['allow'] = allow;
|
|
246
|
+
if (allowfullscreen)
|
|
247
|
+
attrs['allowfullscreen'] = '';
|
|
248
|
+
return ['iframe', attrs];
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
export const details = {
|
|
252
|
+
group: 'block',
|
|
253
|
+
content: 'summary block+',
|
|
254
|
+
defining: true,
|
|
255
|
+
isolating: true,
|
|
256
|
+
attrs: { open: { default: false } },
|
|
257
|
+
parseDOM: [
|
|
258
|
+
{
|
|
259
|
+
tag: 'details',
|
|
260
|
+
getAttrs: (dom) => ({ open: dom.hasAttribute('open') }),
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
toDOM(node) {
|
|
264
|
+
return node.attrs['open'] ? ['details', { open: '' }, 0] : ['details', 0];
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
export const summary = {
|
|
268
|
+
content: 'inline*',
|
|
269
|
+
defining: true,
|
|
270
|
+
parseDOM: [{ tag: 'summary' }],
|
|
271
|
+
toDOM: () => ['summary', 0],
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* A captioned image. Figures that contain anything other than an image and an
|
|
275
|
+
* optional caption are left to the preservation layer: claiming them here
|
|
276
|
+
* would flatten a complex figure into a shape it cannot round-trip.
|
|
277
|
+
*/
|
|
278
|
+
export const figure = {
|
|
279
|
+
group: 'block',
|
|
280
|
+
content: 'inline+',
|
|
281
|
+
isolating: true,
|
|
282
|
+
parseDOM: [
|
|
283
|
+
{
|
|
284
|
+
tag: 'figure',
|
|
285
|
+
getAttrs(dom) {
|
|
286
|
+
const el = dom;
|
|
287
|
+
const children = Array.from(el.children).filter((child) => child.nodeName !== 'FIGCAPTION');
|
|
288
|
+
if (children.length !== 1 || children[0]?.nodeName !== 'IMG')
|
|
289
|
+
return false;
|
|
290
|
+
return {};
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
],
|
|
294
|
+
toDOM: () => ['figure', 0],
|
|
295
|
+
};
|
|
296
|
+
export const figcaption = {
|
|
297
|
+
inline: true,
|
|
298
|
+
group: 'inline',
|
|
299
|
+
content: 'inline*',
|
|
300
|
+
parseDOM: [{ tag: 'figcaption' }],
|
|
301
|
+
toDOM: () => ['figcaption', 0],
|
|
302
|
+
};
|
|
303
|
+
export const page_break = {
|
|
304
|
+
group: 'block',
|
|
305
|
+
atom: true,
|
|
306
|
+
selectable: true,
|
|
307
|
+
parseDOM: [
|
|
308
|
+
{ tag: 'div[data-pagebreak]' },
|
|
309
|
+
{ tag: 'div.ol-pagebreak' },
|
|
310
|
+
{ tag: 'hr.ol-pagebreak' },
|
|
311
|
+
],
|
|
312
|
+
toDOM: () => ['hr', { class: 'ol-pagebreak' }],
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* An empty named destination: `<a id="section"></a>`.
|
|
316
|
+
*
|
|
317
|
+
* A link with both `href` and `id` is a mark, not this node. This exists for
|
|
318
|
+
* the jump target that has no text of its own, which is what TinyMCE's
|
|
319
|
+
* anchor plugin inserts and what a decade of CMS content already contains.
|
|
320
|
+
*/
|
|
321
|
+
export const named_anchor = {
|
|
322
|
+
inline: true,
|
|
323
|
+
group: 'inline',
|
|
324
|
+
atom: true,
|
|
325
|
+
selectable: true,
|
|
326
|
+
attrs: { id: {} },
|
|
327
|
+
parseDOM: [
|
|
328
|
+
{
|
|
329
|
+
tag: 'a[id]',
|
|
330
|
+
getAttrs(dom) {
|
|
331
|
+
const el = dom;
|
|
332
|
+
if (el.hasAttribute('href'))
|
|
333
|
+
return false;
|
|
334
|
+
const id = safeId(el.getAttribute('id'));
|
|
335
|
+
if (!id)
|
|
336
|
+
return false;
|
|
337
|
+
return { id };
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
toDOM: (node) => ['a', { id: node.attrs['id'] }],
|
|
342
|
+
};
|
|
343
|
+
/** Image attributes shared by parse and commands. */
|
|
344
|
+
export function imageParseAttrs(el) {
|
|
345
|
+
if (!isSafeUrl(el.getAttribute('src')))
|
|
346
|
+
return false;
|
|
347
|
+
const className = el.getAttribute('class');
|
|
348
|
+
return {
|
|
349
|
+
src: el.getAttribute('src'),
|
|
350
|
+
alt: el.getAttribute('alt'),
|
|
351
|
+
title: el.getAttribute('title'),
|
|
352
|
+
width: el.getAttribute('width'),
|
|
353
|
+
height: el.getAttribute('height'),
|
|
354
|
+
align: imageAlignFromClass(className),
|
|
355
|
+
className: safeClassList(className, IMAGE_ALIGN_CLASSES),
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
export function imageDomAttrs(attrs) {
|
|
359
|
+
const out = { src: attrs.src };
|
|
360
|
+
if (attrs.alt !== null && attrs.alt !== undefined)
|
|
361
|
+
out['alt'] = attrs.alt;
|
|
362
|
+
if (attrs.title !== null && attrs.title !== undefined)
|
|
363
|
+
out['title'] = attrs.title;
|
|
364
|
+
if (attrs.width !== null && attrs.width !== undefined)
|
|
365
|
+
out['width'] = attrs.width;
|
|
366
|
+
if (attrs.height !== null && attrs.height !== undefined)
|
|
367
|
+
out['height'] = attrs.height;
|
|
368
|
+
const classes = [];
|
|
369
|
+
const align = attrs.align;
|
|
370
|
+
if (align)
|
|
371
|
+
classes.push(IMAGE_ALIGN_CLASS[align]);
|
|
372
|
+
if (typeof attrs.className === 'string' && attrs.className !== '') {
|
|
373
|
+
classes.push(attrs.className);
|
|
374
|
+
}
|
|
375
|
+
if (classes.length > 0)
|
|
376
|
+
out['class'] = classes.join(' ');
|
|
377
|
+
return out;
|
|
378
|
+
}
|
|
379
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../src/structure.ts"],"names":[],"mappings":"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"}
|
package/dist/tables.d.ts
CHANGED
|
@@ -36,6 +36,19 @@
|
|
|
36
36
|
* a navigable table into a grid of unrelated values.
|
|
37
37
|
*/
|
|
38
38
|
import type { NodeSpec } from 'prosemirror-model';
|
|
39
|
+
/**
|
|
40
|
+
* The one validator for a table style declaration, on the way in or out.
|
|
41
|
+
*
|
|
42
|
+
* Exported because the property dialogs in `@openleaf-editor/plugins-table`
|
|
43
|
+
* write node attributes directly, which does not go through any parse rule. A
|
|
44
|
+
* dialog with its own idea of an acceptable padding would drift from this one,
|
|
45
|
+
* and `padding: 0;position:fixed;inset:0` is what that drift looks like: the
|
|
46
|
+
* value becomes two more declarations when the style attribute is serialized.
|
|
47
|
+
*
|
|
48
|
+
* Returns null for a property this schema does not model, so an unrecognised
|
|
49
|
+
* name is dropped rather than trusted.
|
|
50
|
+
*/
|
|
51
|
+
export declare function safeTableStyleValue(property: string, value: string | undefined): string | null;
|
|
39
52
|
export declare const table: NodeSpec;
|
|
40
53
|
export declare const table_row: NodeSpec;
|
|
41
54
|
export declare const table_cell: NodeSpec;
|
package/dist/tables.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AA+ChE;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAM9F;AA+KD,eAAO,MAAM,KAAK,EAAE,QA0EnB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,QAmBvB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,QAOxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAO1B,CAAA"}
|