rapier-embed 1.2.3 → 1.2.6

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 CHANGED
@@ -1,24 +1,31 @@
1
1
  # Embed Rapier
2
2
 
3
+ ## Start here
4
+
5
+ For embed-only work, start with the supplied application code and the published embed contract below. Use the declared helper release or packaged helper, keeping source, permissions and storage under the host application. Do not create a hosted document. Keep the embed's own WebMCP contract; do not substitute connector calls for its browser API.
6
+
7
+ For an explanation-only request, answer in chat without creating a document. If required content or integration details are missing, ask for them; do not create an empty hosted workspace.
8
+ Honor no-upload or no-host instructions. The workflow choices below are alternatives, not steps to run. Skip hosted suggestions, including opening a workspace or creating a return link, for local-only or embed-only work.
9
+
3
10
  Embed Rapier's Markdown editor or lightweight reader in your web app. Each build is one offline HTML file. Your
4
11
  app owns the document and storage; its agent edits live through WebMCP. The person sees the agent's presence and
5
12
  change marks, taps a change to see the before and undoes anything. Honor the person's Will/1 regions.
6
- The reader is about 190 kB gzipped, with optional fonts and plug-ins. The helper is MIT with no dependencies.
13
+ The reader is about 190 kB gzipped, with optional fonts and plug-ins. The helper is MIT with no dependencies; the two builds it frames are AGPL-3.0-only, and a commercial license is
14
+ available (`LICENSING.md` in the Rapier repository).
7
15
 
8
- Choose one of three builds:
16
+ Choose one of two builds:
9
17
 
10
18
  | Build | Contains | Use it to |
11
19
  | --- | --- | --- |
12
20
  | `rapier-reader.html` | Rendering, search, the outline, reading settings, the fast-scroll circle, read aloud, copy, share, text export and print; opens Word and PDF files. No editing, agent tools or fonts. | Show documents: agent briefs, reports, help. |
13
- | `rapier-document.html` | The editor: formatted and source views, find and replace, compare, comments, Word and PDF, the agent tools. No Draw, Paint, Notes or JPEG XL encoder. | Edit documents inside your app. |
14
- | `rapier.html` | The whole app: the editor, Draw, Paint, Water, Notes and the JPEG XL encoder. | Give people the complete app. |
21
+ | `rapier.html` | The full editor, with Notes and Draw inline: formatted and source views, find and replace, compare, comments, Word and PDF, Draw, Paint, Water, Notes and the agent tools. | Edit documents inside your app. |
15
22
 
