rapier-markdown-kit 1.2.45 → 1.2.46
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 +12 -5
- package/README.md +131 -10
- package/dist/agent/vendor/BROWSER-ENTITIES.json +36 -0
- package/dist/agent/vendor/MARKDOWN-RUNTIME.json +136 -0
- package/dist/agent/vendor/MARKDOWNIT.json +582 -0
- package/dist/agent/vendor/NOTICE.txt +60 -0
- package/dist/agent/vendor/markdown-licenses/entities-LICENSE.txt +11 -0
- package/dist/agent/vendor/markdown-licenses/linkify-it-LICENSE.txt +22 -0
- package/dist/agent/vendor/markdown-licenses/markdown-it-LICENSE.txt +22 -0
- package/dist/agent/vendor/markdown-licenses/mdurl-LICENSE.txt +45 -0
- package/dist/agent/vendor/markdown-licenses/punycode.js-LICENSE-MIT.txt +20 -0
- package/dist/agent/vendor/markdown-licenses/uc.micro-LICENSE.txt +20 -0
- package/dist/agent/vendor/markdown-plugins.json +46 -0
- package/dist/agent/vendor/markdown-plugins.mjs +27 -0
- package/dist/agent/vendor/markdown-runtime.mjs +13 -0
- package/dist/kit/assets.d.mts +106 -0
- package/dist/kit/index.d.mts +151 -0
- package/dist/kit/layout.d.mts +61 -0
- package/dist/kit/ledger/carried.d.mts +12 -6
- package/dist/kit/ledger/carried.mjs +1 -1
- package/dist/kit/ledger/format.mjs +5 -3
- package/dist/kit/ledger/text-merge.mjs +33 -0
- package/dist/kit/ledger/transport.mjs +61 -2
- package/dist/kit/ledger.d.mts +137 -31
- package/dist/kit/markdown-it.d.mts +2 -2
- package/dist/kit/marks.d.mts +241 -0
- package/dist/kit/marks.mjs +39 -1
- package/dist/kit/model.d.mts +191 -0
- package/dist/kit/render-entry.d.mts +654 -0
- package/dist/kit/render.mjs +8 -7
- package/dist/kit/typography.d.mts +42 -0
- package/dist/kit/will.d.mts +26 -3
- package/dist/math/delimiters.mjs +38 -0
- package/dist/math/markdown-rules.mjs +103 -0
- package/dist/spec/document-fonts.mjs +2 -10
- package/dist/spec/md-assets.mjs +1 -0
- package/dist/spec/md-comments.mjs +384 -0
- package/dist/spec/md-marks.mjs +9 -0
- package/dist/spec/md-parser-config.mjs +463 -0
- package/dist/spec/md-parser-runtime.mjs +23 -0
- package/package.json +30 -8
package/LICENSE
CHANGED
|
@@ -21,14 +21,18 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
21
21
|
SOFTWARE.
|
|
22
22
|
|
|
23
23
|
Files under this license carry `SPDX-License-Identifier: MIT` in their first lines: the standard's
|
|
24
|
-
grammar, marks and reference style (`spec/md-layout.mjs`, `spec/md-marks.mjs`, `spec/md-source.mjs`, `spec/flowchart.mjs`, `spec/markdown-style.css`),
|
|
25
|
-
(`
|
|
24
|
+
grammar, marks and reference style (`spec/md-layout.mjs`, `spec/md-marks.mjs`, `spec/md-source.mjs`, `spec/flowchart.mjs`, `spec/markdown-style.css`),
|
|
25
|
+
the reusable diagram source, layout and raising helpers (`draw/flowchart-mermaid.mjs`, `draw/flowchart-layout.mjs`,
|
|
26
|
+
`draw/flowchart-raise.mjs`) and diagram-core export facade (`shell/mermaid/api.mjs`),
|
|
27
|
+
ink geometry (`spec/ink.mjs`),
|
|
26
28
|
the layout model and line planner (`layout/model.mjs`, `layout/line-plan.mjs`, `layout/typography.mjs`, `layout/preparation.mjs`,
|
|
27
29
|
`layout/prepared-paragraph.mjs`, `layout/hyphenation.mjs`, `layout/paragraph-fit.mjs`), the animated-picture reader and playback
|
|
28
30
|
the HTML blocks use (`images/gif.mjs`, `images/playback.mjs`),
|
|
29
31
|
the portable HTML and document metadata helpers (`spec/html-blocks.mjs`, `spec/frontmatter.mjs`,
|
|
30
32
|
`spec/document-settings.mjs`, `spec/document-fonts.mjs`), the Will grammar (`agent/will.mjs`), the picture appendix reader and writer
|
|
31
|
-
(`spec/md-assets.mjs`), the
|
|
33
|
+
(`spec/md-assets.mjs`), the portable comment and canonical parser support owners
|
|
34
|
+
(`spec/md-comments.mjs`, `spec/md-parser-config.mjs`, `spec/md-parser-runtime.mjs`),
|
|
35
|
+
the neutral math boundary and parser adapters (`math/delimiters.mjs`, `math/markdown-rules.mjs`), the two shared-page reference readers (`tools/read-shared-page.mjs`,
|
|
32
36
|
`tools/read-shared-page.py`), and the host helper `packages/rapier-embed/embed.mjs` with its
|
|
33
37
|
contract owner `packages/rapier-embed/contract.mjs`. The vendored Pretext (`agent/vendor/pretext`) and micromark carry their
|
|
34
38
|
own MIT notices. The edit-ledger module (`kit/rapier-ledger.mjs`, `kit/ledger/*.mjs`) and
|
|
@@ -39,11 +43,14 @@ AGPL-3.0-only. The page wrapper (`skills/rapier-html/wrap.mjs`, `skills/rapier-h
|
|
|
39
43
|
`skills/rapier-html/return-address.mjs`) and its carrier-staging helper
|
|
40
44
|
(`skills/rapier-html/package-files.mjs`) are MIT. The kit's MIT-marked facades,
|
|
41
45
|
`kit/render-entry.mjs`, `kit/render*.mjs`, `kit/export-fonts.mjs`, `kit/print-capitals.mjs`,
|
|
42
|
-
`kit/pdf-vectors.mjs`, `kit/pdf-glyphs.mjs`, `kit/stage.mjs` and MIT-marked conformance
|
|
46
|
+
`kit/pdf-vectors.mjs`, `kit/pdf-glyphs.mjs`, `kit/stage.mjs`, `kit/markdown-vendor.mjs` and MIT-marked conformance
|
|
43
47
|
modules are covered too. These names describe the Rapier-owned files carrying the
|
|
44
48
|
MIT notice, not a grant over the editor or third-party code. Other Rapier-owned
|
|
45
49
|
files retain their stated license; the editor is AGPL-3.0-only (see `LICENSE`).
|
|
46
|
-
Third-party components retain their own copyright and license notices.
|
|
50
|
+
Third-party components retain their own copyright and license notices. The published Markdown parser,
|
|
51
|
+
its plugins and their dependencies retain their original MIT, ISC and BSD-2-Clause notices in `agent/vendor/NOTICE.txt` and
|
|
52
|
+
`agent/vendor/markdown-licenses/`; this inventory does not replace them. The Feather callout paths
|
|
53
|
+
in the canonical configuration retain the Feather copyright and MIT notice there.
|
|
47
54
|
|
|
48
55
|
The portable font helpers read document definitions and accept explicit host validation and
|
|
49
56
|
subsetting functions. The application binding (`editor/export-fonts.mjs`), captured-font
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ offline file, run `npx rapier-html notes.md`.
|
|
|
27
27
|
The kit supplies the portable source and history Rapier's agent tools use.
|
|
28
28
|
|
|
29
29
|
```sh
|
|
30
|
-
npm install rapier-markdown-kit
|
|
30
|
+
npm install rapier-markdown-kit markdown-it@15
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Render a document with [markdown-it](https://github.com/markdown-it/markdown-it), then style it with
|
|
@@ -50,7 +50,7 @@ const edited = replaceLedgerText(base, 'Draft, revised\n', {actor: {kind: 'human
|
|
|
50
50
|
console.log(merge(edited, base).text, authorship(edited).runs);
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
TypeScript declarations ship for `markdown-it
|
|
53
|
+
TypeScript declarations ship for the root and every JavaScript subpath. NodeNext and bundler resolution use the same public exports. DOM host APIs use TypeScript’s `DOM` library; pure history and Will consumers can import their own subpaths. The Markdown rendering examples install `markdown-it` explicitly; the kit itself has no npm dependencies.
|
|
54
54
|
|
|
55
55
|
```js
|
|
56
56
|
import {parseLayout} from 'rapier-markdown-kit/layout'; // the md-layout comment a picture carries
|
|
@@ -133,6 +133,112 @@ not part of this MIT package.
|
|
|
133
133
|
Serialization tests preserve source bytes through HTML export and recovery. Server integration
|
|
134
134
|
tests also check the exported HTTP response through a browser DOM.
|
|
135
135
|
|
|
136
|
+
### A complete prose host
|
|
137
|
+
|
|
138
|
+
For a small browser integration, save the following as `prose-host.mjs` and bundle it with your application. Install its explicit host dependencies with `npm install markdown-it@15.0.3 dompurify@3.4.16`. This host handles prose, headings, lists, tables and fenced code. It refuses front matter, media and diagram providers that it does not supply; the factories’ larger host contracts remain available in their declarations.
|
|
139
|
+
|
|
140
|
+
<details>
|
|
141
|
+
<summary>Browser host source</summary>
|
|
142
|
+
|
|
143
|
+
```js
|
|
144
|
+
// SPDX-License-Identifier: MIT
|
|
145
|
+
// A small browser host. Rendering and carrier algorithms come from the installed kit.
|
|
146
|
+
import MarkdownIt from 'markdown-it';
|
|
147
|
+
import createDOMPurify from 'dompurify';
|
|
148
|
+
import {rapierMarkdown} from 'rapier-markdown-kit/markdown-it';
|
|
149
|
+
import {createMarkdownRenderer, createRenderer, createRenderSanitizer, createRenderStyles, createPrintRenderer} from 'rapier-markdown-kit/render';
|
|
150
|
+
import {parseWill} from 'rapier-markdown-kit/will';
|
|
151
|
+
|
|
152
|
+
export function createProseHost({contentCss, validateFont, materializeDocumentFonts, parseAsync} = {}) {
|
|
153
|
+
const md = new MarkdownIt({html: true}).use(rapierMarkdown);
|
|
154
|
+
const purify = createDOMPurify(window);
|
|
155
|
+
const state = {context: 'render'};
|
|
156
|
+
const remote = {allowed: false};
|
|
157
|
+
const reject = feature => { throw Object.assign(new Error('This example host does not provide ' + feature), {code: 'host_capability_unavailable'}); };
|
|
158
|
+
// This example has no front-matter settings or media/provider resolver. Refuse
|
|
159
|
+
// those capabilities before creating an artifact, instead of silently dropping them.
|
|
160
|
+
const admitSource = source => {
|
|
161
|
+
if (/^(?:\uFEFF)?---(?:\r\n|\r|\n)/.test(source)) reject('front-matter settings');
|
|
162
|
+
if (/!\[|<(?:img|video|audio|iframe|svg)\b/i.test(source)) reject('media resources');
|
|
163
|
+
if (/^\s*```(?:mermaid|math)\b/m.test(source)) reject('diagram/math providers');
|
|
164
|
+
return source;
|
|
165
|
+
};
|
|
166
|
+
const cssHasResource = value => /(?:url|image-set|image|paint)\s*\(|@import/i.test(value);
|
|
167
|
+
const sanitizer = createRenderSanitizer({
|
|
168
|
+
CSSStyleSheet, DOMPurify: purify, URL, document, globalThis, location,
|
|
169
|
+
RAPIER_RASTER_DATA_URL_RE: /^data:image\/(png|jpeg|gif|webp|jxl|svg\+xml);base64,([a-z0-9+/=]+)$/i,
|
|
170
|
+
_rapierSanitizeRuntime: state, _rapierRemoteContent: remote,
|
|
171
|
+
_rapierCssDeclaration: () => document.createElement('span').style,
|
|
172
|
+
_rapierDropRemoteDeclarations: style => {
|
|
173
|
+
let removed = false;
|
|
174
|
+
for (const property of [...style]) if (cssHasResource(style.getPropertyValue(property))) {
|
|
175
|
+
style.removeProperty(property); removed = true;
|
|
176
|
+
}
|
|
177
|
+
return removed;
|
|
178
|
+
},
|
|
179
|
+
_rapierRuleDescriptorIsRemote: rule => cssHasResource(rule.cssText),
|
|
180
|
+
});
|
|
181
|
+
sanitizer._rapierInstallDocumentSanitizeHooks();
|
|
182
|
+
const styles = createRenderStyles({
|
|
183
|
+
_rapierArtifactAccent: () => '#2673c9',
|
|
184
|
+
_rapierStyleText: id => {
|
|
185
|
+
if (id === 'rapier-content-style') return contentCss;
|
|
186
|
+
// The host uses system fonts and plain escaped code, with no extra sheets.
|
|
187
|
+
if (id === 'rapier-font-style' || id === 'rapier-highlight-style') return '';
|
|
188
|
+
return reject('stylesheet ' + id);
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
let writer;
|
|
192
|
+
const headingsIn = (root, selector) => {
|
|
193
|
+
const result = [...root.querySelectorAll(selector)];
|
|
194
|
+
for (const template of root.querySelectorAll('template')) result.push(...headingsIn(template.content, selector));
|
|
195
|
+
return result;
|
|
196
|
+
};
|
|
197
|
+
const markdown = createMarkdownRenderer({
|
|
198
|
+
md, parseAsync, Node, document, window, globalThis,
|
|
199
|
+
...sanitizer,
|
|
200
|
+
RAPIER_RENDERED_HEADING_SELECTOR: 'h1,h2,h3,h4,h5,h6',
|
|
201
|
+
_rapierRemoteContent: remote, _rapierProviders: {},
|
|
202
|
+
_rapierRenderedAnchorOriginalIds: new WeakMap(),
|
|
203
|
+
_rapierDormantHeadings: headingsIn,
|
|
204
|
+
// Anchor spelling is the host's policy. The renderer owns assignment and collisions.
|
|
205
|
+
_rapierHeadingSlugBase: text => 'section-' + text.normalize('NFC').toLowerCase().replace(/[^\p{Letter}\p{Number}]+/gu, '-').replace(/^-|-$/g, ''),
|
|
206
|
+
_rapierNextHeadingSlug: (base, used) => {
|
|
207
|
+
let key = base, n = 1;
|
|
208
|
+
while (Object.hasOwn(used, key)) key = base + '-' + ++n;
|
|
209
|
+
used[key] = 0;
|
|
210
|
+
return key;
|
|
211
|
+
},
|
|
212
|
+
_rapierSplitOpeningFrontmatter: source => ({body: admitSource(source)}),
|
|
213
|
+
_rapierPrefixPortableAnchors: (...args) => writer._rapierPrefixPortableAnchors(...args),
|
|
214
|
+
});
|
|
215
|
+
writer = createRenderer({
|
|
216
|
+
md, Node, document, crypto, globalThis, ...sanitizer, ...styles,
|
|
217
|
+
// BOM is file metadata. Preserve every other source code unit, including EOLs.
|
|
218
|
+
RapierTextCodec: {maxDocumentBytes: 8 * 1024 * 1024, normalizeDocument: source => admitSource(source.charCodeAt(0) === 0xfeff ? source.slice(1) : source)},
|
|
219
|
+
// This independent page has no Rapier application return address or edit ledger.
|
|
220
|
+
RapierPageReturnAddress: {PAGE_SEED: ''},
|
|
221
|
+
_rapierArtifactPreference: (name, allowed) => ({theme: 'light', highlights: 'standard', invertImageAlpha: 'false'})[name] || allowed[0],
|
|
222
|
+
_rapierArtifactHighlight: source => sanitizer.escapeRapierHtmlText(source),
|
|
223
|
+
_rapierLanguageClass: code => [...code.classList].find(name => name.startsWith('language-'))?.slice(9) || '',
|
|
224
|
+
_rapierDocumentNameIsAdmissible: name => typeof name === 'string' && !!name && !/[\\/\u0000-\u001f\u007f]/.test(name),
|
|
225
|
+
_rapierPrepareInterchangeContext: async (_options, captured) => ({...captured,
|
|
226
|
+
semanticRoot: await markdown._rapierRenderSemanticRootAsync(captured.canonical, captured.metadata)}),
|
|
227
|
+
_rapierProjectPortableRoot: (...args) => markdown._rapierProjectPortableRoot(...args),
|
|
228
|
+
_rapierPortableHtml: (...args) => markdown._rapierPortableHtml(...args),
|
|
229
|
+
validateFont, materializeDocumentFonts,
|
|
230
|
+
});
|
|
231
|
+
const print = createPrintRenderer({Node, crypto, document, globalThis, _rapierWillParse: parseWill});
|
|
232
|
+
return {md, markdown, writer, print, sanitizer, styles, purify};
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
</details>
|
|
237
|
+
|
|
238
|
+
Use your bundler or static server to load the installed `style.css` text as `contentCss`, then call `createProseHost({contentCss})`. Its `markdown.render(source, {docKind: 'markdown'})` produces a fragment; `await writer.render(source, {filename: 'report.md'})` produces a complete offline page carrying the exact source. Keep one bound host per document realm: the Markdown factory registers an original-file listener and currently has no disposal method. The font and print operations have their own cleanup contracts.
|
|
239
|
+
|
|
240
|
+
The example is MIT. The host dependencies keep their licenses: markdown-it is MIT, and DOMPurify is Apache-2.0 OR MPL-2.0. Neither is an implicit dependency of the kit.
|
|
241
|
+
|
|
136
242
|
### Fonts in exported HTML
|
|
137
243
|
|
|
138
244
|
Settings HTML and Share pages use the same offline font policy. The writer reads custom font
|
|
@@ -182,7 +288,7 @@ family name share the host's font namespace. Print retains its existing factory
|
|
|
182
288
|
| `rapier-markdown-kit/rapier-ledger` | The MIT edit ledger: `openLedger`, replay, authorship, selective Undo, offline `merge`, three-way `mergeText`, and the carried parts. |
|
|
183
289
|
| `rapier-markdown-kit/pdf` | `attachPdfSource`: attach the exact source to a PDF without rewriting its pages; `readPdfPageCount`. |
|
|
184
290
|
| `rapier-markdown-kit/ledger/carried` | Checked optional parts for pages and saved Markdown. |
|
|
185
|
-
| `rapier-markdown-kit` | Named exports from
|
|
291
|
+
| `rapier-markdown-kit` | Named exports from layout, marks, model, Will, assets and render, plus the `ledger` namespace. Import `createTypography` from `/typography`; the root does not export that ambiguous name. |
|
|
186
292
|
|
|
187
293
|
The canonical inline form is ordinary HTML inside Markdown. CSS support varies; the host's font metrics still
|
|
188
294
|
determine line layout (below).
|
|
@@ -259,22 +365,32 @@ prefix. It never adds a source hyphen. Explicit authored `hyphenate-character` s
|
|
|
259
365
|
measured punctuation extends only into available unclipped margins, by at most half an em. Refinement adds no
|
|
260
366
|
letter tracking; authored supported letter spacing remains part of its shaping contract.
|
|
261
367
|
|
|
368
|
+
Here `root` is your rendered document element in a browser. Keep the event handlers and scheduled work with that element’s lifetime.
|
|
369
|
+
|
|
262
370
|
```js
|
|
263
371
|
import {createTypography} from 'rapier-markdown-kit/typography';
|
|
264
372
|
|
|
265
373
|
const refinement = createTypography();
|
|
266
374
|
await document.fonts.ready;
|
|
375
|
+
let active = true, frame = 0;
|
|
267
376
|
function update() {
|
|
268
|
-
|
|
377
|
+
cancelAnimationFrame(frame); frame = 0;
|
|
378
|
+
if (active && refinement.apply(root).pending) frame = requestAnimationFrame(update);
|
|
269
379
|
}
|
|
270
380
|
update();
|
|
271
|
-
|
|
272
|
-
if (refinement.clearSelection(root))
|
|
273
|
-
|
|
381
|
+
function afterClipboard() {
|
|
382
|
+
if (active && refinement.clearSelection(root)) {
|
|
383
|
+
cancelAnimationFrame(frame); frame = requestAnimationFrame(update);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
for (const event of ['copy', 'cut']) document.addEventListener(event, afterClipboard, true);
|
|
274
387
|
// On a width change, call update() again. Source/style/font changes are revalidated.
|
|
275
388
|
// Before native editing or consuming this disposable DOM projection:
|
|
276
389
|
refinement.clear(root);
|
|
277
390
|
// When retiring the root:
|
|
391
|
+
active = false;
|
|
392
|
+
cancelAnimationFrame(frame);
|
|
393
|
+
for (const event of ['copy', 'cut']) document.removeEventListener(event, afterClipboard, true);
|
|
278
394
|
refinement.retire(root);
|
|
279
395
|
```
|
|
280
396
|
|
|
@@ -537,8 +653,11 @@ retain native wrapping. Fonts and codecs remain explicit host capabilities as de
|
|
|
537
653
|
one, read the saved descriptor with `parseProfile`, or sample the picture with your own image
|
|
538
654
|
library. `polygonProfile` and `rasterTiltProfile` are plain geometry.
|
|
539
655
|
|
|
540
|
-
The appendix
|
|
541
|
-
(`parseAssets(source, factory)`, or once through `configureParser`)
|
|
656
|
+
The appendix API accepts a markdown-it-compatible parser factory from the caller
|
|
657
|
+
(`parseAssets(source, factory)`, or once through `configureParser`). Comment-aware edit history
|
|
658
|
+
also carries Rapier's pinned Markdown parser and canonical configuration. A fresh synchronous
|
|
659
|
+
ledger reader initializes that parser when needed, so accepted comment history can reopen in a
|
|
660
|
+
worker or standalone package. A parser already configured by the host is reused.
|
|
542
661
|
|
|
543
662
|
## Conformance
|
|
544
663
|
|
|
@@ -559,7 +678,9 @@ MIT, the full text in `LICENSE`; Rapier-owned modules and the stylesheet keep th
|
|
|
559
678
|
notice and pinned source inventory are in `dist/agent/vendor/pretext/`. The selected upstream is main
|
|
560
679
|
`0d102a5cd933611e86a7e60bda7b4baa5995c6b0`: Pretext 1.0.0 plus the commits of main through pull request #525. Its upstream license includes
|
|
561
680
|
Chromium/WebKit BSD, Unicode and ICU notices for derived code and generated data; those notices travel with the kit
|
|
562
|
-
and the exported wrapping runtime. The
|
|
681
|
+
and the exported wrapping runtime. The pinned Markdown parser and its plugins retain their original MIT, ISC and BSD-2-Clause notices in
|
|
682
|
+
`dist/agent/vendor/NOTICE.txt` and `dist/agent/vendor/markdown-licenses/`; the package adds no npm dependencies.
|
|
683
|
+
The history projection uses the MIT diff core;
|
|
563
684
|
its full grant is in `dist/packages/rapier-diff/LICENSE`. The Rapier editor is AGPL-3.0-only and
|
|
564
685
|
none of it is in this package. The kit carries Rapier's release number, written from the one
|
|
565
686
|
value the editor's release reads.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "The page and Node use the same native ES2022 build of unchanged markdown-it 15.0.3 release source (MARKDOWNIT.json). tools/entities-vendor.mjs re-encodes its 2,125 HTML entity names as a compact list with the strict decoder its callers require, then minifies with the pinned options. The normal Rapier core rule in agent/markdown-spec.mjs owns auto-link token expansion; the vendor has no parser rule changes. Each vendor pins upstream and derived bytes; a changed source or derivation requires grammar and entity equivalence before repinning.",
|
|
3
|
+
"vendors": [
|
|
4
|
+
{
|
|
5
|
+
"id": "lib-markdownit",
|
|
6
|
+
"upstream": {
|
|
7
|
+
"name": "markdown-it-15.0.3.es2022.umd.js",
|
|
8
|
+
"bytes": 144327,
|
|
9
|
+
"sha256": "ab352b33693b8a4c88c0c0a977f12b30df9aa42bc163f73e59397939e397182a"
|
|
10
|
+
},
|
|
11
|
+
"entities": {
|
|
12
|
+
"names": 2125,
|
|
13
|
+
"legacy": 106
|
|
14
|
+
},
|
|
15
|
+
"derived": {
|
|
16
|
+
"name": "markdown-it-15.0.3.es2022.umd.rapier.min.js",
|
|
17
|
+
"bytes": 94470,
|
|
18
|
+
"sha256": "09d16498c075e83b0ba986dab07e83f0850f601f6f7551bd4aaf79d3167f7bc4"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"tool": {
|
|
23
|
+
"name": "terser",
|
|
24
|
+
"version": "5.51.2",
|
|
25
|
+
"options": {
|
|
26
|
+
"ecma": 2022,
|
|
27
|
+
"compress": {
|
|
28
|
+
"passes": 2
|
|
29
|
+
},
|
|
30
|
+
"mangle": true,
|
|
31
|
+
"format": {
|
|
32
|
+
"comments": "/^!|@license|copyright/i"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "rapier-markdown-vendor/1",
|
|
3
|
+
"description": "Existing pinned parser and plugins; upstream bytes and license texts unchanged.",
|
|
4
|
+
"runtime": {
|
|
5
|
+
"path": "agent/vendor/markdown-runtime.mjs",
|
|
6
|
+
"prefix": "// MIT; exact embedded Rapier vendor source (tools/entities-vendor.mjs --write). See NOTICE.txt.\n// One lazy constructor serves named browser/worker imports and the default Node facade.\nlet owned = null;\nexport function markdownItConstructor() {\n if (!owned) {\nconst exports = {}; const module = {exports};\n",
|
|
7
|
+
"suffix": "\n owned = module.exports;\n }\n return owned;\n}\n",
|
|
8
|
+
"bodyBytes": 94470,
|
|
9
|
+
"bodySha256": "09d16498c075e83b0ba986dab07e83f0850f601f6f7551bd4aaf79d3167f7bc4"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
{
|
|
13
|
+
"path": "agent/vendor/markdown-runtime.mjs",
|
|
14
|
+
"bytes": 94829,
|
|
15
|
+
"sha256": "147b86b69ee4d0b1237a793b09300342e8c14d149c9e84bb0bea5ed2fa431998"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"path": "agent/vendor/markdown-plugins.mjs",
|
|
19
|
+
"bytes": 24196,
|
|
20
|
+
"sha256": "0081e0e557379cdf908b652124e82e2456e965af365a65464a610b867d350008"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "agent/vendor/MARKDOWNIT.json",
|
|
24
|
+
"bytes": 18685,
|
|
25
|
+
"sha256": "2c42169e3233c6cb2b7e31cdefa83dde78e4ba05ed995805e749070db8c76ff4"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"path": "agent/vendor/BROWSER-ENTITIES.json",
|
|
29
|
+
"bytes": 1344,
|
|
30
|
+
"sha256": "9b2b9db3a8bfc2a90c54a703da8cd08c65eed62de85dc16fc334f59ed95347b8"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "agent/vendor/markdown-plugins.json",
|
|
34
|
+
"bytes": 1585,
|
|
35
|
+
"sha256": "c52a02dd0946e150d4023199ccbd9f1afa93b008797ee5b2c325d9fcd249d4ee"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"path": "agent/vendor/NOTICE.txt",
|
|
39
|
+
"bytes": 2774,
|
|
40
|
+
"sha256": "05a252057f4eed3ba3b4149d404294f3a9bfb059f9bfde14d57128005acbe8ca"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"path": "agent/vendor/markdown-licenses/markdown-it-LICENSE.txt",
|
|
44
|
+
"bytes": 1073,
|
|
45
|
+
"sha256": "792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"path": "agent/vendor/markdown-licenses/entities-LICENSE.txt",
|
|
49
|
+
"bytes": 1260,
|
|
50
|
+
"sha256": "cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"path": "agent/vendor/markdown-licenses/linkify-it-LICENSE.txt",
|
|
54
|
+
"bytes": 1058,
|
|
55
|
+
"sha256": "95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"path": "agent/vendor/markdown-licenses/mdurl-LICENSE.txt",
|
|
59
|
+
"bytes": 2303,
|
|
60
|
+
"sha256": "6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"path": "agent/vendor/markdown-licenses/uc.micro-LICENSE.txt",
|
|
64
|
+
"bytes": 1077,
|
|
65
|
+
"sha256": "483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"path": "agent/vendor/markdown-licenses/punycode.js-LICENSE-MIT.txt",
|
|
69
|
+
"bytes": 1077,
|
|
70
|
+
"sha256": "483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"licenses": [
|
|
74
|
+
{
|
|
75
|
+
"path": "agent/vendor/markdown-licenses/markdown-it-LICENSE.txt",
|
|
76
|
+
"source": {
|
|
77
|
+
"scope": "source",
|
|
78
|
+
"path": "LICENSE",
|
|
79
|
+
"bytes": 1073,
|
|
80
|
+
"sha256": "792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"path": "agent/vendor/markdown-licenses/entities-LICENSE.txt",
|
|
85
|
+
"source": {
|
|
86
|
+
"scope": "dependencies",
|
|
87
|
+
"path": "entities/LICENSE",
|
|
88
|
+
"bytes": 1260,
|
|
89
|
+
"sha256": "cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"path": "agent/vendor/markdown-licenses/linkify-it-LICENSE.txt",
|
|
94
|
+
"source": {
|
|
95
|
+
"scope": "dependencies",
|
|
96
|
+
"path": "linkify-it/LICENSE",
|
|
97
|
+
"bytes": 1058,
|
|
98
|
+
"sha256": "95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"path": "agent/vendor/markdown-licenses/mdurl-LICENSE.txt",
|
|
103
|
+
"source": {
|
|
104
|
+
"scope": "dependencies",
|
|
105
|
+
"path": "mdurl/LICENSE",
|
|
106
|
+
"bytes": 2303,
|
|
107
|
+
"sha256": "6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"path": "agent/vendor/markdown-licenses/uc.micro-LICENSE.txt",
|
|
112
|
+
"source": {
|
|
113
|
+
"scope": "dependencies",
|
|
114
|
+
"path": "uc.micro/LICENSE.txt",
|
|
115
|
+
"bytes": 1077,
|
|
116
|
+
"sha256": "483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"path": "agent/vendor/markdown-licenses/punycode.js-LICENSE-MIT.txt",
|
|
121
|
+
"source": {
|
|
122
|
+
"scope": "dependencies",
|
|
123
|
+
"path": "punycode.js/LICENSE-MIT.txt",
|
|
124
|
+
"bytes": 1077,
|
|
125
|
+
"sha256": "483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"plugins": {
|
|
130
|
+
"path": "agent/vendor/markdown-plugins.mjs",
|
|
131
|
+
"prefix": "// Exact pinned plugin bodies; the caller supplies their runtime context. See NOTICE.txt and markdown-plugins.json.\nexport function createMarkdownPlugins(Math) {\nif (!Math || typeof Math.ceil !== 'function' || typeof Math.random !== 'function') throw new TypeError('Markdown plugins need a Math context.');\nconst root = {};\n{\nconst globalThis = root, window = root, global = root, self = root;\nconst exports = undefined, module = undefined, define = undefined;\n",
|
|
132
|
+
"suffix": "\n}\nreturn Object.freeze(root);\n}\n",
|
|
133
|
+
"bodyBytes": 23702,
|
|
134
|
+
"bodySha256": "78e105dbba1e97275141f92253b776a8261c18e20b78f3bf40a6d22873f6b100"
|
|
135
|
+
}
|
|
136
|
+
}
|