agents/researcher: row 154 (#1648) packet through the d88613bac rebase round (manifest 3a4bc21c), without the five superseded 2 MB candidate.patch files (root, r2, r3, rebase-7bd2a348c, rebase-850484a7d), which stay untracked on disk
This commit is contained in:
@@ -0,0 +1,570 @@
|
||||
# Row 154 (#1648, Q168), phase 2 build note
|
||||
|
||||
Written 2026-10-18 by the Researcher seat. Brief: `docs/plans/2026-10-16_q168-wysiwyg-editor.md`, blob `4dd89bb60b04`.
|
||||
Mos's decision 123 go for phase 2 is mos-0716 (conditions 1-4, answered below).
|
||||
The candidate is a patch against `0f715a054` in the detached worktree `/mnt/storage/scratch/researcher/r154-wt`
|
||||
(rebased from `5e0437659` after row 124 landed on `bus.js` and `serve.mjs`; both patches applied clean).
|
||||
|
||||
**Status, 2026-10-18 16:52Z: built and tested.** Results are in "Results" below (webui suite 162/162 with
|
||||
`MOSAIC_REQUIRE_EDITOR_BUILD=1`). The text below was written before the first slot run; where it says "checked outside the
|
||||
suites", the suites have since checked it too. Sections "First slot run" and "Results" supersede anything older here.
|
||||
|
||||
**Updated 2026-10-18 after sage-0751 and sage-0757** (still no suite run; Sage's row 149 gate holds the slot, then me):
|
||||
the esbuild install and binary check, the `MOSAIC_REQUIRE_EDITOR_BUILD` switch and its tests, a separate paste-path test
|
||||
for the pasted-image change, the lock contents, and the corrections to Mos's text are below. **The candidate is held as
|
||||
it is until Mos answers whether `editor.js` stays committed** (Sage asked, sage-0751 call 2); a "no" moves the build into
|
||||
`stack-copy.sh` and changes the candidate.
|
||||
|
||||
## First slot run, 2026-10-18 (16:40Z) and what it changed
|
||||
|
||||
The first run of `editor-browser.test.mjs` failed 3 of 4. Stopped there as Sage directed (sage-0759). Causes, and fixes
|
||||
approved in sage-0762:
|
||||
|
||||
1. **Load-path test expected `view.links` to be `[]`; that was wrong.** markdown-it never makes a link token of a
|
||||
`javascript:` or a non-image `data:` target; it leaves them as text. The paragraph is therefore not flagged `refused`
|
||||
(that flag is set only when markdown-it yields a `link_open` whose href `linkTarget` rejects, e.g. `//evil.example/x`),
|
||||
so the good `https://example.com/a` in the same paragraph is a real link. The page is safe either way. The test now
|
||||
expects that one link, and keeps the safety assertions: no anchor with a `javascript:` or `data:` href, the
|
||||
`javascript:` and `data:` text shows as text, nothing ran, nothing was fetched. `hostile.md` gained a
|
||||
`[evil](//evil.example/x)` paragraph (must be a source block) and a `[sp](https://a b.example/)` paragraph (must stay text).
|
||||
2. **Paste/link-bar test reopened the same URL and hash.** A hash-only navigation does not reload, so the pasted links
|
||||
were still on the page ("2 links, expected 0"). It now loads `about:blank` first and asserts the pasted links and text
|
||||
are gone before the link bar is used, so a stale page cannot pass again.
|
||||
3. **Edit test.** I first reported that the save might send the old bytes. That was a misreading of the log. A diagnostic
|
||||
showed the save sent the edited text (`First para. More \*\*not bold\*\*.`), and the editor DOM held it throughout.
|
||||
The failing assert was the Source view after the save: it showed the old file. Cause, in the product: a switch between
|
||||
Visual and Source called `render(false)`, and `docView` re-reads any clean draft from the project (a saved draft is clean).
|
||||
In the test the project still served the pre-save file. In real use it would serve the saved commit, but the read is
|
||||
still a bug of this row: a view toggle costs a project read and can replace the draft with a newer commit.
|
||||
Row 148's `docs-browser.test.mjs` caught the same thing (it expects one `project-file` read; the Source click made a second).
|
||||
**Fix, in `src/public/bus.js`:** an explicit argument, no stored flag (a first version kept a one-shot flag on the
|
||||
draft state; Sage, sage-0771, pointed out it could leak into the next navigation). `render(navigated, opts)` passes
|
||||
`opts` to `view(get, path, q, opts)` and on to `docView(get, project, file, { reuseDraft })`. Only the mode-click handler
|
||||
passes `{ reuseDraft: true }`; hashchange, Refresh, Reload, the `/api/config` re-render and the 10 s refresh pass nothing.
|
||||
**Tests, `editor-browser.test.mjs`:** the fixture counts `project-file` reads. Test 3: none across Visual to Source and
|
||||
back, and the Source textarea equals the saved bytes. New test: two Visual/Source round trips read nothing; Reload reads
|
||||
exactly once; a switch after Reload reads nothing; going to `#/docs` and back reads exactly once. Counts are taken from
|
||||
what opening cost, because a cold load of a docs URL reads twice (the page draws again when `/api/config` answers;
|
||||
`bus.js` near the end). That predates this row and is left alone.
|
||||
4. **`browser.test.mjs` pins the page's script count** (`querySelectorAll("script").length` was 4). `index.html` now loads
|
||||
`/editor.js`, so the page has 5. I missed it because the first runs covered only the editor files; the suite found it.
|
||||
The assertion now lists the scripts (`/editor.js`, `/brand.js`, `/app.js`, `/markdown-preview.js`, `/bus.js`), so another
|
||||
added script still fails it. This is a change to a test row 154 did not list; Dewey and Filbert should look at it.
|
||||
|
||||
## Candidate files (2026-10-18 16:54Z)
|
||||
|
||||
In this packet: `candidate.patch` (`git diff --binary` against `0f715a054`, new files included; sha256
|
||||
`7ebc125f6edf94dd7efe5bb28af8b30926cdc88d916648998f930bc40f990ca1`; `git apply --check` passes on a fresh detached
|
||||
checkout of `0f715a054`), `changed-paths.txt` (195 paths: 9 modified, 186 new) and `candidate-manifest.sha256` (sha256 of
|
||||
each path as it sits in `/mnt/storage/scratch/researcher/r154-wt`). Nothing is committed or pushed. The tests were run on
|
||||
exactly these bytes; no edit followed the 16:50:56Z suite run except this packet.
|
||||
|
||||
|
||||
| Path | Change |
|
||||
|---|---|
|
||||
| `packages/webui/third_party/editor/` | New. 19 packages of upstream TypeScript source, byte for byte, each with its license file and `package.json`; `NOTICE`; `PROVENANCE.json`. 171 files. |
|
||||
| `packages/webui/editor/` | New. `model.mjs`, `view.mjs`, `entry.mjs`, `editor.css`, `build.mjs`, `toolchain.mjs` (the esbuild version, binary sha256 and `MOSAIC_REQUIRE_EDITOR_BUILD` check; never imports esbuild), `BUILD.json`. |
|
||||
| `packages/webui/src/public/editor.js`, `editor.css` | New. Built output (757137 and 4462 bytes). |
|
||||
| `packages/webui/src/public/index.html` | One line: the stylesheet link and `<script src="/editor.js" defer>`, before the page scripts. |
|
||||
| `packages/webui/src/public/bus.js` | Visual/Source mode, `mountEditor`, `unmountEditor`, the visual layout. Read, save, stale-base and read-only paths untouched. |
|
||||
| `packages/webui/src/serve.mjs` | The two static entries `/editor.js`, `/editor.css`. Nothing else. |
|
||||
| `packages/webui/package.json`, `package-lock.json` | `esbuild` `0.28.2` exact devDependency, `build:editor` script; new lock (27 packages). |
|
||||
| `packages/webui/tests/` | New: `editor.test.mjs`, `editor-provenance.test.mjs`, `editor-browser.test.mjs`, `helpers/editor-bundle.mjs`, `helpers/every-element.mjs`. Changed: `docs-browser.test.mjs` (see below), `serve.test.mjs` (two paths in a list). |
|
||||
| `packages/webui/README.md`, `docs/TOOLS.md` | "Visual editor" section; one paragraph. |
|
||||
|
||||
Not touched: the save route, bus verbs, the human writer, the CSP, `markdown-preview.js`, `project-file.test.mjs`.
|
||||
|
||||
## Mos's conditions
|
||||
|
||||
1. **A license file per package, plus NOTICE.** Every imported package has its own license file next to its source
|
||||
and `NOTICE` lists all of them; `editor-provenance.test.mjs` checks both. *Count:* Mos wrote 20; the build reads
|
||||
**19**. The 20th was `prosemirror-schema-basic`, which phase 1 listed but nothing imports (the schema is
|
||||
`model.mjs`'s own). It is not in the tree. `entities` is BSD-2-Clause; the other 18 are MIT (SPDX from each
|
||||
`package.json`).
|
||||
2. **Link mark through `window.MosaicMarkdown.linkTarget`; image becomes text.** `model.mjs` has no other target
|
||||
test. The image node is an inline atom drawn as `[image: alt] src`, never an `<img>`. The browser test covers
|
||||
`<script>`, `onerror`, `javascript:` and `data:` on the load path (a hostile file, plus the every-element doc) and
|
||||
the paste path (HTML and plain text, then the link bar). *Change made after phase 1's text:* the image node's
|
||||
`parseDOM` accepted any `data-src` on paste; it now requires `linkTarget(data-src) !== null`. See "Corrections to
|
||||
Mos's text" for why this is a change to the condition's wording, and its own test.
|
||||
3. **OSV re-run, positive control saved, added to osv.sh.** `repro/osv.sh` now runs the control first (dompurify
|
||||
2.3.3 -> 20 advisories, markdown-it 12.2.0 -> 3) and exits 3 if OSV returns fewer. It also reads
|
||||
`PROVENANCE.json`, because the imported source is in no lockfile. Run 2026-10-18T16:28Z: control 20 and 3; the
|
||||
lock (27 packages) 0 advisories, `results/osv-phase2-lock.json`; the 19 imported versions 0 advisories,
|
||||
`results/osv-phase2-imported.json`.
|
||||
4. **esbuild binary sha.** `@esbuild/linux-x64` 0.28.2, sha256
|
||||
`e1698a3d5c6c0798fee4fd3b5cc816651f460c63d390a7a26ea4beb0b1884100`. Lock integrity: esbuild
|
||||
`sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==`,
|
||||
`@esbuild/linux-x64` `sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==`
|
||||
(identical to the phase 1 scratch lock). Builds: `results/build-hashes.txt` (editor.js `c601f6c3…6565`, editor.css
|
||||
`8654ac57…ee61f`, two absolute paths, `BUILD.json` identical).
|
||||
|
||||
## Corrections to Mos's text
|
||||
|
||||
1. **19 packages, not 20.** Mos's condition 1 counts 20. `prosemirror-schema-basic` was in phase 1's list but has no
|
||||
importer (the schema is `model.mjs`'s own), so it is not imported and the build does not read it. 19 packages, 133
|
||||
build inputs, 171 files in `third_party/editor/`: 170 in the tree hash (the 19 packages plus `NOTICE`) and
|
||||
`PROVENANCE.json`, which records them.
|
||||
2. **The pasted-image rule changed.** Mos's text said the image node becomes text, drawn never as an `<img>`. That held
|
||||
for the load path. On the paste path the node accepted any `data-src` from a `span.md-image`, the editor's own copy
|
||||
format, so a pasted `javascript:` or `data:` target became an image node and a save wrote ``. Now
|
||||
`model.mjs` accepts that span only when `window.MosaicMarkdown.linkTarget` accepts its `data-src`; a refused span
|
||||
is dropped to its text. Test: `editor-browser.test.mjs`, "a pasted image span is kept only for a target the link gate
|
||||
accepts, and a save writes only those". It pastes two accepted targets (`https://ok.example/a.png`,
|
||||
`../img/r.png`) and seven refused ones (`data:`, `DATA:`, `javascript:`, ` javascript:`, `vbscript:`, `//host`, a
|
||||
target with a space) and checks the editor DOM (image nodes for the two, drawn as `[image: alt] src`, none for the
|
||||
rest), that nothing is fetched or injected, and the saved file (`` and
|
||||
`` in order, no refused target anywhere, the surrounding text kept). The older paste test
|
||||
still covers the span, HTML and plain-text cases together.
|
||||
|
||||
## esbuild lock contents
|
||||
|
||||
`packages/webui/package-lock.json`, lockfileVersion 3, sha256 `eb60a494…f63f`
|
||||
(`eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f`). Root entry: `@mosaic/webui` 0.1.0,
|
||||
devDependencies `esbuild` `0.28.2`. **27 packages, not 2:** esbuild lists every `@esbuild/*` platform package as an
|
||||
optional dependency, so the lock holds all 26 of them plus `esbuild`. `npm ci` installs only the one that matches the
|
||||
host's `os` and `cpu`, so a linux-x64 install holds two (`esbuild`, `@esbuild/linux-x64`). All 27 are version 0.28.2,
|
||||
`dev`, and (except `esbuild` itself) `optional`. Integrity values are the lock's, verbatim.
|
||||
|
||||
| Package | os / cpu | Integrity |
|
||||
|---|---|---|
|
||||
| `node_modules/esbuild` | | `sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==` |
|
||||
| `node_modules/@esbuild/aix-ppc64` | aix / ppc64 | `sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==` |
|
||||
| `node_modules/@esbuild/android-arm` | android / arm | `sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==` |
|
||||
| `node_modules/@esbuild/android-arm64` | android / arm64 | `sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==` |
|
||||
| `node_modules/@esbuild/android-x64` | android / x64 | `sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==` |
|
||||
| `node_modules/@esbuild/darwin-arm64` | darwin / arm64 | `sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==` |
|
||||
| `node_modules/@esbuild/darwin-x64` | darwin / x64 | `sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==` |
|
||||
| `node_modules/@esbuild/freebsd-arm64` | freebsd / arm64 | `sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==` |
|
||||
| `node_modules/@esbuild/freebsd-x64` | freebsd / x64 | `sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==` |
|
||||
| `node_modules/@esbuild/linux-arm` | linux / arm | `sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==` |
|
||||
| `node_modules/@esbuild/linux-arm64` | linux / arm64 | `sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==` |
|
||||
| `node_modules/@esbuild/linux-ia32` | linux / ia32 | `sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==` |
|
||||
| `node_modules/@esbuild/linux-loong64` | linux / loong64 | `sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==` |
|
||||
| `node_modules/@esbuild/linux-mips64el` | linux / mips64el | `sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==` |
|
||||
| `node_modules/@esbuild/linux-ppc64` | linux / ppc64 | `sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==` |
|
||||
| `node_modules/@esbuild/linux-riscv64` | linux / riscv64 | `sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==` |
|
||||
| `node_modules/@esbuild/linux-s390x` | linux / s390x | `sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==` |
|
||||
| `node_modules/@esbuild/linux-x64` (**the binary this build uses**) | linux / x64 | `sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==` |
|
||||
| `node_modules/@esbuild/netbsd-arm64` | netbsd / arm64 | `sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==` |
|
||||
| `node_modules/@esbuild/netbsd-x64` | netbsd / x64 | `sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==` |
|
||||
| `node_modules/@esbuild/openbsd-arm64` | openbsd / arm64 | `sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==` |
|
||||
| `node_modules/@esbuild/openbsd-x64` | openbsd / x64 | `sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==` |
|
||||
| `node_modules/@esbuild/openharmony-arm64` | openharmony / arm64 | `sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==` |
|
||||
| `node_modules/@esbuild/sunos-x64` | sunos / x64 | `sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==` |
|
||||
| `node_modules/@esbuild/win32-arm64` | win32 / arm64 | `sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==` |
|
||||
| `node_modules/@esbuild/win32-ia32` | win32 / ia32 | `sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==` |
|
||||
| `node_modules/@esbuild/win32-x64` | win32 / x64 | `sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==` |
|
||||
|
||||
Packet findings: **F1** the imported `punycode.js/package.json` is the one in tag `v2.3.1` (git blob `b8b76fc7…`);
|
||||
that file says `"name": "punycode"`, the npm tarball says `"punycode.js"`. It is metadata only: the build aliases
|
||||
`punycode.js` to `third_party/editor/punycode.js/punycode.js` by path and reads no name. **F2** done. **F3** done (condition 3). **F4** done
|
||||
(19 license files in `licenses/`, and in the tree).
|
||||
|
||||
## Things a reviewer should know
|
||||
|
||||
- **Dependency install for the gate (Sage's call 1, sage-0751).** `packages/webui/package.json` has a devDependency,
|
||||
`esbuild` `0.28.2` exact, and `packages/webui/package-lock.json` is new. The repo root has no workspaces and root
|
||||
`node_modules/esbuild` is 0.28.1 (it comes in through pi-coding-agent); the editor never uses it. The install is
|
||||
`npm ci --ignore-scripts --no-audit --no-fund` run inside `packages/webui`, into `packages/webui/node_modules`
|
||||
(gitignored). On linux-x64 it installs two packages, `esbuild` and `@esbuild/linux-x64`; the lock lists all 27
|
||||
(see "esbuild lock contents").
|
||||
- **Binary check, refused on a mismatch.** `editor/toolchain.mjs` holds the sha256 of the 0.28.2 linux-x64 binary
|
||||
(`e1698a3d…4100`, condition 4) and hashes `node_modules/@esbuild/linux-x64/bin/esbuild` before any build. It refuses
|
||||
when the hash differs, when no hash is recorded for the platform, when the platform package is missing, or when
|
||||
`ESBUILD_BINARY_PATH` is set (that variable swaps the binary esbuild runs). `build.mjs` calls it before it imports
|
||||
esbuild, so the check holds for `npm run build:editor` and for the rebuild test. `node editor/toolchain.mjs` runs it
|
||||
alone: it prints the binary path and hash, exit 0; `skip: <reason>`, exit 0; `missing:` exit 3; `refused:` exit 4.
|
||||
The gate runs it after the install and before the rebuild test. Checked now, outside the suites, against my scratch
|
||||
install: exit 0, hash `e1698a3d…4100`.
|
||||
- **`MOSAIC_REQUIRE_EDITOR_BUILD=1` (Sage's call 3).** Without it, a missing esbuild, or another version, skips the
|
||||
rebuild test and prints the reason; with it, that is a failure. A wrong binary fails either way. `1` requires;
|
||||
unset, empty and `0` do not; any other value throws, so `true` cannot quietly turn the requirement off. The landing
|
||||
gate sets it after the install. Tests, all in `editor-provenance.test.mjs`: (a) over four fake installs (no esbuild,
|
||||
0.28.1, 0.28.2 with a wrong binary, 0.28.2 with no binary) the verdict is skip, skip, fail, fail without the switch
|
||||
and fail in all four with it, plus the switch's own values and `ESBUILD_BINARY_PATH`; (b) a copy of `toolchain.mjs`
|
||||
in a temp directory with no esbuild above it, run as a program: exit 0 and `skip:` on stdout without the switch and
|
||||
with `0`, exit 3 and `missing:` on stderr with `1`, non-zero with `true`; (c) the rebuild test itself, which uses the
|
||||
same verdict. So "fails without esbuild" is tested without needing esbuild to be absent from the machine running it.
|
||||
A gate run that sets the switch on a machine with the install runs the rebuild; one without the install fails.
|
||||
- **The built bundle is committed. Held for Mos.** That is the tension with Q167 D3 (no vendored prebuilt bundles). What
|
||||
is vendored here is *source*; the bundle is a build output whose inputs, options and hashes are recorded and
|
||||
re-checkable, and a test proves the bytes. Sage's reading: D3 bans unreviewable bundles; this is our own build.
|
||||
`stack-copy.sh` runs `npm ci` at the root only, so a live copy cannot build the editor; building at deploy would put
|
||||
the install into stack-copy. Sage asked Mos (sage-0751 call 2). I changed nothing for it.
|
||||
- **`docs-browser.test.mjs` has one change.** The page now opens in Visual, row 148's tests drive the textarea, so the
|
||||
test file has a `source()` helper that clicks Source when `#doc-text` is absent, called at the four places that open
|
||||
a file. Assertions are unchanged. `project-file.test.mjs` is untouched.
|
||||
- **esbuild warning.** `[ignored-bare-import]` for `import "./mark"` in `prosemirror-transform/src/index.ts`
|
||||
(the package is `sideEffects: false`; `mark.ts` only exports functions). Benign; the build does not fail on it.
|
||||
- **The bundle is not scanned for string-to-markup sinks.** The row 148 sink scan applies to `editor/*.mjs`. The
|
||||
upstream code uses DOM APIs. The bundle is checked for `eval` and `new Function` only. The browser test checks the
|
||||
live DOM instead (no script, frame, object, style, form, `on*` attribute or fetched URL after load and paste).
|
||||
- **Open risk, checked at test time.** Whether a ProseMirror paste of `<img src=…>` HTML makes the browser fetch it
|
||||
(prosemirror-view parses pasted HTML in a detached document). The browser test asserts `performance` resource
|
||||
entries hold no tracker URL after the paste. `view.mjs` sets no `transformPastedHTML`; an `<img>` is dropped because the schema has no rule for it. If the test fails, the fix is a `transformPastedHTML` that removes `img` before parsing.
|
||||
|
||||
## Normalisations and limits (stated, not hidden)
|
||||
|
||||
- Open and save with no edit writes the same bytes. Checked (bare `vm`, not the suite) on `goals-review.md`; the
|
||||
suites check it for every `.md` under `docs/` and `spec/` and for the every-element doc.
|
||||
- CRLF saves as LF, as in row 148. An unedited file keeps Save off.
|
||||
- A block you edit is rewritten in the editor's form: `-` bullets, soft breaks as newlines, reference links inline,
|
||||
`<` and `&` escaped. Untouched blocks are written back as they were.
|
||||
- Kept as source blocks, not edited visually: tables, HTML blocks, front matter, indented code, setext headings,
|
||||
strikethrough, link reference definitions, non-blank gap lines, and any block with a link target the gate refuses.
|
||||
- Empty paragraphs vanish when saved with an edit. Two adjacent lists may merge on reparse. Copy/paste of an image
|
||||
atom inside the editor is lost. A redraw or a Visual/Source switch starts a new undo history.
|
||||
- The visual editor opens only when `roundTrip(text) === text`; otherwise the file opens in Source with a note.
|
||||
|
||||
## Row 129 overlap
|
||||
|
||||
Row 129 also edits `index.html` and `serve.mjs`. My hunks are one line and two lines. Whichever lands second rebases.
|
||||
|
||||
**`tests/browser.test.mjs` line 22 (sage-0775).** Row 129 (Rocko, in review) edits the same assertion: it adds `/chat.js`,
|
||||
a fifth script on its side. This row's list is `['/editor.js', '/brand.js', '/app.js', '/markdown-preview.js', '/bus.js']`.
|
||||
Whichever row lands second rebases that line and pins all six scripts, in page order. Neither row pins a bare count.
|
||||
Dewey and Filbert: expect a conflict on that line, and on `index.html` and `serve.test.mjs`'s path list, not a semantic one.
|
||||
|
||||
## Results (slot run 2026-10-18, 16:48:49Z to 16:51:57Z)
|
||||
|
||||
All with `MOSAIC_REQUIRE_EDITOR_BUILD=1`, from the package-local esbuild 0.28.2, worktree at `0f715a054` plus the candidate.
|
||||
Counts are awk sums over the spec logs in `/mnt/storage/scratch/researcher/r154-logs4/` and `r154-logs5/`, not typed by hand.
|
||||
|
||||
| Run | Start-end (UTC) | Tests | Pass | Fail | Skipped |
|
||||
|---|---|---|---|---|---|
|
||||
| `editor-browser.test.mjs` | 16:48:49Z, in the file-by-file run | 5 | 5 | 0 | 0 |
|
||||
| `editor.test.mjs` | same run | 5 | 5 | 0 | 0 |
|
||||
| `editor-provenance.test.mjs` | same run | 6 | 6 | 0 | 0 |
|
||||
| `docs-browser.test.mjs` (row 148, assertion unchanged: `reads.file` is 1) | same run | 1 | 1 | 0 | 0 |
|
||||
| `project-file.test.mjs` | same run | 10 | 10 | 0 | 0 |
|
||||
| `serve.test.mjs` | same run | 4 | 4 | 0 | 0 |
|
||||
| `markdown-preview.test.mjs` | same run | 19 | 19 | 0 | 0 |
|
||||
| `browser.test.mjs` (script list pin) | 16:50:55Z-16:50:56Z | 1 | 1 | 0 | 0 |
|
||||
| webui suite, `node --test tests/` | 16:50:56Z-16:51:52Z | 162 | 162 | 0 | 0 (0 cancelled) |
|
||||
|
||||
The suite in the 16:48:49Z run failed once (162 tests, 161 pass, 1 fail: `browser.test.mjs:21`, the script count; item 4
|
||||
above). The pin was fixed and the suite rerun at 16:50:56Z as Sage directed (sage-0775); that is the 162/162 line.
|
||||
|
||||
Process sweep at 16:51:57Z: nothing of mine left (node, chrome, by `/proc` cwd link). The slot was held with the busy check
|
||||
gated with `&&`. The mandatory rebuild test ("a missing or wrong esbuild skips without it and fails with it; ...") ran and
|
||||
passed in the suite (suite.log line 32); it was not skipped.
|
||||
|
||||
Not run: the root `test-*.sh` scripts (the Docker gate), the rest of the repository's suites, and any live step.
|
||||
|
||||
### Build record (Mos's sage-0751 conditions via mos-0765)
|
||||
|
||||
- esbuild: `0.28.2`, exact, from `packages/webui/package-lock.json` (sha256 `eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f`, 27 packages: esbuild and 26 `@esbuild/*`), installed with `npm ci --ignore-scripts --no-audit --no-fund` in `packages/webui`. Never the root install's esbuild.
|
||||
- Binary: `node_modules/@esbuild/linux-x64/bin/esbuild`, sha256 `e1698a3d5c6c0798fee4fd3b5cc816651f460c63d390a7a26ea4beb0b1884100`. `editor/toolchain.mjs` checks it before the byte compare; a wrong or unlisted binary is refused (exit 4), a missing one fails (exit 3) when the switch is on. Re-checked 16:52Z: `esbuild --version` prints `0.28.2` and the binary sha matches.
|
||||
- Command: from `packages/webui`, `node editor/build.mjs` (same as `npm run build:editor`). It bundles the entry `editor/entry.mjs` with the aliases in `editor/build.mjs`, which point at the TypeScript `src/` of the 19 trees under `third_party/editor/`. Options: bundle, iife, es2022, browser, legal-comments inline, unminified. Input list: the 133 files in `editor/BUILD.json`.
|
||||
- Outputs (sha256, bytes): `src/public/editor.js` `c601f6c3f75b7cf9898a9a52abfdab3e50badbcb5f66e57e6df57641878e6565`, 757137; `src/public/editor.css` `8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f`, 4462. Both re-hashed 16:52Z from the worktree and equal to `editor/BUILD.json`. A rebuild from the tree is byte-identical (esbuild prints a benign `[ignored-bare-import]` warning).
|
||||
- Tree: 171 files under `third_party/editor/` (170 in the tree hash, plus `PROVENANCE.json`).
|
||||
|
||||
### Tests that pin `index.html` or `public/` structure (sage-0775)
|
||||
|
||||
Grepped `packages/webui/tests/*.mjs` and `tests/helpers/*.mjs` for `index.html`, `<script`, `querySelectorAll("script`,
|
||||
`stylesheet`, `querySelectorAll("link`, `public/`, `readdirSync`, `.js'`/`.css'`, and for `#sections a`, `nav` and count
|
||||
patterns. What I found:
|
||||
|
||||
- `browser.test.mjs:22` pins the script list. **Changed** (see above).
|
||||
- `serve.test.mjs:36` lists the static paths served. **Changed** earlier: `/editor.js` and `/editor.css` added.
|
||||
- `shell.test.mjs:40` joins `app.js`, `bus.js` and `index.html` and searches for strings; it counts nothing, and no string it looks for is in the added link or script tag. `shell.test.mjs:22-33` compares `tokens.css`, `icons.svg` and the font files; none changed. `shell.test.mjs:266` expects 9 `#sections svg use`, `:274-276` the strip layout: the nav is unchanged, and the suite passes.
|
||||
- `bus.test.mjs:215` fetches `/bus.js` and `/bus.css` for status 200. Unaffected.
|
||||
- `markdown-preview.test.mjs:10` reads `markdown-preview.js` by path. Unaffected. `helpers/editor-bundle.mjs` (new) reads `markdown-preview.js` and `editor.js` into a `vm`.
|
||||
- `pinned-copy.test.mjs` and `service.test.mjs` call `readdirSync`, but on temp copies and unit directories, not on `src/public/`.
|
||||
- `#sections a` selectors in `bus-browser`, `send-browser`, `messages`, `docs-browser` and `shell` tests select nav links, not page `<link>` or `<script>` tags.
|
||||
- Other `<script` hits (`bus-browser`, `conversation`, `send-browser`, `docs-browser`, `markdown-preview`, `browser-edge`) are hostile test strings, not structure.
|
||||
|
||||
Nothing else pins the number or order of scripts, links or stylesheets. The whole suite passing (162/162) is the check; the grep
|
||||
is the list of where I looked, and it is a grep, so a pin written some other way would show only in the suite.
|
||||
|
||||
### Cold-load double read (not fixed; for a P19 follow-up)
|
||||
|
||||
`packages/webui/src/public/bus.js:1062-1067`: on load, `fetch('/api/config')` resolves and its `.then` calls `render(false)`
|
||||
for `/inbox`, `/settings` and any `/docs/` path (line 1067). The initial `render(false)` at line 1072 has already started,
|
||||
so opening a docs URL cold reads the file twice (`project-file` is called twice). I saw it as the test "opening reads once"
|
||||
getting 2. It predates this row. `docs-browser.test.mjs` (row 148) opens files by setting `location.hash` on a loaded page, not cold, though it does `b.navigate` to a docs URL for the `?noedit` and `?throwrender` pages (lines 240 and 248 on r1), which are cold loads. I left it alone and the new
|
||||
read-count test counts from what opening cost (`opened`), so it passes whether or not that is later fixed. A fix would be
|
||||
to skip the config re-render for `/docs/` when the first render has not yet drawn a doc, which is a change to row 148's
|
||||
flow, so it is not mine to make here.
|
||||
|
||||
## Rebase onto 850484a7d (row 129 landed first), prepared 2026-10-18, nothing run
|
||||
|
||||
Sage (sage-0795): row 129 landed as `850484a7d`, so this row is the second lander. The r1 candidate (base `0f715a054`,
|
||||
manifest `ecaec329…`) is untouched; Filbert is reviewing it. The rebase is a separate tree and a separate directory:
|
||||
`rebase-850484a7d/` in this packet (`candidate.patch` sha256 `2b8ccdfbbf0b991cc3b05eb1ecc1958fa41fec96c44a7eb5bce092cb1187f6b1`,
|
||||
`changed-paths.txt`, `candidate-manifest.sha256`, 195 paths, same set as r1), worktree `/mnt/storage/scratch/researcher/r154-wt2`
|
||||
(detached at `850484a7d`, the patch applied with `git apply --3way`, staged). **No test, build or server has run on it.**
|
||||
It is a preview for review of the conflicts, not a candidate. The tests, the rebuild check and a new manifest follow
|
||||
Filbert's r1 verdict, the slot, and r2.
|
||||
|
||||
### Conflicts and how each was resolved
|
||||
|
||||
Three files conflicted. Everything else applied or merged without a conflict.
|
||||
|
||||
1. `packages/webui/src/public/index.html` (head, lines 4-6). Row 129 added `/chat.css` before `/shell.css` and `/chat.js`
|
||||
before `/bus.js`; this row adds one line holding `/editor.css` and `/editor.js`. Resolved by keeping row 129's two lines
|
||||
as they are and inserting my line between them, as in r1. Page script order is now `editor, brand, app, markdown-preview, chat, bus`.
|
||||
2. `packages/webui/src/serve.mjs` (static map, lines 25-33). Row 129 added `chat.js` to the script list and `chat.css`
|
||||
to the stylesheet list; this row adds two explicit entries. Resolved by keeping row 129's lists and adding my
|
||||
`/editor.js` and `/editor.css` entries after them. No entry of either row changed.
|
||||
3. `packages/webui/tests/browser.test.mjs` (line 21). Row 129 changed the count from 4 to 5 and added a
|
||||
`script[src="/chat.js"]` count of 1; r1 replaced the count with a list. Resolved with the list of all six, in page
|
||||
order: `['/editor.js', '/brand.js', '/app.js', '/markdown-preview.js', '/chat.js', '/bus.js']`, and kept row 129's
|
||||
`/chat.js` count line unchanged under it. The count of 5 is gone (a pinned list says more).
|
||||
|
||||
### Merges that applied without a conflict, and what I looked at
|
||||
|
||||
- `packages/webui/src/public/bus.js`. Row 129 changed it (the Chat section, `forget()`, the `/chat` branch in `render`, the
|
||||
palette views, the config re-render condition). Mine are in `docView`, `view` and `render`'s signature and the mode-click
|
||||
handler. The merge is textual with no overlap. Checked by reading, not by running: `render(navigated, opts = {})` still
|
||||
takes `opts` (line 866), the chat branch returns before `view(...)` so `opts` is never needed there, `view(get, path, q, opts)`
|
||||
is at 821, and `docView(..., { reuseDraft })` at 683. **The behaviour of the combined file is untested until r2.**
|
||||
- `packages/webui/tests/serve.test.mjs`. Row 129 did not touch it on this path list; my one-line change (two editor paths) applied as in r1.
|
||||
- `docs/TOOLS.md`, `packages/webui/README.md`. Row 129 appended its own sections at the end of both; mine are separate
|
||||
paragraphs and sections. No overlap.
|
||||
- `packages/webui/package.json`, `tests/docs-browser.test.mjs`. Unchanged by row 129; applied as in r1.
|
||||
|
||||
### The grep for structure pins, repeated on the new base
|
||||
|
||||
Grepped `tests/chat*.mjs`, `views.test.mjs`, `shell.test.mjs`, `serve.test.mjs`, `browser*.mjs`, `bus*.mjs` for
|
||||
`index.html`, script and link selectors, `stylesheet`, `/editor`, `/chat.js`, `/chat.css` and `src/public`. Row 129 changed
|
||||
`shell.test.mjs` (the `#sections svg use` count is 10 now, with a Chat link check): this row adds no nav item, so it does
|
||||
not affect it. Nothing new pins the number or order of scripts or links beyond `browser.test.mjs:22-23`. Again a grep: the suite is the check.
|
||||
|
||||
### Files that differ from the r1 candidate
|
||||
|
||||
By sha256 against r1's manifest, six files differ: `docs/TOOLS.md`, `packages/webui/README.md`, `packages/webui/src/public/bus.js`,
|
||||
`packages/webui/src/public/index.html`, `packages/webui/src/serve.mjs`, `packages/webui/tests/browser.test.mjs`. The other 189 are
|
||||
byte-identical to r1, including `editor.js` and `editor.css`, so the rebuild check does not change: `editor.js` is
|
||||
`c601f6c3…`, `editor.css` is `8654ac57…` (to be re-verified by running the rebuild test on the new base).
|
||||
|
||||
### Still needed
|
||||
|
||||
Filbert's r1 verdict and any changes; the slot; the touched tests singly and the webui suite on the rebased tree, with
|
||||
`MOSAIC_REQUIRE_EDITOR_BUILD=1`; a new manifest; Mos's fresh decision 123 go on the rebased `public/` diff; r2.
|
||||
|
||||
## r2 changes from Filbert's r1 verdict (CHANGES, #1648 comment 28954, rev 1794), written 2026-10-18T17:22Z (clock), nothing run
|
||||
|
||||
Made on the rebased tree only (`/mnt/storage/scratch/researcher/r154-wt2`, staged). The r1 candidate is untouched. **No test has
|
||||
run on any of this.** The rebase packet in `rebase-850484a7d/` (patch `2b8ccdfb…`, manifest `971da9a4…`) predates these edits and is
|
||||
superseded when the slot run is done and the r2 manifest is cut.
|
||||
|
||||
1. **Blocking, the round-trip gate had no test** (`bus.js` gate `window.MosaicEditor.roundTrip(s.text) === s.text`, Filbert's m3 forced
|
||||
it true and survived). New test in `tests/editor-browser.test.mjs`, "a file the editor cannot write back byte for byte opens as
|
||||
Source…": it swaps `window.MosaicEditor` for `{ mount: real.mount, roundTrip: t => t + ' ' }`, reloads the file, and asserts `#doc-text` holds
|
||||
the file, the note "The visual editor is not available for this file, so it is open as source." shows, there is no `.ProseMirror`,
|
||||
`#doc-save` is disabled, and Source is the pressed button. Same test, second half: `window.MosaicEditor = undefined` (the
|
||||
`!window.MosaicEditor` branch of the gate) gives the same five facts. Expected killer for m3 (gate forced true): the first
|
||||
`deepEqual` (`pm: false` fails because the editor mounts). **Not yet run; the mutant run belongs to the slot and its result goes here.**
|
||||
2. **Mode follows the screen.** r1 compared a click with `docMode` (the view asked for). On a fallback `docMode` stays `'visual'`
|
||||
while Source is on screen, so Visual was ignored: a user who made the text round-trip in Source (it re-renders only on a
|
||||
switch) could not get back to the editor without clicking Source first. Now `docShown` is set in `docView` to what was drawn
|
||||
(`'visual'` only when `visualOk`), and the click handler compares with it; `docMode` stays the preference. I did **not** set
|
||||
`docMode = 'source'` on fallback, because docMode is shared across files and one unwritable file would then open every later file as Source.
|
||||
The same test covers it: after a fallback, with the stub's `roundTrip` fixed, one click on Visual opens the editor with
|
||||
no new read; the next fallback is a fallback again (preference kept); with no editor, a click on Visual leaves Source and the note.
|
||||
Expected killer for reverting to `mode === docMode`: the Visual-click `h.pm()` wait times out.
|
||||
3. **docs-browser wait restored.** r1's `source()` helper dropped `#doc-commit` `textContent !== ""` that row 148's `?throwrender` wait
|
||||
had (the assertion `text('#doc-commit') === C1.slice(0, 12)` follows it). It is back in both waits in `source()`
|
||||
(`tests/docs-browser.test.mjs`), so every use of the helper has it, not only the one line.
|
||||
|
||||
Files changed since the rebase packet: `packages/webui/src/public/bus.js`, `tests/editor-browser.test.mjs`, `tests/docs-browser.test.mjs`.
|
||||
Path set is still the same 195. `editor.js` and `editor.css` are not touched, so the rebuild shas stay as in the build record.
|
||||
|
||||
Design choice for review (Sage accepted `docShown` in sage-0799, sent about 17:22:30Z; its own stamp said 17:24Z, corrected by sage-0800): a fallback does not set `docMode = 'source'`. `docMode` is one variable
|
||||
shared across every file in the page, so one file the editor cannot write back would force every later file into Source, including files that
|
||||
round-trip. `docShown` is the view drawn by the last `docView` and is what a click compares with; `docMode` stays the user's preference.
|
||||
The "expected killer" wording above is a prediction. The killers are named from the slot run below, once it has happened.
|
||||
|
||||
## Dewey's r1 finding: line breaks in link titles, image alt/title and fence info (sage-0802; written, first slot run 2026-10-18T17:57Z)
|
||||
|
||||
Dewey's verdict comment is the source of record; this records what `editor/model.mjs` does and where I went past sage-0802.
|
||||
|
||||
The four sinks: a link mark's `title`, an image's `alt` and `title`, and a code block's `params`. Each is written into one line of Markdown, a paste can set any of them, and a line break in one let a following `<img …>` start an HTML block in the saved file.
|
||||
|
||||
- Link title, image alt, image title: `oneLine` replaces each run of CR/LF with one space on the way out.
|
||||
- Code block info: `fenceInfo` keeps the first line only, and drops the info if it holds a backtick (a backtick info is not legal on a backtick fence).
|
||||
- Load side: a `fence` token whose info holds a backtick (legal only on a tilde fence) sets `refused`, so that one block loads as a raw source block (`pre.md-raw` inside the visual editor, from `nodeOf`, model.mjs:265); the rest of the file stays visual. Without that, the first edit would have written the block back without its info.
|
||||
|
||||
Deviations from sage-0802: (i) the info is cut at the first line break, not the first whitespace, so `js {1,3}` keeps its attributes; (ii) the tilde-fence backtick case loads as a raw source block (that block only, not the whole file as Source), as above; (iii) a single newline in a title or alt that came from a file is collapsed only when its block is edited (an untouched block is written back from the source bytes).
|
||||
|
||||
Can the editor's own reading of a file produce these values? markdown-it cannot give a blank line in a title, alt or info string (a blank line ends the paragraph). It can give one newline in a title or alt, spaces in an info string, and a backtick in a tilde-fence info. So the `T\n\n<img …>\n\n` payload is reachable by paste only.
|
||||
|
||||
Not fixed, noted: a title ending in a backslash is written without escaping the backslash (`"a\\"`); it needs a separate look and is outside the finding.
|
||||
|
||||
Tests added in `tests/editor-browser.test.mjs`: one per sink on the paste path (assert the written string, no line starts `<img`, no blank line then a tag, `h.quiet()`), plus the tilde-fence test.
|
||||
|
||||
## r2 slot run 1, 2026-10-18T17:57Z (clock) — stopped at the first failure
|
||||
|
||||
Slot from sage-0803. Busy check CLEAR 17:56:43Z. `npm ci --ignore-scripts` exit 0 (lock sha eb60a494… and esbuild binary sha e1698a3d… both matched). Build twice, exit 0, byte-identical. New `src/public/editor.js` sha256 32fcaa18eaee2ff426c3c7e06038ee190f9fd7a332c9f3db349aa74df22c9fb5, 758277 B (r1: c601f6c3…, 757137 B); `editor.css` unchanged, 8654ac57…, 4462 B.
|
||||
|
||||
| test file | exit | tests | pass | fail |
|
||||
|---|---|---|---|---|
|
||||
| editor | 0 | 5 | 5 | 0 |
|
||||
| editor-provenance | 0 | 6 | 6 | 0 |
|
||||
| editor-browser | 1 | 11 | 10 | 1 |
|
||||
|
||||
(sums by awk over `r154-r2-logs1/*.log`: 22 / 21 / 1). Stopped there; docs-browser, browser, project-file, serve, markdown-preview, shell, the suite and the mutants did not run. Failure: "a code block info string pasted with line breaks…" — the saved file was the original text, no code block and no `<img`; the `written` assertion at line 445 failed. Cause not yet known. Slot released 17:57:30Z.
|
||||
|
||||
## Test fix after run 1 (sage-0806), written 2026-10-18T18:01Z (clock), not run
|
||||
|
||||
Why the fourth paste test saw no code block: not isolated. What the code says: `parseFromClipboard` (third_party/editor/prosemirror-view/src/clipboard.ts:98) runs `Slice.maxOpen` over HTML that is not ProseMirror's own, so the first and last node of a pasted slice are open and join the text at the cursor. A lone `<pre>` at the end of a paragraph is such a case; the `code_block` `parseDOM` rule (model.mjs:44) does read `data-params`, so params are settable by paste when the block stays whole. What does not fit that reading: the first run's Save sent the original text with no `code` in it, where a join would have added the text to the paragraph. I did not run an experiment to settle it.
|
||||
|
||||
Changes to all four paste tests (editor-browser.test.mjs): each now waits for the pasted node to appear in the editor's DOM (`a[title]`, `span.md-image[data-alt]`, `span.md-image[data-title]`, `pre[data-params]`), asserts its attribute equals the hostile value (line breaks and tag included), and only then waits for Save, saves and checks the written text. The `<pre>` is pasted between two paragraphs (`<p>x</p><pre …>code</pre><p>y</p>`), so it is a whole middle node and does not depend on the unexplained case. The expected fence is ```T\ncode\n``` (info cut at the first line break).
|
||||
|
||||
## Deviations from sage-0802: Dewey accepts or refuses each one separately
|
||||
|
||||
1. Fence info is cut at the first line break, not at the first whitespace. Reason: an info string of one line cannot open an HTML block, and cutting at whitespace would drop attributes such as `js {1,3}` that a file may rely on. **Dewey: accept / refuse.**
|
||||
2. A tilde fence whose info holds a backtick loads as a raw source block (`refused`, model.mjs:150; `nodeOf` makes that block a raw_block, shown as `pre.md-raw`, editor-browser.test.mjs:499-500). Only that block is source; the file stays in the visual editor. Reason: the serialiser must drop a backtick info on a backtick fence, so editing that block would silently lose the info; as a raw block the bytes are kept. **Dewey: accept / refuse.**
|
||||
3. A single newline in a loaded title or alt is collapsed only when its block is edited. Reason: an unedited block is written from its source bytes, so a file opened and saved with no edit round-trips byte for byte. **Dewey: accept / refuse.**
|
||||
|
||||
For the reviewers: the first run's unchanged file is still unexplained. The new paste tests do not depend on an explanation; each fails at the node wait if its paste is dropped, so a dropped paste cannot pass as a clean save. If the second run shows the <pre> is dropped even between paragraphs, the params half of Dewey's finding is not reachable by paste in this editor and Dewey decides whether it stands.
|
||||
|
||||
## r2 slot run 2, 2026-10-18T18:11Z (clock): green, and the run-1 failure explained (this section corrects lines 408, 412 and 422 above)
|
||||
|
||||
**Correction.** I wrote that run 1's saved file was the original text and that the cause was unknown. That was a misreading: the saved text began `# codeTitle`, the fixture's heading being `# Title`. The paste did land, at the **start** of the document (`selectAllChildren` then `collapseToEnd` leaves the cursor in the first block, the heading, not the last), and `Slice.maxOpen` opened the lone `<pre>` so its text "code" joined the heading and no params were set. The mutant logs show the same landing point (`# x …`, `# [word](…)Title`). The "end of a paragraph" wording in lines 412 and in the test comment was wrong; the test comment is corrected in the final bytes (comment only, after the run). The new tests are unaffected: a `<pre>` between two paragraphs is a whole node wherever the cursor is.
|
||||
|
||||
Slot from sage-0812; busy check CLEAR 18:08:33Z; run 18:08:33Z to 18:10:36Z; cwd sweep clear 18:10:48Z. Lock sha eb60a494… and esbuild binary sha e1698a3d… checked; build twice, byte-identical. `src/public/editor.js` sha256 32fcaa18eaee2ff426c3c7e06038ee190f9fd7a332c9f3db349aa74df22c9fb5, 758277 B; `editor.css` 8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f, 4462 B.
|
||||
|
||||
Singles (awk-summed over `r154-r2-logs2/*.log`): 62 tests, 62 pass, 0 fail, 0 skipped — editor 5, editor-provenance 6, editor-browser 11, docs-browser 1, browser 1, project-file 10, serve 4, markdown-preview 19, shell 5. Webui suite with `MOSAIC_REQUIRE_EDITOR_BUILD=1`: 201 tests, 201 pass, 0 fail.
|
||||
|
||||
Mutants, killers from the logs (editor-browser, 11 tests each; files restored and cmp'd byte-identical afterwards):
|
||||
|
||||
| mutant | result | killed by |
|
||||
|---|---|---|
|
||||
| round-trip gate forced true (`roundTrip(s.text) === s.text` → `true`) | 1 fail, 10 pass | "a file the editor cannot write back byte for byte opens as Source…", assertion "a failed round trip shows the source, the note and a Save that is off" (test line 397) |
|
||||
| docShown revert (`mode === docShown` → `mode === docMode`) | 1 fail, 10 pass | the same test, "Condition timed out: #doc-visual .ProseMirror" (the Visual click did nothing) |
|
||||
| serialiser verbatim (`oneLine` identity, `fenceInfo` returns the value) | 4 fail, 7 pass | the four paste tests: link title, image alt, image title, code block info string, each "the value is on one line" |
|
||||
|
||||
So the params half of Dewey's finding is reachable by paste when the `<pre>` is whole, and the tests show the clamp working.
|
||||
|
||||
## r2 candidate files (2026-10-18T18:12Z, clock)
|
||||
|
||||
`r2/` in this packet: `candidate.patch` (`git diff --cached --binary` against `850484a7d`, sha256 `3c7c0114410d8194d10d3b3c1c7b7dbdee3db17099813f95f793451e8ada41eb`; `git apply --check` passes on a clean export of `850484a7d`), `changed-paths.txt` (195 paths, the same set as r1 and the rebase preview) and `candidate-manifest.sha256` (sha256 `1db8d410ca4d706a355ce3d1dec3e985ae058093a4a56f5a31521079a4cce017`; each path as it sits in `/mnt/storage/scratch/researcher/r154-wt2`). Nothing is committed or pushed. The base moved from `0f715a054` (r1) to `850484a7d`, so the patch is not r1's patch plus a delta; the r1 packet stays as it was.
|
||||
|
||||
Every byte was in the run-2 tree except one edit after it: the comment above the four paste tests in `tests/editor-browser.test.mjs` (now sha256 5b050de8…), from "…a lone <pre> pasted at the end of a paragraph left the file unchanged in the first r2 run; the cause was not isolated, so this paste does not depend on it." to "…so a lone <pre> joins the block the cursor is in as plain text and sets no params; the paste here lands in the first block, the heading." Comments only; `node --check` passes. The rebuilt `editor.js` and `editor.css` are the run-2 files (shas above); `editor/BUILD.json` is the one the build wrote.
|
||||
|
||||
## r2 correction: editor/BUILD.json in the candidate is the mutant's (found after sage-0831, 2026-10-18T18:35:34Z)
|
||||
|
||||
Run 2 did set `MOSAIC_REQUIRE_EDITOR_BUILD=1` (run2 script line 8, exported before anything ran), and editor-provenance passed 6/6 in it (`r154-r2-logs2/editor-provenance.log`). That result was true when it ran. The candidate was cut from a tree that was no longer what that run measured.
|
||||
|
||||
Cause: the serialiser-verbatim mutant edits `editor/model.mjs` and runs `node editor/build.mjs`. The build rewrites `editor/BUILD.json` with the mutant's editor.js (73975eb2…, 758168 B; `serialiser-verbatim.build.log`). The mutant function restored model.mjs and editor.js but never BUILD.json, and the closing "files restored byte-identical" check covered only bus.js, model.mjs and editor.js. So BUILD.json stayed at the mutant's values, the patch and manifest (BUILD.json 317e8d78…) carried them, and the shipped editor.js (32fcaa18…, 758277 B) no longer matched its record.
|
||||
|
||||
My restore check was incomplete and my "restored byte-identical" line overstated what it verified. For round 3: rebuild so BUILD.json records 32fcaa18…/758277, and the mutant script must back up and restore BUILD.json and include it in the closing check (or the check must cover every path in the manifest).
|
||||
|
||||
## Round 3 changes, written 2026-10-18T18:54:19Z (nothing run yet; results go in a section below after the slot run)
|
||||
|
||||
Answers to the r2 verdicts (Dewey 28979, Filbert 28977):
|
||||
|
||||
1. **Backslash in a link or image title (Dewey, blocking).** `editor/model.mjs`: new `titleBackslash` doubles every backslash in a link title (after `oneLine`) before the vendored link writer, which escapes only `"`; the link `close` override now uses it. The image writer escapes `[\\"]` with `'\\$&'`, so backslash and quote both get a backslash. A pasted title `x\") <img src=x onerror=alert(1)> ` is now written `"x\\\") <img src=x onerror=alert(1)> "`, which reads back as that same title; a title ending in `\` is written `"end\\"`. Unedited blocks are still written from their source bytes, so the round trip of a file is unchanged.
|
||||
2. **Tests (editor-browser.test.mjs).** The four line-break paste tests now share one helper (`pasteTest`); same assertions as r2. Added, for a link title and an image title each: a title holding a quote after a backslash then a tag, and a title ending in a backslash (four tests). Each waits for the pasted node to hold the value in the document, saves, and asserts the exact written string, so each fails on r2 (r2 writes `"x\\") <img…> "` and `"end\"`). (Superseded after sage-0844, before the run: the four tests also re-read the saved text, see "Round 3 results".)
|
||||
3. **g5 (Filbert).** New test: `<pre data-params="a`b">` pasted between two paragraphs and saved must write a bare fence (```\ncode\n```). Mutant g5-backtick-kept in the run script drops the backtick test in `fenceInfo`.
|
||||
4. **docs-browser.test.mjs:67 (Filbert).** The second wait in `source()` has the explicit `document.querySelector("#doc-commit")` existence check back, as line 65 has.
|
||||
5. **Tilde wording (Dewey ii, Filbert).** The three lines above that said "opens as Source" now say that block loads as a raw source block (`pre.md-raw`, `nodeOf` model.mjs:265) and the file stays in the visual editor. The behaviour is unchanged.
|
||||
6. **BUILD.json (both, blocking).** The cause is in the r2 correction section above. Round 3 rebuilds it; the run script checks that BUILD.json records the shipped editor.js sha256 and byte count right after the rebuild.
|
||||
7. **Dewey non-blocking: `<img>` in an image alt** stays in the alt for CommonMark renderers; I leave it as is and note it for him.
|
||||
|
||||
Run script `/mnt/storage/scratch/researcher/r154-r3-run.sh`, in the order of sage-0840: toolchain sha check, build twice (editor.js and BUILD.json byte-identical), every webui test file singly, the suite, a baseline manifest of all candidate paths, seven mutants (gate-true, docshown-revert, serialiser-verbatim, info-verbatim, g5-backtick-kept, link-backslash, image-backslash), each backing up and restoring the file, editor.js, editor.css and BUILD.json; then `sha256sum -c` over the whole manifest (stop on any failure), provenance under MOSAIC_REQUIRE_EDITOR_BUILD=1, `sha256sum -c` again, and only then the patch and manifest, with a clean-export apply check. Every mutant string was counted once in its file before the run.
|
||||
|
||||
## Round 3 results (slot run 2026-10-18T18:55:31Z to 19:01:13Z; logs in `r3/`)
|
||||
|
||||
Run script `/mnt/storage/scratch/researcher/r154-r3-run.sh`, exit 0, final line `done`; output `r3/run.out`.
|
||||
|
||||
- **Toolchain.** `package-lock.json` and the esbuild binary matched their pinned sha256 values. Two builds, editor.js and BUILD.json byte-identical. editor.js `9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee` (758420 B), editor.css `8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f` (4462 B). `editor/BUILD.json` records that editor.js sha256 and byte count (checked by the script right after the rebuild).
|
||||
- **Singles.** All 32 webui test files singly (`r3/_singles.txt`): 206 tests, 206 pass, 0 fail, 0 skipped (awk sum over the 32 logs).
|
||||
- **Suite.** `node --test tests/`: 206 tests, 206 pass, 0 fail, 0 skipped (`r3/suite.log`). Same total as the singles.
|
||||
- **Baseline.** 195 changed paths, the same set as r2 (`cmp` against r2's list). `sha256sum -c` over all 195 passed before the mutants.
|
||||
- **Mutants** (each run on `tests/editor-browser.test.mjs`, 16 tests; each backs up and restores the file, editor.js, editor.css and BUILD.json). All seven exited 1; 112 tests run, 101 pass, 11 fail (awk sum over the seven logs).
|
||||
|
||||
| mutant | fails | killing tests |
|
||||
|---|---|---|
|
||||
| gate-true (`roundTrip(s.text) === s.text` replaced by `true`) | 1 | "a file the editor cannot write back byte for byte opens as Source, says so, cannot save…" (Save not off) |
|
||||
| docshown-revert (`mode === docShown` to `mode === docMode`) | 1 | the same test (timed out waiting for `#doc-visual .ProseMirror`) |
|
||||
| serialiser-verbatim (`oneLine` identity) | 3 | link title, image alt and image title "pasted with line breaks in it is written on one line…" |
|
||||
| info-verbatim (fence info not cut at the first line) | 1 | "a code block info string pasted with line breaks in it is written on one line…" |
|
||||
| g5-backtick-kept (`fenceInfo` keeps a backtick) | 1 | "a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed" (the new g5 test) |
|
||||
| link-backslash (link title no longer backslash-doubled) | 2 | "a link title holding a quote after a backslash then a tag is written with the backslash escaped…" and "a link title holding a trailing backslash is written…" |
|
||||
| image-backslash (image title escapes `"` only) | 2 | the same two tests for an image title |
|
||||
|
||||
**What the re-read asserts do and do not show.** The four backslash tests assert the exact written string first, then (with `reread`) mount a read-only editor on the saved text and assert the parsed title equals the pasted value and no `<img` is in the document text. In the link-backslash and image-backslash mutants the first assertion throws, so the test stops there: the logs show the exact-string `AssertionError` for all four failures and never reach the re-read. sage-0844 expected both asserts to fail on those mutants; I can show only the first. The re-read asserts passed on the shipped code in all runs (singles, suite), and I have not run a mutant that gets past the exact-string check to see the re-read fail alone. Say so if a reviewer wants that run (a title-escape mutant that writes a different but still wrong string would do it); until then, the exact-string assert is the killer of record.
|
||||
|
||||
- **After the mutants.** `sha256sum -c` over the whole manifest against the tree: 195 OK of 195, no failure (`r3/post-mutant-check.txt`). editor-provenance under `MOSAIC_REQUIRE_EDITOR_BUILD=1` after the mutants: 6 tests, 6 pass (`r3/provenance-post-mutant.log`). `sha256sum -c` again before the cut: 195 OK (`r3/pre-cut-check.txt`).
|
||||
- **Cut last.** `git add -A packages docs`, path list equal to the baseline, `git diff --cached --binary` to `r3/candidate.patch` (sha256 `d709b2dd390b7c01e6ef96aa7eced91287d1a48b7e003d74db3645f57a8c3db1`; `git apply --check` passes on a clean export of `850484a7d`). `r3/candidate-manifest.sha256` is identical to the checked baseline, and `sha256sum -c` over it passed 195 OK of 195 (`r3/cut-manifest-check.txt`). Manifest sha256 (the candidate digest): `cebca5145c899a362e938d36b26168070ad8cc01bfdc0c9f44a68eee07a005ca`. Nothing committed or pushed. `r2/` and `r1/` are unchanged.
|
||||
|
||||
Answers to the non-blocking notes:
|
||||
|
||||
- **g5 (Filbert).** New test and mutant g5-backtick-kept above; the mutant is killed by it.
|
||||
- **Tilde wording (Filbert, Dewey ii).** Fixed at the three places; only that block is a raw source block.
|
||||
- **docs-browser.test.mjs:67 (Filbert).** The existence check is back; the file passed singly and in the suite.
|
||||
- **Trailing backslash in a title (Filbert).** Written escaped now; link and image tests, killed by their mutants.
|
||||
- **`<img>` in an image alt (Dewey).** Left as is: the alt stays in the alt for a CommonMark renderer; the editor's tokenizer has `html: false`, so it makes no inline HTML node of it.
|
||||
|
||||
Line refs corrected after Dewey 28985 (r2 numbers were stale in r3): `nodeOf` is model.mjs:265, the raw-block asserts are editor-browser.test.mjs:499-500. Text only; the candidate is untouched.
|
||||
|
||||
## Rebase onto df4d5702f (row 125 landed first, sage-0884), prepared 2026-10-18, nothing run
|
||||
|
||||
Row 125 landed as `aa625565f`; `df4d5702f` is origin/refactor after Dewey's packet commit. The r3 candidate (base `850484a7d`, manifest `cebca514…05ca`, approved by Dewey 28985 and Filbert 28986) is untouched in `r3/`. The rebase is a separate tree, `/mnt/storage/scratch/researcher/r154-wt3` (detached at `df4d5702f`, `packages/webui/node_modules` copied from the r3 tree), and gets its own directory in this packet after the slot run. I applied `r3/candidate.patch` with `git apply --3way --index`: no conflicts, 0 unmerged paths, no conflict markers, the same 195 paths as r3 (`cmp` of the two path lists). **No test, build or server has run on it.**
|
||||
|
||||
What 125 changed in webui (`git diff 850484a7d df4d5702f`, nine files): `chat-http.mjs`, `chat.mjs`, `public/bus.js`, `serve.mjs`, `tests/channel-chat.test.mjs`, `chat.test.mjs`, `limits-browser.test.mjs` (new), `limits-route.test.mjs` (new), `shell.test.mjs`; and `docs/TOOLS.md`.
|
||||
|
||||
By sha256 against r3's manifest, three of my 195 files differ: `docs/TOOLS.md`, `packages/webui/src/public/bus.js`, `packages/webui/src/serve.mjs`. Everything else is byte-identical to r3, including `editor.js`, `editor.css`, `editor/BUILD.json` and every file under `editor/` and `third_party/editor/`.
|
||||
|
||||
- `serve.mjs`: 125 added the `limits` verb and `reset` to the settings keys; my hunk is the two static-map entries `/editor.js` and `/editor.css`. Different regions; the combined diff against the new base is only my two lines.
|
||||
- `public/bus.js`: 125 changed 28 lines (settings and limits); my hunks are in `docView`, `view`, `render`'s signature, `paintDoc`, the mode-click handler and the `unmountEditor` calls. Read the combined diff against the new base: it is exactly my r3 hunks, `opts` still reaches `docView` through `view`. **The behaviour of the combined file is untested until the slot run.**
|
||||
- `docs/TOOLS.md`: 125 added 11 lines elsewhere; my paragraph in the Console section applied as in r3.
|
||||
- **All six scripts stay pinned.** `index.html` and `tests/browser.test.mjs` are not touched by 125, so the pin at `browser.test.mjs:22` is still `['/editor.js', '/brand.js', '/app.js', '/markdown-preview.js', '/chat.js', '/bus.js']`, in page order, and `index.html` loads them in that order. Row 125 added no script. Neither row pins a bare count.
|
||||
- Structure-pin grep on the new tests (`limits-browser`, `limits-route`, `channel-chat`, `chat`, `shell`): nothing selects scripts, stylesheets or `index.html`; `shell.test.mjs` reads `app.js`, `bus.js`, `index.html` as text for other checks. The suite is the check.
|
||||
|
||||
Run plan (`/mnt/storage/scratch/researcher/r154-rb-run.sh`, derived from the r3 script; the diff against it is the base, paths, the compare list and the public diff cut): toolchain sha check, two builds (byte-identical), BUILD.json record check, every one of the 35 webui test files singly, the suite, baseline manifest of the 195 paths, the same seven mutants (all seven anchors count once on the rebased files), `sha256sum -c` over the whole manifest, provenance under `MOSAIC_REQUIRE_EDITOR_BUILD=1`, `sha256sum -c` again, then the patch, manifest, and the `public/` diff Mos reads (`public.diff`: all of `packages/webui/src/public`, which includes the generated `editor.js` and `editor.css`; `public-handwritten.diff`: `bus.js` and `index.html` only) with sha256 values.
|
||||
|
||||
## Rebase round on 7bd2a348c (row 125 = aa625565f, row 162 = 7e7f8e208), run 2026-10-18T20:42Z–20:48Z
|
||||
|
||||
Supersedes the "Rebase onto df4d5702f … nothing run" section above: sage-0897 moved the base to `7bd2a348c` (row 162 landed on top of `df4d5702f`) before the run, so I rebuilt the tree there instead of using the df4d5702f tree. Nothing was run on df4d5702f.
|
||||
|
||||
**Tree.** Detached worktree at `7bd2a348c`, `git apply --3way --index r3/candidate.patch`: exit 0, 0 unmerged, the same 195 paths as r3 (`rebase-7bd2a348c/changed-paths.txt` is byte-equal to `r3/changed-paths.txt`). Against r3's manifest, three files differ: `docs/TOOLS.md`, `packages/webui/src/public/bus.js`, `packages/webui/src/serve.mjs`. The bus.js and serve.mjs results are byte-identical to the df4d5702f tree. Row 162 touched only one of my 195 paths, `docs/TOOLS.md` (its edits are around lines 342-384; my five-line row 154 paragraph is at line 441, a separate region). My TOOLS.md added lines are identical in the df4d5702f and 7bd2a348c trees. The editor sources, `editor.js`, `editor.css` and `editor/BUILD.json` are unchanged from r3.
|
||||
|
||||
**Run** (`rebase-7bd2a348c/run.sh`, `run.out`; the busy check ran first and printed CLEAR; one run, no rerun). Counts are awk sums over the logs, not the script's own line:
|
||||
- Rebuild twice: both exit 0, byte-identical `editor.js` and `BUILD.json`; `BUILD.json` records `editor.js` `9c881b13…fee`, 758420 bytes, as in r3.
|
||||
- Every webui test file singly: 35 of 35 files, 214 tests, 214 pass, 0 fail, 0 skipped; no file reports zero tests. The suite run: 214 / 214 / 0 / 0.
|
||||
- `browser.test.mjs:22` still pins `['/editor.js', '/brand.js', '/app.js', '/markdown-preview.js', '/chat.js', '/bus.js']`, and `index.html` loads them in that order. Neither 125 nor 162 touched either file. `single-browser.log`: 1 test, 1 pass.
|
||||
- Seven mutants, each exit 1 with `BUILD.json` backed up and restored around it. Killers: gate-true and docshown-revert by "a file the editor cannot write back byte for byte opens as Source…" (1 fail each); serialiser-verbatim by the link-title, image-alt and image-title line-break tests (3); info-verbatim by the code-block info line-break test (1); g5-backtick-kept by the backtick info-string test (1); link-backslash by the two link-title backslash tests (2); image-backslash by the two image-title backslash tests (2). As in r3, the two backslash mutants fail on the exact-string assert; the re-read assert is not reached.
|
||||
- After the mutants: `sha256sum -c` over the 195-entry baseline manifest, 195 OK, 0 failures (`post-mutant-check.txt`, `pre-cut-check.txt`); editor-provenance with `MOSAIC_REQUIRE_EDITOR_BUILD=1`: 6 tests, 6 pass.
|
||||
- Cut last: path list equal to r3's, `candidate.patch` applies to a clean export of `7bd2a348c`, and `sha256sum -c` over the new manifest is 195 OK of 195 (`cut-manifest-check.txt`).
|
||||
|
||||
**Digests.**
|
||||
- `candidate.patch` `a822401ac794252eaebc08510a89597d87ff254508baa3830f7360314cefffc9`
|
||||
- `candidate-manifest.sha256` `41024ac5e2b118e5ff11a74b61ee82e5bc9f177d0622c5e5af0f284622985111`
|
||||
- `public.diff` `3b67cf23b70f4e753cda610db0a24c4eaa3107713dd9e0eace9e49a08b78663b` (4 files: `bus.js`, `editor.css`, `editor.js`, `index.html`)
|
||||
- `public-handwritten.diff` `2251d83b03d467333ca21ad7bbc463040701f4ead1e2b7d01fc289506a98476e` (`bus.js` and `index.html` only; for Mos's decision 123 go, `editor.js` and `editor.css` are generated and covered by the `BUILD.json` record plus the byte-identical double build)
|
||||
|
||||
**Not tested.** Nothing live: no pinned-copy re-pin, no Console restart. The run is in a scratch worktree only.
|
||||
|
||||
## Rebase round on d88613bac (row 155 landed as b2f57ca70), run 2026-10-18T21:24Z–21:36Z
|
||||
|
||||
Supersedes the `7bd2a348c` round above as the candidate to review; that round's directory `rebase-7bd2a348c/` stays as the record of what was run on the earlier base. Base moved because row 155 landed (sage-0909). The packet has two run directories for this base, kept apart:
|
||||
|
||||
- `rebase-d88613bac-stopped/` — first run, 21:24:11Z–21:28:08Z. Stopped at the full webui suite, exit 1: 221 tests, 220 pass, 1 fail. The failure is `tests/board-held.test.mjs:163` ("a redirect answer on a Board read…"), "Condition timed out: `!document.querySelector("#signed-out").hidden`" from `tests/browser.mjs:48`, at `board-held.test.mjs:220`, after 11.9 s. Singles in that run: 36 of 36 files, 221 pass, 0 fail. Left untouched.
|
||||
- `rebase-d88613bac/` — second run, once, script unchanged, no test change (sage-0919). Passed end to end.
|
||||
|
||||
Sage's account of the failure (sage-0919): the row 155 r3 gate at 21:10Z failed on the same test at the same `:220` wait after 13.9 s, on d88613bac's webui without my patch, and passed on rerun; the helper at `board-held.test.mjs:76` polls 100 times at 50 ms (about 5 s) and the sign-out after the redirect answer runs slower than that under a parallel suite; filed as P19 366. I did not test that explanation myself: I ran no clean-base suite. What I observed is the failure once in the full suite, never in the singles, and a pass in the rerun.
|
||||
|
||||
**Tree.** Detached worktree at `d88613bac`, `git apply --3way --index rebase-7bd2a348c/candidate.patch`: exit 0, 0 unmerged, same 195 paths (`changed-paths.txt` byte-equal to the earlier round's). Four of my paths differ from the `7bd2a348c` tree: `docs/TOOLS.md`, `packages/webui/README.md`, `public/bus.js`, `serve.mjs`. For the first three the changed lines equal 155's own diff to that file; for `serve.mjs` I read the combined hunk by hand: my two static-map lines (`/editor.js`, `/editor.css`) sit above `/icons.svg`, none of 155's lines overlap. 155's changes to `webui/src/bus.mjs`, `cli.mjs`, `bus/src/broker.mjs` and tests are not in my paths. The mutant anchors in `bus.js` still occur once.
|
||||
|
||||
**Run** (second run; `rebase-d88613bac/run.sh`, `run.out`; busy check CLEAR first). Counts are awk sums over the logs:
|
||||
- Rebuild twice: byte-identical `editor.js` and `BUILD.json`; `BUILD.json` records `editor.js` `9c881b13…fee`, 758420 bytes, as in r3.
|
||||
- Singles: 36 of 36 files, 221 tests, 221 pass, 0 fail, 0 skipped, 0 cancelled (155 added `assistant.test.mjs`).
|
||||
- Full suite: 221 tests, 221 pass, 0 fail.
|
||||
- `packages/bus/tests/channel-proof.test.mjs`, whole file (sage-0909; 164's byte freeze pins `webui/src/bus.mjs`, `human.mjs`, `human-cli.mjs`, `cli/src/transport.mjs`): 2 tests, 2 pass.
|
||||
- `browser.test.mjs:22` still pins `['/editor.js', '/brand.js', '/app.js', '/markdown-preview.js', '/chat.js', '/bus.js']`; browser single 1 of 1.
|
||||
- Seven mutants, each exit 1, `BUILD.json` restored around each. Failing counts: gate-true 1, docshown-revert 1, serialiser-verbatim 3, info-verbatim 1, g5-backtick-kept 1, link-backslash 2, image-backslash 2; killers are the same tests as in the earlier rounds.
|
||||
- `sha256sum -c`: post-mutant 195 OK, pre-cut 195 OK, new manifest 195 OK, no failures. Editor-provenance with `MOSAIC_REQUIRE_EDITOR_BUILD=1` after the mutants: 6 tests, 6 pass.
|
||||
- The patch applies to a clean export of `d88613bac`.
|
||||
|
||||
**Digests.**
|
||||
- `candidate.patch` `bdd046abbeca2884581c43175b55ed367f454927f8271a75b32ae3cb20b3ac6b`
|
||||
- `candidate-manifest.sha256` `3a4bc21c9a8170667b0b36503195bf631b735f5e728ab7e9c9cd8974ccce3b05`
|
||||
- `public.diff` `902f02448ea7924524432f2b7431e064c3d6e69413ec277a27e883010305505b` (`bus.js`, `editor.css`, `editor.js`, `index.html`)
|
||||
- `public-handwritten.diff` `ea59079ee44ddbc53af0534f7c261b9fd05c7f35ab715ba58a5db2ac9276ec75` (`bus.js`, `index.html`)
|
||||
|
||||
**Not tested.** Nothing live: no re-pin, no Console restart. The row's `in-review` record still names the `7bd2a348c` manifest `41024ac5…5111`; I made no queue move this round (sage-0905: leave the row in-review).
|
||||
@@ -0,0 +1,119 @@
|
||||
# Row 154 (#1648) phase 1: library search
|
||||
|
||||
Researcher, 2026-10-18. Brief: `docs/plans/2026-10-16_q168-wysiwyg-editor.md` (blob 9d01d989c187). Starts from row 148's
|
||||
search (`agents/researcher/work/queue-148/LIBRARY.md`). Nothing was installed in the repository; every install was a
|
||||
scratch directory with its own `package.json` under `/mnt/storage/scratch/researcher/q154/`, `--ignore-scripts`, and
|
||||
the Node runs were under `bwrap --unshare-net`. The advisory queries used the OSV batch API
|
||||
(`https://api.osv.dev/v1/querybatch`) on each candidate's lockfile, run 2026-10-18; the positive control (dompurify
|
||||
2.3.3, markdown-it 12.2.0) returned 20 and 3 advisories the same day, so an empty answer means no advisory.
|
||||
|
||||
## Bar (row 148's, from the brief)
|
||||
|
||||
1. Permissive license.
|
||||
2. `script-src 'self'`: no eval, no `new Function` that can run; nothing loaded at runtime; no CSP change.
|
||||
3. A current sanitizer, or a design with no HTML sink that needs one.
|
||||
4. A bundle that rebuilds from its tagged source (Q167 D3 bans vendoring prebuilt or minified bundles).
|
||||
|
||||
The Console CSP is `default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; font-src
|
||||
'self'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'` (`packages/webui/src/public`
|
||||
is served from a static route table in `serve.mjs`, line 24-25).
|
||||
|
||||
## Candidates
|
||||
|
||||
"Normalisation" is measured over the 414 `.md` files in this checkout (`results/corpus.txt`; no `spec/north-star.md`
|
||||
exists in this checkout, the nearest file is `packages/project/templates/north-star.md`, 3 lines). The test is
|
||||
parse, serialise, compare bytes, with no edit.
|
||||
|
||||
| # | Candidate | Version | License | Closure (locked pkgs) | Advisories (OSV) | Verdict |
|
||||
|---|---|---|---|---|---|---|
|
||||
| A | ProseMirror (11 pkgs) + prosemirror-markdown + markdown-it | pm-markdown 1.13.8, markdown-it 14.3.3, see REPORT.md for all pins | MIT (entities BSD-2-Clause) | 29 | 0 | **Passes. The candidate.** |
|
||||
| B | Milkdown (core, kit, preset-commonmark, transformer) | 7.22.3 | MIT; one dual `MPL-2.0 OR Apache-2.0` (dompurify) | 156 | 0 | Meets the bar; not chosen. |
|
||||
| C | Tiptap (core, pm, starter-kit, markdown) | 3.32.0 | MIT | 44 | 0 | Meets the license and CSP bars; fails on content: drops tables. |
|
||||
| D | Lexical (+ markdown, rich-text, list, link, code, history) | 0.52.0 | MIT | 19 | 0 | Meets the bar on paper; round trip not measured. |
|
||||
| E | BlockNote core | 0.56.0 | MPL-2.0 (core), MIT (rest) | 36 | 0 | Weaker license fit; block model; not measured. |
|
||||
| F | Toast UI Editor | 3.2.2 | MIT (+ dual MPL/Apache dompurify) | 13 | dompurify 2.5.9: 17 | **Fails** (row 148's finding, rechecked). |
|
||||
| G | CodeMirror 6 live-preview hybrid | view 6.43.14, state 6.7.6, language 6.13.1, commands 6.11.1, lang-markdown 6.5.2 | MIT | 22 | 0 | Passes; not WYSIWYG, see note. |
|
||||
| H | Muya (MarkText) | not examined | not checked | - | - | Not measured. |
|
||||
|
||||
### A. ProseMirror + prosemirror-markdown + markdown-it
|
||||
|
||||
- **Origin.** Source repositories are `code.haverbeke.berlin/prosemirror/<pkg>` (tags `1.25.12` and so on; the GitHub
|
||||
mirrors lag and lack the current tags), `github.com/markdown-it/*`, `github.com/marijnh/{orderedmap,rope-sequence,w3c-keyname}`,
|
||||
`github.com/mathiasbynens/punycode.js`, `github.com/fb55/entities`. Pinned commits are in REPORT.md.
|
||||
- **Source readable without a prebuilt.** Yes. The ProseMirror packages ship their TypeScript in `src/`; the tagged
|
||||
trees were compared file by file with the npm packages (`results/pins.txt`): every file present in both is
|
||||
identical (one metadata difference: punycode.js's `package.json` name). `dist/` is the prebuilt output; the plan
|
||||
imports `src/` and never `dist/`. Two small packages (orderedmap, rope-sequence) keep a root `index.js` source; their
|
||||
tags track only type declarations under `dist/`, and the build aliases the root `index.js`.
|
||||
- **Build.** One unminified IIFE from `esbuild` 0.28.2 pinned in `package.json` with lockfile integrity; two builds
|
||||
from the pinned trees gave identical sha256 (`9587a170...`). See REPORT.md.
|
||||
- **Sanitizer.** There is no HTML to sanitize on the load path: `markdown-it` runs with `html:false` and the editor
|
||||
schema is the whitelist. The one HTML sink is paste, which `prosemirror-view` parses into a detached
|
||||
`createHTMLDocument` body through the schema's `parseDOM` rules. Measured with hostile HTML: scripts, handlers,
|
||||
`svg`, `iframe`, `style`, `form`, `object` and `math` are dropped; **`<img src>`, `<a href="javascript:...">` and
|
||||
`<a href="data:...">` survive the default schema** (`results/hostile-html.txt`). Phase 2 must therefore replace the link and image
|
||||
node specs with ones that enforce `linkTarget` and render images as text, as row 148's preview does.
|
||||
- **CSP/eval.** No `eval`, `new Function`, `document.write`, `fetch(`, `XMLHttpRequest` or dynamic `import(` in the
|
||||
bundle (0 hits; the bundle holds all 132 inputs). It needs only `script-src 'self'`; `style-src` already allows
|
||||
inline styles. I ran it in jsdom, not in a browser under the real CSP; the brief's browser test settles that in
|
||||
phase 2. One CSS file (`prosemirror-view/style/prosemirror.css`, 54 lines) must be served as a route, plus the
|
||||
editor's own CSS.
|
||||
- **Normalisation.** Stock serialiser: 1 of 414 byte-identical. Splice design (below) makes it 414 of 414 by
|
||||
construction for an unedited file. Details in REPORT.md.
|
||||
- **Why it passes.** Smallest closure that is a real WYSIWYG, all MIT/BSD-2, tagged source, no sanitizer needed because
|
||||
the schema is the filter, and it is the engine the larger options (B, C, E) sit on.
|
||||
|
||||
### B. Milkdown 7.22.3
|
||||
|
||||
Built on ProseMirror (same `prosemirror-model` 1.25.12 / `prosemirror-view` 1.42.6) with remark/unified for markdown.
|
||||
156 locked packages, 152 MIT, one dual-licensed (dompurify 3.4.17, `MPL-2.0 OR Apache-2.0`, pulled in by
|
||||
`@milkdown/components`), BSD-2-Clause, BSD-3-Clause, ISC one each. 0 advisories. `src/` ships in the npm package
|
||||
(`@milkdown/core` 19 files, `preset-commonmark` 60, `transformer` 17, `crepe` 120). No `eval(` or `new Function(`
|
||||
text in the four tarballs I grepped. Normalisation with `commonmark` + `gfm`: 59 of 414 byte-identical; 142 of 414 after setting the stringify
|
||||
bullet to `-`. Not chosen: a closure 5 times the size of A to read for a review, remark's stringifier still rewrites
|
||||
most files, and the extra packages (unified, mdast, micromark, vfile and so on) are all code the reviewers must accept.
|
||||
Not an outright fail; if A is rejected it is the next one to build.
|
||||
|
||||
### C. Tiptap 3.32.0 + `@tiptap/markdown`
|
||||
|
||||
44 locked packages, all MIT, 0 advisories, no sanitizer in the closure (it sits on ProseMirror). `src/` ships for
|
||||
`@tiptap/core` (323 files) and `@tiptap/markdown` (9). Round trip: 1 of 414 identical, and **tables are dropped
|
||||
entirely** (346 table blocks in the corpus), which is silent content loss, so it fails the brief's "same bytes or
|
||||
stated normalisation" rule. `@tiptap/pm` re-exports the ProseMirror packages, so the schema-filter caveat in A applies
|
||||
here too.
|
||||
|
||||
### D. Lexical 0.52.0
|
||||
|
||||
19 locked packages, all MIT, 0 advisories, no ProseMirror. `src/` ships. I did not run the 414-file round trip
|
||||
through `@lexical/markdown`, so its normalisation is **not measured**. It is a possible alternative that I did not
|
||||
examine further, because A already meets the brief.
|
||||
|
||||
### E. BlockNote core 0.56.0
|
||||
|
||||
`@blocknote/core` is **MPL-2.0** (file-level copyleft; the other 35 packages are MIT), 0 advisories, TipTap/ProseMirror
|
||||
underneath. Its model is Notion-style blocks, which does not match a Markdown file's own structure. Not measured; the
|
||||
MPL-2.0 core would need Mos's say-so, which is not worth asking for a candidate that does not beat A.
|
||||
|
||||
### F. Toast UI Editor 3.2.2 (row 148's rejection, rechecked)
|
||||
|
||||
A fresh lock now resolves `dompurify` 2.5.9, which has **17** OSV advisories (the control confirms the query works).
|
||||
The npm package has no `src/`; the standalone bundle is not rebuildable from the tag (row 148's `build.md`), and 2 files in the tarball contain the text
|
||||
`eval(` or `new Function(` (I did not trace whether either can run). Fails the bar for the same reasons as row 148.
|
||||
|
||||
### G. CodeMirror 6 (live-preview hybrid)
|
||||
|
||||
MIT, 22 locked packages, 0 advisories, no ProseMirror, no sanitizer. Source is on `code.haverbeke.berlin/codemirror/*`
|
||||
(the npm tarballs hold no `src/`, so the tag is the only readable source, built with the same method as A). It edits the
|
||||
**source text** with decorations that hide marks around the cursor, so an open-and-save with no edit is byte-exact with no
|
||||
extra mechanism. It is not a WYSIWYG editor in the sense of the brief (the user sees and edits markup on the active
|
||||
line). Kept as the fallback if Mos prefers byte-exactness over a rendered editing surface.
|
||||
|
||||
### H. Muya
|
||||
|
||||
Not examined. It is MarkText's editor core; I did not check its license text, closure, advisories or build. Listed so
|
||||
the gap is on record.
|
||||
|
||||
### Carried from row 148
|
||||
|
||||
`marked`, `markdown-it`, `micromark`/`mdast-util-from-markdown` are renderers and parsers, not editors. They do not
|
||||
satisfy a WYSIWYG requirement; `markdown-it` appears as the parser inside A.
|
||||
@@ -0,0 +1,283 @@
|
||||
# Row 154 (#1648) phase 1: candidate report
|
||||
|
||||
Researcher, 2026-10-18 (figures re-checked against the result files at 15:20Z). Brief: `docs/plans/2026-10-16_q168-wysiwyg-editor.md`
|
||||
(blob 9d01d989c187). Search table and the rejected candidates: `LIBRARY.md`. This report is for Sage to take to Mos for the
|
||||
decision 123 go. **No editor code is in the repository and nothing was installed there.** Phase 2 has not started.
|
||||
|
||||
## Recommendation
|
||||
|
||||
Candidate A: **ProseMirror + prosemirror-markdown + markdown-it**, built here from tagged source into one unminified
|
||||
bundle with `esbuild`, with a **block-splice save** so an unedited file saves the same bytes. All MIT except one
|
||||
BSD-2-Clause package (`entities`). No separate sanitizer: markdown parsing runs with `html:false`, and the editor schema
|
||||
is the whitelist. The schema needs two overrides (links, images) that I measured as necessary, below.
|
||||
|
||||
This is a recommendation, not a go. Five points need a ruling from Mos (end of this report).
|
||||
|
||||
## 1. Project, origin, pins
|
||||
|
||||
Twenty packages are bundled. Every pin is a tag in the project's own repository; each tagged tree was compared with the
|
||||
npm package of the same version and every file present in both is byte-identical (`results/pins.txt`;
|
||||
`punycode.js` differs only in `package.json`'s `name`). The ProseMirror tags exist on the project's own forge, not on the
|
||||
GitHub mirrors (which lack the current tags), so the provenance file should record that URL.
|
||||
|
||||
| Package | Version | License | Commit | Tree | Origin |
|
||||
|---|---|---|---|---|---|
|
||||
| prosemirror-model | 1.25.12 | MIT | 4211aeeaa3d738454a5d1428a95c1a210e86d787 | 30600a5e07c4ec5c63f1fb1c8ab392e2bc019b9f | code.haverbeke.berlin/prosemirror/prosemirror-model |
|
||||
| prosemirror-state | 1.4.4 | MIT | d6fdcd19c4f7f68206b0a8d49649860365672585 | b781a85e73fb7c3f37bc669e7dc27e7d16f592d6 | …/prosemirror-state |
|
||||
| prosemirror-view | 1.42.6 | MIT | f5a5b93a78f6f723c1fbf1a2eec1556a022cd0ee | d73328db75884503bf74157722236efe4a6ef867 | …/prosemirror-view |
|
||||
| prosemirror-transform | 1.12.2 | MIT | a93e228a10b76698e0878df2e1f881389e3a94ec | a0aaeb587f5fa15efa9fadaab03e7fcb26bbe64e | …/prosemirror-transform |
|
||||
| prosemirror-inputrules | 1.5.1 | MIT | 089aa3852a55d551211af90aae2560c554ccf476 | 056aa2801460da409048c2eef074f6e513bb1233 | …/prosemirror-inputrules |
|
||||
| prosemirror-markdown | 1.13.8 | MIT | e3a5926aa3236af2a463d824f4f22455460b008f | 1467a53e37b554d0f0329a5017781db89ecc3da1 | …/prosemirror-markdown |
|
||||
| prosemirror-commands | 1.7.2 | MIT | 59fee8d89be2d033b28c2bac68e6736e2989bf9d | b5e1865a2d532f1424f409dc5be1d56ac077b855 | …/prosemirror-commands |
|
||||
| prosemirror-history | 1.5.1 | MIT | 44956b6a1929d7bc99aca9a8ec01c790260fa45f | 8c1e6d7ec040a87886e7f39fbf3029b0c2961ca9 | …/prosemirror-history |
|
||||
| prosemirror-keymap | 1.2.3 | MIT | 081f24f65b6a394174a4bdf07b9a55a00361f1b7 | 9031f125a6b53618b55b12b9272573a5aba1677c | …/prosemirror-keymap |
|
||||
| prosemirror-schema-basic | 1.2.5 | MIT | 531f1cad1b8059616dbe68407ab4d446b6f882f4 | c7b80fc1ee25b75fa506bd400d2d479a16b33a9c | …/prosemirror-schema-basic |
|
||||
| prosemirror-schema-list | 1.5.1 | MIT | e65a144f2285178a20cbdea5b0ee16925be7d6c5 | 12f3dd9c2735f86f54af2442e2600a14dc14f61f | …/prosemirror-schema-list |
|
||||
| markdown-it | 14.3.3 | MIT | d372f0d8a68bef0b0acaa68868ce8ae8ba85b384 | add6fa27b88402728a549324407204b5ca0b9799 | github.com/markdown-it/markdown-it |
|
||||
| linkify-it | 5.0.2 | MIT | 50a0c914f834b201cab25ff4faefd1f832b37332 | c8b101da7bbcff3a3de72621fc7e9abf31903eab | github.com/markdown-it/linkify-it |
|
||||
| uc.micro | 2.1.0 | MIT | d91cec10974f125be7accd4dd870900fd18fdec7 | 085c2a8b6c255efbd5ccd1fb13c4fc012a3521da | github.com/markdown-it/uc.micro |
|
||||
| mdurl | 2.1.0 | MIT | dd913f6290a4d8772240a401aab993eb65c5786d | 36d7a3131965a4e77531f549b89ecb73eede5080 | github.com/markdown-it/mdurl |
|
||||
| punycode.js | 2.3.1 (tag v2.3.1) | MIT | 9e1b2cda98d215d3a73fcbfe93c62e021f4ba768 | f95d544642e1599cd27de41416654b7b7a950031 | github.com/mathiasbynens/punycode.js |
|
||||
| entities | 4.5.0 (tag v4.5.0) | BSD-2-Clause | 61afd4701eaa736978b13c7351cd3de9a96b04bc | 23f047805a33dc7ce35dbdb137c947e5526d8d5c | github.com/fb55/entities |
|
||||
| orderedmap | 2.1.1 | MIT | 6a30ebbbecd30fed8bda884c7acf4ca9c6a02405 | 49c032b36195f4f3eb5bdf3aa9a0a7b70b0d523c | github.com/marijnh/orderedmap |
|
||||
| rope-sequence | 1.3.4 | MIT | 11db1ba5aa2abf31ff8040bdf01fabdb9db34c7a | 4006f2f2db7ababcbe84527ccc71afc6b69c19b3 | github.com/marijnh/rope-sequence |
|
||||
| w3c-keyname | 2.2.8 | MIT | 5ea93b04bb62230c7de4165e3a9b5c840f05cd44 | d6851bd96544a49c9ffd99a0b0eae920656b098d | github.com/marijnh/w3c-keyname |
|
||||
|
||||
`prosemirror-markdown` 1.13.8 depends on `markdown-it ^14`, so 14.3.3 (what the npm lock resolves under it) is the
|
||||
parser, not markdown-it 15. `argparse` (Python-2.0 license) is in the npm lock only for markdown-it's CLI and is not
|
||||
bundled. `@types/*` packages are in the lock for typings and are not bundled.
|
||||
|
||||
## 2. Licenses
|
||||
|
||||
`licenses/` holds 10 license files (8 distinct by checksum: `orderedmap` = `w3c-keyname`, and `punycode.js` = `uc.micro`).
|
||||
I copied one file for the ProseMirror group (`prosemirror-model.license`) and did **not** compare the other ten ProseMirror
|
||||
packages' license files with it; the provenance step in phase 2 should copy each package's own file. Holders, from the copied files:
|
||||
|
||||
- Marijn Haverbeke and others: `prosemirror-model` (copied), assumed the same for the other 10 ProseMirror packages (not checked), `orderedmap`, `rope-sequence`, `w3c-keyname` (MIT).
|
||||
- Vitaly Puzrin (and Alex Kocharin on `markdown-it`, `mdurl`): `markdown-it`, `linkify-it`, `mdurl` (MIT).
|
||||
- Mathias Bynens: `uc.micro`, `punycode.js` (MIT; the two files are byte-identical).
|
||||
- Felix Böhm: `entities` (BSD-2-Clause: keep the notice in source and in binary form, with the disclaimer).
|
||||
|
||||
All are permissive: the obligation is to keep the notice and the disclaimer with the code, including the built bundle
|
||||
(`--legal-comments=inline` keeps the license comments the packages carry; phase 2 should also ship a `NOTICE`/`LICENSE`
|
||||
file next to the imported source, as the brief asks). **The repository has no root `LICENSE`, and `package.json`
|
||||
says `"license": "UNLICENSED"`.** MIT and BSD-2 allow that: they impose notice-retention, not a license on our code. I am not a
|
||||
lawyer and this is not a legal opinion; Mos should know the repository's own license position is unstated.
|
||||
Among the other candidates in LIBRARY.md, only E (BlockNote core, MPL-2.0) and the transitive dual-licensed `dompurify` in B
|
||||
and F are outside MIT/BSD/ISC.
|
||||
|
||||
## 3. Sanitizer, and the schema overrides this design needs
|
||||
|
||||
There is **no DOMPurify** in this closure; nothing in the bundle sanitizes HTML strings because nothing parses HTML into the page.
|
||||
|
||||
- **Load path:** Markdown is parsed by markdown-it with `html:false` (raw HTML in a file becomes text), then mapped into
|
||||
the schema by `prosemirror-markdown`. The editor DOM is rendered by `prosemirror-view` through the schema's `toDOM`.
|
||||
- **Paste path** (the only HTML sink): `prosemirror-view` parses clipboard HTML in a detached document created with
|
||||
`document.implementation.createHTMLDocument`, which does not run scripts or load images, and maps it through the
|
||||
schema's `parseDOM` rules, so only schema nodes and marks survive. This is the same mechanism as the sanitizer: the
|
||||
schema is the allow-list.
|
||||
- **Measured with the pinned bundle** (jsdom; `results/hostile-html.txt`; 12 hostile inputs through `DOMParser` and
|
||||
`DOMSerializer` with the stock schema):
|
||||
- Dropped: `onclick`, `onmouseover`, `style` attributes, `<script>`, `<svg>`, `<iframe>`, `<style>`, `<form>`,
|
||||
`<object>`, `<math>`.
|
||||
- **Kept by the stock schema: `<img src="x">` (the `onerror` is dropped but the image stays), `<a href="javascript:alert(3)">`
|
||||
and `<a href="data:text/html,…">`.**
|
||||
The stock `link` and `image` specs therefore do not meet the brief's rendering rules. Phase 2 must replace them: the `link`
|
||||
mark's `parseDOM` and `toDOM` pass the href through the same `window.MosaicMarkdown.linkTarget` row 148 uses (http:,
|
||||
https: or relative, with `rel="noopener noreferrer"`, nothing else), and the `image` node is replaced by text (the alt
|
||||
text with the source shown), never an `<img>`. The paste path then cannot reintroduce either. This must be tested with
|
||||
the brief's `<script>`, `onerror` and `javascript:` browser test, on the paste path as well as the load path.
|
||||
- **Advisories.** OSV batch query on the 29-package lockfile (`results/osv-a-pm.json`), 2026-10-18: **0
|
||||
advisories**. Positive control the same day (output not saved in the packet; `repro/osv.sh` has no control): dompurify 2.3.3
|
||||
returned 20 and markdown-it 12.2.0 returned 3. The build
|
||||
tool's own lock (27 packages, esbuild 0.28.2) also returned 0 (`results/osv-i-build.json`). An advisory-free answer
|
||||
is a snapshot of that day; phase 2 should re-run it in the landing record.
|
||||
- **eval and network.** No `eval(`, `new Function`, `document.write`, `fetch(`, `XMLHttpRequest` or `import(` in the
|
||||
built bundle (`grep -cE` returns 0 on the 17,963-line file, which contains all 132 inputs). A grep is a screen, not proof that
|
||||
no code path builds a function from a string by other means. The bundle makes no network call of its own.
|
||||
|
||||
## 4. Source size, and what is removed or rewritten
|
||||
|
||||
The built bundle reads **132 input files (131 third-party plus the 11-line prototype entry), 25,899 lines**, from the esbuild
|
||||
metafile of the pinned build, counting each file's lines on disk. (An earlier count of mine, 127 files and 25,706 lines, used a
|
||||
different method and is superseded.) The prototype entry has no schema or editor code yet, so phase 2 adds to this.
|
||||
|
||||
| Package | Files | Lines |
|
||||
|---|---|---|
|
||||
| prosemirror-view | 12 | 6,459 |
|
||||
| prosemirror-model | 12 | 3,574 |
|
||||
| prosemirror-transform | 10 | 2,113 |
|
||||
| prosemirror-state | 5 | 1,092 |
|
||||
| prosemirror-markdown | 4 | 917 |
|
||||
| prosemirror-commands | 1 | 786 |
|
||||
| prosemirror-history | 1 | 466 |
|
||||
| prosemirror-schema-list, -basic, -keymap | 3 | 538 |
|
||||
| prosemirror-inputrules | 4 | 247 |
|
||||
| orderedmap, rope-sequence, w3c-keyname | 3 | 444 |
|
||||
| **ProseMirror side** | 55 | 16,636 |
|
||||
| markdown-it | 53 | 6,291 |
|
||||
| entities | 8 | 1,124 |
|
||||
| linkify-it | 2 | 839 |
|
||||
| mdurl | 5 | 541 |
|
||||
| punycode.js | 1 | 443 |
|
||||
| uc.micro | 7 | 14 |
|
||||
| **markdown-it side** | 76 | 9,252 |
|
||||
| prototype entry (ours) | 1 | 11 |
|
||||
|
||||
A reviewer reads about 25,900 lines of third-party source (about 1,200 of them are `entities` tables) plus the editor code and CSS we
|
||||
write in phase 2. For scale, the existing `markdown-preview.js` is 338 lines. The table counts the files the build reads, not
|
||||
every file in a package's directory.
|
||||
|
||||
**What the imported directory would hold:** the files above (the `src/` of the ProseMirror packages, the `index.mjs` and `lib/`
|
||||
of the markdown-it family, `entities/src`), each package's license file, and a provenance file with the package, the
|
||||
commit and the tree hash from section 1. **What it would not hold:** `dist/`, `.d.ts`/`.d.cts`, tests, benchmarks, READMEs,
|
||||
`rollup.config.*` and anything else the build does not read. The brief's tree-hash-vs-provenance test then hashes each package
|
||||
directory against the tree hash recorded in the provenance file (the tagged tree minus those excluded paths, so the test
|
||||
needs a rule for which paths count; I would pin the rule in the test and not in prose).
|
||||
|
||||
**Rewritten:** nothing in the imported third-party source. All our changes go in our own files: the entry module, the schema, the
|
||||
splice save, and the editor CSS.
|
||||
|
||||
**Not human-readable, three generated files (`results/` lists the line counts):**
|
||||
|
||||
- `entities/src/generated/decode-data-html.ts`: 8 lines, 47,698 bytes, encoded strings. The tag has `maps/` and
|
||||
`scripts/write-decode-map.ts`, which look like its generator (I did not run it, so I have not shown they reproduce the file).
|
||||
- `uc.micro/categories/P/regex.mjs` (2,042 bytes, one line) and `.../S/regex.mjs` (2,551 bytes): generated Unicode regexes. I did
|
||||
not find a generator script in the tagged `uc.micro` tree.
|
||||
|
||||
The same generated files exist in every markdown-it build. Options: (a) accept them as data, with the provenance file stating they are
|
||||
generated (and `entities`' generator and input beside its table); (b) regenerate in the build. I did not run any generator, so (b) is
|
||||
not shown to work; (a) costs nothing and is what I would do unless a reviewer objects.
|
||||
|
||||
## 5. Build, and how a reviewer reproduces it byte for byte
|
||||
|
||||
**Tool.** `esbuild` 0.28.2. In my scratch build it is the only dependency of a `package.json` with an exact version
|
||||
(`"esbuild":"0.28.2"`); **nothing in the repository pins it yet**, so phase 2 would add that pin. Lockfile integrity hash `sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==`
|
||||
(platform binary `@esbuild/linux-x64` 0.28.2, `sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==`;
|
||||
file sha256 `e1698a3d5c6c0798fee4fd3b5cc816651f460c63d390a7a26ea4beb0b1884100`, 11.4 MB, statically linked, stripped).
|
||||
**This is a prebuilt Go binary.** It is a build tool pulled by the lockfile, not vendored or committed, and the bundle it produces is
|
||||
what Q167 D3 requires to be rebuilt from source. Whether that satisfies D3 is Mos's call (question 2).
|
||||
|
||||
**Recipe** (`repro/build-pinned.sh`, run from a directory with the pinned trees checked out; no network):
|
||||
|
||||
```
|
||||
esbuild entry.mjs --bundle --format=iife --target=es2022 --platform=browser \
|
||||
--legal-comments=inline --log-level=warning \
|
||||
--alias:prosemirror-{model,state,view,transform,inputrules,markdown}=<pkg>/src/index.ts \
|
||||
--alias:prosemirror-{commands,history,keymap,schema-basic,schema-list}=<pkg>/src/<name>.ts \
|
||||
--alias:orderedmap=<pkg>/index.js --alias:rope-sequence=<pkg>/index.js --alias:w3c-keyname=<pkg>/index.js \
|
||||
--alias:markdown-it=<pkg>/index.mjs --alias:mdurl=<pkg>/index.mjs --alias:uc.micro=<pkg>/index.mjs \
|
||||
--alias:linkify-it=<pkg>/index.mjs --alias:punycode.js=<pkg>/punycode.js --alias:entities=<pkg>/src/index.ts \
|
||||
--outfile=editor.js
|
||||
```
|
||||
|
||||
No minify flag: the output is readable. For the ProseMirror packages the alias target is the file each package's
|
||||
`prepare` script feeds `pm-buildhelper` (checked for `prosemirror-view`: `src/index.ts`; the others follow the script in
|
||||
`repro/build-pinned.sh`). `punycode.js` is the tag's CommonJS file; esbuild wraps it. No `--external`, no plugins, no `define`.
|
||||
The entry in `repro/entry.mjs` is a measurement prototype that exports the pieces; the phase 2 entry will differ, so the hash
|
||||
above is the hash of the prototype, and phase 2 records its own.
|
||||
|
||||
**Result.** The pinned trees were exported with `git archive <tag>` (no npm packages in the build input). Two builds in a
|
||||
sandbox with no network gave identical output: sha256
|
||||
`9587a1706eb5fa8d4d2c79976be6b1d84a0513fe814eeee381b6ecf384d15077`, 17,963 lines, 722,595 bytes (`results/build-hashes.txt`).
|
||||
A reviewer repeats the same recipe from the same tags and compares the hash. The earlier prototype that aliased
|
||||
two packages to npm `dist` also built identically twice but is not the plan; this one uses tag sources only.
|
||||
One esbuild warning appears and is harmless: `prosemirror-transform`'s `import "./mark"` is ignored because the package says
|
||||
`sideEffects:false`; `addMark` and `removeMark` are still in the bundle (imported by `transform.ts` directly).
|
||||
|
||||
**Caveats on the reproduction claim.** My builds ran with the host's Node and the native binary in a `bwrap --unshare-net`
|
||||
sandbox. I proved identical output on this machine twice; I have not rebuilt on another machine, another architecture, or another
|
||||
esbuild platform package, and the macOS and Windows binaries are different files. Phase 2's test should record the hash and fail
|
||||
on drift. An alternative with no prebuilt tool (a small concatenating build with Node's type stripping) is possible but would be new
|
||||
code to review, because bare imports cannot use an import map under this CSP; I did not build it.
|
||||
|
||||
## 6. Markdown normalisation (the measured part)
|
||||
|
||||
Corpus: the 414 `.md` files in this checkout (`results/corpus.txt`). **There is no `spec/north-star.md`**; the nearest file is the 3-line
|
||||
`packages/project/templates/north-star.md`, which is in the corpus. Test: parse, serialise, compare bytes, no edit.
|
||||
|
||||
| Stack | Byte-identical, no edit | Notes |
|
||||
|---|---|---|
|
||||
| ProseMirror + prosemirror-markdown, stock | 1 of 414 | `repro/rt.mjs` |
|
||||
| Tiptap 3.32.0 + @tiptap/markdown | 1 of 414 | **drops tables entirely** |
|
||||
| Milkdown 7.22.3, commonmark + gfm | 59 of 414 | 142 of 414 with `-` bullets set |
|
||||
| **Block splice** (below), A | **414 of 414** (12,879 blocks, 98 with front matter) | exact by construction |
|
||||
|
||||
What the stock serialiser changes (each seen in the corpus; small cases in `repro/micro.mjs`): bullets `-` to `*`;
|
||||
hard-wrapped paragraphs joined onto one line; tables flattened into one paragraph; setext headings to ATX; `~~~` fences and indented
|
||||
code to backtick fences; reference links inlined; entities decoded; `_em_` to `*em*`; a hard break becomes backslash plus newline;
|
||||
`~~strike~~` and task markers escaped; YAML front matter turns into a rule plus a heading; 3+ blank lines collapse to one; CRLF
|
||||
collapses.
|
||||
|
||||
**Block splice (the proposal for phase 2).** The document is split into top-level blocks using markdown-it's token `map` (the source
|
||||
line range of each block). The editor holds those blocks; on save each block that is unchanged since load writes back its **original
|
||||
source text**, and only an edited block is re-serialised. Gaps between blocks (blank lines) are kept as they were. Tables, raw HTML
|
||||
blocks, rules and front matter (762 HTML blocks, 346 tables and 205 rules in this corpus; 98 files start with front matter) are **opaque source blocks**: shown, and edited as
|
||||
source text, never reserialised. This satisfies the brief's "same bytes if no edits".
|
||||
|
||||
Two honest limits:
|
||||
|
||||
1. The 414-of-414 figure measures the splice arithmetic (gaps plus block slices rebuild every file), not the editor. A file the
|
||||
editor loads and saves untouched is exact because untouched blocks emit their stored text; phase 2's round-trip test
|
||||
(`spec/north-star.md` as the brief says, which does not exist here, so a repo file chosen by Sage, plus a document with every
|
||||
preview element) is what proves it end to end.
|
||||
2. **An edited block is rewritten in the editor's canonical Markdown**, not its original style. Measured on the 11,566 blocks that are not
|
||||
opaque (`results/per-block-roundtrip.txt`), serialising each block alone and comparing with its own source text:
|
||||
|
||||
| Block | Count | Stock serialiser exact | With soft breaks kept and `-` bullets |
|
||||
|---|---|---|---|
|
||||
| paragraph | 5,639 | 32% | 97% |
|
||||
| heading | 3,655 | 99% | 99% |
|
||||
| bullet list | 1,326 | 0% | 85% |
|
||||
| fence | 468 | 100% | 100% |
|
||||
| indented code block | 242 | 0% | 0% (becomes a fence) |
|
||||
| ordered list | 228 | 25% | 84% |
|
||||
| blockquote | 8 | 13% | 63% |
|
||||
| all | 11,566 | 52% | 94% |
|
||||
|
||||
So with two serialiser settings, about 94% of blocks would come back unchanged even after an edit, and the other 6% are rewritten
|
||||
(for example indented code to a fenced block, a list's continuation indent, wrapped lines). A list or quote is one top-level
|
||||
block, so an edit anywhere in a list reserialises that whole list. The brief says reviewers accept "the exact normalisation"; this
|
||||
is that statement, and the numbers are from one repository's docs.
|
||||
|
||||
## 7. What this means for the Console
|
||||
|
||||
- **Routing.** `serve.mjs` serves `packages/webui/src/public/` from an explicit route table (lines 24 and 25: file name to content
|
||||
type). A single bundle is one route (`/editor.js`) and one CSS file is another (`/editor.css`, carrying
|
||||
`prosemirror.css`'s 54 lines and ours); unbundled serving would need about 131 routes or a new directory route. **`serve.mjs` is not in the
|
||||
brief's owned-file list, so the two route entries need Sage's say-so.**
|
||||
- **CSP.** `script-src 'self'` is enough for a same-origin `<script src="/editor.js">`; no CSP change is planned, and if phase 2
|
||||
finds one is needed it stops there, as the brief says. I have not run the bundle in a browser; jsdom was the environment, so
|
||||
the brief's browser test is the first real check.
|
||||
- **Existing code.** `markdown-preview.js` stays; the editor calls `window.MosaicMarkdown.linkTarget` rather than copy the link rule.
|
||||
|
||||
## 8. Open items and risks
|
||||
|
||||
- Five questions for Mos, below.
|
||||
- The build is proven reproducible on one machine, twice; not across machines (section 5).
|
||||
- Three generated data files are not human-readable (section 4).
|
||||
- Candidates D, E, G, H were not run through the round trip; B and C were. If Mos wants the choice to be between measured round
|
||||
trips, D and G would be next.
|
||||
- The advisory check is a snapshot (2026-10-18).
|
||||
- Phase 2's sizing: the editor view, schema overrides, splice save, tests and CSS are new code. I have not estimated their size.
|
||||
|
||||
## Questions for Mos (decision 123)
|
||||
|
||||
1. **Go on candidate A** (ProseMirror + prosemirror-markdown + markdown-it; 19 MIT packages plus `entities` BSD-2-Clause), importing its
|
||||
source into one new directory in the repository?
|
||||
2. **Build tool.** Accept `esbuild` 0.28.2 (prebuilt Go binary, exact-pinned with lockfile integrity, not committed) as the pinned build
|
||||
tool, as the brief's "builds from pinned tools" intends? Or require a no-prebuilt-tool build (more code to review, unbuilt)?
|
||||
3. **Generated tables.** Accept the three generated data files as imported data with generator and input beside them (section 4 option (a))?
|
||||
4. **Normalisation.** Accept that an unedited file saves byte-identical and an edited block is rewritten in canonical Markdown, with the
|
||||
table, raw HTML, rule and front-matter blocks edited only as source text?
|
||||
5. **Licensing.** The repository has no root `LICENSE` and says `UNLICENSED`; the imported code is MIT and BSD-2-Clause and needs only its
|
||||
notices kept. Does Mos want anything stated about that before import?
|
||||
|
||||
For Sage: `serve.mjs` needs two route entries (`/editor.js`, `/editor.css`) and is outside the brief's owned files.
|
||||
|
||||
## Packet contents
|
||||
|
||||
`LIBRARY.md` (search), `REPORT.md` (this file), `licenses/` (10 files), `results/` (pins, OSV for 8 lockfiles, build hashes,
|
||||
hostile-HTML run, splice and per-block round-trip output, the corpus list), `repro/` (build script and entry, the measurement
|
||||
scripts; they carry the scratch paths I ran them from, which a reviewer must edit). Scratch lives outside the repository at
|
||||
`/mnt/storage/scratch/researcher/q154/` and is not part of the evidence.
|
||||
@@ -0,0 +1,195 @@
|
||||
7d01169bd6e68b2cf2b29a57bc793a19296dc9552b640604a03b77d100b828b1 docs/TOOLS.md
|
||||
6a6620a82d649957602510ae59b13cd8ec69beb316ae80db60aa5b5403296225 packages/webui/README.md
|
||||
40c4a7ca6e6e46fed2fbbd7287796333ba99f206dc407abf09383284fdaac23e packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
b9c580f6c2a082f8549ccb73fec32b694cf943d383a60e58510ee9e2928f6a82 packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
66f6d9f98e32c05d8c893ab9ef80d7cb61ea3918dd2cabfc38f26be34bccff02 packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
c601f6c3f75b7cf9898a9a52abfdab3e50badbcb5f66e57e6df57641878e6565 packages/webui/src/public/editor.js
|
||||
a192a614ec1ad9dab9d556f4cd5ad366b902d30101bf8bacb6f874fbe8707416 packages/webui/src/public/index.html
|
||||
fbd6cbba33572f50f25b597b05c3465241b8cadc3e93b69d39c1d2c527bab06f packages/webui/src/serve.mjs
|
||||
e073ca5f1b3767b16d33e8a971646eca295a60034e2924518e882f3cab5b6ea2 packages/webui/tests/browser.test.mjs
|
||||
993a3028d1fae170546c3da7c5810c94f0e78b200c5cf1e53583c357f7b46493 packages/webui/tests/docs-browser.test.mjs
|
||||
acc8a958e4c309e16dae500608bf0a8fe981b9451f53aa46f14aa1aa4de57712 packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md
|
||||
packages/webui/README.md
|
||||
packages/webui/editor/BUILD.json
|
||||
packages/webui/editor/build.mjs
|
||||
packages/webui/editor/editor.css
|
||||
packages/webui/editor/entry.mjs
|
||||
packages/webui/editor/model.mjs
|
||||
packages/webui/editor/toolchain.mjs
|
||||
packages/webui/editor/view.mjs
|
||||
packages/webui/package-lock.json
|
||||
packages/webui/package.json
|
||||
packages/webui/src/public/bus.js
|
||||
packages/webui/src/public/editor.css
|
||||
packages/webui/src/public/editor.js
|
||||
packages/webui/src/public/index.html
|
||||
packages/webui/src/serve.mjs
|
||||
packages/webui/tests/browser.test.mjs
|
||||
packages/webui/tests/docs-browser.test.mjs
|
||||
packages/webui/tests/editor-browser.test.mjs
|
||||
packages/webui/tests/editor-provenance.test.mjs
|
||||
packages/webui/tests/editor.test.mjs
|
||||
packages/webui/tests/helpers/editor-bundle.mjs
|
||||
packages/webui/tests/helpers/every-element.mjs
|
||||
packages/webui/tests/serve.test.mjs
|
||||
packages/webui/third_party/editor/NOTICE
|
||||
packages/webui/third_party/editor/PROVENANCE.json
|
||||
packages/webui/third_party/editor/entities/LICENSE
|
||||
packages/webui/third_party/editor/entities/package.json
|
||||
packages/webui/third_party/editor/entities/src/decode.ts
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
packages/webui/third_party/editor/entities/src/encode.ts
|
||||
packages/webui/third_party/editor/entities/src/escape.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
packages/webui/third_party/editor/entities/src/index.ts
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
packages/webui/third_party/editor/linkify-it/package.json
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
packages/webui/third_party/editor/markdown-it/package.json
|
||||
packages/webui/third_party/editor/mdurl/LICENSE
|
||||
packages/webui/third_party/editor/mdurl/index.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
packages/webui/third_party/editor/mdurl/package.json
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
packages/webui/third_party/editor/orderedmap/index.js
|
||||
packages/webui/third_party/editor/orderedmap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
packages/webui/third_party/editor/punycode.js/package.json
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
packages/webui/third_party/editor/rope-sequence/index.js
|
||||
packages/webui/third_party/editor/rope-sequence/package.json
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
packages/webui/third_party/editor/uc.micro/package.json
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,11 @@
|
||||
Copyright (c) Felix Böhm
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2015 Vitaly Puzrin.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,45 @@
|
||||
Copyright (c) 2015 Vitaly Puzrin, Alex Kocharin.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
.parse() is based on Joyent's node.js `url` code:
|
||||
|
||||
Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2016 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2015-2017 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,20 @@
|
||||
Copyright Mathias Bynens <https://mathiasbynens.be/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2016 by Marijn Haverbeke <[email protected]>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,20 @@
|
||||
Copyright Mathias Bynens <https://mathiasbynens.be/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2016 by Marijn Haverbeke <[email protected]> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,195 @@
|
||||
a71403bc53edf67feeb5e96f033fcb8bc80f82bd89fef86c05a015c21f42e61c docs/TOOLS.md
|
||||
afcdb69ced938d04be2a2de760f3d525fb7875786cf3bd6dc55e6624d88d6699 packages/webui/README.md
|
||||
317e8d78cf178d30d8588fe04e43ae3b2b4b61e1902420a19d83d87a5bf72985 packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
d3457aad19c6091306727d2b68cc22fb8427452269f4eda7e4e21fcb51672eda packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
e6dcef4441140e733929a37eceee87db1f244a0ffc0e224f353ae4c45a3b487f packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
32fcaa18eaee2ff426c3c7e06038ee190f9fd7a332c9f3db349aa74df22c9fb5 packages/webui/src/public/editor.js
|
||||
c336f00436d9d9c36e8a15a57d2b91f6a7084748c816c40f144000e7c23f410c packages/webui/src/public/index.html
|
||||
d2d0b094fa435bbb8ed2ea6c81ed2d08d7f2466cbfb8fd54108623b6ad38b9b7 packages/webui/src/serve.mjs
|
||||
de0e57324b4c6f6651ed95df855893f86a4d6a9930c705b9754164163857df6f packages/webui/tests/browser.test.mjs
|
||||
28f40ccf1c8173915221f4762df5ffa76e888279c880fd22abd80bc02e62dd32 packages/webui/tests/docs-browser.test.mjs
|
||||
5b050de81b5c36773d41b956811c93a3cc5a368c449dd581b9448ee77638841a packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md
|
||||
packages/webui/README.md
|
||||
packages/webui/editor/BUILD.json
|
||||
packages/webui/editor/build.mjs
|
||||
packages/webui/editor/editor.css
|
||||
packages/webui/editor/entry.mjs
|
||||
packages/webui/editor/model.mjs
|
||||
packages/webui/editor/toolchain.mjs
|
||||
packages/webui/editor/view.mjs
|
||||
packages/webui/package-lock.json
|
||||
packages/webui/package.json
|
||||
packages/webui/src/public/bus.js
|
||||
packages/webui/src/public/editor.css
|
||||
packages/webui/src/public/editor.js
|
||||
packages/webui/src/public/index.html
|
||||
packages/webui/src/serve.mjs
|
||||
packages/webui/tests/browser.test.mjs
|
||||
packages/webui/tests/docs-browser.test.mjs
|
||||
packages/webui/tests/editor-browser.test.mjs
|
||||
packages/webui/tests/editor-provenance.test.mjs
|
||||
packages/webui/tests/editor.test.mjs
|
||||
packages/webui/tests/helpers/editor-bundle.mjs
|
||||
packages/webui/tests/helpers/every-element.mjs
|
||||
packages/webui/tests/serve.test.mjs
|
||||
packages/webui/third_party/editor/NOTICE
|
||||
packages/webui/third_party/editor/PROVENANCE.json
|
||||
packages/webui/third_party/editor/entities/LICENSE
|
||||
packages/webui/third_party/editor/entities/package.json
|
||||
packages/webui/third_party/editor/entities/src/decode.ts
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
packages/webui/third_party/editor/entities/src/encode.ts
|
||||
packages/webui/third_party/editor/entities/src/escape.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
packages/webui/third_party/editor/entities/src/index.ts
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
packages/webui/third_party/editor/linkify-it/package.json
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
packages/webui/third_party/editor/markdown-it/package.json
|
||||
packages/webui/third_party/editor/mdurl/LICENSE
|
||||
packages/webui/third_party/editor/mdurl/index.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
packages/webui/third_party/editor/mdurl/package.json
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
packages/webui/third_party/editor/orderedmap/index.js
|
||||
packages/webui/third_party/editor/orderedmap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
packages/webui/third_party/editor/punycode.js/package.json
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
packages/webui/third_party/editor/rope-sequence/index.js
|
||||
packages/webui/third_party/editor/rope-sequence/package.json
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
packages/webui/third_party/editor/uc.micro/package.json
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,32 @@
|
||||
board-held rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
browser-edge rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
bus-browser rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
bus rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
chat-browser rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
chat rc=0 ℹ tests 22 ℹ pass 22 ℹ fail 0 ℹ skipped 0
|
||||
conversation rc=0 ℹ tests 4 ℹ pass 4 ℹ fail 0 ℹ skipped 0
|
||||
discord rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
docs-browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
editor-browser rc=0 ℹ tests 16 ℹ pass 16 ℹ fail 0 ℹ skipped 0
|
||||
editor-provenance rc=0 ℹ tests 6 ℹ pass 6 ℹ fail 0 ℹ skipped 0
|
||||
editor rc=0 ℹ tests 5 ℹ pass 5 ℹ fail 0 ℹ skipped 0
|
||||
history-return-flow rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
markdown-preview rc=0 ℹ tests 19 ℹ pass 19 ℹ fail 0 ℹ skipped 0
|
||||
messages rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
pinned-copy rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
preview rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
project-file rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
reads rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
relaunch rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
return-flow rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
send-browser rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
send rc=0 ℹ tests 13 ℹ pass 13 ℹ fail 0 ℹ skipped 0
|
||||
serve rc=0 ℹ tests 4 ℹ pass 4 ℹ fail 0 ℹ skipped 0
|
||||
service rc=0 ℹ tests 23 ℹ pass 23 ℹ fail 0 ℹ skipped 0
|
||||
settings-form rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
settings-write rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
shell rc=0 ℹ tests 5 ℹ pass 5 ℹ fail 0 ℹ skipped 0
|
||||
usage-browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
usage rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
views rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
@@ -0,0 +1,195 @@
|
||||
a71403bc53edf67feeb5e96f033fcb8bc80f82bd89fef86c05a015c21f42e61c docs/TOOLS.md
|
||||
afcdb69ced938d04be2a2de760f3d525fb7875786cf3bd6dc55e6624d88d6699 packages/webui/README.md
|
||||
c60f2e353172bb0e3aa1cfe7be081f49898602af8ca0294fef2dabb8112b942f packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
8596c60ac4b5a8885e02853ef378743eb0bc4c9bbb00ce8a72016e4453b32a79 packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
e6dcef4441140e733929a37eceee87db1f244a0ffc0e224f353ae4c45a3b487f packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee packages/webui/src/public/editor.js
|
||||
c336f00436d9d9c36e8a15a57d2b91f6a7084748c816c40f144000e7c23f410c packages/webui/src/public/index.html
|
||||
d2d0b094fa435bbb8ed2ea6c81ed2d08d7f2466cbfb8fd54108623b6ad38b9b7 packages/webui/src/serve.mjs
|
||||
de0e57324b4c6f6651ed95df855893f86a4d6a9930c705b9754164163857df6f packages/webui/tests/browser.test.mjs
|
||||
a2dd88810a160a0681e1dac72c4cc0f98a7ac09b445fc38a55d1503d880110d6 packages/webui/tests/docs-browser.test.mjs
|
||||
40fa1214b605f4b196955da28f26a8f8f0bbac373fc90d27cbc7010d675df01c packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
a71403bc53edf67feeb5e96f033fcb8bc80f82bd89fef86c05a015c21f42e61c docs/TOOLS.md
|
||||
afcdb69ced938d04be2a2de760f3d525fb7875786cf3bd6dc55e6624d88d6699 packages/webui/README.md
|
||||
c60f2e353172bb0e3aa1cfe7be081f49898602af8ca0294fef2dabb8112b942f packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
8596c60ac4b5a8885e02853ef378743eb0bc4c9bbb00ce8a72016e4453b32a79 packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
e6dcef4441140e733929a37eceee87db1f244a0ffc0e224f353ae4c45a3b487f packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee packages/webui/src/public/editor.js
|
||||
c336f00436d9d9c36e8a15a57d2b91f6a7084748c816c40f144000e7c23f410c packages/webui/src/public/index.html
|
||||
d2d0b094fa435bbb8ed2ea6c81ed2d08d7f2466cbfb8fd54108623b6ad38b9b7 packages/webui/src/serve.mjs
|
||||
de0e57324b4c6f6651ed95df855893f86a4d6a9930c705b9754164163857df6f packages/webui/tests/browser.test.mjs
|
||||
a2dd88810a160a0681e1dac72c4cc0f98a7ac09b445fc38a55d1503d880110d6 packages/webui/tests/docs-browser.test.mjs
|
||||
40fa1214b605f4b196955da28f26a8f8f0bbac373fc90d27cbc7010d675df01c packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md
|
||||
packages/webui/README.md
|
||||
packages/webui/editor/BUILD.json
|
||||
packages/webui/editor/build.mjs
|
||||
packages/webui/editor/editor.css
|
||||
packages/webui/editor/entry.mjs
|
||||
packages/webui/editor/model.mjs
|
||||
packages/webui/editor/toolchain.mjs
|
||||
packages/webui/editor/view.mjs
|
||||
packages/webui/package-lock.json
|
||||
packages/webui/package.json
|
||||
packages/webui/src/public/bus.js
|
||||
packages/webui/src/public/editor.css
|
||||
packages/webui/src/public/editor.js
|
||||
packages/webui/src/public/index.html
|
||||
packages/webui/src/serve.mjs
|
||||
packages/webui/tests/browser.test.mjs
|
||||
packages/webui/tests/docs-browser.test.mjs
|
||||
packages/webui/tests/editor-browser.test.mjs
|
||||
packages/webui/tests/editor-provenance.test.mjs
|
||||
packages/webui/tests/editor.test.mjs
|
||||
packages/webui/tests/helpers/editor-bundle.mjs
|
||||
packages/webui/tests/helpers/every-element.mjs
|
||||
packages/webui/tests/serve.test.mjs
|
||||
packages/webui/third_party/editor/NOTICE
|
||||
packages/webui/third_party/editor/PROVENANCE.json
|
||||
packages/webui/third_party/editor/entities/LICENSE
|
||||
packages/webui/third_party/editor/entities/package.json
|
||||
packages/webui/third_party/editor/entities/src/decode.ts
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
packages/webui/third_party/editor/entities/src/encode.ts
|
||||
packages/webui/third_party/editor/entities/src/escape.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
packages/webui/third_party/editor/entities/src/index.ts
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
packages/webui/third_party/editor/linkify-it/package.json
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
packages/webui/third_party/editor/markdown-it/package.json
|
||||
packages/webui/third_party/editor/mdurl/LICENSE
|
||||
packages/webui/third_party/editor/mdurl/index.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
packages/webui/third_party/editor/mdurl/package.json
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
packages/webui/third_party/editor/orderedmap/index.js
|
||||
packages/webui/third_party/editor/orderedmap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
packages/webui/third_party/editor/punycode.js/package.json
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
packages/webui/third_party/editor/rope-sequence/index.js
|
||||
packages/webui/third_party/editor/rope-sequence/package.json
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
packages/webui/third_party/editor/uc.micro/package.json
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,37 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (852.739388ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (683.97025ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (575.385611ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2519.106587ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (917.946329ms)
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (5932.237456ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (541.678663ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (534.861852ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (568.558393ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (579.729503ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (605.398908ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (561.166687ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (575.949631ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (644.487953ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (621.717632ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (596.980001ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 17421.005012
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:382:1
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (5932.237456ms)
|
||||
Error: Uncaught (in promise) Error: Condition timed out: document.querySelector("#doc-visual .ProseMirror"): undefined
|
||||
at Object.evaluate (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/browser.mjs:48:35)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:402:5
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:383:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7)
|
||||
@@ -0,0 +1,43 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (942.598624ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (835.181508ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (650.000377ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2538.615325ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1022.060923ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2041.576597ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (508.549307ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (577.017206ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (573.777017ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (611.644551ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (591.748175ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (638.486458ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (687.545431ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (727.95009ms)
|
||||
✖ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (652.816695ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (687.154387ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14395.399475
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (652.816695ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "```\ncode\n```" in "# x\n\n```a`b\ncode\n```\n\nyTitle\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (906.663216ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (782.877439ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (574.240007ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2497.7362ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (960.410491ms)
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (923.252823ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (507.81084ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (577.12317ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (637.931285ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (599.925233ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (598.862357ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (597.57669ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (617.048449ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (749.203925ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (627.321732ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (519.386264ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 12787.091916
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:382:1
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (923.252823ms)
|
||||
AssertionError [ERR_ASSERTION]: a failed round trip shows the source, the note and a Save that is off
|
||||
+ actual - expected
|
||||
|
||||
{
|
||||
+ note: false,
|
||||
+ pm: true,
|
||||
- note: true,
|
||||
- pm: false,
|
||||
pressed: [
|
||||
+ 'true',
|
||||
'false',
|
||||
- 'true'
|
||||
],
|
||||
saveOff: true,
|
||||
+ text: null
|
||||
- text: '# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n'
|
||||
}
|
||||
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:397:12
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:383:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: { pm: true, text: null, note: false, pressed: [ 'true', 'false' ], saveOff: true },
|
||||
expected: { pm: false, text: '# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n', note: true, pressed: [ 'false', 'true' ], saveOff: true },
|
||||
operator: 'deepStrictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (835.062582ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (704.243044ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (599.267431ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2525.091118ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1199.574937ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2093.288552ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (635.279331ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (718.749727ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (671.092857ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (653.315023ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (790.645206ms)
|
||||
✖ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (663.908196ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (597.023665ms)
|
||||
✖ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (549.017814ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (589.363478ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (575.199298ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14495.351408
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (663.908196ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as " <img src=x onerror=alert(1)> \")" in "#  <img src=x onerror=alert(1)> \")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (549.017814ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "" in "# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (939.963587ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (821.771747ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (608.552918ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2583.535845ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1044.794977ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1992.682735ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (544.964571ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (578.426363ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (564.7512ms)
|
||||
✖ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (651.186539ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (615.570272ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (594.729535ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (584.8937ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (602.096386ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (564.745118ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (542.198189ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 13982.289082
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (651.186539ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "```T\ncode\n```" in "# x\n\n```T\n\n<img src=x onerror=alert(1)>\n\n\ncode\n```\n\nyTitle\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (867.838057ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (757.683785ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (567.039598ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2497.0631ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (985.220306ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1932.42815ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (549.06396ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (594.942531ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (574.343036ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (505.074463ms)
|
||||
✖ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (562.862519ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (584.679898ms)
|
||||
✖ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (603.34977ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (592.439653ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (558.453122ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (543.321172ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 13390.95085
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (562.862519ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"x\\\\\\\") <img src=x onerror=alert(1)> \")" in "# [word](https://ok.example/p \"x\\\\\") <img src=x onerror=alert(1)> \")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (603.34977ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"end\\\\\")" in "# [word](https://ok.example/p \"end\\\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (873.15186ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (683.799287ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (573.962205ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2507.093386ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1001.411195ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2013.315471ms)
|
||||
✖ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (558.799953ms)
|
||||
✖ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (603.864767ms)
|
||||
✖ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (622.641122ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (595.845951ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (617.502443ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (618.658242ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (615.115467ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (778.218919ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (756.782191ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (729.095975ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 3
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14253.601051
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (558.799953ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"T <img src=x onerror=alert(1)> \")" in "# [word](https://ok.example/p \"T\n\n<img src=x onerror=alert(1)>\n\n\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (603.864767ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "" in "# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (622.641122ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "> \")" in "# >\n\n\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt2/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,26 @@
|
||||
✔ the imported source is the tagged upstream source plus the recorded local changes, and nothing else (11.356453ms)
|
||||
✔ every package names its origin and license, and NOTICE lists each (0.518682ms)
|
||||
✔ the build reads only imported source and the editor's own files; the bundle is the recorded build (5.458375ms)
|
||||
✔ MOSAIC_REQUIRE_EDITOR_BUILD: a missing or wrong esbuild skips without it and fails with it; a wrong binary always fails (3.937865ms)
|
||||
✔ the toolchain check, run as a program, exits non-zero without esbuild when the build is required (124.496361ms)
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
✔ rebuilding from the source gives the same bytes (needs the pinned esbuild; MOSAIC_REQUIRE_EDITOR_BUILD=1 makes its absence a failure) (55.555699ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 255.271942
|
||||
@@ -0,0 +1,114 @@
|
||||
2026-10-18T18:55:31Z lock and esbuild binary sha ok
|
||||
2026-10-18T18:55:31Z build 1 exit 0
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee src/public/editor.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f src/public/editor.css
|
||||
758420 src/public/editor.js
|
||||
4462 src/public/editor.css
|
||||
762882 total
|
||||
2026-10-18T18:55:31Z build 2 exit 0
|
||||
rebuild byte-identical (editor.js and BUILD.json)
|
||||
BUILD.json records editor.js 9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee 758420
|
||||
2026-10-18T18:55:31Z start board-held
|
||||
2026-10-18T18:55:40Z end board-held exit 0
|
||||
2026-10-18T18:55:40Z start browser-edge
|
||||
2026-10-18T18:55:41Z end browser-edge exit 0
|
||||
2026-10-18T18:55:41Z start browser
|
||||
2026-10-18T18:55:43Z end browser exit 0
|
||||
2026-10-18T18:55:43Z start bus-browser
|
||||
2026-10-18T18:55:46Z end bus-browser exit 0
|
||||
2026-10-18T18:55:46Z start bus
|
||||
2026-10-18T18:55:49Z end bus exit 0
|
||||
2026-10-18T18:55:49Z start chat-browser
|
||||
2026-10-18T18:56:07Z end chat-browser exit 0
|
||||
2026-10-18T18:56:07Z start chat
|
||||
2026-10-18T18:56:08Z end chat exit 0
|
||||
2026-10-18T18:56:08Z start conversation
|
||||
2026-10-18T18:56:12Z end conversation exit 0
|
||||
2026-10-18T18:56:12Z start discord
|
||||
2026-10-18T18:56:14Z end discord exit 0
|
||||
2026-10-18T18:56:14Z start docs-browser
|
||||
2026-10-18T18:56:15Z end docs-browser exit 0
|
||||
2026-10-18T18:56:15Z start editor-browser
|
||||
2026-10-18T18:56:30Z end editor-browser exit 0
|
||||
2026-10-18T18:56:30Z start editor-provenance
|
||||
2026-10-18T18:56:30Z end editor-provenance exit 0
|
||||
2026-10-18T18:56:30Z start editor
|
||||
2026-10-18T18:56:32Z end editor exit 0
|
||||
2026-10-18T18:56:32Z start history-return-flow
|
||||
2026-10-18T18:57:24Z end history-return-flow exit 0
|
||||
2026-10-18T18:57:24Z start markdown-preview
|
||||
2026-10-18T18:57:31Z end markdown-preview exit 0
|
||||
2026-10-18T18:57:31Z start messages
|
||||
2026-10-18T18:57:34Z end messages exit 0
|
||||
2026-10-18T18:57:34Z start pinned-copy
|
||||
2026-10-18T18:57:38Z end pinned-copy exit 0
|
||||
2026-10-18T18:57:38Z start preview
|
||||
2026-10-18T18:57:39Z end preview exit 0
|
||||
2026-10-18T18:57:39Z start project-file
|
||||
2026-10-18T18:57:39Z end project-file exit 0
|
||||
2026-10-18T18:57:39Z start reads
|
||||
2026-10-18T18:57:41Z end reads exit 0
|
||||
2026-10-18T18:57:41Z start relaunch
|
||||
2026-10-18T18:57:42Z end relaunch exit 0
|
||||
2026-10-18T18:57:42Z start return-flow
|
||||
2026-10-18T18:58:03Z end return-flow exit 0
|
||||
2026-10-18T18:58:03Z start send-browser
|
||||
2026-10-18T18:58:17Z end send-browser exit 0
|
||||
2026-10-18T18:58:17Z start send
|
||||
2026-10-18T18:58:17Z end send exit 0
|
||||
2026-10-18T18:58:17Z start serve
|
||||
2026-10-18T18:58:18Z end serve exit 0
|
||||
2026-10-18T18:58:18Z start service
|
||||
2026-10-18T18:58:20Z end service exit 0
|
||||
2026-10-18T18:58:20Z start settings-form
|
||||
2026-10-18T18:58:21Z end settings-form exit 0
|
||||
2026-10-18T18:58:21Z start settings-write
|
||||
2026-10-18T18:58:21Z end settings-write exit 0
|
||||
2026-10-18T18:58:21Z start shell
|
||||
2026-10-18T18:58:29Z end shell exit 0
|
||||
2026-10-18T18:58:29Z start usage-browser
|
||||
2026-10-18T18:58:30Z end usage-browser exit 0
|
||||
2026-10-18T18:58:30Z start usage
|
||||
2026-10-18T18:58:30Z end usage exit 0
|
||||
2026-10-18T18:58:30Z start views
|
||||
2026-10-18T18:58:35Z end views exit 0
|
||||
singles: tests=206 pass=206 fail=0 skipped=0
|
||||
singles files: 32 of 32
|
||||
2026-10-18T18:58:35Z start suite
|
||||
2026-10-18T18:59:31Z end suite exit 0
|
||||
ℹ tests 206
|
||||
ℹ pass 206
|
||||
ℹ fail 0
|
||||
ℹ skipped 0
|
||||
changed paths: same 195 as r2
|
||||
195
|
||||
baseline manifest checks
|
||||
2026-10-18T18:59:31Z start mutant gate-true
|
||||
2026-10-18T18:59:44Z end mutant gate-true exit 1
|
||||
2026-10-18T18:59:44Z start mutant docshown-revert
|
||||
2026-10-18T19:00:01Z end mutant docshown-revert exit 1
|
||||
2026-10-18T19:00:01Z start mutant serialiser-verbatim
|
||||
2026-10-18T19:00:16Z end mutant serialiser-verbatim exit 1
|
||||
2026-10-18T19:00:16Z start mutant info-verbatim
|
||||
2026-10-18T19:00:30Z end mutant info-verbatim exit 1
|
||||
2026-10-18T19:00:30Z start mutant g5-backtick-kept
|
||||
2026-10-18T19:00:44Z end mutant g5-backtick-kept exit 1
|
||||
2026-10-18T19:00:45Z start mutant link-backslash
|
||||
2026-10-18T19:00:58Z end mutant link-backslash exit 1
|
||||
2026-10-18T19:00:58Z start mutant image-backslash
|
||||
2026-10-18T19:01:13Z end mutant image-backslash exit 1
|
||||
2026-10-18T19:01:13Z post-mutant sha256sum -c exit 0 (195 OK of 195)
|
||||
2026-10-18T19:01:13Z start provenance after mutants
|
||||
2026-10-18T19:01:13Z end provenance after mutants exit 0
|
||||
ℹ tests 6
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ skipped 0
|
||||
2026-10-18T19:01:13Z pre-cut sha256sum -c exit 0 (195 OK)
|
||||
manifest equals the checked baseline
|
||||
2026-10-18T19:01:13Z cut manifest sha256sum -c exit 0 (195 OK of 195)
|
||||
patch applies to a clean export of 850484a7d
|
||||
d709b2dd390b7c01e6ef96aa7eced91287d1a48b7e003d74db3645f57a8c3db1 /mnt/storage/scratch/researcher/r154-r3-out/candidate.patch
|
||||
cebca5145c899a362e938d36b26168070ad8cc01bfdc0c9f44a68eee07a005ca /mnt/storage/scratch/researcher/r154-r3-out/candidate-manifest.sha256
|
||||
2026-10-18T19:01:13Z done
|
||||
2026-10-18T19:01:13Z run exit 0
|
||||
@@ -0,0 +1,228 @@
|
||||
✔ the Board: held roles with no machine sessions, a claim with no address, the toggle kept across a reload, and Message addressed to the role (8700.415179ms)
|
||||
✔ a redirect answer on a Board read, a bus read, a conversation read, a board POST, a module read and a send signs the page out: one line, nothing stale, no further reads (10663.725644ms)
|
||||
✔ browser edge states: loading, empty, malformed, stale, hostile/long values, in-flight reply and appearance fallback (5672.51966ms)
|
||||
Rendered contrast: {"failures":[],"count":330,"lowest":4.504658476260286}
|
||||
✔ served Console browser: real board fixtures, keyboard, drafts, receipts, themes, 320px and failures (7785.83926ms)
|
||||
✔ the README says a refused field table names the file or the key at fault, never a path (4.013403ms)
|
||||
✔ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes (12845.346207ms)
|
||||
✔ bus routes serve the four reads from the reader view, unescaped JSON for the page to escape (163.047297ms)
|
||||
✔ decisions route serves the roles and recent lists from the reader view (96.081444ms)
|
||||
✔ credentials route serves the broker credential status from the reader view (94.853315ms)
|
||||
✔ replies route serves the replies to one message from the reader view (235.531021ms)
|
||||
✔ bus routes are GET-only, have no write verb, and keep the same-origin checks (314.804225ms)
|
||||
✔ bus refusals map to statuses and never carry a path or a stack (324.041617ms)
|
||||
✔ humanCall speaks the human transport protocol without blocking the server (2816.55706ms)
|
||||
✔ busReader takes --business, else the live bus host, else refuses (702.907369ms)
|
||||
✔ humanCall kills a transport that runs past its timeout (540.325579ms)
|
||||
✔ serve refuses a --business value that is not a business id (1311.508072ms)
|
||||
✔ chat browser: list/create named projects and threads, hostile labels inert and no implicit writes (3966.306622ms)
|
||||
✔ chat browser: thread drafts, receipts and cursor history stay isolated; refresh never writes (3597.899843ms)
|
||||
✔ chat browser: uncertain writes retain draft, ownership refusal clears it, read-only cannot send (3619.172307ms)
|
||||
✔ chat browser: a late read from A cannot paint B; sign-out clears private state and stops reads (3299.784243ms)
|
||||
✔ chat browser: page forward and deduplicate replies; pending and byte-limit submissions do not duplicate (2285.81799ms)
|
||||
✔ chat browser: scrolled history stays put, New messages and an own send return to the tail (1520.363376ms)
|
||||
✔ chat browser: automatic polling follows a reply without a POST or a lost draft (11086.482368ms)
|
||||
✔ chat browser: display stays bounded while every forward page remains reachable (637.182302ms)
|
||||
✔ chat browser: a confirmed visible message replaces its pending receipt; malformed receipts stay unknown (630.037086ms)
|
||||
✔ chat browser: a refusal elsewhere forgets private chat drafts (682.324847ms)
|
||||
✔ chat browser: a late project creation receipt cannot navigate away from another thread (945.905276ms)
|
||||
✔ chat reads map only fixed verbs, strict forward paging and pure GET (53.978226ms)
|
||||
✔ chat refuses malformed and repeated query/id values before transport (19.394356ms)
|
||||
✔ chat project.create: one verified write, fixed identity/class and private log (5.217254ms)
|
||||
✔ chat project.create: each existing Console write fence makes zero bus calls (21.105874ms)
|
||||
✔ chat project.create: refusal or lost/malformed receipt never retries or invents success (14.351876ms)
|
||||
✔ chat thread.create: one verified write, fixed identity/class and private log (3.027636ms)
|
||||
✔ chat thread.create: each existing Console write fence makes zero bus calls (16.270512ms)
|
||||
✔ chat thread.create: refusal or lost/malformed receipt never retries or invents success (6.296638ms)
|
||||
✔ chat thread.send: one verified write, fixed identity/class and private log (2.612731ms)
|
||||
✔ chat thread.send: each existing Console write fence makes zero bus calls (28.98602ms)
|
||||
✔ chat thread.send: refusal or lost/malformed receipt never retries or invents success (12.261638ms)
|
||||
✔ chat thread.open: one verified write, fixed identity/class and private log (2.728808ms)
|
||||
✔ chat thread.open: each existing Console write fence makes zero bus calls (13.32899ms)
|
||||
✔ chat thread.open: refusal or lost/malformed receipt never retries or invents success (12.194635ms)
|
||||
✔ chat createThread receipt requires an instance even when its id is valid (4.378287ms)
|
||||
✔ chat write receipts expose only the fields belonging to their operation (8.897316ms)
|
||||
✔ chat validates names, body, project and strict empty open payload (13.210692ms)
|
||||
✔ chat read failures redact ownership and refuse invalid transport arrays (10.377825ms)
|
||||
✔ REQ-USER-2 real broker: owned catalog, create/name/filter, isolated history and 403/404 without mutations (403.319952ms)
|
||||
✔ chat repeats every POST boundary even when called behind an admitted request (3.279564ms)
|
||||
✔ configured Console process injects chat through its existing human transport (1178.126304ms)
|
||||
✔ chat assets, GET purity, method and unknown-route refusals are explicit (112.031853ms)
|
||||
✔ conversation view: full history, collapsed tools, hidden thinking, inert hostile content, malformed and reconcile markers (4988.121424ms)
|
||||
✔ conversation view: a fork keeps the open branch, says so, and opens the new one on request (4399.9943ms)
|
||||
✔ conversation view: a newer session with no readable history keeps the marker (3151.42912ms)
|
||||
✔ conversation view: seats without history say so and offer no reply (3597.260181ms)
|
||||
✔ Discord row through real board/WebUI: independent brake/liveness, no Reply, literal content (3869.703031ms)
|
||||
✔ the editor: the list, hostile markdown that runs nothing, the draft, and each save receipt (7994.917645ms)
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (4731.020863ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (4420.300589ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (2899.9814ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (5634.743374ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1818.071035ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2249.522564ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (911.538489ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (702.293752ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (641.619013ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (618.656845ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (727.771621ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (599.615979ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (635.208361ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (625.222249ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (600.265033ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (586.209751ms)
|
||||
✔ the imported source is the tagged upstream source plus the recorded local changes, and nothing else (29.751664ms)
|
||||
✔ every package names its origin and license, and NOTICE lists each (1.146372ms)
|
||||
✔ the build reads only imported source and the editor's own files; the bundle is the recorded build (11.435419ms)
|
||||
✔ MOSAIC_REQUIRE_EDITOR_BUILD: a missing or wrong esbuild skips without it and fails with it; a wrong binary always fails (8.408645ms)
|
||||
✔ the toolchain check, run as a program, exits non-zero without esbuild when the build is required (348.416834ms)
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
✔ rebuilding from the source gives the same bytes (needs the pinned esbuild; MOSAIC_REQUIRE_EDITOR_BUILD=1 makes its absence a failure) (410.750257ms)
|
||||
✔ the editor routes serve the built files with their types and no cache (89.767062ms)
|
||||
✔ open and save with no edit writes the same bytes: the goals review and a doc with every element (41.523027ms)
|
||||
✔ open and save with no edit writes the same bytes: every repository doc under docs/ and spec/ (5475.081697ms)
|
||||
✔ the editor source builds markup only with DOM calls, and the bundle has no eval (4.400303ms)
|
||||
✔ the link gate and the image rule are the preview's (0.955582ms)
|
||||
✔ return flow through the conversation view: send, tool call, delayed result, peer message, exact long answers, relaunch (55037.299225ms)
|
||||
✔ the preview source names none of the four string-to-markup sinks (3.505851ms)
|
||||
✔ headings, paragraphs, emphasis and inline code render (2.233269ms)
|
||||
✔ lists, block quotes and code blocks render (0.977603ms)
|
||||
✔ a link is made for http, https and relative targets, with rel and the target shown (2.098832ms)
|
||||
✔ a link with any other scheme, or an evasion of the scheme, stays source text (1.942516ms)
|
||||
✔ an image shows alt text and URL, is never an img element and never loads (0.302193ms)
|
||||
✔ raw HTML, entities and unsupported blocks show as source text, never as elements (0.562317ms)
|
||||
✔ markup inside code and inside link text stays text (0.304504ms)
|
||||
✔ hostile and pathological input stays within its look-ahead budget and under the nesting cap (92.706831ms)
|
||||
✔ trailing blanks and closing hashes are cut by a walk from the end, not a regex that retries inside a blank run (80.601333ms)
|
||||
✔ a link opener with no closer searches at most SPAN characters ahead (483.363489ms)
|
||||
✔ the look-ahead work of one render is a fixed multiple of the text, whatever the opener (3446.797644ms)
|
||||
✔ past the budget an opener is source text, through the path all other text takes (51.416832ms)
|
||||
✔ a normal 200 KiB document renders exactly as it did without a budget, and spends little of it (52.946082ms)
|
||||
✔ a line separator inside a heading, a list item or a fence line does not end the marker line (0.815983ms)
|
||||
✔ a thematic-break line is a paragraph, every other marker line opens a list (0.499621ms)
|
||||
✔ every short line over space, tab, - * _ and a letter is a break exactly when the old regex said so (87.496948ms)
|
||||
✔ one line of marks does not throw, at 4 MiB, whatever the mark or the spacing (17687.940469ms)
|
||||
✔ CRLF and tabs are read like LF and spaces; empty input renders nothing (0.263868ms)
|
||||
✔ messages HTTP read pages and preserves metadata; bad arguments refuse before a read; other reads unchanged (479.757664ms)
|
||||
✔ Console Messages lists late unsolicited messages on polling with sender class time read state and trail; nav count includes beyond the page; reads never deliver (5203.486942ms)
|
||||
✔ Messages nav count polls on Tasks and Board and clears on a Board refusal; messages 403 refuses local pages (5565.416027ms)
|
||||
✔ copy writes the Console paths at the full id, read-only, and leaves an existing copy alone (4583.155848ms)
|
||||
✔ copy refuses a commit off refactor, an unknown one, a worktree and a bad copies directory (4301.317975ms)
|
||||
✔ copy writes nothing when an archived path is missing at the commit (1904.71969ms)
|
||||
✔ a copy that loses the rename race leaves no read-only temp directory behind (2828.159822ms)
|
||||
✔ a copy whose rename fails with no target refuses, writes no copy and leaves no temp directory (1442.816033ms)
|
||||
✔ a copy that meets a target holding files says exists: and moves nothing into it (1219.851817ms)
|
||||
✔ a copy that meets an empty target directory replaces it by rename, not by moving into it (674.716677ms)
|
||||
✔ serve runs from a copy: /healthz 200, the config check, roles and RELEASE from the copy, the queue from --checkout (1384.374462ms)
|
||||
✔ serve refuses a --checkout that is not an absolute directory path (333.519165ms)
|
||||
✔ consoleReads runs the queue read under queueRoot and reads RELEASE under root (69.363989ms)
|
||||
✔ preview options are all three or none, and each is checked (13.093761ms)
|
||||
✔ the CLI refuses a partial or invalid preview flag set at start (2714.493569ms)
|
||||
✔ the CLI with all three flags serves the preview mode (400.098131ms)
|
||||
✔ a request for the public name needs the header equal to the user id, else 401 and nothing read (77.832386ms)
|
||||
✔ the header name matches without regard to case, and the value compare is exact (9.007147ms)
|
||||
✔ the public name with the header reads the bus views, and the Host and Origin are checked first (89.420614ms)
|
||||
✔ in preview mode every write answers 403 read-only, from the public name and loopback, and reaches nothing (26.593378ms)
|
||||
✔ loopback requests are unchanged in preview mode, and the bus views work with the board down (12.871832ms)
|
||||
✔ a proxy that rewrites Host to the loopback port gets 403 on its first request, whatever the user (65.874436ms)
|
||||
✔ a repeated Host is 400 before any other check, in preview mode and without it (26.146609ms)
|
||||
✔ without the preview flags the public name is refused and writes still reach the board (16.557522ms)
|
||||
✔ a signed-in same-origin save reaches exactly one human operation and returns the new commit (59.037466ms)
|
||||
✔ a save needs send, the named Host, the user, the exact Origin and same-origin Fetch Metadata (41.869213ms)
|
||||
✔ a save validates JSON, strict keys, text values and the 1 MiB body before the bus is asked (101.43863ms)
|
||||
✔ a body that is JSON but not an object is refused 400, not thrown on (47.416205ms)
|
||||
✔ the 1 MiB limit is this route only; Settings and messages keep 16 KiB (17.254267ms)
|
||||
✔ a bus refusal is reported as not saved with its own status; stale-base tells the user to reload (71.690619ms)
|
||||
✔ a save whose answer is lost or unusable is reported unknown and is never retried (10.13949ms)
|
||||
✔ the file list and one file read take strict queries and arrive in the expected shape (23.631311ms)
|
||||
✔ reads work without --send; an unusable bus answer is a bad response, a refusal keeps its status (15.140992ms)
|
||||
✔ /api/config says edit only where a save can pass (8.723132ms)
|
||||
✔ redactor: config, dataRoot, any absolute path, Discord ids and the JSON parser quote (3.028316ms)
|
||||
✔ credential state from the date alone, as the bus states it (0.325012ms)
|
||||
✔ queue: rows, one row, ids and methods, notes; no path or id from a row (1486.314478ms)
|
||||
✔ queue: a refused read fails closed with the store's text, redacted (829.583523ms)
|
||||
✔ queue: a store that fails to load, or a child that dies, gives a fixed message with no path or stack (3218.239311ms)
|
||||
✔ business: names, vars on the allowlist, authority, credential metadata only (27.145335ms)
|
||||
✔ business: missing or invalid file refuses with the module's text, redacted (25.739705ms)
|
||||
✔ business without --business: the live bus host, else no-bus-host; no system config: not-configured (74.953479ms)
|
||||
✔ settings: release, board, loopback address, notifier binding name only (651.816564ms)
|
||||
✔ task fields: the committed table with no reads configured, GET only; a bad table refuses with no path (173.092626ms)
|
||||
✔ bus-status: a refused boot shows reason, file and last good load; a live host or an ok boot clears it (87.870192ms)
|
||||
✔ both presentations replace old activity with relaunch notice, label retained history, then resume after new activity (3772.571442ms)
|
||||
✔ reported return flow and relative Age: reply sent from the inspector, then the new answer appears there without manual refresh (22871.56126ms)
|
||||
✔ the send box: held roles, the draft and caret across a refresh, each receipt, one POST per Send, and the trail link; the board Reply on a 4xx and a 5xx (8535.098903ms)
|
||||
✔ a sent receipt lists its replies as the page refreshes, oldest first and capped, and marks none delivered or read (11941.665611ms)
|
||||
✔ startServer takes send only as a function and only with the preview mode (25.341308ms)
|
||||
✔ the CLI refuses --send without the preview flags, and without a configured bus (2225.861596ms)
|
||||
✔ the CLI with --send and a configured bus sends through the human transport and logs one line (450.910753ms)
|
||||
✔ without --send the route is read-only like every other write, and config says no send (13.137083ms)
|
||||
✔ with --send every other write is still 403 read-only, and nothing reaches the board or bus (40.6677ms)
|
||||
✔ config says send only on the public name with --send on (5.18515ms)
|
||||
✔ a send without the signed-in user is 401 and is neither sent nor logged, loopback included (24.862663ms)
|
||||
✔ each request check refuses before anything is sent, and logs the refusal without the body (27.459613ms)
|
||||
✔ a send passes exactly to, body and in_reply_to, answers the id, and logs it (8.518156ms)
|
||||
✔ a crafted role name cannot forge a log line (6.757167ms)
|
||||
✔ a bus refusal is not sent, with its status; an outcome the bus could not confirm is unknown and never retried (14.813018ms)
|
||||
✔ through the human transport the request is exactly the business, message.send and the keys (548.979268ms)
|
||||
✔ against a real broker: the message is written once as a human send, and its refusals map (196.235021ms)
|
||||
✔ loopback host and board origin fail closed (15.328537ms)
|
||||
✔ real board fixture passes through WebUI; assets and isolated seen/reply work (465.894086ms)
|
||||
✔ proxy preserves exact request bytes, status and receipt, rejects forms and malformed JSON, never follows redirect (180.750497ms)
|
||||
✔ unreachable board reports URL; CLI rejects unsupported options (1830.035884ms)
|
||||
✔ render prints the unit without the preview flags (45.816187ms)
|
||||
✔ render carries every serve flag, the preview set included (71.9433ms)
|
||||
✔ a partial preview set is refused (265.271776ms)
|
||||
✔ a value the unit cannot carry is refused, for every flag (1983.757662ms)
|
||||
✔ the rendered unit names none of the human proof agent markers and sets no agent variable (165.425051ms)
|
||||
✔ install into --dir with --no-reload writes the file whole, then reports unchanged (529.368385ms)
|
||||
✔ install without --no-reload runs daemon-reload and nothing that starts the unit (283.584971ms)
|
||||
✔ uninstall refuses while the unit is running, with or without --no-reload, and removes it once it is not (1343.356337ms)
|
||||
✔ status prints the unit state and GET /healthz on the installed port (785.460349ms)
|
||||
✔ usage: an unknown verb or flag, and start or enable, exit 4 (210.399792ms)
|
||||
✔ without --send, render is the template with its placeholders filled, byte for byte (94.420084ms)
|
||||
✔ render --send with the preview set ends ExecStart with --send and changes nothing else (79.940699ms)
|
||||
✔ --send without the whole preview set is refused and writes nothing (395.866208ms)
|
||||
✔ install --send into --dir with --no-reload writes the sending unit, and status says whether it sends (887.605452ms)
|
||||
✔ uninstall and status take no --send (81.291025ms)
|
||||
✔ install refuses while the unit is running, in any state but inactive or failed, and changes nothing (837.78864ms)
|
||||
✔ when the state read fails, install and uninstall refuse with one line and change nothing (116.346744ms)
|
||||
✔ install needs --copy naming a copy that exists, and refuses outside the canonical checkout without --allow-worktree (102.324113ms)
|
||||
✔ install refuses unless the bus unit runs from the same copy, naming both paths, and changes nothing (317.683547ms)
|
||||
✔ render --copy runs the copy and reads the queue in the checkout; without --copy the unit is unchanged (21.08319ms)
|
||||
✔ the uid header takes only an Authentik uid; the username header still takes a username (543.816093ms)
|
||||
✔ a preview value cannot start with - or . (49.330236ms)
|
||||
✔ status names the copy and whether refactor has moved past it, and says when the unit runs from no copy (708.953414ms)
|
||||
✔ Settings form shows every scope and held role; gated save, exact payload, retained draft and no automatic retry (4699.119665ms)
|
||||
2026-10-18T18:58:47.927Z settings user="jason" changed
|
||||
✔ REQ-WEB-1 signed-in same-origin Settings write reaches exactly one human operation (81.398563ms)
|
||||
✔ REQ-WEB-1 Settings writes require enabled send, named Host, identity, exact Origin and same-origin Fetch Metadata (71.45649ms)
|
||||
✔ REQ-WEB-1 Settings validates JSON, size, revision and strict writable keys before broker call (58.559978ms)
|
||||
✔ tokens.css and icons.svg are byte copies of docs/design (9.38857ms)
|
||||
✔ JetBrains Mono files match the digests in their sources file, with the OFL text (8.251467ms)
|
||||
✔ shipped strings are unchanged, and the web keeps its write boundary (4.287255ms)
|
||||
✔ shell in a browser: System default, seeded states, 400px, focus and the Ctrl+K palette (9624.613668ms)
|
||||
✔ five states on Board, Inbox, Tasks, Agents and Trail (2696.834305ms)
|
||||
✔ REQ-LIMIT-4 Settings shows all token kinds and unknown turns beside every total, as a read-only separate section (3152.039133ms)
|
||||
✔ REQ-WEB-1 usage read keeps unknown counts and each token kind; no query or write is accepted (124.578401ms)
|
||||
✔ REQ-WEB-1 malformed usage is refused instead of shown as zero (35.174941ms)
|
||||
✔ Queue, Business and Settings in their five states, with no move button (6063.068495ms)
|
||||
✔ seeded secrets, Discord ids and paths reach no response and no page; business refusals in the module's words (1772.792859ms)
|
||||
✔ the server log names no config path when the system config refuses (531.988279ms)
|
||||
ℹ tests 206
|
||||
ℹ suites 0
|
||||
ℹ pass 206
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 55710.900114
|
||||
@@ -0,0 +1,35 @@
|
||||
board-held rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
browser-edge rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
bus-browser rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
bus rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
channel-chat rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
chat-browser rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
chat rc=0 ℹ tests 22 ℹ pass 22 ℹ fail 0 ℹ skipped 0
|
||||
conversation rc=0 ℹ tests 4 ℹ pass 4 ℹ fail 0 ℹ skipped 0
|
||||
discord rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
docs-browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
editor-browser rc=0 ℹ tests 16 ℹ pass 16 ℹ fail 0 ℹ skipped 0
|
||||
editor-provenance rc=0 ℹ tests 6 ℹ pass 6 ℹ fail 0 ℹ skipped 0
|
||||
editor rc=0 ℹ tests 5 ℹ pass 5 ℹ fail 0 ℹ skipped 0
|
||||
history-return-flow rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
limits-browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
limits-route rc=0 ℹ tests 4 ℹ pass 4 ℹ fail 0 ℹ skipped 0
|
||||
markdown-preview rc=0 ℹ tests 19 ℹ pass 19 ℹ fail 0 ℹ skipped 0
|
||||
messages rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
pinned-copy rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
preview rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
project-file rc=0 ℹ tests 10 ℹ pass 10 ℹ fail 0 ℹ skipped 0
|
||||
reads rc=0 ℹ tests 11 ℹ pass 11 ℹ fail 0 ℹ skipped 0
|
||||
relaunch rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
return-flow rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
send-browser rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
send rc=0 ℹ tests 13 ℹ pass 13 ℹ fail 0 ℹ skipped 0
|
||||
serve rc=0 ℹ tests 4 ℹ pass 4 ℹ fail 0 ℹ skipped 0
|
||||
service rc=0 ℹ tests 23 ℹ pass 23 ℹ fail 0 ℹ skipped 0
|
||||
settings-form rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
settings-write rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
shell rc=0 ℹ tests 5 ℹ pass 5 ℹ fail 0 ℹ skipped 0
|
||||
usage-browser rc=0 ℹ tests 1 ℹ pass 1 ℹ fail 0 ℹ skipped 0
|
||||
usage rc=0 ℹ tests 2 ℹ pass 2 ℹ fail 0 ℹ skipped 0
|
||||
views rc=0 ℹ tests 3 ℹ pass 3 ℹ fail 0 ℹ skipped 0
|
||||
@@ -0,0 +1,195 @@
|
||||
f53d30d147ee31235f25e564f5214ad4898b25a9e7227864911d8c56534a7060 docs/TOOLS.md
|
||||
afcdb69ced938d04be2a2de760f3d525fb7875786cf3bd6dc55e6624d88d6699 packages/webui/README.md
|
||||
c60f2e353172bb0e3aa1cfe7be081f49898602af8ca0294fef2dabb8112b942f packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
8596c60ac4b5a8885e02853ef378743eb0bc4c9bbb00ce8a72016e4453b32a79 packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
aeda22cf4a6359913fb478abd2518c8e9c638cf6dcb64297b18b5ede7ee159d3 packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee packages/webui/src/public/editor.js
|
||||
c336f00436d9d9c36e8a15a57d2b91f6a7084748c816c40f144000e7c23f410c packages/webui/src/public/index.html
|
||||
adca29f8a41afbb6176aee56fc4c973bc512076efa81382dd275bae40d2825d2 packages/webui/src/serve.mjs
|
||||
de0e57324b4c6f6651ed95df855893f86a4d6a9930c705b9754164163857df6f packages/webui/tests/browser.test.mjs
|
||||
a2dd88810a160a0681e1dac72c4cc0f98a7ac09b445fc38a55d1503d880110d6 packages/webui/tests/docs-browser.test.mjs
|
||||
40fa1214b605f4b196955da28f26a8f8f0bbac373fc90d27cbc7010d675df01c packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,14 @@
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
editor.js 9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee (133 inputs)
|
||||
editor.css 8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f
|
||||
@@ -0,0 +1,14 @@
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
editor.js 9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee (133 inputs)
|
||||
editor.css 8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f
|
||||
@@ -0,0 +1,195 @@
|
||||
f53d30d147ee31235f25e564f5214ad4898b25a9e7227864911d8c56534a7060 docs/TOOLS.md
|
||||
afcdb69ced938d04be2a2de760f3d525fb7875786cf3bd6dc55e6624d88d6699 packages/webui/README.md
|
||||
c60f2e353172bb0e3aa1cfe7be081f49898602af8ca0294fef2dabb8112b942f packages/webui/editor/BUILD.json
|
||||
fe046f0f935c528c9f0a65d589c4401a43ac49ddfa6cf6543814c280d5b619bd packages/webui/editor/build.mjs
|
||||
3a4931e7fa7d74633a1cbcce31cb202beea40bbcb95ba8dd28a26313bd3d7e24 packages/webui/editor/editor.css
|
||||
f780c327fab8cde6ef922669959ac2802691cd405d3c0911faf97d7fbe2e7d56 packages/webui/editor/entry.mjs
|
||||
8596c60ac4b5a8885e02853ef378743eb0bc4c9bbb00ce8a72016e4453b32a79 packages/webui/editor/model.mjs
|
||||
efc5dd177e1890f5d76c2cf631a9a720c45398a501c52e0d178e5882da77c3c9 packages/webui/editor/toolchain.mjs
|
||||
737a37696aee31d46a9091119fce294ec7562ff50a54585ec381e1d217132829 packages/webui/editor/view.mjs
|
||||
eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f packages/webui/package-lock.json
|
||||
0bb346f598380c2bcdb39db92a006959442d3ce5dc645503ef76405aae53311c packages/webui/package.json
|
||||
aeda22cf4a6359913fb478abd2518c8e9c638cf6dcb64297b18b5ede7ee159d3 packages/webui/src/public/bus.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f packages/webui/src/public/editor.css
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee packages/webui/src/public/editor.js
|
||||
c336f00436d9d9c36e8a15a57d2b91f6a7084748c816c40f144000e7c23f410c packages/webui/src/public/index.html
|
||||
adca29f8a41afbb6176aee56fc4c973bc512076efa81382dd275bae40d2825d2 packages/webui/src/serve.mjs
|
||||
de0e57324b4c6f6651ed95df855893f86a4d6a9930c705b9754164163857df6f packages/webui/tests/browser.test.mjs
|
||||
a2dd88810a160a0681e1dac72c4cc0f98a7ac09b445fc38a55d1503d880110d6 packages/webui/tests/docs-browser.test.mjs
|
||||
40fa1214b605f4b196955da28f26a8f8f0bbac373fc90d27cbc7010d675df01c packages/webui/tests/editor-browser.test.mjs
|
||||
f18fc2d30025a5402b6b044d2d8630fec4690da5fcd3a01b6fd5f1f3d3661461 packages/webui/tests/editor-provenance.test.mjs
|
||||
d12ecf293a6dcf55ce24af87c09ca8641b9b698ff52ce1095376f3cea989ec12 packages/webui/tests/editor.test.mjs
|
||||
d32b86d10998aa6d863c74e1c1054ce1d3a9a21770860eca602538e77394a7e1 packages/webui/tests/helpers/editor-bundle.mjs
|
||||
552dadb0614bcbb720c1fc4af09cd8a7e760bf987709efe3e3f47524e4af124b packages/webui/tests/helpers/every-element.mjs
|
||||
7674edf5aa05f374a74cf6f99628b041a7f91983a71fb615c74fc48dd4745a0e packages/webui/tests/serve.test.mjs
|
||||
2f687a0fd1ea83ce3935b8a06db2aa8a21cb33feb95c22a7b12f8d38e504d6a7 packages/webui/third_party/editor/NOTICE
|
||||
d0e600f0d649b3cb303172608f5daee72d60214bdbcb9d6a2c9dd8afbf578c5d packages/webui/third_party/editor/PROVENANCE.json
|
||||
cb992345949ccd6e8394b2cd6c465f7b897c864f845937dbf64e8997f389e164 packages/webui/third_party/editor/entities/LICENSE
|
||||
c92f657f679669a91bc32cd98f0b4812b3f4a9c6f3b3af3022a70cb25b7efc7c packages/webui/third_party/editor/entities/package.json
|
||||
38a42d441b67aa4f6397a2edbc57a2845110f2f64c18c56c931f1ac55179be94 packages/webui/third_party/editor/entities/src/decode.ts
|
||||
7467c31bd84fed848ee0b1b7b4ec100ffe387fb2802ef0fa66307744a45f331c packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
e40bad527b5c9a1d5b9e0e7d0b8643328cb4d9e1b2d79777a367b81bcec3e09b packages/webui/third_party/editor/entities/src/encode.ts
|
||||
c062e448b06654fa3c99a04e89bc53bc4463bf5e5cf65ac711f372a77e22639f packages/webui/third_party/editor/entities/src/escape.ts
|
||||
99bd4f1a69db8431bf58444e6c38a8b60f2a1820e1ce5781c851c1914a8822c4 packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
701497193dd355232513b7e4a7c6fea4d856eb33d5116c61cda4d59028d4790b packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
409c7a156de66f45037fa684afaa6147f98d8860274ef0218f02a16c993cb103 packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
6487bfc6a09ad4211e1264ccd7d21fbce19bfcfd06eba8b83cb80537f0109687 packages/webui/third_party/editor/entities/src/index.ts
|
||||
95e3f7f0e81e9b4940cdfaa1956aaff5e4dfd2fb1565041e7c78eb9a606f23e3 packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
b7cdca31306ba9d92b963134333e9ec71df74bd9d8a2c649e0e2f6c7468d92b1 packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
ce32a3968ede95c9fe29fe505fec5c19ab0bb7f8eb5d7666ab3180910adc9cf8 packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
492ffef383ead25ddc4a7615129c3c41eafe1a0a10172680a93fbb5039c84204 packages/webui/third_party/editor/linkify-it/package.json
|
||||
792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473 packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
a112fad9f779e8e4d58a76586ec54b5b9fe134d92a670a96749bcb676be2c62b packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
5bbdf4ab71bd31461b29d47da1077c600ba941c3e53d74f8d50ce31ac45546a5 packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
82021df92c9f3f856cd1bb59454c2033c50a0617a748acc150bbdacb8101abcc packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
952160caa972e1d2e291dc284d8531f835b9eb7628c1e806c9cf95351c55afbe packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
c5a73b8f46eaa0f027f06a309a362f885ec4467c99a581d798cbb6a3bac14965 packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
0426a1489ec76c3e10c8b36bf5a286e97cca90a800e4e24a98b314835b790c1c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
70129adaa86dfd0f99e05971c51f865a3956775c045ccdc2ec8f2f2e0c0893aa packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
c10fc0bd89f11eb982a865dcf525cf6f3bec328958bb4de752e3993b44eb9c7c packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
840746264c1655558e80752c663d745e4336e806978f74d4c678c5e21bab5158 packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
ba9fe86713007b6c04e4381fc15500936ce3852eeaefe819350fa1a42eb10bd4 packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
d6789a1f7ef8ad05a64114b873ca18b4b5c8245fee02d2d7559a20bba93858ec packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
67ed63ad6efecc6f03bf1dc40f01a0abec7c0e675053b7503847bd4b287f72e4 packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
0287ae7e457b4a18f049aa81a7ca39bbc543eb2e9b95718476a8fb16dc299eee packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
f8b577995fcde6bd0fcb96524eb32a872d9e82874921956fda81477913a94cc9 packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
d88083cd3b6a87566b63950c99a810fa3228345a41cb1fe441f2d8139bb9e60f packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
47750faf7a1f9dab8d3e984ee4c6a799c195130ff141c9cb1a98e13d7bf70cc2 packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
86b94f2a50df56a51ef6ee8bdfb23a6733e83a1efa2f58b3b166aebae84a7ce2 packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
d88eaf1c88489376a825e9de09031d17b6cf442ae5f420acce3619df94f5c899 packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
5b5aad3b00bf175f55849ae44974944fc26a45d416440f3710d11c6213f49968 packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
4434e2f70150df1490bd11eeea8bd20fe763f029c22fc21305b6376f068cfd21 packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
75e812fc9938775e55d7c4e840a856e557ef0f4a2ab27aec535d25c78c6e8d7c packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
2d786cf899247071a305d4fefcb3d41de707e31982997ebf134672497f20edc9 packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
d8e20eca3742fb8e5d3eae238de1afa962104d772df6dbccad604325940ca86b packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
ae83782c9a5bbcb69f3127a4541c1e27e6a46be86d4955bf840c5cd1a289a482 packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
1f569f81b61a73094ea7c70a30b2d6d3577de26de2d55d5f8b9146027f2f8a5f packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
be9534ba8fa1312ae6ab6e6ecd6e96173a5a3dd35e924b7751782675bb15dc9a packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
8884a101e95de67d72b1fd3dfe3341bf52876132398d72a528481f662e0eecb6 packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
3f26d52f4fa67c5fa5f85346acf18f4139419b5dc8496056dd6050bd3a266860 packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
454553ff462fc68e353dad0f7b04ba1da46ee18acf88047dde8faf1873d64bca packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
52ef23be5d9248275a5c0ff8b43602540bd3ed8a69bc63fbdc262b09c5de69b5 packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
0da70e72022dda01deaf6630a772a9c4798b6b6dc1d37144520b872d302b12a3 packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
e68ac3597363b13a7451e65d9a7943ce99f4b57e9509eb62eebb1a3162423499 packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
7f7fab952ebe0a0c16016835e1af0bf682af6e2eb5a28454eb350c28332cfa93 packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
9b3211580c89951bad60aa4550f76ebf2d2b81cc4523849ed34e6b85ed25ba3a packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
2d92309d2a0517b7ac74ba6780333996ff3bf0763e28464916f04befdddb4dee packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
eb68c945733124231b5dc98d480854393b99fc069fd95703f4c36d310572e4f0 packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
d61f0f19e2e49b565564a1537c46828c18da453516226d1637816021d4d68fce packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
78599ff3df236375e29dc63f04ad93ae1bb4744d7c47021b93104462cbfc61c5 packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
8baed32815f895f72b0a01255c3180ba2e72fcffb51fbea7677ccf128dafbc40 packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
06769d0aa4e5af875e504dea82db9bc726b463911e7b1c17f732098be95ad403 packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
23e1dbd2fdb408e257f2bbccccae1b1ee8a068db1c43a38b4edd9db76c2f40a1 packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
37c2420b56e055ff150c13485a2322914974b0364a8d3823c3ef81318196c101 packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
f498e10cc6318f2a2856e51217e6c0f0a837b18dd920162d2cd6e49789b15adf packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
143e477737ce7565af95a6c5dbb854667a07d45e7f3e1b849fb68ba39937014c packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
f7bee2bd14c158e0178ef409ea84a5d330672094265fbd112673d23a75ff1924 packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
67e1ad7ba6ce1a2ee0dfaee83653fec3f3e602f8d8841c4b8426c770b03870b4 packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
a805f4cc75ad14b8b7838d408b703a9e26401badfd00a39a80a21e10a3af5cd0 packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
3a55e9a5fa81bd7b924d4f7469452a7fa6ba999f5204ff076a64f5dc8477348e packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
4c51181f46d59ce1d40dfdec014d1eb69937de850eacfdd4fcb759f9f141e990 packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
f4b30bd182fea54a661528d6a031c2cdcb06c688a00fb5598c39cf8ae9554372 packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
cf130f8d2405731b5a2ed687ad7b4571baf9dbc3f98a472629c6553c1c6cb089 packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
63aca7fc12c4e44bbe8edb6b8cf38c8bf01e3aa1ef5dd0feef82aae930b1d0e8 packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
c6ebce7f456a6fef97e3cf2cd411418a80eb15ef469d7a7ea12405191cd5705f packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
4e47c64787bcfe32c7a8bebc922e03cc5d007f389fc0f8c61199ab76bf7287e5 packages/webui/third_party/editor/markdown-it/package.json
|
||||
6b6a356c4337e2446841f30f3cdf7e7023af8c5260b5e347c0f987b9f6aa2644 packages/webui/third_party/editor/mdurl/LICENSE
|
||||
8ea430f1f8a107f529e2dac519d2f18e71ec9befe6f23f78bf6510cf86d3f9a0 packages/webui/third_party/editor/mdurl/index.mjs
|
||||
d91544cfb42b9639073f5fa0f576bf72ef6697e848005357c433cad036c2ef20 packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
0ae621933b548f880404841b251b0f4fc2c8446ded699e6812def217250ac15d packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
2410ec324b913a42c572e01ae49436e5fa4e2e5fbea15c08c92a6dea8bc5887d packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
2a417b42e9ea8ee94fc77c596a34eb206d6c69823484e89d80bf1e7583d8f91d packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
807e00f99605ba97f4953f8ceb6a65db877d23a9f5496ae367eb953c0e4e627d packages/webui/third_party/editor/mdurl/package.json
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
eb0160f63616895337d3b99b8e445d07327ef283f6b525dbcdce7f11efc7a641 packages/webui/third_party/editor/orderedmap/index.js
|
||||
282ea598284094608736ed5a75f4e0b48da53b851b62bba22362feac507d5c6c packages/webui/third_party/editor/orderedmap/package.json
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
4cef535a05c932ce887caa9fd6a6af08c1b4eb0ec0b30f7f7d81cb7ef3d32e79 packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
41ea89670248c1b68a7120c1304d1491b37e7ed7c02ee36002fed08f3a411dfc packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
e6119f791faa9f4b162b7fe5fd6a5a5a42ffbd7070a682db922787e4cbd6df22 packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
146298d448b0290b6e978ff579a9e159414789d6d37ee9e2bfe7c41e1d45f50c packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
d6609dcfd99fe0dbcf0dcb9121693337b2ded4b4d20ee5255b797277ca59f8c9 packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
fcf2d6220de0ad68e71a28591d1aafdb776707a551e0e30de5f1b1a772eabbe9 packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
3a551544aa4c81843d0120936f1bee96fa553b1d90ed2ac429688024bf1a21d2 packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
17eab940d68292553eda7fb3ec665f2fb5c1e2c18402115e8bc9931aa97b1bed packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
444a4f1ea383a140708f2a22730568fed590ae4a749581dc2a20937471bb75dd packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
15652f722a20aa5a7db8a8ae5a1326e56435f6651c67cf8a594c2c826eada761 packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
9d27d674fd56226ce0deb5ba367873872375296d6088783191c039206ea92b60 packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
f0cbcc04e45defa3e2533ce02e39f06212814b9c17cdccf4e98fd1142e1be494 packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
8f021766089ae38beb47892a8526eb78453cbfc48ee5537ea15bef230cd8283d packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
f0dcc085537da271aa3bc4969576bbd5f03d9982f35807386fdf9b12af7d0aa5 packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
f2559c4d6b14e3a322078f0fdf653f3c8a98ccbd28ec5c9c19eff7be63a6eece packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
fa394f5f51ae8834c78cff106faa9892a0f12a2c265a4bde095861f2a7d207eb packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
b9357f3e9f19800fa43e91e70cf62e63e7f181c1acd607c7cf2aac8de212877e packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
2ea58a7903bd66ce21a7d313f1af3f0674f240e7a207622d6fc1d64b16a7e174 packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
a07fd75d13dd2765526589fd31fdd0307037e6e27dfece91301ca371d3b5fe0c packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
d1f2c1bc168e0fb891a519ab0daa7e136bd43b7f8a25d50d1cdbed45fe3d6cd5 packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
bb9d6b507b084093de4efbe3066dd47b14afe32a41e4390af4aacbe8d98058af packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
b4f5e77c9dd4f430002b83fae8e1d114d9653e16ef4b28fba5ea01eb52980abb packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
d6bd6dfd331f27a8b7ca6554ed4833c4983a6cb1cd6332d1c576c0529df386ea packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
7ba7a7ba2f1861ae15cd894afa80e5211b59e2117bf4568af0b5cc9cd8e18057 packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
39defcbeff65f8de187e61d956a1b5b1080962eda32bb875ac1d1e025c31f0d2 packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
4f2fbf315fba1e70b7802f7c7f5e3478848c5f57f025c2b2169b680153f18b2c packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
dcef2f457569f8c9daf9c33012470a3446d7b42b1c7aecc9b79d025679fcf596 packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
ca0b19ac52487b2d8e75a3ee8321e02ecc5b24397218ca9606bd7b6648c22f7a packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
b7b3ee52fd9218c3fcaf45a873aa769a3ec28e539715ec1162a545fbd4c8981f packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
98d90d8f6748a87c4948f518b14a453f00e9f4e1dd507744786a3e0614953964 packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
fc816321f12d8b9ebbaecfaacd9c48807e3ef0af4f95cc536e30b8cd5df44d54 packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
b40080e3d2ebfaab5a6ee44b3b2cb20761d79cbe514411df8641a8434d2b65ef packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
eb9e85c66caac02f0140ca3686efd10cd117d64eda4d9054bc8c3e4622055d6a packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
a0bac3d5db226ed673774b0b6b58d43e36d13f34b9ecee874d081dc3145e2202 packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
cea98fb72c5ced3604556909df9acddf924b3e62f80cab4bdbe430a78afc529a packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
081d675bbeaa6598c17f45be84a84011c5e083b66f9c6282be0304a5f38f7f44 packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
fbab5b3d17fc510152167b387e15dcf360c086ed78dcb2751cecae7938d01a83 packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
2e7118bcda51981c6a6703a6acb43d50aad87cb43fee2a35a9b0f0538ed50bcb packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
02a7084a3a5cf784504f3e954c248e655ffa16c41bbbb40f35c1139333833f6d packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
340e51489f5ea1e160dc80c9fe0bad0933d276abf33964a05060005c1f314bed packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
ddb1fc54b8e49581b6f1f71b84689ccad8b2cb10c44ecc9c01d9b32045624e78 packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
f16e4d61bbd8ea94646c16b7b3a781f73a29308a32ac4d9cacc7974c2db5a0cb packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
0beed9199e494bd664e685e05f18a94fd7299f72181702fd9aa5804a6a371ee4 packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
07110ea74d962e5be381628bacb5e340124c77004d08c343a1c500ba1436bfe1 packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
478a68a658aa697ad75be626eaf99616d09e082ed04fb6fb3dd3cb0e76dc28a9 packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
1080eb080282f47c9ac6edf91b1ea788069a2644da4d7257b139ca610ab9e1ac packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
0fbbe54771f17d3c309b19846d3bf4ce160642eb7ec43c8bc6edef55a87beae3 packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
ce12d2c55f42342f077a1b08a5ccca1c2847433bacdf2548e00c7e53704342f3 packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
ef0b452ced6304db2ce78ca66de1fc7b97bab05bc1750c95df359ed3fe1d65c8 packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
79841007db65e2d7abf34585ae8accff299081c2f2731b81c138afef050dd29a packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
753c05e4ed16081e169e57fee6febaddafb7de6edd568fb93b2690c3fd63b3af packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
e08d4a3bb328babc0681a3c20bd151b1fb2225d6201949ef4605b933ffe04705 packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
4401b14080289627189743717edfb4131b42087c4d705faab90e0c7bee7b82d9 packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
a18ba09db59bd096ffe84b73554542f93f3c4aa5b92322de38a7ed78da493e3a packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
045cb9f2ee04030a9488b1c8de850a1dbb35e28050a73b92842f3503d37ec6af packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
6ff0d1123fce86c9d8ebf1370dc3c6ce143bce30427680556b1b07df76c2a08a packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
d7848f023b7b301267fbc2f73fce36f89ae3a6704f5ca428675ad36f56edb418 packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
ce088c9e363f5f1834a7ed9d32e0b19721651ff04398bafc5db6fd86a7ad60cb packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
14a8ed0e44a7fc73a6886e1dc6ab7c70311f4590b9501578a2fac4e7e37e8200 packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
58b78c5da37cb9cc255e494c72566c1013eae4972a4b093cca866a6b7de255e4 packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
6a305d8080a038b0fdb0d7e02b54f802179a9dac47ab3c5386077b5f09d78437 packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
3291f9a85c2cd8efcb1f031eed62cfa5a103d760b3a924bcf8d2ee148b8a121f packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
1234171efd99cd16d1a6754c0f6586d0d8b69573432aff2e671cb6a26c9eaa57 packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
e025033bd11110af671fb8eb62f0db8895073ccdca70b596aa94a27eb5bf9acb packages/webui/third_party/editor/punycode.js/package.json
|
||||
6052a80eac47e46bd4de17ae0095e0192c336d3d7c387d292ad2176ebfc53d04 packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
530424aebdd0e73f53238d1f89df250057bc8d8ce090cf5954197fadce5bf226 packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
efb85fca2ecef4b1dfd63103cfb8c755ff209ffe6e72ae0928e833c3ac666624 packages/webui/third_party/editor/rope-sequence/index.js
|
||||
0e378a9dcc447c04e712238d60a1f2ffb878bfc161cbb95ef0a3c34d2a541548 packages/webui/third_party/editor/rope-sequence/package.json
|
||||
483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
d73b91600fd887bccf8f3a7ccb8a98d497222b2923064ca135cd3d86eecba9b8 packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
0ba760155f77b39359cf0ab088589444a68987facd696ae8fe7fc8b7ced5c5c5 packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
378c0a61fee0d8c911d0c6bff819a601571a95ac4296ac5068c56ea76291697f packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
53579876c2563673dbd3f14ad7ccbb0e232aa25f9398679f5d792b75fcbfa40e packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
32c50e92e9f4bab827145c99299616178f65192aedda27d0b9bf938a34c48325 packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
4c6142bf1f94e06fc9942639b651b22e7982a8ccc1427f694ffc6fdf49ef5087 packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
8b60af5ea73b0bac4d26111a3f5b00844657b998f9a3fd473710d9e33d274250 packages/webui/third_party/editor/uc.micro/package.json
|
||||
41d50d9f5babe77f07305aec91f0e4bf29fd95980feb2a6592a3bbd077b313bc packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
869c30f368eb08735e779027b9f4bc9fea2f39624351856aebe42741f0bc0884 packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
b649dec4f01c7c5eb05be4641b5b698c6938231ee50b38e17a2f0f822ca3df2e packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
0396c646f74d52c1b0851074ecdb5cabf540af595ceb5e5a5136df2bf3c2f83b packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md
|
||||
packages/webui/README.md
|
||||
packages/webui/editor/BUILD.json
|
||||
packages/webui/editor/build.mjs
|
||||
packages/webui/editor/editor.css
|
||||
packages/webui/editor/entry.mjs
|
||||
packages/webui/editor/model.mjs
|
||||
packages/webui/editor/toolchain.mjs
|
||||
packages/webui/editor/view.mjs
|
||||
packages/webui/package-lock.json
|
||||
packages/webui/package.json
|
||||
packages/webui/src/public/bus.js
|
||||
packages/webui/src/public/editor.css
|
||||
packages/webui/src/public/editor.js
|
||||
packages/webui/src/public/index.html
|
||||
packages/webui/src/serve.mjs
|
||||
packages/webui/tests/browser.test.mjs
|
||||
packages/webui/tests/docs-browser.test.mjs
|
||||
packages/webui/tests/editor-browser.test.mjs
|
||||
packages/webui/tests/editor-provenance.test.mjs
|
||||
packages/webui/tests/editor.test.mjs
|
||||
packages/webui/tests/helpers/editor-bundle.mjs
|
||||
packages/webui/tests/helpers/every-element.mjs
|
||||
packages/webui/tests/serve.test.mjs
|
||||
packages/webui/third_party/editor/NOTICE
|
||||
packages/webui/third_party/editor/PROVENANCE.json
|
||||
packages/webui/third_party/editor/entities/LICENSE
|
||||
packages/webui/third_party/editor/entities/package.json
|
||||
packages/webui/third_party/editor/entities/src/decode.ts
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts
|
||||
packages/webui/third_party/editor/entities/src/encode.ts
|
||||
packages/webui/third_party/editor/entities/src/escape.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts
|
||||
packages/webui/third_party/editor/entities/src/index.ts
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs
|
||||
packages/webui/third_party/editor/linkify-it/package.json
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs
|
||||
packages/webui/third_party/editor/markdown-it/package.json
|
||||
packages/webui/third_party/editor/mdurl/LICENSE
|
||||
packages/webui/third_party/editor/mdurl/index.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs
|
||||
packages/webui/third_party/editor/mdurl/package.json
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE
|
||||
packages/webui/third_party/editor/orderedmap/index.js
|
||||
packages/webui/third_party/editor/orderedmap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt
|
||||
packages/webui/third_party/editor/punycode.js/package.json
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE
|
||||
packages/webui/third_party/editor/rope-sequence/index.js
|
||||
packages/webui/third_party/editor/rope-sequence/package.json
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs
|
||||
packages/webui/third_party/editor/uc.micro/package.json
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,37 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (829.323081ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (683.865508ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (619.144404ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2548.115307ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (974.65857ms)
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (5914.053947ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (572.471403ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (658.334037ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (526.273423ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (552.601957ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (542.803716ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (612.370069ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (598.014183ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (584.941374ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (581.043258ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (578.778575ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 17488.346244
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:382:1
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (5914.053947ms)
|
||||
Error: Uncaught (in promise) Error: Condition timed out: document.querySelector("#doc-visual .ProseMirror"): undefined
|
||||
at Object.evaluate (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/browser.mjs:48:35)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:402:5
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:383:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7)
|
||||
@@ -0,0 +1,43 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (831.620833ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (779.268402ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (644.787183ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2589.523526ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (975.918588ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1933.818626ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (564.930641ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (591.645594ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (693.421969ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (686.503378ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (601.364599ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (590.953845ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (639.767357ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (685.646252ms)
|
||||
✖ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (720.590249ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (619.959459ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14247.683039
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (720.590249ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "```\ncode\n```" in "# x\n\n```a`b\ncode\n```\n\nyTitle\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (770.589395ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (733.08693ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (689.086121ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2637.738723ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (987.831836ms)
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (907.342556ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (674.440249ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (575.422809ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (551.576174ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (635.406085ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (542.370491ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (569.01233ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (546.288997ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (541.073921ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (598.447851ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (556.789719ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 12619.190881
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:382:1
|
||||
✖ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (907.342556ms)
|
||||
AssertionError [ERR_ASSERTION]: a failed round trip shows the source, the note and a Save that is off
|
||||
+ actual - expected
|
||||
|
||||
{
|
||||
+ note: false,
|
||||
+ pm: true,
|
||||
- note: true,
|
||||
- pm: false,
|
||||
pressed: [
|
||||
+ 'true',
|
||||
'false',
|
||||
- 'true'
|
||||
],
|
||||
saveOff: true,
|
||||
+ text: null
|
||||
- text: '# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n'
|
||||
}
|
||||
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:397:12
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:383:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: { pm: true, text: null, note: false, pressed: [ 'true', 'false' ], saveOff: true },
|
||||
expected: { pm: false, text: '# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n', note: true, pressed: [ 'false', 'true' ], saveOff: true },
|
||||
operator: 'deepStrictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (877.897174ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (770.675477ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (694.612391ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2656.973308ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1070.720663ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2017.550811ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (557.308871ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (575.745897ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (575.753215ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (606.034423ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (586.713981ms)
|
||||
✖ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (642.720921ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (559.864873ms)
|
||||
✖ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (593.394552ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (583.533073ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (571.70688ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14060.513991
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (642.720921ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as " <img src=x onerror=alert(1)> \")" in "#  <img src=x onerror=alert(1)> \")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (593.394552ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "" in "# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (855.044001ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (731.690122ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (658.604331ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2659.107845ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (989.410968ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2058.362251ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (700.082065ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (769.768249ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (716.971214ms)
|
||||
✖ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (714.499248ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (738.3899ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (729.359471ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (716.271551ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (634.121667ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (571.549856ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (556.308558ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 15
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14906.274937
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (714.499248ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "```T\ncode\n```" in "# x\n\n```T\n\n<img src=x onerror=alert(1)>\n\n\ncode\n```\n\nyTitle\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (859.349382ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (739.344195ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (710.080419ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2640.929663ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1009.744105ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1986.65535ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (567.043351ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (536.947533ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (621.815268ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (689.493144ms)
|
||||
✖ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (619.263481ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (599.606675ms)
|
||||
✖ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (630.605394ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (647.286659ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (735.087139ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (675.845663ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 14
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14371.859079
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (619.263481ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"x\\\\\\\") <img src=x onerror=alert(1)> \")" in "# [word](https://ok.example/p \"x\\\\\") <img src=x onerror=alert(1)> \")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (630.605394ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"end\\\\\")" in "# [word](https://ok.example/p \"end\\\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (826.554122ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (736.745035ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (665.292508ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2669.999173ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (990.519808ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1957.565268ms)
|
||||
✖ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (599.315743ms)
|
||||
✖ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (557.122724ms)
|
||||
✖ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (582.388616ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (572.680377ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (569.042738ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (520.616298ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (600.941746ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (559.697937ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (628.566264ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (601.324389ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 3
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 13748.258341
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (599.315743ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "[word](https://ok.example/p \"T <img src=x onerror=alert(1)> \")" in "# [word](https://ok.example/p \"T\n\n<img src=x onerror=alert(1)>\n\n\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (557.122724ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "" in "# Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at tests/editor-browser.test.mjs:434:3
|
||||
✖ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (582.388616ms)
|
||||
AssertionError [ERR_ASSERTION]: the value is written as "> \")" in "# >\n\n\")Title\n\nFirst para.\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\nLast para.\n"
|
||||
at file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:451:14
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async session (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:90:106)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/researcher/r154-wt4/packages/webui/tests/editor-browser.test.mjs:435:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: false,
|
||||
expected: true,
|
||||
operator: '==',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,195 @@
|
||||
docs/TOOLS.md: OK
|
||||
packages/webui/README.md: OK
|
||||
packages/webui/editor/BUILD.json: OK
|
||||
packages/webui/editor/build.mjs: OK
|
||||
packages/webui/editor/editor.css: OK
|
||||
packages/webui/editor/entry.mjs: OK
|
||||
packages/webui/editor/model.mjs: OK
|
||||
packages/webui/editor/toolchain.mjs: OK
|
||||
packages/webui/editor/view.mjs: OK
|
||||
packages/webui/package-lock.json: OK
|
||||
packages/webui/package.json: OK
|
||||
packages/webui/src/public/bus.js: OK
|
||||
packages/webui/src/public/editor.css: OK
|
||||
packages/webui/src/public/editor.js: OK
|
||||
packages/webui/src/public/index.html: OK
|
||||
packages/webui/src/serve.mjs: OK
|
||||
packages/webui/tests/browser.test.mjs: OK
|
||||
packages/webui/tests/docs-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-browser.test.mjs: OK
|
||||
packages/webui/tests/editor-provenance.test.mjs: OK
|
||||
packages/webui/tests/editor.test.mjs: OK
|
||||
packages/webui/tests/helpers/editor-bundle.mjs: OK
|
||||
packages/webui/tests/helpers/every-element.mjs: OK
|
||||
packages/webui/tests/serve.test.mjs: OK
|
||||
packages/webui/third_party/editor/NOTICE: OK
|
||||
packages/webui/third_party/editor/PROVENANCE.json: OK
|
||||
packages/webui/third_party/editor/entities/LICENSE: OK
|
||||
packages/webui/third_party/editor/entities/package.json: OK
|
||||
packages/webui/third_party/editor/entities/src/decode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/decode_codepoint.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/encode.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/escape.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/decode-data-xml.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/generated/encode-html.ts: OK
|
||||
packages/webui/third_party/editor/entities/src/index.ts: OK
|
||||
packages/webui/third_party/editor/linkify-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/linkify-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/lib/re.mjs: OK
|
||||
packages/webui/third_party/editor/linkify-it/package.json: OK
|
||||
packages/webui/third_party/editor/markdown-it/LICENSE: OK
|
||||
packages/webui/third_party/editor/markdown-it/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_blocks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/html_re.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/common/utils.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_destination.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_label.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/helpers/parse_link_title.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/index.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/parser_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/commonmark.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/default.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/presets/zero.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/renderer.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/ruler.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/blockquote.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/code.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/fence.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/heading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/hr.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/html_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/lheading.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/list.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/paragraph.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/reference.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/state_block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_block/table.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/block.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/normalize.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/replacements.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/smartquotes.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/state_core.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_core/text_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/autolink.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/backticks.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/balance_pairs.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/emphasis.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/entity.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/escape.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/fragments_join.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/html_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/image.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/link.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/linkify.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/newline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/state_inline.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/strikethrough.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/rules_inline/text.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/lib/token.mjs: OK
|
||||
packages/webui/third_party/editor/markdown-it/package.json: OK
|
||||
packages/webui/third_party/editor/mdurl/LICENSE: OK
|
||||
packages/webui/third_party/editor/mdurl/index.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/decode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/encode.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/format.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/lib/parse.mjs: OK
|
||||
packages/webui/third_party/editor/mdurl/package.json: OK
|
||||
packages/webui/third_party/editor/orderedmap/LICENSE: OK
|
||||
packages/webui/third_party/editor/orderedmap/index.js: OK
|
||||
packages/webui/third_party/editor/orderedmap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-commands/src/commands.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-history/src/history.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/inputrules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rulebuilders.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-inputrules/src/rules.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-keymap/src/keymap.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/from_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-markdown/src/to_markdown.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/comparedeep.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/content.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/diff.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/fragment.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/from_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/node.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/resolvedpos.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/schema.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-model/src/to_dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-schema-list/src/schema-list.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/plugin.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/state.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-state/src/transaction.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/attr_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/map.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/mark_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/replace_step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/step.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/structure.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-transform/src/transform.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/LICENSE: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/package.json: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/browser.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/capturekeys.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/clipboard.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/decoration.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/dom.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domchange.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domcoords.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/domobserver.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/index.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/input.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/selection.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/src/viewdesc.ts: OK
|
||||
packages/webui/third_party/editor/prosemirror-view/style/prosemirror.css: OK
|
||||
packages/webui/third_party/editor/punycode.js/LICENSE-MIT.txt: OK
|
||||
packages/webui/third_party/editor/punycode.js/package.json: OK
|
||||
packages/webui/third_party/editor/punycode.js/punycode.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/LICENSE: OK
|
||||
packages/webui/third_party/editor/rope-sequence/index.js: OK
|
||||
packages/webui/third_party/editor/rope-sequence/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/LICENSE.txt: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cc/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Cf/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/P/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/S/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/categories/Z/regex.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/index.mjs: OK
|
||||
packages/webui/third_party/editor/uc.micro/package.json: OK
|
||||
packages/webui/third_party/editor/uc.micro/properties/Any/regex.mjs: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/LICENSE: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/index.js: OK
|
||||
packages/webui/third_party/editor/w3c-keyname/package.json: OK
|
||||
@@ -0,0 +1,26 @@
|
||||
✔ the imported source is the tagged upstream source plus the recorded local changes, and nothing else (13.136811ms)
|
||||
✔ every package names its origin and license, and NOTICE lists each (0.578588ms)
|
||||
✔ the build reads only imported source and the editor's own files; the bundle is the recorded build (5.620326ms)
|
||||
✔ MOSAIC_REQUIRE_EDITOR_BUILD: a missing or wrong esbuild skips without it and fails with it; a wrong binary always fails (4.238549ms)
|
||||
✔ the toolchain check, run as a program, exits non-zero without esbuild when the build is required (114.773579ms)
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
✔ rebuilding from the source gives the same bytes (needs the pinned esbuild; MOSAIC_REQUIRE_EDITOR_BUILD=1 makes its absence a failure) (57.923869ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 246.120456
|
||||
@@ -0,0 +1,178 @@
|
||||
diff --git a/packages/webui/src/public/bus.js b/packages/webui/src/public/bus.js
|
||||
index 64a7d6674..5b95fcc61 100644
|
||||
--- a/packages/webui/src/public/bus.js
|
||||
+++ b/packages/webui/src/public/bus.js
|
||||
@@ -679,6 +679,19 @@
|
||||
// by the page. A textarea reads CRLF as LF, so the draft and the save are LF.
|
||||
let canEdit = false, docKey = null;
|
||||
const docStates = new Map();
|
||||
+ // Row 154 (#1648, Q168): the visual editor (editor.js, window.MosaicEditor) edits the same draft text.
|
||||
+ // Its view is destroyed whenever the page is redrawn, since it holds a document-level listener.
|
||||
+ // docMode is the view asked for; docShown is the view on screen. They differ when a file opens as Source because
|
||||
+ // the visual editor cannot write it back byte for byte, and a click on a button compares with what is on screen.
|
||||
+ let docMode = 'visual', docShown = 'visual', editor = null;
|
||||
+ function unmountEditor() { if (editor) { try { editor.api.destroy(); } catch { /* the page is being replaced */ } editor = null; } }
|
||||
+ function mountEditor(s, host) {
|
||||
+ unmountEditor();
|
||||
+ try {
|
||||
+ const api = window.MosaicEditor.mount(host, { text: s.text, editable: canEdit && !out(), onChange() { s.text = api.text(); s.status = ''; paintDoc(); } });
|
||||
+ editor = { host, api };
|
||||
+ } catch { host.textContent = 'The visual editor did not start. Use Source to edit this file. The draft is unchanged.'; }
|
||||
+ }
|
||||
const dirty = s => s.text !== s.original || s.saving;
|
||||
const lf = v => String(v).replace(/\r\n?/g, '\n');
|
||||
const DOC_PATH = /^(spec\/north-star\.md|docs\/[A-Za-z0-9][A-Za-z0-9._-]{0,127}\.md)$/;
|
||||
@@ -695,13 +708,14 @@
|
||||
return `${head('Docs', `${readLine()} The spec and the files under docs/ of each project. ${canEdit ? 'Open one to edit it; a save makes one commit in the project with you as the author.' : 'Saving needs a Console started with <code>--send</code> behind the sign-in proxy; this one only reads.'}`)}
|
||||
${blocks.join('') || empty('This business declares no projects.', 'A project shows here when the business file names it.')}`;
|
||||
}
|
||||
- async function docView(get, project, file) {
|
||||
+ async function docView(get, project, file, { reuseDraft = false } = {}) {
|
||||
if (!SAFE.test(project)) return notFound(`${txt(project)} is not a project name.`);
|
||||
if (!DOC_PATH.test(file)) return notFound(`${txt(file)} is not a spec or docs file.`);
|
||||
docKey = JSON.stringify([project, file]);
|
||||
for (const [k, v] of docStates) if (k !== docKey && !dirty(v)) docStates.delete(k);
|
||||
let s = docStates.get(docKey);
|
||||
- if (!s || !dirty(s)) {
|
||||
+ // A switch between Visual and Source passes reuseDraft: the draft, clean or not, is already the file as opened.
|
||||
+ if (!s || (!dirty(s) && !reuseDraft)) {
|
||||
const r = await get.api(`project-file?project=${enc(project)}&path=${enc(file)}`), now = docStates.get(docKey);
|
||||
// Typing during the read wins over what was read.
|
||||
s = now && dirty(now) ? now : { project, path: file, commit: r.commit, raw: r.content, original: lf(r.content), text: lf(r.content), status: '', saving: false, at: r.at };
|
||||
@@ -711,22 +725,38 @@
|
||||
const unsafe = s.raw.includes('\0'); // a textarea can't hold it, so a save would not write what was read
|
||||
const stateNote = unsafe ? 'This file holds a NUL character, which the editor cannot keep. Edit it where it lives.'
|
||||
: `${s.raw.includes('\r') ? 'This file uses CRLF line endings; a save writes LF. ' : ''}${canEdit ? '' : 'Saving needs a Console started with <code>--send</code> behind the sign-in proxy; this one only reads.'}`;
|
||||
- return `${head(`Edit ${txt(s.path)}`, `Project ${txt(s.project)}, opened at commit <code id="doc-commit">${esc(s.commit.slice(0, 12))}</code>. ${readLine()}`)}
|
||||
- <p class="small"><a href="#/docs">All documents</a></p>
|
||||
+ // Row 154 (#1648, Q168): the visual editor is the default view and Source is row 148's textarea. The visual
|
||||
+ // editor opens a file only when it writes the text back byte for byte; otherwise this opens Source.
|
||||
+ let visualOk = false;
|
||||
+ if (docMode === 'visual' && !unsafe && window.MosaicEditor && window.MosaicMarkdown) { try { visualOk = window.MosaicEditor.roundTrip(s.text) === s.text; } catch { /* Source */ } }
|
||||
+ docShown = visualOk ? 'visual' : 'source';
|
||||
+ const modeNote = docMode === 'visual' && !visualOk && !unsafe ?'The visual editor is not available for this file, so it is open as source. ' : '';
|
||||
+ const modes = `<div class="doc-mode" role="group" aria-label="Editor view"><button type="button" class="btn" id="doc-mode-visual" data-field="doc-mode-visual" aria-pressed="${visualOk}">Visual</button> <button type="button" class="btn" id="doc-mode-source" data-field="doc-mode-source" aria-pressed="${!visualOk}">Source</button></div>`;
|
||||
+ const actions = `<button type="submit" id="doc-save" disabled>Save to the project</button> <button type="button" class="btn" id="doc-reload">Reload from the project and discard the draft</button>
|
||||
+ <p role="status" id="doc-status">${txt(s.status)}</p>`;
|
||||
+ const top = `${head(`Edit ${txt(s.path)}`, `Project ${txt(s.project)}, opened at commit <code id="doc-commit">${esc(s.commit.slice(0, 12))}</code>. ${readLine()}`)}
|
||||
+ <p class="small"><a href="#/docs">All documents</a></p>${modes}`;
|
||||
+ if (visualOk) return `${top}
|
||||
+ <div class="doc-edit one"><section class="panel" aria-labelledby="doc-src-title"><h2 id="doc-src-title">Document</h2>
|
||||
+ <p class="small muted">A save writes Markdown. A block you do not touch is saved exactly as it was; a block you edit is rewritten in a standard form. Source the editor does not draw (tables, HTML, front matter) shows as a tinted block you edit as text. A link shows its target when you select it; an image shows its address and is never loaded.</p>
|
||||
+ <div id="doc-visual" class="doc-visual"></div>
|
||||
+ <form id="doc-form"><p class="small muted">${stateNote}</p>
|
||||
+ ${actions}</form></section></div>`;
|
||||
+ return `${top}
|
||||
<div class="doc-edit"><section class="panel" aria-labelledby="doc-src-title"><h2 id="doc-src-title">Markdown source</h2>
|
||||
<form id="doc-form"><label for="doc-text" class="sr-only">Markdown source of ${txt(s.path)}</label>
|
||||
<textarea id="doc-text" class="doc-text" data-field="doc-text" rows="26" spellcheck="false" autocomplete="off" aria-describedby="doc-status"${canEdit && !unsafe && !out() ? '' : ' readonly'}>\n${unsafe ? '' : esc(s.text)}</textarea>
|
||||
- <p class="small muted">${stateNote}</p>
|
||||
- <button type="submit" id="doc-save" disabled>Save to the project</button> <button type="button" class="btn" id="doc-reload">Reload from the project and discard the draft</button>
|
||||
- <p role="status" id="doc-status">${txt(s.status)}</p></form></section>
|
||||
+ <p class="small muted">${modeNote}${stateNote}</p>
|
||||
+ ${actions}</form></section>
|
||||
<section class="panel" aria-labelledby="doc-prev-title"><h2 id="doc-prev-title">Preview</h2><p class="small muted">Headings, lists, quotes, code and links are drawn. Raw HTML and anything else shows as text. A link shows where it goes; an image shows its address and is never loaded.</p><div id="doc-preview" class="md-preview"></div></section></div>`;
|
||||
}
|
||||
// The parts of the editor that follow the draft, set in place so typing never redraws the page.
|
||||
function paintDoc() {
|
||||
- const s = docStates.get(docKey), box = $('doc-preview');
|
||||
- if (!s || !box) return;
|
||||
+ const s = docStates.get(docKey), box = $('doc-preview'), host = $('doc-visual');
|
||||
+ if (!s || !(box || host)) return;
|
||||
+ if (host && editor?.host !== host) mountEditor(s, host);
|
||||
// A preview that throws must not skip the lines below, or leave a save stuck on "Saving…".
|
||||
- try {
|
||||
+ if (box) try {
|
||||
if (window.MosaicMarkdown) box.replaceChildren(window.MosaicMarkdown.render(s.text));
|
||||
else box.textContent = 'The preview did not load. The source is unchanged.';
|
||||
} catch { box.textContent = 'The preview failed. The source is unchanged.'; }
|
||||
@@ -737,6 +767,11 @@
|
||||
}
|
||||
const saveable = s => canEdit && !out() && !s.saving && s.text !== s.original && !s.raw.includes('\0');
|
||||
document.addEventListener('input', e => { const s = docStates.get(docKey); if (e.target.id !== 'doc-text' || !s) return; s.text = e.target.value; s.status = ''; paintDoc(); });
|
||||
+ document.addEventListener('click', e => {
|
||||
+ const mode = { 'doc-mode-visual': 'visual', 'doc-mode-source': 'source' }[e.target.id], s = docStates.get(docKey);
|
||||
+ if (!mode || !s || s.saving || mode === docShown) return;
|
||||
+ docMode = mode; render(false, { reuseDraft: true });
|
||||
+ });
|
||||
document.addEventListener('click', e => { if (e.target.id !== 'doc-reload') return; const s = docStates.get(docKey); if (s?.saving) return; docStates.delete(docKey); render(true); });
|
||||
document.addEventListener('submit', async e => {
|
||||
if (e.target.id !== 'doc-form') return;
|
||||
@@ -812,7 +847,7 @@
|
||||
// ---------------------------------------------------------------- router
|
||||
// #/ and anything that is not a #/ route is the control board; the rest is this file's.
|
||||
const routeOf = () => location.hash.startsWith('#/') ? location.hash.slice(1) : '/';
|
||||
- function view(get, path, q) {
|
||||
+ function view(get, path, q, opts) {
|
||||
const parts = path.split('/').filter(Boolean).map(p => { try { return decodeURIComponent(p); } catch { return null; } });
|
||||
if (parts.includes(null)) return notFound();
|
||||
const [a, b, c] = parts, n = parts.length;
|
||||
@@ -827,7 +862,7 @@
|
||||
if (a === 'business' && n === 1) return businessView(get);
|
||||
if (a === 'settings' && n === 1) return settingsView(get);
|
||||
if (a === 'docs' && n === 1) return docsView(get);
|
||||
- if (a === 'docs' && n === 3) return docView(get, b, c);
|
||||
+ if (a === 'docs' && n === 3) return docView(get, b, c, opts);
|
||||
if (a === 'trail' && n === 3 && b === 'task') return TASK.test(c) ? trailView(get, b, c, q) : notFound(`${txt(c)} is not a task reference.`);
|
||||
if (a === 'trail' && n === 3 && b === 'decision') return SAFE.test(c) ? trailView(get, b, c, q) : notFound(`${txt(c)} is not a decision id.`);
|
||||
if (a === 'trail' && n === 3 && b === 'message') return SAFE.test(c) ? trailView(get, b, c, q) : notFound(`${txt(c)} is not a message id.`);
|
||||
@@ -857,7 +892,7 @@
|
||||
}
|
||||
else if (k.h1) $('bus-view').querySelector('h1')?.focus({ preventScroll: true });
|
||||
}
|
||||
- async function render(navigated) {
|
||||
+ async function render(navigated, opts = {}) {
|
||||
// A refresh due while this render reads would replace it: a navigation would lose its heading focus.
|
||||
clearTimeout(timer);
|
||||
if (out()) return;
|
||||
@@ -874,7 +909,7 @@
|
||||
}
|
||||
if (board) {
|
||||
// The board page keeps its own title; the Inbox count still follows the bus.
|
||||
- if (shown !== null) { shown = null; $('bus-view').innerHTML = ''; document.title = 'Mosaic Console'; if (navigated) $('main').focus(); }
|
||||
+ if (shown !== null) { shown = null; unmountEditor(); $('bus-view').innerHTML = ''; document.title = 'Mosaic Console'; if (navigated) $('main').focus(); }
|
||||
// The held roles (row 95) are read with it. A refusal of either forgets both, as on the bus pages.
|
||||
const [inbox, agents, messages] = await Promise.allSettled([fetchRead('inbox'), fetchRead('agents'), fetchRead('messages')]);
|
||||
const failed = [inbox, agents, messages].filter(s => s.status === 'rejected').map(s => s.reason);
|
||||
@@ -891,7 +926,7 @@
|
||||
sections(path); schedule();
|
||||
return;
|
||||
}
|
||||
- if (navigated || shown !== route) { $('bus-view').innerHTML = loadingView(SOURCES[path.split('/')[1]]); }
|
||||
+ if (navigated || shown !== route) { unmountEditor(); $('bus-view').innerHTML = loadingView(SOURCES[path.split('/')[1]]); }
|
||||
let html, state = 'fresh';
|
||||
const live = reader(true);
|
||||
try {
|
||||
@@ -899,17 +934,18 @@
|
||||
try { await live('messages'); }
|
||||
catch (err) { messageCount = null; if (err.status === 403 || err.code === 'signed-out') throw err; }
|
||||
}
|
||||
- html = await view(live, path, new URLSearchParams(query)); readAt = live.oldest(); }
|
||||
+ html = await view(live, path, new URLSearchParams(query), opts); readAt = live.oldest(); }
|
||||
catch (err) {
|
||||
if (err.code === 'signed-out') return;
|
||||
const kept = reader(false);
|
||||
- try { if (refusal(err)) throw err; html = await view(kept, path, new URLSearchParams(query)); readAt = kept.oldest(); html = staleBanner(err) + html; state = 'stale'; }
|
||||
+ try { if (refusal(err)) throw err; html = await view(kept, path, new URLSearchParams(query), opts); readAt = kept.oldest(); html = staleBanner(err) + html; state = 'stale'; }
|
||||
catch { html = failedView(err) + (path === '/settings' ? appearance() : ''); state = refusal(err) ? 'refused' : 'failed'; }
|
||||
if (refusal(err)) forget();
|
||||
}
|
||||
if (g !== gen) return;
|
||||
freshBus(state, SOURCES[path.split('/')[1]]);
|
||||
const k = !navigated && shown === route ? keep() : null;
|
||||
+ unmountEditor();
|
||||
$('bus-view').innerHTML = html; shown = route;
|
||||
if (path.startsWith('/docs/')) paintDoc();
|
||||
sections(path);
|
||||
diff --git a/packages/webui/src/public/index.html b/packages/webui/src/public/index.html
|
||||
index 4ab935041..5063f33ca 100644
|
||||
--- a/packages/webui/src/public/index.html
|
||||
+++ b/packages/webui/src/public/index.html
|
||||
@@ -2,6 +2,7 @@
|
||||
<html lang="en" data-design="console" data-palette="harbor">
|
||||
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Mosaic Console</title>
|
||||
<link rel="stylesheet" href="/shared/app.css"><link rel="stylesheet" href="/tokens.css"><link rel="stylesheet" href="/console.css"><link rel="stylesheet" href="/live.css"><link rel="stylesheet" href="/bus.css"><link rel="stylesheet" href="/chat.css"><link rel="stylesheet" href="/shell.css">
|
||||
+<link rel="stylesheet" href="/editor.css"><script src="/editor.js" defer></script>
|
||||
<script src="/brand.js" defer></script><script src="/app.js" defer></script><script src="/markdown-preview.js" defer></script><script src="/chat.js" defer></script><script src="/bus.js" defer></script></head>
|
||||
<body>
|
||||
<a class="skip" href="#main">Skip to content</a>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,122 @@
|
||||
2026-10-18T20:42:10Z lock and esbuild binary sha ok
|
||||
2026-10-18T20:42:10Z build 1 exit 0
|
||||
9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee src/public/editor.js
|
||||
8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f src/public/editor.css
|
||||
758420 src/public/editor.js
|
||||
4462 src/public/editor.css
|
||||
762882 total
|
||||
2026-10-18T20:42:10Z build 2 exit 0
|
||||
rebuild byte-identical (editor.js and BUILD.json)
|
||||
BUILD.json records editor.js 9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee 758420
|
||||
2026-10-18T20:42:10Z start board-held
|
||||
2026-10-18T20:42:18Z end board-held exit 0
|
||||
2026-10-18T20:42:18Z start browser-edge
|
||||
2026-10-18T20:42:20Z end browser-edge exit 0
|
||||
2026-10-18T20:42:20Z start browser
|
||||
2026-10-18T20:42:21Z end browser exit 0
|
||||
2026-10-18T20:42:21Z start bus-browser
|
||||
2026-10-18T20:42:24Z end bus-browser exit 0
|
||||
2026-10-18T20:42:24Z start bus
|
||||
2026-10-18T20:42:27Z end bus exit 0
|
||||
2026-10-18T20:42:27Z start channel-chat
|
||||
2026-10-18T20:42:27Z end channel-chat exit 0
|
||||
2026-10-18T20:42:27Z start chat-browser
|
||||
2026-10-18T20:42:46Z end chat-browser exit 0
|
||||
2026-10-18T20:42:46Z start chat
|
||||
2026-10-18T20:42:47Z end chat exit 0
|
||||
2026-10-18T20:42:47Z start conversation
|
||||
2026-10-18T20:42:51Z end conversation exit 0
|
||||
2026-10-18T20:42:51Z start discord
|
||||
2026-10-18T20:42:53Z end discord exit 0
|
||||
2026-10-18T20:42:53Z start docs-browser
|
||||
2026-10-18T20:42:54Z end docs-browser exit 0
|
||||
2026-10-18T20:42:54Z start editor-browser
|
||||
2026-10-18T20:43:09Z end editor-browser exit 0
|
||||
2026-10-18T20:43:09Z start editor-provenance
|
||||
2026-10-18T20:43:09Z end editor-provenance exit 0
|
||||
2026-10-18T20:43:09Z start editor
|
||||
2026-10-18T20:43:11Z end editor exit 0
|
||||
2026-10-18T20:43:11Z start history-return-flow
|
||||
2026-10-18T20:44:03Z end history-return-flow exit 0
|
||||
2026-10-18T20:44:03Z start limits-browser
|
||||
2026-10-18T20:44:04Z end limits-browser exit 0
|
||||
2026-10-18T20:44:04Z start limits-route
|
||||
2026-10-18T20:44:04Z end limits-route exit 0
|
||||
2026-10-18T20:44:04Z start markdown-preview
|
||||
2026-10-18T20:44:11Z end markdown-preview exit 0
|
||||
2026-10-18T20:44:11Z start messages
|
||||
2026-10-18T20:44:14Z end messages exit 0
|
||||
2026-10-18T20:44:14Z start pinned-copy
|
||||
2026-10-18T20:44:19Z end pinned-copy exit 0
|
||||
2026-10-18T20:44:19Z start preview
|
||||
2026-10-18T20:44:20Z end preview exit 0
|
||||
2026-10-18T20:44:20Z start project-file
|
||||
2026-10-18T20:44:20Z end project-file exit 0
|
||||
2026-10-18T20:44:20Z start reads
|
||||
2026-10-18T20:44:22Z end reads exit 0
|
||||
2026-10-18T20:44:22Z start relaunch
|
||||
2026-10-18T20:44:23Z end relaunch exit 0
|
||||
2026-10-18T20:44:23Z start return-flow
|
||||
2026-10-18T20:44:44Z end return-flow exit 0
|
||||
2026-10-18T20:44:44Z start send-browser
|
||||
2026-10-18T20:44:57Z end send-browser exit 0
|
||||
2026-10-18T20:44:57Z start send
|
||||
2026-10-18T20:44:58Z end send exit 0
|
||||
2026-10-18T20:44:58Z start serve
|
||||
2026-10-18T20:44:59Z end serve exit 0
|
||||
2026-10-18T20:44:59Z start service
|
||||
2026-10-18T20:45:02Z end service exit 0
|
||||
2026-10-18T20:45:02Z start settings-form
|
||||
2026-10-18T20:45:04Z end settings-form exit 0
|
||||
2026-10-18T20:45:04Z start settings-write
|
||||
2026-10-18T20:45:04Z end settings-write exit 0
|
||||
2026-10-18T20:45:04Z start shell
|
||||
2026-10-18T20:45:12Z end shell exit 0
|
||||
2026-10-18T20:45:12Z start usage-browser
|
||||
2026-10-18T20:45:13Z end usage-browser exit 0
|
||||
2026-10-18T20:45:13Z start usage
|
||||
2026-10-18T20:45:13Z end usage exit 0
|
||||
2026-10-18T20:45:13Z start views
|
||||
2026-10-18T20:45:18Z end views exit 0
|
||||
singles: tests=214 pass=214 fail=0 skipped=0
|
||||
singles files: 35 of 35
|
||||
2026-10-18T20:45:18Z start suite
|
||||
2026-10-18T20:46:16Z end suite exit 0
|
||||
ℹ tests 214
|
||||
ℹ pass 214
|
||||
ℹ fail 0
|
||||
ℹ skipped 0
|
||||
changed paths: same 195 as r3
|
||||
195
|
||||
baseline manifest checks
|
||||
2026-10-18T20:46:16Z start mutant gate-true
|
||||
2026-10-18T20:46:29Z end mutant gate-true exit 1
|
||||
2026-10-18T20:46:29Z start mutant docshown-revert
|
||||
2026-10-18T20:46:46Z end mutant docshown-revert exit 1
|
||||
2026-10-18T20:46:46Z start mutant serialiser-verbatim
|
||||
2026-10-18T20:47:00Z end mutant serialiser-verbatim exit 1
|
||||
2026-10-18T20:47:00Z start mutant info-verbatim
|
||||
2026-10-18T20:47:15Z end mutant info-verbatim exit 1
|
||||
2026-10-18T20:47:15Z start mutant g5-backtick-kept
|
||||
2026-10-18T20:47:30Z end mutant g5-backtick-kept exit 1
|
||||
2026-10-18T20:47:30Z start mutant link-backslash
|
||||
2026-10-18T20:47:44Z end mutant link-backslash exit 1
|
||||
2026-10-18T20:47:44Z start mutant image-backslash
|
||||
2026-10-18T20:47:59Z end mutant image-backslash exit 1
|
||||
2026-10-18T20:47:59Z post-mutant sha256sum -c exit 0 (195 OK of 195)
|
||||
2026-10-18T20:47:59Z start provenance after mutants
|
||||
2026-10-18T20:47:59Z end provenance after mutants exit 0
|
||||
ℹ tests 6
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ skipped 0
|
||||
2026-10-18T20:47:59Z pre-cut sha256sum -c exit 0 (195 OK)
|
||||
manifest equals the checked baseline
|
||||
2026-10-18T20:47:59Z cut manifest sha256sum -c exit 0 (195 OK of 195)
|
||||
patch applies to a clean export of 7bd2a348c
|
||||
a822401ac794252eaebc08510a89597d87ff254508baa3830f7360314cefffc9 /mnt/storage/scratch/researcher/r154-rb-out/candidate.patch
|
||||
41024ac5e2b118e5ff11a74b61ee82e5bc9f177d0622c5e5af0f284622985111 /mnt/storage/scratch/researcher/r154-rb-out/candidate-manifest.sha256
|
||||
3b67cf23b70f4e753cda610db0a24c4eaa3107713dd9e0eace9e49a08b78663b /mnt/storage/scratch/researcher/r154-rb-out/public.diff
|
||||
2251d83b03d467333ca21ad7bbc463040701f4ead1e2b7d01fc289506a98476e /mnt/storage/scratch/researcher/r154-rb-out/public-handwritten.diff
|
||||
2026-10-18T20:47:59Z done
|
||||
2026-10-18T20:47:59Z run exit 0
|
||||
@@ -0,0 +1,130 @@
|
||||
#!/usr/bin/env bash
|
||||
# Row 154 rebase onto 7bd2a348c (sage-0884). One run, stop at the first failure. Order (sage-0840): toolchain check, rebuild twice, every webui test
|
||||
# singly, the suite, baseline manifest of the whole candidate tree, mutants (each restores file, editor.js, editor.css and
|
||||
# BUILD.json), `sha256sum -c` over the whole manifest (stop on any failure), provenance under MOSAIC_REQUIRE_EDITOR_BUILD=1,
|
||||
# `sha256sum -c` again, then the patch and the manifest, cut last from the tree just checked.
|
||||
set -o pipefail
|
||||
R=/mnt/storage/scratch/researcher
|
||||
WT=$R/r154-wt4
|
||||
W=$WT/packages/webui
|
||||
LOG=$R/r154-rb-logs
|
||||
OUT=$R/r154-rb-out
|
||||
mkdir -p "$LOG" "$OUT"
|
||||
cd "$W" || exit 9
|
||||
ts() { date -u +%Y-%m-%dT%H:%M:%SZ; }
|
||||
stop() { echo "$(ts) STOP at $1 exit $2"; exit "$2"; }
|
||||
export MOSAIC_REQUIRE_EDITOR_BUILD=1
|
||||
BASE=7bd2a348c
|
||||
|
||||
# A mutant in progress is put back by the trap if the script dies inside it.
|
||||
ACTIVE=; TARGET=
|
||||
restore() {
|
||||
[ -n "$ACTIVE" ] || return 0
|
||||
local n=$ACTIVE
|
||||
cp "$LOG/$n.file.orig" "$TARGET"
|
||||
cp "$LOG/$n.editor.orig" "$W/src/public/editor.js"
|
||||
cp "$LOG/$n.css.orig" "$W/src/public/editor.css"
|
||||
cp "$LOG/$n.buildjson.orig" "$W/editor/BUILD.json"
|
||||
ACTIVE=
|
||||
}
|
||||
trap 'restore' EXIT
|
||||
|
||||
[ "$(sha256sum package-lock.json | cut -d' ' -f1)" = eb60a4945282a5eae49a03a27cc4a1eb67954e73d57b8ef945073ed5c184f63f ] || stop lock-sha 21
|
||||
B=node_modules/@esbuild/linux-x64/bin/esbuild
|
||||
[ "$(sha256sum "$B" | cut -d' ' -f1)" = e1698a3d5c6c0798fee4fd3b5cc816651f460c63d390a7a26ea4beb0b1884100 ] || stop esbuild-sha 22
|
||||
echo "$(ts) lock and esbuild binary sha ok"
|
||||
|
||||
node editor/build.mjs > "$LOG/build1.log" 2>&1; rc=$?; echo "$(ts) build 1 exit $rc"; [ $rc -eq 0 ] || stop build1 $rc
|
||||
sha256sum src/public/editor.js src/public/editor.css | tee "$LOG/shas.txt"; wc -c src/public/editor.js src/public/editor.css
|
||||
cp src/public/editor.js "$LOG/editor1.js"; cp editor/BUILD.json "$LOG/BUILD1.json"
|
||||
node editor/build.mjs > "$LOG/build2.log" 2>&1; rc=$?; echo "$(ts) build 2 exit $rc"; [ $rc -eq 0 ] || stop build2 $rc
|
||||
cmp src/public/editor.js "$LOG/editor1.js" && cmp editor/BUILD.json "$LOG/BUILD1.json" && echo "rebuild byte-identical (editor.js and BUILD.json)" || stop rebuild-differs 23
|
||||
SHA=$(sha256sum src/public/editor.js | cut -d' ' -f1); BYTES=$(wc -c < src/public/editor.js)
|
||||
grep -q "\"sha256\": \"$SHA\"" editor/BUILD.json && grep -q "\"bytes\": $BYTES" editor/BUILD.json && echo "BUILD.json records editor.js $SHA $BYTES" || stop buildjson-record 24
|
||||
|
||||
# Every webui test file, singly.
|
||||
: > "$LOG/_singles.txt"
|
||||
for f in tests/*.test.mjs; do
|
||||
n=$(basename "$f" .test.mjs)
|
||||
echo "$(ts) start $n"
|
||||
timeout -k 10 600 node --test --test-reporter=spec "$f" > "$LOG/single-$n.log" 2>&1; rc=$?
|
||||
echo "$n rc=$rc $(grep -E '^ℹ (tests|pass|fail|skipped) ' "$LOG/single-$n.log" | tr '\n' ' ')" >> "$LOG/_singles.txt"
|
||||
echo "$(ts) end $n exit $rc"; [ $rc -eq 0 ] || stop "single-$n" $rc
|
||||
done
|
||||
awk '/ℹ tests /{for(i=1;i<=NF;i++)if($i=="tests")t+=$(i+1)} /ℹ pass /{for(i=1;i<=NF;i++)if($i=="pass")p+=$(i+1)} /ℹ fail /{for(i=1;i<=NF;i++)if($i=="fail")f+=$(i+1)} /ℹ skipped /{for(i=1;i<=NF;i++)if($i=="skipped")s+=$(i+1)} END{print "singles: tests="t" pass="p" fail="f" skipped="s}' "$LOG"/single-*.log
|
||||
echo "singles files: $(ls "$LOG"/single-*.log | wc -l) of $(ls tests/*.test.mjs | wc -l)"
|
||||
echo "$(ts) start suite"
|
||||
timeout -k 10 900 node --test --test-reporter=spec tests/ > "$LOG/suite.log" 2>&1; rc=$?
|
||||
echo "$(ts) end suite exit $rc"; [ $rc -eq 0 ] || stop suite $rc
|
||||
grep -E '^ℹ (tests|pass|fail|skipped) ' "$LOG/suite.log"
|
||||
|
||||
# The tree the run measured, before any mutant: every path of the candidate with its sha256.
|
||||
cd "$WT" || exit 9
|
||||
git add -A packages docs
|
||||
git diff --cached --name-only > "$LOG/paths.txt"
|
||||
cmp "$LOG/paths.txt" /mnt/storage/src/mosaic-stack/agents/researcher/work/queue-154/r3/changed-paths.txt && echo "changed paths: same 195 as r3" || echo "NOTE changed paths differ from r3 (see $LOG/paths.txt)"
|
||||
xargs -d '\n' sha256sum < "$LOG/paths.txt" > "$LOG/baseline-manifest.sha256"
|
||||
wc -l < "$LOG/baseline-manifest.sha256"
|
||||
sha256sum -c --quiet "$LOG/baseline-manifest.sha256" && echo "baseline manifest checks" || stop baseline-check 25
|
||||
cd "$W" || exit 9
|
||||
|
||||
mutate() { # exact-string replace in a file, one occurrence required
|
||||
python3 -I -c '
|
||||
import sys
|
||||
p, old, new = sys.argv[1:4]
|
||||
s = open(p).read()
|
||||
if s.count(old) != 1: sys.exit("occurrences: %d" % s.count(old))
|
||||
open(p, "w").write(s.replace(old, new))' "$@"
|
||||
}
|
||||
mutant() { # name file old new rebuild(0/1)
|
||||
local name=$1 file=$2 old=$3 new=$4 rebuild=$5
|
||||
cp "$file" "$LOG/$name.file.orig"; TARGET=$W/$file
|
||||
cp src/public/editor.js "$LOG/$name.editor.orig"; cp src/public/editor.css "$LOG/$name.css.orig"; cp editor/BUILD.json "$LOG/$name.buildjson.orig"
|
||||
[ -s "$LOG/$name.file.orig" ] && [ -s "$LOG/$name.editor.orig" ] && [ -s "$LOG/$name.buildjson.orig" ] || stop "backup-$name" 26
|
||||
ACTIVE=$name
|
||||
mutate "$file" "$old" "$new" || { echo "$(ts) mutant $name: not applied"; restore; stop "mutant-$name-apply" 27; }
|
||||
if [ "$rebuild" = 1 ]; then node editor/build.mjs > "$LOG/$name.build.log" 2>&1 || echo "$(ts) mutant $name build failed"; fi
|
||||
echo "$(ts) start mutant $name"
|
||||
timeout -k 10 600 node --test --test-reporter=spec tests/editor-browser.test.mjs > "$LOG/mutant-$name.log" 2>&1; local rc=$?
|
||||
echo "$(ts) end mutant $name exit $rc"
|
||||
restore
|
||||
cmp -s "$file" "$LOG/$name.file.orig" || stop "restore-$name" 28
|
||||
}
|
||||
mutant gate-true src/public/bus.js 'window.MosaicEditor.roundTrip(s.text) === s.text' 'true' 0
|
||||
mutant docshown-revert src/public/bus.js 'mode === docShown' 'mode === docMode' 0
|
||||
mutant serialiser-verbatim editor/model.mjs 'const oneLine = value => (typeof value === '"'string'"' ? value.replace(/[\r\n]+/g, '"' '"') : value);' 'const oneLine = value => value;' 1
|
||||
mutant info-verbatim editor/model.mjs "const info = typeof value === 'string' ? value.split(/[\\r\\n]/, 1)[0] : '';" "const info = typeof value === 'string' ? value : '';" 1
|
||||
mutant g5-backtick-kept editor/model.mjs "return info.includes('\`') ? '' : info;" 'return info;' 1
|
||||
mutant link-backslash editor/model.mjs "oneLine(value).replace(/\\\\/g, '\\\\\\\\') : value);" 'oneLine(value) : value);' 1
|
||||
mutant image-backslash editor/model.mjs "title.replace(/[\\\\\"]/g, '\\\\\$&')" "title.replace(/\"/g, '\\\\\"')" 1
|
||||
|
||||
# The whole candidate, as it must be, before anything else is trusted.
|
||||
cd "$WT" || exit 9
|
||||
sha256sum -c "$LOG/baseline-manifest.sha256" > "$LOG/post-mutant-check.txt" 2>&1; rc=$?
|
||||
echo "$(ts) post-mutant sha256sum -c exit $rc ($(grep -c ': OK$' "$LOG/post-mutant-check.txt") OK of $(wc -l < "$LOG/baseline-manifest.sha256"))"
|
||||
[ $rc -eq 0 ] || { grep -v ': OK$' "$LOG/post-mutant-check.txt" | head; stop post-mutant-check 29; }
|
||||
cd "$W" || exit 9
|
||||
|
||||
echo "$(ts) start provenance after mutants"
|
||||
timeout -k 10 600 node --test --test-reporter=spec tests/editor-provenance.test.mjs > "$LOG/provenance-post-mutant.log" 2>&1; rc=$?
|
||||
echo "$(ts) end provenance after mutants exit $rc"; grep -E '^ℹ (tests|pass|fail|skipped) ' "$LOG/provenance-post-mutant.log"; [ $rc -eq 0 ] || stop provenance-post-mutant $rc
|
||||
|
||||
# Cut last, from the tree just checked.
|
||||
cd "$WT" || exit 9
|
||||
sha256sum -c "$LOG/baseline-manifest.sha256" > "$LOG/pre-cut-check.txt" 2>&1; rc=$?
|
||||
echo "$(ts) pre-cut sha256sum -c exit $rc ($(grep -c ': OK$' "$LOG/pre-cut-check.txt") OK)"; [ $rc -eq 0 ] || stop pre-cut-check 30
|
||||
git add -A packages docs
|
||||
git diff --cached --name-only | cmp - "$LOG/paths.txt" || stop paths-moved 31
|
||||
git diff --cached --binary > "$OUT/candidate.patch" || stop patch 32
|
||||
cp "$LOG/paths.txt" "$OUT/changed-paths.txt"
|
||||
xargs -d '\n' sha256sum < "$OUT/changed-paths.txt" > "$OUT/candidate-manifest.sha256"
|
||||
cmp "$OUT/candidate-manifest.sha256" "$LOG/baseline-manifest.sha256" && echo "manifest equals the checked baseline" || stop manifest-differs 33
|
||||
sha256sum -c "$OUT/candidate-manifest.sha256" > "$LOG/cut-manifest-check.txt" 2>&1; rc=$?
|
||||
echo "$(ts) cut manifest sha256sum -c exit $rc ($(grep -c ': OK$' "$LOG/cut-manifest-check.txt") OK of $(wc -l < "$OUT/candidate-manifest.sha256"))"; [ $rc -eq 0 ] || stop cut-manifest-check 34
|
||||
EXP=$(mktemp -d "$R/r154-rb-export.XXXXXX"); git archive "$BASE" | tar -x -C "$EXP" && (cd "$EXP" && git init -q && git apply --check "$OUT/candidate.patch") && echo "patch applies to a clean export of $BASE" || stop apply-check 35
|
||||
rm -rf "$EXP"
|
||||
# The public/ diff Mos reads for decision 123: the same cached tree, src/public only.
|
||||
git diff --cached --binary -- packages/webui/src/public > "$OUT/public.diff" || stop public-diff 36
|
||||
git diff --cached --binary -- packages/webui/src/public/bus.js packages/webui/src/public/index.html > "$OUT/public-handwritten.diff" || stop public-diff-hand 37
|
||||
sha256sum "$OUT/candidate.patch" "$OUT/candidate-manifest.sha256" "$OUT/public.diff" "$OUT/public-handwritten.diff"
|
||||
echo "$(ts) done"
|
||||
@@ -0,0 +1,10 @@
|
||||
✔ the Board: held roles with no machine sessions, a claim with no address, the toggle kept across a reload, and Message addressed to the role (3057.147985ms)
|
||||
✔ a redirect answer on a Board read, a bus read, a conversation read, a board POST, a module read and a send signs the page out: one line, nothing stale, no further reads (5012.350985ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 8202.362731
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ browser edge states: loading, empty, malformed, stale, hostile/long values, in-flight reply and appearance fallback (1316.412669ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1412.685042
|
||||
@@ -0,0 +1,10 @@
|
||||
Rendered contrast: {"failures":[],"count":330,"lowest":4.504658476260286}
|
||||
✔ served Console browser: real board fixtures, keyboard, drafts, receipts, themes, 320px and failures (1210.597572ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1311.519701
|
||||
@@ -0,0 +1,10 @@
|
||||
✔ the README says a refused field table names the file or the key at fault, never a path (0.786743ms)
|
||||
✔ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes (2996.776505ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 3107.158736
|
||||
@@ -0,0 +1,18 @@
|
||||
✔ bus routes serve the four reads from the reader view, unescaped JSON for the page to escape (68.202542ms)
|
||||
✔ decisions route serves the roles and recent lists from the reader view (34.580756ms)
|
||||
✔ credentials route serves the broker credential status from the reader view (10.831763ms)
|
||||
✔ replies route serves the replies to one message from the reader view (32.021399ms)
|
||||
✔ bus routes are GET-only, have no write verb, and keep the same-origin checks (59.840413ms)
|
||||
✔ bus refusals map to statuses and never carry a path or a stack (26.618591ms)
|
||||
✔ humanCall speaks the human transport protocol without blocking the server (1687.270593ms)
|
||||
✔ busReader takes --business, else the live bus host, else refuses (192.13534ms)
|
||||
✔ humanCall kills a transport that runs past its timeout (527.037312ms)
|
||||
✔ serve refuses a --business value that is not a business id (244.616443ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 3007.798292
|
||||
@@ -0,0 +1,11 @@
|
||||
✔ WebUI channel off returns 503 and named recovery for every chat route without a chat operation (34.953208ms)
|
||||
✔ WebUI only selection keeps web chat enabled while retaining the old read envelope (2.418986ms)
|
||||
✔ WebUI channel-disabled recovery text is fixed and never echoes transport text (1.652863ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 143.272251
|
||||
@@ -0,0 +1,19 @@
|
||||
✔ chat browser: list/create named projects and threads, hostile labels inert and no implicit writes (701.16173ms)
|
||||
✔ chat browser: thread drafts, receipts and cursor history stay isolated; refresh never writes (656.123148ms)
|
||||
✔ chat browser: uncertain writes retain draft, ownership refusal clears it, read-only cannot send (894.308669ms)
|
||||
✔ chat browser: a late read from A cannot paint B; sign-out clears private state and stops reads (986.820573ms)
|
||||
✔ chat browser: page forward and deduplicate replies; pending and byte-limit submissions do not duplicate (659.737277ms)
|
||||
✔ chat browser: scrolled history stays put, New messages and an own send return to the tail (740.810099ms)
|
||||
✔ chat browser: automatic polling follows a reply without a POST or a lost draft (10694.136278ms)
|
||||
✔ chat browser: display stays bounded while every forward page remains reachable (900.766381ms)
|
||||
✔ chat browser: a confirmed visible message replaces its pending receipt; malformed receipts stay unknown (844.4584ms)
|
||||
✔ chat browser: a refusal elsewhere forgets private chat drafts (760.464346ms)
|
||||
✔ chat browser: a late project creation receipt cannot navigate away from another thread (797.595869ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 18750.091654
|
||||
@@ -0,0 +1,30 @@
|
||||
✔ chat reads map only fixed verbs, strict forward paging and pure GET (28.573728ms)
|
||||
✔ chat refuses malformed and repeated query/id values before transport (6.356745ms)
|
||||
✔ chat project.create: one verified write, fixed identity/class and private log (3.153983ms)
|
||||
✔ chat project.create: each existing Console write fence makes zero bus calls (10.153549ms)
|
||||
✔ chat project.create: refusal or lost/malformed receipt never retries or invents success (5.298855ms)
|
||||
✔ chat thread.create: one verified write, fixed identity/class and private log (1.673771ms)
|
||||
✔ chat thread.create: each existing Console write fence makes zero bus calls (7.830198ms)
|
||||
✔ chat thread.create: refusal or lost/malformed receipt never retries or invents success (5.18653ms)
|
||||
✔ chat thread.send: one verified write, fixed identity/class and private log (2.019665ms)
|
||||
✔ chat thread.send: each existing Console write fence makes zero bus calls (7.478508ms)
|
||||
✔ chat thread.send: refusal or lost/malformed receipt never retries or invents success (4.938145ms)
|
||||
✔ chat thread.open: one verified write, fixed identity/class and private log (1.674449ms)
|
||||
✔ chat thread.open: each existing Console write fence makes zero bus calls (7.510865ms)
|
||||
✔ chat thread.open: refusal or lost/malformed receipt never retries or invents success (6.355027ms)
|
||||
✔ chat createThread receipt requires an instance even when its id is valid (3.507536ms)
|
||||
✔ chat write receipts expose only the fields belonging to their operation (5.533449ms)
|
||||
✔ chat validates names, body, project and strict empty open payload (4.69996ms)
|
||||
✔ chat read failures redact ownership and refuse invalid transport arrays (4.74288ms)
|
||||
✔ REQ-USER-2 real broker: owned catalog, create/name/filter, isolated history and 403/404 without mutations (74.525568ms)
|
||||
✔ chat repeats every POST boundary even when called behind an admitted request (1.054775ms)
|
||||
✔ configured Console process injects chat through its existing human transport (141.25078ms)
|
||||
✔ chat assets, GET purity, method and unknown-route refusals are explicit (17.181823ms)
|
||||
ℹ tests 22
|
||||
ℹ suites 0
|
||||
ℹ pass 22
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 500.038822
|
||||
@@ -0,0 +1,12 @@
|
||||
✔ conversation view: full history, collapsed tools, hidden thinking, inert hostile content, malformed and reconcile markers (1163.873177ms)
|
||||
✔ conversation view: a fork keeps the open branch, says so, and opens the new one on request (1544.99085ms)
|
||||
✔ conversation view: a newer session with no readable history keeps the marker (1073.416578ms)
|
||||
✔ conversation view: seats without history say so and offer no reply (770.229275ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 4674.088844
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ Discord row through real board/WebUI: independent brake/liveness, no Reply, literal content (916.193394ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1016.72936
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ the editor: the list, hostile markdown that runs nothing, the draft, and each save receipt (1700.162524ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1821.771531
|
||||
@@ -0,0 +1,24 @@
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (1070.00793ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (821.819758ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (708.596335ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (2639.446841ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1024.914747ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (1971.668115ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (613.052901ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (548.923534ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (585.593662ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (558.909523ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (561.311483ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (576.370433ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (582.92228ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (670.647902ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (706.064444ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (622.936289ms)
|
||||
ℹ tests 16
|
||||
ℹ suites 0
|
||||
ℹ pass 16
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 14406.422374
|
||||
@@ -0,0 +1,26 @@
|
||||
✔ the imported source is the tagged upstream source plus the recorded local changes, and nothing else (11.218527ms)
|
||||
✔ every package names its origin and license, and NOTICE lists each (0.428585ms)
|
||||
✔ the build reads only imported source and the editor's own files; the bundle is the recorded build (4.627609ms)
|
||||
✔ MOSAIC_REQUIRE_EDITOR_BUILD: a missing or wrong esbuild skips without it and fails with it; a wrong binary always fails (3.558014ms)
|
||||
✔ the toolchain check, run as a program, exits non-zero without esbuild when the build is required (112.061375ms)
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
✔ rebuilding from the source gives the same bytes (needs the pinned esbuild; MOSAIC_REQUIRE_EDITOR_BUILD=1 makes its absence a failure) (54.328776ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 233.330114
|
||||
@@ -0,0 +1,13 @@
|
||||
✔ the editor routes serve the built files with their types and no cache (33.580621ms)
|
||||
✔ open and save with no edit writes the same bytes: the goals review and a doc with every element (15.38758ms)
|
||||
✔ open and save with no edit writes the same bytes: every repository doc under docs/ and spec/ (1306.181916ms)
|
||||
✔ the editor source builds markup only with DOM calls, and the bundle has no eval (2.406436ms)
|
||||
✔ the link gate and the image rule are the preview's (0.484614ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1493.005408
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ return flow through the conversation view: send, tool call, delayed result, peer message, exact long answers, relaunch (51935.216984ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 52151.285773
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ REQ-LIMIT-3 REQ-LIMIT-4 Settings shows token limits counted, not enforced and check failed; Reset posts one path; a save keeps the token limits (881.402333ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 985.154125
|
||||
@@ -0,0 +1,13 @@
|
||||
✔ REQ-LIMIT-3 limits read returns only the token rows; no query or write is accepted (26.531932ms)
|
||||
✔ REQ-LIMIT-3 a limits answer without a token list is refused, not shown as no limits (7.69421ms)
|
||||
2026-10-18T20:44:04.463Z settings user="jason" changed
|
||||
✔ REQ-LIMIT-3 a Settings reset reaches the human write with its paths; a reset alone is enough (5.615038ms)
|
||||
✔ REQ-LIMIT-3 the Console reader asks the bus limits verb with no arguments (0.231223ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 136.030057
|
||||
@@ -0,0 +1,27 @@
|
||||
✔ the preview source names none of the four string-to-markup sinks (0.884061ms)
|
||||
✔ headings, paragraphs, emphasis and inline code render (1.153549ms)
|
||||
✔ lists, block quotes and code blocks render (0.414953ms)
|
||||
✔ a link is made for http, https and relative targets, with rel and the target shown (0.929211ms)
|
||||
✔ a link with any other scheme, or an evasion of the scheme, stays source text (0.71831ms)
|
||||
✔ an image shows alt text and URL, is never an img element and never loads (0.138552ms)
|
||||
✔ raw HTML, entities and unsupported blocks show as source text, never as elements (0.296929ms)
|
||||
✔ markup inside code and inside link text stays text (0.140552ms)
|
||||
✔ hostile and pathological input stays within its look-ahead budget and under the nesting cap (32.345478ms)
|
||||
✔ trailing blanks and closing hashes are cut by a walk from the end, not a regex that retries inside a blank run (26.213756ms)
|
||||
✔ a link opener with no closer searches at most SPAN characters ahead (151.548006ms)
|
||||
✔ the look-ahead work of one render is a fixed multiple of the text, whatever the opener (734.076249ms)
|
||||
✔ past the budget an opener is source text, through the path all other text takes (13.265196ms)
|
||||
✔ a normal 200 KiB document renders exactly as it did without a budget, and spends little of it (17.941841ms)
|
||||
✔ a line separator inside a heading, a list item or a fence line does not end the marker line (0.460797ms)
|
||||
✔ a thematic-break line is a paragraph, every other marker line opens a list (0.332278ms)
|
||||
✔ every short line over space, tab, - * _ and a letter is a break exactly when the old regex said so (39.335088ms)
|
||||
✔ one line of marks does not throw, at 4 MiB, whatever the mark or the spacing (6063.088398ms)
|
||||
✔ CRLF and tabs are read like LF and spaces; empty input renders nothing (0.185349ms)
|
||||
ℹ tests 19
|
||||
ℹ suites 0
|
||||
ℹ pass 19
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 7196.787575
|
||||
@@ -0,0 +1,11 @@
|
||||
✔ messages HTTP read pages and preserves metadata; bad arguments refuse before a read; other reads unchanged (72.499604ms)
|
||||
✔ Console Messages lists late unsolicited messages on polling with sender class time read state and trail; nav count includes beyond the page; reads never deliver (839.12002ms)
|
||||
✔ Messages nav count polls on Tasks and Board and clears on a Board refusal; messages 403 refuses local pages (1702.671083ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 2726.459773
|
||||
@@ -0,0 +1,18 @@
|
||||
✔ copy writes the Console paths at the full id, read-only, and leaves an existing copy alone (822.307155ms)
|
||||
✔ copy refuses a commit off refactor, an unknown one, a worktree and a bad copies directory (747.140961ms)
|
||||
✔ copy writes nothing when an archived path is missing at the commit (279.452676ms)
|
||||
✔ a copy that loses the rename race leaves no read-only temp directory behind (461.384935ms)
|
||||
✔ a copy whose rename fails with no target refuses, writes no copy and leaves no temp directory (486.627105ms)
|
||||
✔ a copy that meets a target holding files says exists: and moves nothing into it (473.90548ms)
|
||||
✔ a copy that meets an empty target directory replaces it by rename, not by moving into it (408.656382ms)
|
||||
✔ serve runs from a copy: /healthz 200, the config check, roles and RELEASE from the copy, the queue from --checkout (777.614209ms)
|
||||
✔ serve refuses a --checkout that is not an absolute directory path (240.616976ms)
|
||||
✔ consoleReads runs the queue read under queueRoot and reads RELEASE under root (54.859586ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 4891.638988
|
||||
@@ -0,0 +1,19 @@
|
||||
✔ preview options are all three or none, and each is checked (6.464825ms)
|
||||
✔ the CLI refuses a partial or invalid preview flag set at start (578.387971ms)
|
||||
✔ the CLI with all three flags serves the preview mode (119.316229ms)
|
||||
✔ a request for the public name needs the header equal to the user id, else 401 and nothing read (15.847094ms)
|
||||
✔ the header name matches without regard to case, and the value compare is exact (3.636885ms)
|
||||
✔ the public name with the header reads the bus views, and the Host and Origin are checked first (23.855231ms)
|
||||
✔ in preview mode every write answers 403 read-only, from the public name and loopback, and reaches nothing (9.384007ms)
|
||||
✔ loopback requests are unchanged in preview mode, and the bus views work with the board down (3.841295ms)
|
||||
✔ a proxy that rewrites Host to the loopback port gets 403 on its first request, whatever the user (14.203628ms)
|
||||
✔ a repeated Host is 400 before any other check, in preview mode and without it (6.005607ms)
|
||||
✔ without the preview flags the public name is refused and writes still reach the board (3.887842ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 900.702331
|
||||
@@ -0,0 +1,18 @@
|
||||
✔ a signed-in same-origin save reaches exactly one human operation and returns the new commit (16.357699ms)
|
||||
✔ a save needs send, the named Host, the user, the exact Origin and same-origin Fetch Metadata (7.135075ms)
|
||||
✔ a save validates JSON, strict keys, text values and the 1 MiB body before the bus is asked (15.46834ms)
|
||||
✔ a body that is JSON but not an object is refused 400, not thrown on (4.499183ms)
|
||||
✔ the 1 MiB limit is this route only; Settings and messages keep 16 KiB (1.963566ms)
|
||||
✔ a bus refusal is reported as not saved with its own status; stale-base tells the user to reload (4.893066ms)
|
||||
✔ a save whose answer is lost or unusable is reported unknown and is never retried (2.86083ms)
|
||||
✔ the file list and one file read take strict queries and arrive in the expected shape (3.970518ms)
|
||||
✔ reads work without --send; an unusable bus answer is a bad response, a refusal keeps its status (2.563535ms)
|
||||
✔ /api/config says edit only where a save can pass (1.589889ms)
|
||||
ℹ tests 10
|
||||
ℹ suites 0
|
||||
ℹ pass 10
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 158.453794
|
||||
@@ -0,0 +1,19 @@
|
||||
✔ redactor: config, dataRoot, any absolute path, Discord ids and the JSON parser quote (1.421896ms)
|
||||
✔ credential state from the date alone, as the bus states it (0.159504ms)
|
||||
✔ queue: rows, one row, ids and methods, notes; no path or id from a row (374.178561ms)
|
||||
✔ queue: a refused read fails closed with the store's text, redacted (179.120415ms)
|
||||
✔ queue: a store that fails to load, or a child that dies, gives a fixed message with no path or stack (765.447533ms)
|
||||
✔ business: names, vars on the allowlist, authority, credential metadata only (8.674172ms)
|
||||
✔ business: missing or invalid file refuses with the module's text, redacted (6.141911ms)
|
||||
✔ business without --business: the live bus host, else no-bus-host; no system config: not-configured (6.552368ms)
|
||||
✔ settings: release, board, loopback address, notifier binding name only (114.659772ms)
|
||||
✔ task fields: the committed table with no reads configured, GET only; a bad table refuses with no path (16.511073ms)
|
||||
✔ bus-status: a refused boot shows reason, file and last good load; a live host or an ok boot clears it (8.308268ms)
|
||||
ℹ tests 11
|
||||
ℹ suites 0
|
||||
ℹ pass 11
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1593.690597
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ both presentations replace old activity with relaunch notice, label retained history, then resume after new activity (787.746746ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 888.547382
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ reported return flow and relative Age: reply sent from the inspector, then the new answer appears there without manual refresh (20819.102255ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 20929.999008
|
||||
@@ -0,0 +1,10 @@
|
||||
✔ the send box: held roles, the draft and caret across a refresh, each receipt, one POST per Send, and the trail link; the board Reply on a 4xx and a 5xx (2396.341672ms)
|
||||
✔ a sent receipt lists its replies as the page refreshes, oldest first and capped, and marks none delivered or read (11362.435384ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 13883.852905
|
||||
@@ -0,0 +1,21 @@
|
||||
✔ startServer takes send only as a function and only with the preview mode (6.535664ms)
|
||||
✔ the CLI refuses --send without the preview flags, and without a configured bus (493.019208ms)
|
||||
✔ the CLI with --send and a configured bus sends through the human transport and logs one line (148.386834ms)
|
||||
✔ without --send the route is read-only like every other write, and config says no send (7.740887ms)
|
||||
✔ with --send every other write is still 403 read-only, and nothing reaches the board or bus (6.270998ms)
|
||||
✔ config says send only on the public name with --send on (2.044131ms)
|
||||
✔ a send without the signed-in user is 401 and is neither sent nor logged, loopback included (4.874682ms)
|
||||
✔ each request check refuses before anything is sent, and logs the refusal without the body (13.024687ms)
|
||||
✔ a send passes exactly to, body and in_reply_to, answers the id, and logs it (3.495945ms)
|
||||
✔ a crafted role name cannot forge a log line (2.195339ms)
|
||||
✔ a bus refusal is not sent, with its status; an outcome the bus could not confirm is unknown and never retried (8.425614ms)
|
||||
✔ through the human transport the request is exactly the business, message.send and the keys (94.834387ms)
|
||||
✔ against a real broker: the message is written once as a human send, and its refusals map (27.972792ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 949.437475
|
||||
@@ -0,0 +1,12 @@
|
||||
✔ loopback host and board origin fail closed (7.864184ms)
|
||||
✔ real board fixture passes through WebUI; assets and isolated seen/reply work (113.205408ms)
|
||||
✔ proxy preserves exact request bytes, status and receipt, rejects forms and malformed JSON, never follows redirect (55.465738ms)
|
||||
✔ unreachable board reports URL; CLI rejects unsupported options (513.639494ms)
|
||||
ℹ tests 4
|
||||
ℹ suites 0
|
||||
ℹ pass 4
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 823.664143
|
||||
@@ -0,0 +1,31 @@
|
||||
✔ render prints the unit without the preview flags (9.719788ms)
|
||||
✔ render carries every serve flag, the preview set included (7.784161ms)
|
||||
✔ a partial preview set is refused (17.482714ms)
|
||||
✔ a value the unit cannot carry is refused, for every flag (320.172879ms)
|
||||
✔ the rendered unit names none of the human proof agent markers and sets no agent variable (19.41158ms)
|
||||
✔ install into --dir with --no-reload writes the file whole, then reports unchanged (60.561852ms)
|
||||
✔ install without --no-reload runs daemon-reload and nothing that starts the unit (30.546627ms)
|
||||
✔ uninstall refuses while the unit is running, with or without --no-reload, and removes it once it is not (130.08486ms)
|
||||
✔ status prints the unit state and GET /healthz on the installed port (229.618277ms)
|
||||
✔ usage: an unknown verb or flag, and start or enable, exit 4 (89.752685ms)
|
||||
✔ without --send, render is the template with its placeholders filled, byte for byte (40.023455ms)
|
||||
✔ render --send with the preview set ends ExecStart with --send and changes nothing else (50.095649ms)
|
||||
✔ --send without the whole preview set is refused and writes nothing (145.132828ms)
|
||||
✔ install --send into --dir with --no-reload writes the sending unit, and status says whether it sends (268.237798ms)
|
||||
✔ uninstall and status take no --send (36.90766ms)
|
||||
✔ install refuses while the unit is running, in any state but inactive or failed, and changes nothing (267.514001ms)
|
||||
✔ when the state read fails, install and uninstall refuse with one line and change nothing (87.340651ms)
|
||||
✔ install needs --copy naming a copy that exists, and refuses outside the canonical checkout without --allow-worktree (63.154849ms)
|
||||
✔ install refuses unless the bus unit runs from the same copy, naming both paths, and changes nothing (231.936445ms)
|
||||
✔ render --copy runs the copy and reads the queue in the checkout; without --copy the unit is unchanged (15.307667ms)
|
||||
✔ the uid header takes only an Authentik uid; the username header still takes a username (289.469602ms)
|
||||
✔ a preview value cannot start with - or . (32.547365ms)
|
||||
✔ status names the copy and whether refactor has moved past it, and says when the unit runs from no copy (401.997477ms)
|
||||
ℹ tests 23
|
||||
ℹ suites 0
|
||||
ℹ pass 23
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 2915.033004
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ Settings form shows every scope and held role; gated save, exact payload, retained draft and no automatic retry (1335.755174ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1452.824887
|
||||
@@ -0,0 +1,12 @@
|
||||
2026-10-18T20:45:04.388Z settings user="jason" changed
|
||||
✔ REQ-WEB-1 signed-in same-origin Settings write reaches exactly one human operation (19.424922ms)
|
||||
✔ REQ-WEB-1 Settings writes require enabled send, named Host, identity, exact Origin and same-origin Fetch Metadata (7.521108ms)
|
||||
✔ REQ-WEB-1 Settings validates JSON, size, revision and strict writable keys before broker call (6.913099ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 150.622982
|
||||
@@ -0,0 +1,13 @@
|
||||
✔ tokens.css and icons.svg are byte copies of docs/design (0.853515ms)
|
||||
✔ JetBrains Mono files match the digests in their sources file, with the OFL text (1.736303ms)
|
||||
✔ shipped strings are unchanged, and the web keeps its write boundary (2.529193ms)
|
||||
✔ shell in a browser: System default, seeded states, 400px, focus and the Ctrl+K palette (5648.682498ms)
|
||||
✔ five states on Board, Inbox, Tasks, Agents and Trail (2540.540351ms)
|
||||
ℹ tests 5
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 8333.442166
|
||||
@@ -0,0 +1,9 @@
|
||||
✔ REQ-LIMIT-4 Settings shows all token kinds and unknown turns beside every total, as a read-only separate section (711.983464ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 843.151611
|
||||
@@ -0,0 +1,10 @@
|
||||
✔ REQ-WEB-1 usage read keeps unknown counts and each token kind; no query or write is accepted (29.983158ms)
|
||||
✔ REQ-WEB-1 malformed usage is refused instead of shown as zero (6.541516ms)
|
||||
ℹ tests 2
|
||||
ℹ suites 0
|
||||
ℹ pass 2
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 175.346876
|
||||
@@ -0,0 +1,11 @@
|
||||
✔ Queue, Business and Settings in their five states, with no move button (3181.735935ms)
|
||||
✔ seeded secrets, Discord ids and paths reach no response and no page; business refusals in the module's words (1378.72498ms)
|
||||
✔ the server log names no config path when the system config refuses (313.494661ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 4996.685583
|
||||
@@ -0,0 +1,237 @@
|
||||
✔ the Board: held roles with no machine sessions, a claim with no address, the toggle kept across a reload, and Message addressed to the role (10382.297582ms)
|
||||
✔ a redirect answer on a Board read, a bus read, a conversation read, a board POST, a module read and a send signs the page out: one line, nothing stale, no further reads (10461.64261ms)
|
||||
✔ browser edge states: loading, empty, malformed, stale, hostile/long values, in-flight reply and appearance fallback (4977.756634ms)
|
||||
Rendered contrast: {"failures":[],"count":330,"lowest":4.504658476260286}
|
||||
✔ served Console browser: real board fixtures, keyboard, drafts, receipts, themes, 320px and failures (10228.978323ms)
|
||||
✔ the README says a refused field table names the file or the key at fault, never a path (3.531522ms)
|
||||
✔ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes (13340.566365ms)
|
||||
✔ bus routes serve the four reads from the reader view, unescaped JSON for the page to escape (271.755184ms)
|
||||
✔ decisions route serves the roles and recent lists from the reader view (368.153433ms)
|
||||
✔ credentials route serves the broker credential status from the reader view (96.039164ms)
|
||||
✔ replies route serves the replies to one message from the reader view (260.225787ms)
|
||||
✔ bus routes are GET-only, have no write verb, and keep the same-origin checks (168.58022ms)
|
||||
✔ bus refusals map to statuses and never carry a path or a stack (300.883768ms)
|
||||
✔ humanCall speaks the human transport protocol without blocking the server (3123.13022ms)
|
||||
✔ busReader takes --business, else the live bus host, else refuses (716.101309ms)
|
||||
✔ humanCall kills a transport that runs past its timeout (572.012503ms)
|
||||
✔ serve refuses a --business value that is not a business id (1259.940814ms)
|
||||
✔ WebUI channel off returns 503 and named recovery for every chat route without a chat operation (87.277345ms)
|
||||
✔ WebUI only selection keeps web chat enabled while retaining the old read envelope (7.802941ms)
|
||||
✔ WebUI channel-disabled recovery text is fixed and never echoes transport text (5.715662ms)
|
||||
✔ chat browser: list/create named projects and threads, hostile labels inert and no implicit writes (5114.598675ms)
|
||||
✔ chat browser: thread drafts, receipts and cursor history stay isolated; refresh never writes (3315.035917ms)
|
||||
✔ chat browser: uncertain writes retain draft, ownership refusal clears it, read-only cannot send (3554.780391ms)
|
||||
✔ chat browser: a late read from A cannot paint B; sign-out clears private state and stops reads (3091.125761ms)
|
||||
✔ chat browser: page forward and deduplicate replies; pending and byte-limit submissions do not duplicate (2978.398458ms)
|
||||
✔ chat browser: scrolled history stays put, New messages and an own send return to the tail (1941.72286ms)
|
||||
✔ chat browser: automatic polling follows a reply without a POST or a lost draft (10930.710103ms)
|
||||
✔ chat browser: display stays bounded while every forward page remains reachable (754.874184ms)
|
||||
✔ chat browser: a confirmed visible message replaces its pending receipt; malformed receipts stay unknown (742.536334ms)
|
||||
✔ chat browser: a refusal elsewhere forgets private chat drafts (677.462007ms)
|
||||
✔ chat browser: a late project creation receipt cannot navigate away from another thread (718.539916ms)
|
||||
✔ chat reads map only fixed verbs, strict forward paging and pure GET (104.517073ms)
|
||||
✔ chat refuses malformed and repeated query/id values before transport (39.091219ms)
|
||||
✔ chat project.create: one verified write, fixed identity/class and private log (11.023378ms)
|
||||
✔ chat project.create: each existing Console write fence makes zero bus calls (51.092227ms)
|
||||
✔ chat project.create: refusal or lost/malformed receipt never retries or invents success (13.595022ms)
|
||||
✔ chat thread.create: one verified write, fixed identity/class and private log (7.787915ms)
|
||||
✔ chat thread.create: each existing Console write fence makes zero bus calls (21.875978ms)
|
||||
✔ chat thread.create: refusal or lost/malformed receipt never retries or invents success (11.604804ms)
|
||||
✔ chat thread.send: one verified write, fixed identity/class and private log (3.814891ms)
|
||||
✔ chat thread.send: each existing Console write fence makes zero bus calls (21.535826ms)
|
||||
✔ chat thread.send: refusal or lost/malformed receipt never retries or invents success (11.89744ms)
|
||||
✔ chat thread.open: one verified write, fixed identity/class and private log (4.494112ms)
|
||||
✔ chat thread.open: each existing Console write fence makes zero bus calls (16.927786ms)
|
||||
✔ chat thread.open: refusal or lost/malformed receipt never retries or invents success (13.715589ms)
|
||||
✔ chat createThread receipt requires an instance even when its id is valid (4.390757ms)
|
||||
✔ chat write receipts expose only the fields belonging to their operation (9.5811ms)
|
||||
✔ chat validates names, body, project and strict empty open payload (37.267969ms)
|
||||
✔ chat read failures redact ownership and refuse invalid transport arrays (10.939821ms)
|
||||
✔ REQ-USER-2 real broker: owned catalog, create/name/filter, isolated history and 403/404 without mutations (621.444452ms)
|
||||
✔ chat repeats every POST boundary even when called behind an admitted request (16.892088ms)
|
||||
✔ configured Console process injects chat through its existing human transport (1054.461813ms)
|
||||
✔ chat assets, GET purity, method and unknown-route refusals are explicit (64.338057ms)
|
||||
✔ conversation view: full history, collapsed tools, hidden thinking, inert hostile content, malformed and reconcile markers (6684.6882ms)
|
||||
✔ conversation view: a fork keeps the open branch, says so, and opens the new one on request (5027.019064ms)
|
||||
✔ conversation view: a newer session with no readable history keeps the marker (3059.553826ms)
|
||||
✔ conversation view: seats without history say so and offer no reply (3162.279241ms)
|
||||
✔ Discord row through real board/WebUI: independent brake/liveness, no Reply, literal content (5995.137047ms)
|
||||
✔ the editor: the list, hostile markdown that runs nothing, the draft, and each save receipt (10081.834002ms)
|
||||
✔ the Console's CSP stands and the editor runs under it; hostile markdown on the load path runs and loads nothing (6796.31493ms)
|
||||
✔ hostile content pasted into the editor runs and loads nothing, and a bad link target is refused in the link bar (4289.364803ms)
|
||||
✔ a pasted image span is kept only for a target the link gate accepts, and a save writes only those (2313.058441ms)
|
||||
✔ a switch of view reads nothing; a reload, and a trip away and back, each read the file exactly once (5586.286737ms)
|
||||
✔ an edit rewrites only the block touched; a save sends the rest byte for byte; the Source view carries the draft (1748.199726ms)
|
||||
✔ a file the editor cannot write back byte for byte opens as Source, says so, cannot save, and the Visual button works once it can (2255.070433ms)
|
||||
✔ a link title pasted with line breaks in it is written on one line, so no HTML block comes of it (878.006237ms)
|
||||
✔ an image alt pasted with line breaks in it is written on one line, so no HTML block comes of it (857.498361ms)
|
||||
✔ an image title pasted with line breaks in it is written on one line, so no HTML block comes of it (736.838857ms)
|
||||
✔ a code block info string pasted with line breaks in it is written on one line, so no HTML block comes of it (760.437937ms)
|
||||
✔ a link title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (753.397169ms)
|
||||
✔ an image title holding a quote after a backslash then a tag is written with the backslash escaped, so the title stays closed (741.369836ms)
|
||||
✔ a link title holding a trailing backslash is written with the backslash escaped, so the title stays closed (643.830295ms)
|
||||
✔ an image title holding a trailing backslash is written with the backslash escaped, so the title stays closed (608.99198ms)
|
||||
✔ a code block info string with a backtick, pasted, is dropped on Save, so the fence stays closed (631.184859ms)
|
||||
✔ a code block info string with a backtick, as a tilde fence can have, is kept as source, not rewritten without it (675.770457ms)
|
||||
✔ the imported source is the tagged upstream source plus the recorded local changes, and nothing else (50.343152ms)
|
||||
✔ every package names its origin and license, and NOTICE lists each (1.069921ms)
|
||||
✔ the build reads only imported source and the editor's own files; the bundle is the recorded build (13.537042ms)
|
||||
✔ MOSAIC_REQUIRE_EDITOR_BUILD: a missing or wrong esbuild skips without it and fails with it; a wrong binary always fails (9.023806ms)
|
||||
✔ the toolchain check, run as a program, exits non-zero without esbuild when the build is required (652.37626ms)
|
||||
▲ [WARNING] Ignoring this import because "third_party/editor/prosemirror-transform/src/mark.ts" was marked as having no side effects [ignored-bare-import]
|
||||
|
||||
third_party/editor/prosemirror-transform/src/index.ts:10:7:
|
||||
10 │ import "./mark"
|
||||
╵ ~~~~~~~~
|
||||
|
||||
"sideEffects" is false in the enclosing "package.json" file:
|
||||
|
||||
third_party/editor/prosemirror-transform/package.json:13:2:
|
||||
13 │ "sideEffects": false,
|
||||
╵ ~~~~~~~~~~~~~
|
||||
|
||||
✔ rebuilding from the source gives the same bytes (needs the pinned esbuild; MOSAIC_REQUIRE_EDITOR_BUILD=1 makes its absence a failure) (658.43078ms)
|
||||
✔ the editor routes serve the built files with their types and no cache (196.937127ms)
|
||||
✔ open and save with no edit writes the same bytes: the goals review and a doc with every element (123.090606ms)
|
||||
✔ open and save with no edit writes the same bytes: every repository doc under docs/ and spec/ (5147.294913ms)
|
||||
✔ the editor source builds markup only with DOM calls, and the bundle has no eval (4.403423ms)
|
||||
✔ the link gate and the image rule are the preview's (1.087537ms)
|
||||
✔ return flow through the conversation view: send, tool call, delayed result, peer message, exact long answers, relaunch (56294.519033ms)
|
||||
✔ REQ-LIMIT-3 REQ-LIMIT-4 Settings shows token limits counted, not enforced and check failed; Reset posts one path; a save keeps the token limits (6904.661229ms)
|
||||
✔ REQ-LIMIT-3 limits read returns only the token rows; no query or write is accepted (246.708125ms)
|
||||
✔ REQ-LIMIT-3 a limits answer without a token list is refused, not shown as no limits (34.11255ms)
|
||||
2026-10-18T20:45:21.476Z settings user="jason" changed
|
||||
✔ REQ-LIMIT-3 a Settings reset reaches the human write with its paths; a reset alone is enough (55.275122ms)
|
||||
✔ REQ-LIMIT-3 the Console reader asks the bus limits verb with no arguments (5.865357ms)
|
||||
✔ the preview source names none of the four string-to-markup sinks (4.047354ms)
|
||||
✔ headings, paragraphs, emphasis and inline code render (3.53358ms)
|
||||
✔ lists, block quotes and code blocks render (2.868783ms)
|
||||
✔ a link is made for http, https and relative targets, with rel and the target shown (2.290007ms)
|
||||
✔ a link with any other scheme, or an evasion of the scheme, stays source text (2.146899ms)
|
||||
✔ an image shows alt text and URL, is never an img element and never loads (0.774435ms)
|
||||
✔ raw HTML, entities and unsupported blocks show as source text, never as elements (0.753635ms)
|
||||
✔ markup inside code and inside link text stays text (0.311725ms)
|
||||
✔ hostile and pathological input stays within its look-ahead budget and under the nesting cap (189.943423ms)
|
||||
✔ trailing blanks and closing hashes are cut by a walk from the end, not a regex that retries inside a blank run (151.931791ms)
|
||||
✔ a link opener with no closer searches at most SPAN characters ahead (886.133884ms)
|
||||
✔ the look-ahead work of one render is a fixed multiple of the text, whatever the opener (2650.665266ms)
|
||||
✔ past the budget an opener is source text, through the path all other text takes (103.859534ms)
|
||||
✔ a normal 200 KiB document renders exactly as it did without a budget, and spends little of it (97.520296ms)
|
||||
✔ a line separator inside a heading, a list item or a fence line does not end the marker line (3.020417ms)
|
||||
✔ a thematic-break line is a paragraph, every other marker line opens a list (1.61526ms)
|
||||
✔ every short line over space, tab, - * _ and a letter is a break exactly when the old regex said so (121.11835ms)
|
||||
✔ one line of marks does not throw, at 4 MiB, whatever the mark or the spacing (17287.826146ms)
|
||||
✔ CRLF and tabs are read like LF and spaces; empty input renders nothing (0.179361ms)
|
||||
✔ messages HTTP read pages and preserves metadata; bad arguments refuse before a read; other reads unchanged (634.945685ms)
|
||||
✔ Console Messages lists late unsolicited messages on polling with sender class time read state and trail; nav count includes beyond the page; reads never deliver (5424.797748ms)
|
||||
✔ Messages nav count polls on Tasks and Board and clears on a Board refusal; messages 403 refuses local pages (5421.804249ms)
|
||||
✔ copy writes the Console paths at the full id, read-only, and leaves an existing copy alone (4695.659822ms)
|
||||
✔ copy refuses a commit off refactor, an unknown one, a worktree and a bad copies directory (3584.862528ms)
|
||||
✔ copy writes nothing when an archived path is missing at the commit (1779.966023ms)
|
||||
✔ a copy that loses the rename race leaves no read-only temp directory behind (2683.690553ms)
|
||||
✔ a copy whose rename fails with no target refuses, writes no copy and leaves no temp directory (1733.372282ms)
|
||||
✔ a copy that meets a target holding files says exists: and moves nothing into it (1033.528714ms)
|
||||
✔ a copy that meets an empty target directory replaces it by rename, not by moving into it (780.998679ms)
|
||||
✔ serve runs from a copy: /healthz 200, the config check, roles and RELEASE from the copy, the queue from --checkout (1069.022439ms)
|
||||
✔ serve refuses a --checkout that is not an absolute directory path (392.102694ms)
|
||||
✔ consoleReads runs the queue read under queueRoot and reads RELEASE under root (78.183166ms)
|
||||
✔ preview options are all three or none, and each is checked (14.414598ms)
|
||||
✔ the CLI refuses a partial or invalid preview flag set at start (2532.178426ms)
|
||||
✔ the CLI with all three flags serves the preview mode (493.727305ms)
|
||||
✔ a request for the public name needs the header equal to the user id, else 401 and nothing read (89.744516ms)
|
||||
✔ the header name matches without regard to case, and the value compare is exact (16.562414ms)
|
||||
✔ the public name with the header reads the bus views, and the Host and Origin are checked first (128.582543ms)
|
||||
✔ in preview mode every write answers 403 read-only, from the public name and loopback, and reaches nothing (36.069222ms)
|
||||
✔ loopback requests are unchanged in preview mode, and the bus views work with the board down (14.448677ms)
|
||||
✔ a proxy that rewrites Host to the loopback port gets 403 on its first request, whatever the user (44.473862ms)
|
||||
✔ a repeated Host is 400 before any other check, in preview mode and without it (39.91518ms)
|
||||
✔ without the preview flags the public name is refused and writes still reach the board (55.54362ms)
|
||||
✔ a signed-in same-origin save reaches exactly one human operation and returns the new commit (50.347958ms)
|
||||
✔ a save needs send, the named Host, the user, the exact Origin and same-origin Fetch Metadata (24.024304ms)
|
||||
✔ a save validates JSON, strict keys, text values and the 1 MiB body before the bus is asked (46.375561ms)
|
||||
✔ a body that is JSON but not an object is refused 400, not thrown on (24.475436ms)
|
||||
✔ the 1 MiB limit is this route only; Settings and messages keep 16 KiB (5.269524ms)
|
||||
✔ a bus refusal is reported as not saved with its own status; stale-base tells the user to reload (13.667789ms)
|
||||
✔ a save whose answer is lost or unusable is reported unknown and is never retried (10.055603ms)
|
||||
✔ the file list and one file read take strict queries and arrive in the expected shape (11.499249ms)
|
||||
✔ reads work without --send; an unusable bus answer is a bad response, a refusal keeps its status (8.759203ms)
|
||||
✔ /api/config says edit only where a save can pass (5.342738ms)
|
||||
✔ redactor: config, dataRoot, any absolute path, Discord ids and the JSON parser quote (11.646856ms)
|
||||
✔ credential state from the date alone, as the bus states it (2.267063ms)
|
||||
✔ queue: rows, one row, ids and methods, notes; no path or id from a row (1745.518706ms)
|
||||
✔ queue: a refused read fails closed with the store's text, redacted (1305.765694ms)
|
||||
✔ queue: a store that fails to load, or a child that dies, gives a fixed message with no path or stack (2755.3646ms)
|
||||
✔ business: names, vars on the allowlist, authority, credential metadata only (77.186832ms)
|
||||
✔ business: missing or invalid file refuses with the module's text, redacted (71.42993ms)
|
||||
✔ business without --business: the live bus host, else no-bus-host; no system config: not-configured (94.076009ms)
|
||||
✔ settings: release, board, loopback address, notifier binding name only (559.252929ms)
|
||||
✔ task fields: the committed table with no reads configured, GET only; a bad table refuses with no path (98.673786ms)
|
||||
✔ bus-status: a refused boot shows reason, file and last good load; a live host or an ok boot clears it (26.087962ms)
|
||||
✔ both presentations replace old activity with relaunch notice, label retained history, then resume after new activity (4376.609053ms)
|
||||
✔ reported return flow and relative Age: reply sent from the inspector, then the new answer appears there without manual refresh (23279.721414ms)
|
||||
✔ the send box: held roles, the draft and caret across a refresh, each receipt, one POST per Send, and the trail link; the board Reply on a 4xx and a 5xx (7515.761253ms)
|
||||
✔ a sent receipt lists its replies as the page refreshes, oldest first and capped, and marks none delivered or read (12417.027992ms)
|
||||
✔ startServer takes send only as a function and only with the preview mode (25.835786ms)
|
||||
✔ the CLI refuses --send without the preview flags, and without a configured bus (1524.962385ms)
|
||||
✔ the CLI with --send and a configured bus sends through the human transport and logs one line (445.082581ms)
|
||||
✔ without --send the route is read-only like every other write, and config says no send (55.714779ms)
|
||||
✔ with --send every other write is still 403 read-only, and nothing reaches the board or bus (23.01408ms)
|
||||
✔ config says send only on the public name with --send on (11.5953ms)
|
||||
✔ a send without the signed-in user is 401 and is neither sent nor logged, loopback included (21.206983ms)
|
||||
✔ each request check refuses before anything is sent, and logs the refusal without the body (77.907648ms)
|
||||
✔ a send passes exactly to, body and in_reply_to, answers the id, and logs it (8.447351ms)
|
||||
✔ a crafted role name cannot forge a log line (9.622905ms)
|
||||
✔ a bus refusal is not sent, with its status; an outcome the bus could not confirm is unknown and never retried (21.449866ms)
|
||||
✔ through the human transport the request is exactly the business, message.send and the keys (318.358802ms)
|
||||
✔ against a real broker: the message is written once as a human send, and its refusals map (219.338119ms)
|
||||
✔ loopback host and board origin fail closed (13.15891ms)
|
||||
✔ real board fixture passes through WebUI; assets and isolated seen/reply work (329.676269ms)
|
||||
✔ proxy preserves exact request bytes, status and receipt, rejects forms and malformed JSON, never follows redirect (139.250253ms)
|
||||
✔ unreachable board reports URL; CLI rejects unsupported options (1655.398962ms)
|
||||
✔ render prints the unit without the preview flags (54.42358ms)
|
||||
✔ render carries every serve flag, the preview set included (49.137161ms)
|
||||
✔ a partial preview set is refused (91.263618ms)
|
||||
✔ a value the unit cannot carry is refused, for every flag (1703.332335ms)
|
||||
✔ the rendered unit names none of the human proof agent markers and sets no agent variable (197.734767ms)
|
||||
✔ install into --dir with --no-reload writes the file whole, then reports unchanged (321.404445ms)
|
||||
✔ install without --no-reload runs daemon-reload and nothing that starts the unit (406.729906ms)
|
||||
✔ uninstall refuses while the unit is running, with or without --no-reload, and removes it once it is not (1179.502002ms)
|
||||
✔ status prints the unit state and GET /healthz on the installed port (1071.699701ms)
|
||||
✔ usage: an unknown verb or flag, and start or enable, exit 4 (286.252398ms)
|
||||
✔ without --send, render is the template with its placeholders filled, byte for byte (109.080717ms)
|
||||
✔ render --send with the preview set ends ExecStart with --send and changes nothing else (232.787968ms)
|
||||
✔ --send without the whole preview set is refused and writes nothing (508.361129ms)
|
||||
✔ install --send into --dir with --no-reload writes the sending unit, and status says whether it sends (928.738403ms)
|
||||
✔ uninstall and status take no --send (163.618865ms)
|
||||
✔ install refuses while the unit is running, in any state but inactive or failed, and changes nothing (753.370878ms)
|
||||
✔ when the state read fails, install and uninstall refuse with one line and change nothing (129.233136ms)
|
||||
✔ install needs --copy naming a copy that exists, and refuses outside the canonical checkout without --allow-worktree (119.719881ms)
|
||||
✔ install refuses unless the bus unit runs from the same copy, naming both paths, and changes nothing (434.741471ms)
|
||||
✔ render --copy runs the copy and reads the queue in the checkout; without --copy the unit is unchanged (27.84003ms)
|
||||
✔ the uid header takes only an Authentik uid; the username header still takes a username (498.778209ms)
|
||||
✔ a preview value cannot start with - or . (48.955357ms)
|
||||
✔ status names the copy and whether refactor has moved past it, and says when the unit runs from no copy (529.699788ms)
|
||||
✔ Settings form shows every scope and held role; gated save, exact payload, retained draft and no automatic retry (4857.67332ms)
|
||||
2026-10-18T20:45:33.010Z settings user="jason" changed
|
||||
✔ REQ-WEB-1 signed-in same-origin Settings write reaches exactly one human operation (49.901574ms)
|
||||
✔ REQ-WEB-1 Settings writes require enabled send, named Host, identity, exact Origin and same-origin Fetch Metadata (37.960286ms)
|
||||
✔ REQ-WEB-1 Settings validates JSON, size, revision and strict writable keys before broker call (40.441374ms)
|
||||
✔ tokens.css and icons.svg are byte copies of docs/design (1.660188ms)
|
||||
✔ JetBrains Mono files match the digests in their sources file, with the OFL text (3.502056ms)
|
||||
✔ shipped strings are unchanged, and the web keeps its write boundary (7.042718ms)
|
||||
✔ shell in a browser: System default, seeded states, 400px, focus and the Ctrl+K palette (9840.41447ms)
|
||||
✔ five states on Board, Inbox, Tasks, Agents and Trail (2838.409952ms)
|
||||
✔ REQ-LIMIT-4 Settings shows all token kinds and unknown turns beside every total, as a read-only separate section (3312.774588ms)
|
||||
✔ REQ-WEB-1 usage read keeps unknown counts and each token kind; no query or write is accepted (66.107475ms)
|
||||
✔ REQ-WEB-1 malformed usage is refused instead of shown as zero (31.563937ms)
|
||||
✔ Queue, Business and Settings in their five states, with no move button (6742.458615ms)
|
||||
✔ seeded secrets, Discord ids and paths reach no response and no page; business refusals in the module's words (1568.545388ms)
|
||||
✔ the server log names no config path when the system config refuses (530.127828ms)
|
||||
ℹ tests 214
|
||||
ℹ suites 0
|
||||
ℹ pass 214
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 57268.98663
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user