16
- All three render the same Markdown standard with the same layout. Download them from the root of the
23
+ Both render the same Markdown standard with the same layout. Download the reader from the root of the
17
24
  [rapier repository](https://github.com/jackskip22/rapier), or frame the hosted copies:
18
- `https://rapier.website/embed/rapier-reader.html` and `https://rapier.website/embed/rapier-document.html` (current).
25
+ `https://rapier.website/embed/rapier-reader.html` and `https://rapier.website/embed/rapier.html` (current).
19
26
  Each release's own files stay at its tag: `https://cdn.jsdelivr.net/gh/jackskip22/rapier@v<version>/site/embed/<file>` (download a copy to pin a version).
20
27
 
21
- `rapier-embed` mounts the reader or the document editor in an iframe and speaks the
28
+ `rapier-embed` mounts the reader or the editor in an iframe and speaks the
22
29
  [embed contract](https://github.com/jackskip22/rapier/blob/main/docs/embed-contract.md) for you.
23
30
 
24
31
  - Your app owns the document, its revisions, its storage and its users.
@@ -31,7 +38,7 @@ Each release's own files stay at its tag: `https://cdn.jsdelivr.net/gh/jackskip2
31
38
  document access remain enforced.
32
39
 
33
40
  ```sh
34
- npm install rapier-embed@1.2.3
41
+ npm install rapier-embed@1.2.6
35
42
  ```
36
43
 
37
44
  Or copy the package's `embed.mjs` and `contract.mjs` into one directory of your app; no runtime CDN is needed.
@@ -47,7 +54,7 @@ editor and lightweight reader (about 190 kB gzipped). The agent edits live; the
47
54
  changes, taps a change to see the before and undoes anything. Use `show {target:"comparison"}` to show a diff deliberately.
48
55
 
49
56
  1. **Work together live.** Connect to `https://mcp.rapier.website/door/mcp`, then call `open` to share one document with the person.
50
- 2. **Deliver an offline editor.** Run `npx rapier-html@1.2.3 notes.md` to put the document and editor in one HTML file ([rapier-html](https://github.com/jackskip22/rapier-plugins/tree/main/npm/rapier-html)).
57
+ 2. **Deliver an offline editor.** Run `npx rapier-html@1.2.6 notes.md` to put the document and editor in one HTML file ([rapier-html](https://github.com/jackskip22/rapier-plugins/tree/main/npm/rapier-html)).
51
58
  3. **Embed in your app.** Install [rapier-embed](https://github.com/jackskip22/rapier-plugins/tree/main/npm/rapier-embed); mount the editor or reader, with your app's agent over WebMCP in the editor.
52
59
  4. **Keep portable Markdown.** Use [rapier-markdown-kit](https://github.com/jackskip22/rapier-plugins/tree/main/npm/rapier-markdown-kit) for pictures, editable SVG drawings and layout in one `.md` file. Respect [Will/1](https://github.com/jackskip22/will) `keep`, `append` and `edit` regions.
53
60
  5. **Encode JPEG XL.** Install [rapier-jxl](https://github.com/jackskip22/rapier-jxl) to encode pixels, photographs and existing JPEGs in JavaScript.
@@ -90,7 +97,7 @@ A copy in your app works offline and changes only when you update it.
90
97
  1. Download the build you frame into a static directory, for example
91
98
  `https://cdn.jsdelivr.net/gh/jackskip22/rapier@v<version>/site/embed/rapier-reader.html` to `public/vendor/rapier/`.
92
99
  2. Fetch the plug-ins your build uses into one directory beside it, from the manifest of the same version:
93
- `npx rapier-embed@1.2.3 plugins public/vendor/rapier/plugins --build reader`.
100
+ `npx rapier-embed@1.2.6 plugins public/vendor/rapier/plugins --build reader`.
94
101
  3. Mount with `src` and `plugins` pointing at your copies. Serve them over HTTPS (HTTP on localhost) and allow
95
102
  their origin in your `frame-src`. A same-origin parent can script its frame; use a dedicated origin when the
96
103
  frame must be isolated.
@@ -105,7 +112,7 @@ length and SHA-384 before it runs it, and keeps on the device. A file that fails
105
112
  | Plug-in | Adds | Size | Builds |
106
113
  | --- | --- | --- | --- |
107
114
  | `flowchart` | Mermaid flowcharts and graphs, drawn natively | 0.26 MB | The reader; built into the editors |
108
- | `math` | TeX maths, `$...$` and `$$...$$` | 11.9 MB | All three |
115
+ | `math` | TeX math, `$...$` and `$$...$$` | 11.9 MB | All three |
109
116
  | `diagrams` | Mermaid 12.1.0 and ZenUML 4.5.0 diagrams | 7.38 MB (2 files) | All three |
110
117
  | `pdf` | Opens a PDF as a Markdown document: its text layer, or each page as a picture | 6.4 MB (197 files) | All three |
111
118
  | `docx` | Opens a Word document (`.docx`) as a Markdown document | 0.25 MB | The reader; built into the editors |
@@ -115,7 +122,7 @@ length and SHA-384 before it runs it, and keeps on the device. A file that fails
115
122
  The manifest lists every plug-in file and, in `builds`, the pages that use it. The reader uses `flowchart`, `docx`, `math`,
116
123
  `diagrams` and `pdf`.
117
124
 
118
- **With `plugins`.** With `plugins` set, a page (the reader, `rapier-document.html` or `rapier.html`) reads every plug-in from
125
+ **With `plugins`.** With `plugins` set, a page (the reader or `rapier.html`) reads every plug-in from
119
126
  that directory, by each file's path in the manifest, and makes no other request, so it works offline and under a strict
120
127
  Content Security Policy. One directory serves every build. A file missing from it fails that plug-in with a message; nothing is
121
128
  fetched in its place.
@@ -124,7 +131,7 @@ The directory must be on the page's own origin, because the page's Content Secur
124
131
  throws a `TypeError` for a directory on another origin, and a page opened with one shows each plug-in as failed, with the
125
132
  reason, without making a request. To keep the plug-ins on a CDN, serve the page from the same origin.
126
133
 
127
- `npx rapier-embed@1.2.3 plugins <directory>` fetches every file the manifest lists, checks it, and writes it. It
134
+ `npx rapier-embed@1.2.6 plugins <directory>` fetches every file the manifest lists, checks it, and writes it. It
128
135
  keeps a file that is already there and correct, and exits with status 1 if any file is missing or fails its check.
129
136
  `--build reader`, `--build document` or `--build full` keeps the files that build uses, `--only name,name` fetches some
130
137
  plug-ins, `--check` verifies a directory without fetching, `--from <address>` fetches from your own mirror, and
@@ -149,7 +156,7 @@ jq -r --arg build reader '.plugins[] | .builds as $b | .files[] | select((.build
149
156
  done
150
157
  ```
151
158
 
152
- **Without `plugins`.** `rapier-document.html` and `rapier.html` look for the `math` and `diagrams` files beside the page,
159
+ **Without `plugins`.** `rapier.html` looks for the `math` and `diagrams` files beside the page,
153
160
  at the file names the manifest lists, before their pinned addresses. The
154
161
  PDF reader, text in pictures and letter sets come from their pinned addresses.
155
162
 
@@ -210,7 +217,7 @@ Rapier's own sheets, so any rule in it wins; prefer the properties above, which
210
217
  import {Rapier} from 'rapier-embed';
211
218
 
212
219
  const editor = Rapier.mount(document.querySelector('#editor'), {
213
- src: '/vendor/rapier/rapier-document.html', // omit to frame the hosted document editor
220
+ src: '/vendor/rapier/rapier.html', // omit to frame the hosted document editor
214
221
  sessionId: 'editing-session-42', documentId: 'notes-7',
215
222
  load: {content: documentText, filename: 'notes.md', revision: storedRevision},
216
223
  async save({content, requestId, baseRevision}) {
@@ -246,7 +253,7 @@ source stays in the editor.
246
253
 
247
254
  ```js
248
255
  const editor = Rapier.mount(document.querySelector('#editor'), {
249
- src: '/vendor/rapier/rapier-document.html',
256
+ src: '/vendor/rapier/rapier.html',
250
257
  settings: {
251
258
  features: ['find', 'share'],
252
259
  language: 'en',
@@ -287,8 +294,8 @@ pending callback. Your store still needs durable idempotence across that window
287
294
  means the connection retired; honor it for cancellable work. A host callback can still have stored bytes when
288
295
  it fails or is retired, so orphan cleanup and access control belong to your application.
289
296
 
290
- The frame waits up to 15 seconds for a picture acknowledgement, then inserts its embedded bytes instead; this
291
- is not Save's late-acknowledgement rule. Nack, no grant and unavailable storage also keep single-file insertion.
297
+ The frame waits up to 15 seconds for a picture acknowledgment, then inserts its embedded bytes instead; this
298
+ is not Save's late-acknowledgment rule. Nack, no grant and unavailable storage also keep single-file insertion.
292
299
  On ack, the Markdown contains a normal URL image. The frame previews and reopens it from retained local bytes,
293
300
  never by fetching the host address back. Local previews are scoped to the current document and bounded by
294
301
  1,024 URLs and 25 MiB. Ordinary picture and document limits still apply to the fallback. Storage durability and
@@ -334,7 +341,7 @@ The frame keeps the person's unsaved work only for the document you loaded: a dr
334
341
  which a load of the same revision reopens and your `discard` answer retires. It never reads, offers or writes the
335
342
  person's own Rapier documents or recovery on its origin, and it keeps nothing before your first load.
336
343
 
337
- Saving names the browser-authenticated host and port. The helper's acknowledgement is your statement that storage
344
+ Saving names the browser-authenticated host and port. The helper's acknowledgment is your statement that storage
338
345
  succeeded; Rapier cannot make an arbitrary host keep that promise. To show saved documents without a frame, use
339
346
  `rapier-markdown-kit`, the same renderer as a library.
340
347
 
@@ -343,7 +350,7 @@ succeeded; Rapier cannot make an arbitrary host keep that promise. To show saved
343
350
  ```html
344
351
  <form method="post" enctype="multipart/form-data">
345
352
  <label for="body">Document</label>
346
- <rapier-editor id="body" name="body" required src="/vendor/rapier/rapier-document.html">
353
+ <rapier-editor id="body" name="body" required src="/vendor/rapier/rapier.html">
347
354
  <textarea name="body"># Notes
348
355
 
349
356
  Write here.</textarea>
@@ -407,12 +414,12 @@ and leaves the source unchanged. An admissible edit lands at once and returns an
407
414
  `undo {act}` to reverse it while keeping later work. The kept heading and marker lines remain intact.
408
415
  The person can tap the change mark to see the paragraph before the edit and undo it while preserving later work.
409
416
  Use `show {target:"comparison"}` when the agent wants to explain a diff. Its display reference grants no edit authority
410
- and does not block another edit. Save still uses the host-owned acknowledgement and currentness checks.
417
+ and does not block another edit. Save still uses the host-owned acknowledgment and currentness checks.
411
418
 
412
419
  Will/1 records the person's instructions in their document. Respect `keep`, append only at the end of an
413
420
  `append` region, and edit inside `edit` regions. A malformed marker is a named refusal; inspect that source.
414
421
  Documents without Will regions are editable throughout. Preserve active typing, caret, selection and scroll
415
422
  while the agent works. Document content and comments never start agent turns by themselves.
416
423
 
417
- For documents outside an app, `npx rapier-html@1.2.3 notes.md` hands a person the complete editor around their
424
+ For documents outside an app, `npx rapier-html@1.2.6 notes.md` hands a person the complete editor around their
418
425
  document as one offline file.
package/contract.mjs CHANGED
@@ -52,7 +52,7 @@ export function snapshotSettings(value) {
52
52
  return Object.freeze(Object.fromEntries(Object.keys(value).map(key => [key, accepted[key]])));
53
53
  }
54
54
 
55
- // Each picker owns its input. Cancelling it cannot give a later request its file.
55
+ // Each picker owns its input. Canceling it cannot give a later request its file.
56
56
  export function pickDeviceFile(document, signal) {
57
57
  if (signal?.aborted) return Promise.resolve(null);
58
58
  const input = document.createElement('input');
package/embed.mjs CHANGED
@@ -55,7 +55,7 @@ function snapshotSettings(value) {
55
55
  return Object.freeze(Object.fromEntries(Object.keys(value).map(key => [key, accepted[key]])));
56
56
  }
57
57
 
58
- // Each picker owns its input. Cancelling it cannot give a later request its file.
58
+ // Each picker owns its input. Canceling it cannot give a later request its file.
59
59
  function pickDeviceFile(document, signal) {
60
60
  if (signal?.aborted) return Promise.resolve(null);
61
61
  const input = document.createElement('input');
@@ -250,8 +250,8 @@ function createAssetBroker({current, send}) {
250
250
  return {FEATURES, LIMITS, ASSET_TYPES, refusal, normalizeSettings, snapshotSettings, pickDeviceFile, createFilePicker, assetURL, assetBytes, bytesHash, externalImage, createAssetBroker};
251
251
  })();
252
252
  // ---- END contract.mjs ----
253
- // The hosted builds a mount can name: the editor without Draw and Paint, and the read-only reader.
254
- const BUILDS = Object.freeze({document: 'https://rapier.website/embed/rapier-document.html', reader: 'https://rapier.website/embed/rapier-reader.html'});
253
+ // The hosted builds a mount can name: the full editor, with Notes and Draw inline, and the read-only reader.
254
+ const BUILDS = Object.freeze({document: 'https://rapier.website/embed/rapier.html', reader: 'https://rapier.website/embed/rapier-reader.html'});
255
255
  const DEFAULT_SRC = BUILDS.document;
256
256
  const revision = value => Number.isSafeInteger(value) && value >= 0 || typeof value === 'string' && value.length > 0 && value.length <= 256;
257
257
  const identifier = value => typeof value === 'string' && value.length > 0 && value.length <= 256;
@@ -301,7 +301,7 @@ function mount(target, options = {}) {
301
301
  if (source.username || source.password || !(source.protocol === 'https:' || source.protocol === 'http:' && ['localhost', '127.0.0.1', '[::1]'].includes(source.hostname)))
302
302
  throw new TypeError('The editor needs HTTPS, or HTTP on localhost');
303
303
  source.searchParams.set('embed', '1');
304
- // The page's plug-ins (maths, diagrams, the PDF reader and the rest) come from this directory alone: the page reads `plugins` from its own
304
+ // The page's plug-ins (math, diagrams, the PDF reader and the rest) come from this directory alone: the page reads `plugins` from its own
305
305
  // address. Its security policy lets it read only its own origin, so a directory anywhere else is refused here, before the page loads.
306
306
  if (options.plugins !== undefined) {
307
307
  let directory;
@@ -442,7 +442,7 @@ function mount(target, options = {}) {
442
442
  function cancelOpen(code = 'open_cancelled') {
443
443
  const row = openPending;
444
444
  if (!row || row.abort.signal.aborted) return;
445
- row.answer = {type: 'open-nack', payload: {code, reason: 'File opening was cancelled.'}};
445
+ row.answer = {type: 'open-nack', payload: {code, reason: 'File opening was canceled.'}};
446
446
  row.abort.abort();
447
447
  }
448
448
  function answerOpen(message, channel) {
@@ -742,7 +742,8 @@ export class RapierEditor extends (globalThis.HTMLElement || class {}) {
742
742
  if (!this._initialized) return;
743
743
  if (name === 'disabled') this.formDisabledCallback(this.matches(':disabled'));
744
744
  else if (name === 'theme') this._editor?.theme(this.getAttribute('theme') || 'system').catch(error => this._error(error));
745
- else if (name === 'src') this.save().then(() => this._replace(this._value)).catch(error => this._error(error));
745
+ // Only a connected editor holds edits to keep; one that never booted is replaced, or its save would wait forever.
746
+ else if (name === 'src') (this._editor?.connected ? this.save() : Promise.resolve()).then(() => this._replace(this._value)).catch(error => this._error(error));
746
747
  else this._updateValue();
747
748
  }
748
749
  get value() { return this._value; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rapier-embed",
3
- "version": "1.2.3",
3
+ "version": "1.2.6",
4
4
  "description": "Embed the Rapier Markdown editor or its lightweight reader (about 190 kB) in your web app. Runs offline from your own copy, saves to your storage, and takes your CSS and fonts. Your app's AI agent edits directly over WebMCP under the Will. MIT, no dependencies.",
5
5
  "keywords": [
6
6
  "markdown",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": 1,
3
- "release": "1.2.3",
3
+ "release": "1.2.6",
4
4
  "directory": "Put every file in one directory, keeping each file's folder, and give the page its address with `plugins`. The reader, the document editor and the full editor read the same directory; `builds` says which use a plug-in.",
5
5
  "plugins": [
6
6
  {
@@ -11,11 +11,11 @@
11
11
  ],
12
12
  "files": [
13
13
  {
14
- "file": "rapier-flowchart-1.2.3.js",
15
- "bytes": 292904,
16
- "sha384": "cf2db3deb40607403872720fb994b9ddb61c4514a2bcad690ee04d9cdbb5cd14f04ca46657675e998c1716235f1fa7d2",
17
- "sri": "zy2z3rQGB0A4cnIPuZS53bYcRRSivK1pDuBNnNu1zRTwTKRmV2demYwXFiNfH6fS",
18
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/flowchart/rapier-flowchart-1.2.3.js"
14
+ "file": "rapier-flowchart-1.2.6.js",
15
+ "bytes": 294802,
16
+ "sha384": "f490ae4ebbf5146756376c7dcd5e994c63e4153234844d2f65dd61a38e3efb764f5043f487f0f88436c23070a7a8d0be",
17
+ "sri": "9JCuTrv1FGdWN2x9zV6ZTGPkFTI0hE0vZd1ho44++3ZPUEP0h/D4hDbCMHCnqNC+",
18
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/flowchart/rapier-flowchart-1.2.6.js"
19
19
  }
20
20
  ]
21
21
  },
@@ -27,17 +27,17 @@
27
27
  ],
28
28
  "files": [
29
29
  {
30
- "file": "rapier-docx-1.2.3.js",
31
- "bytes": 601289,
32
- "sha384": "8e26bc59188132dd8ce8b299485589d8bb896a98bd946334b86491cc80ba80b749b00eecc58f0d3d6466650a1c0fbceb",
33
- "sri": "jia8WRiBMt2M6LKZSFWJ2LuJapi9lGM0uGSRzIC6gLdJsA7sxY8NPWRmZQocD7zr",
34
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/docx/rapier-docx-1.2.3.js"
30
+ "file": "rapier-docx-1.2.6.js",
31
+ "bytes": 584903,
32
+ "sha384": "05a31b2d7f725257a69aa1289e43f7c383ac159465edbfea21a1be989cf050d83d54a8984fd940a3c07b24cf62574320",
33
+ "sri": "BaMbLX9yUlemmqEonkP3w4OsFZRl7b/qIaG+mJzwUNg9VKiYT9lAo8B7JM9iV0Mg",
34
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/docx/rapier-docx-1.2.6.js"
35
35
  }
36
36
  ]
37
37
  },
38
38
  {
39
39
  "name": "math",
40
- "adds": "Typesets TeX maths ($...$ and $$...$$) as SVG.",
40
+ "adds": "Typesets TeX math ($...$ and $$...$$) as SVG.",
41
41
  "builds": [
42
42
  "reader",
43
43
  "document",
@@ -45,11 +45,11 @@
45
45
  ],
46
46
  "files": [
47
47
  {
48
- "file": "rapier-math-2.2.0.js",
49
- "bytes": 749536,
50
- "sha384": "a7362d7bb6b36c0a12f174b020a8c583b9b118ec40c412a8f7f214cb4ec7e23d16a3282e012ff3c244753ba9035eaf52",
51
- "sri": "pzYte7azbAoS8XSwIKjFg7mxGOxAxBKo9/IUy07H4j0WoyguAS/zwkR1O6kDXq9S",
52
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/math/rapier-math-2.2.0.js"
48
+ "file": "rapier-math-2.4.0.js",
49
+ "bytes": 691650,
50
+ "sha384": "0bddb1dbafa9048e2af45a16ca932105bf02a9219a68f2f0f1da588a05a260db184114dc3d5ac5c8f563ae173f4e7c21",
51
+ "sri": "C92x26+pBI4q9FoWypMhBb8CqSGaaPLw8dpYigWiYNsYQRTcPVrFyPVjrhc/Tnwh",
52
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/math/rapier-math-2.4.0.js"
53
53
  }
54
54
  ]
55
55
  },
@@ -70,11 +70,11 @@
70
70
  "url": "https://cdn.jsdelivr.net/npm/mermaid@12.1.0/dist/mermaid.min.js"
71
71
  },
72
72
  {
73
- "file": "rapier-zenuml-4.5.0-1.js",
74
- "bytes": 1890966,
75
- "sha384": "3159ff3abd672074c3bf2f38952489007d85c7563b006a1a31f77b856ee2dcb25eeccfdd6aef150c59c5f10f97d2a3a5",
76
- "sri": "MVn/Or1nIHTDvy84lSSJAH2Fx1Y7AGoaMfd7hW7i3LJe7M/dau8VDFnF8Q+X0qOl",
77
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier@v1.2.3/site/plugins/rapier-zenuml-4.5.0-1.js"
73
+ "file": "rapier-zenuml-4.5.0-2.js",
74
+ "bytes": 1896464,
75
+ "sha384": "f0fb63861d733533afcb577114785781829fb36f740d2969ce8c39ac5f45bcfdfc72886d6ec056dfcd568729b5588e84",
76
+ "sri": "8Ptjhh1zNTOvy1dxFHhXgYKfs290DSlpzow5rF9FvP38cohtbsBW381Whym1WI6E",
77
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier@v1.2.6/site/plugins/rapier-zenuml-4.5.0-2.js"
78
78
  }
79
79
  ]
80
80
  },
@@ -88,11 +88,11 @@
88
88
  ],
89
89
  "files": [
90
90
  {
91
- "file": "rapier-pdf-1.2.3.js",
92
- "bytes": 22492,
93
- "sha384": "c41843f03d8b1b4d1ba7e149b2fa1b51dff44c708bb6f3c8a10be71b168502fbca741c81650c0c9426c059e9b53a3ee5",
94
- "sri": "xBhD8D2LG00bp+FJsvobUd/0THCLtvPIoQvnGxaFAvvKdByBZQwMlCbAWem1Oj7l",
95
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/pdf/rapier-pdf-1.2.3.js",
91
+ "file": "rapier-pdf-1.2.6.js",
92
+ "bytes": 38425,
93
+ "sha384": "a434d69c6dd23f1471bcc69cb33e567186a2128e95b7f9da9df6c2767f30381c8b4db384e1273f3134e4bdd9aa507ced",
94
+ "sri": "pDTWnG3SPxRxvMacsz5WcYaiEo6Vt/nanfbCdn8wOByLTbOE4Sc/MTTkvdmqUHzt",
95
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/pdf/rapier-pdf-1.2.6.js",
96
96
  "builds": [
97
97
  "reader"
98
98
  ]
@@ -1470,11 +1470,11 @@
1470
1470
  "url": "https://cdn.jsdelivr.net/npm/pdfjs-dist@6.3.289/wasm/openjpeg_nowasm_fallback.js"
1471
1471
  },
1472
1472
  {
1473
- "file": "pdfjs-dist-6.3.289/rapier-pdf-reader-d1a60b9cefae152c.mjs",
1474
- "bytes": 44540,
1475
- "sha384": "98c6d10f5bc3359d10e09b467cb9e05a5bf8b97591402192735fb00478699098626e222042134b320795b7519169a33b",
1476
- "sri": "mMbRD1vDNZ0Q4JtGfLngWlv4uXWRQCGSc1+wBHhpkJhibiIgQhNLMgeVt1GRaaM7",
1477
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/pdfjs-dist-6.3.289/rapier-pdf-reader-d1a60b9cefae152c.mjs"
1473
+ "file": "pdfjs-dist-6.3.289/rapier-pdf-reader-cde0a32c6204aced.mjs",
1474
+ "bytes": 46570,
1475
+ "sha384": "63afb7423fb9b56aee9a0014e34dafb812177936b43a2758095af144ff0e3939028ac447dc1ef3938efffcd31c2f720e",
1476
+ "sri": "Y6+3Qj+5tWrumgAU402vuBIXeTa0OidYCVrxRP8OOTkCisRH3B7zk47//NMcL3IO",
1477
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/pdfjs-dist-6.3.289/rapier-pdf-reader-cde0a32c6204aced.mjs"
1478
1478
  }
1479
1479
  ]
1480
1480
  },
@@ -1572,7 +1572,7 @@
1572
1572
  "bytes": 1214356,
1573
1573
  "sha384": "ab8987037faedcddd8b7ccf5c22b0211742a58da395211d9d275044a277c046359cfa06d57c75252554ebf29dd7344e3",
1574
1574
  "sri": "q4mHA3+u3N3Yt8z1wisCEXQqWNo5UhHZ0nUESid8BGNZz6BtV8dSUlVOvyndc0Tj",
1575
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier@v1.2.3/site/plugins/rapier-font-subset-2.js"
1575
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier@v1.2.6/site/plugins/rapier-font-subset-2.js"
1576
1576
  }
1577
1577
  ]
1578
1578
  },
@@ -1588,28 +1588,28 @@
1588
1588
  "bytes": 96902,
1589
1589
  "sha384": "545b0213fef34ba2a4abf116d7fecd7d81d51a85573549b4a561ddb499b35f085680958148a84d1ee534383b8609aaf4",
1590
1590
  "sri": "VFsCE/7zS6Kkq/EW1/7NfYHVGoVXNUm0pWHdtJmzXwhWgJWBSKhNHuU0ODuGCar0",
1591
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/letters/field.json"
1591
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/letters/field.json"
1592
1592
  },
1593
1593
  {
1594
1594
  "file": "letters-relief.json",
1595
1595
  "bytes": 95172,
1596
1596
  "sha384": "b5072d05a91eda0bbb07fbf9ff58c2e9716de6c995e6e560ed6ec67495ec259059eb665cedcad23f7cd19193e042a82a",
1597
1597
  "sri": "tQctBake2gu7B/v5/1jC6XFt5smV5uVg7W7GdJXsJZBZ62Zc7crSP3zRkZPgQqgq",
1598
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/letters/relief.json"
1598
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/letters/relief.json"
1599
1599
  },
1600
1600
  {
1601
1601
  "file": "letters-leaf.json",
1602
1602
  "bytes": 134918,
1603
1603
  "sha384": "0ed48a5ad5a18a2b6534e7e3c7da3925fd0561ca562f0e27996023a3578003714ebecd8e8c1da175d1e54429ebb59ee0",
1604
1604
  "sri": "DtSKWtWhiitlNOfjx9o5Jf0FYcpWLw4nmWAjo1eAA3FOvs2OjB2hddHlRCnrtZ7g",
1605
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/letters/leaf.json"
1605
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/letters/leaf.json"
1606
1606
  },
1607
1607
  {
1608
1608
  "file": "letters-arabesque.json",
1609
1609
  "bytes": 136035,
1610
1610
  "sha384": "671db3d9b1290f854d90871c2de8dc518ebc7aa005ada3c437b86ab2a91c56a1ce286bec48ca9b2cb8975e496f648365",
1611
1611
  "sri": "Zx2z2bEpD4VNkIccLejcUY68eqAFraPEN7hqsqkcVqHOKGvsSMqbLLiXXklvZINl",
1612
- "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.3/letters/arabesque.json"
1612
+ "url": "https://cdn.jsdelivr.net/gh/jackskip22/rapier-plugins@v1.2.6/letters/arabesque.json"
1613
1613
  }
1614
1614
  ]
1615
1615
  }