diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad169f0..e83cd0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,6 @@ jobs: - run: pnpm typecheck - run: pnpm lint - run: pnpm format:check - - run: pnpm notices:check test: name: Unit tests (${{ matrix.name }}) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e8ec89f..e1c11f4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,7 @@ on: - "apps/desktop/scripts/**" - "apps/desktop/e2e-packaged/**" - "scripts/fetch-tectonic.mjs" + - "scripts/notices.mjs" - ".github/workflows/release.yml" # Run by hand from a branch to try the same without a pull request. workflow_dispatch: diff --git a/.gitignore b/.gitignore index b2d6c31..d0ea37f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ dist/ out/ build/ coverage/ +# made when the app is packaged (scripts/notices.mjs) +/THIRD_PARTY_NOTICES.md *.tsbuildinfo # OS / editor diff --git a/README.md b/README.md index 77b2b5c..ce719dd 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ described in [`SECURITY.md`](SECURITY.md). Changes are listed in [`CHANGELOG.md` ## Licence -[MIT](LICENSE). Lucid is built on open-source software; see [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). Special thanks +[MIT](LICENSE). Lucid is built on open-source software; the list of what it bundles and their licences comes with the app +(Help, Licences of the Software Lucid Uses). Special thanks to [BlockNote](https://www.blocknotejs.org), [Mermaid](https://mermaid.js.org), [Tectonic](https://tectonic-typesetting.github.io), [Electron](https://www.electronjs.org) and [iA Writer Mono](https://github.com/iaolo/iA-Fonts). diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md deleted file mode 100644 index b005b58..0000000 --- a/THIRD_PARTY_NOTICES.md +++ /dev/null @@ -1,336 +0,0 @@ -# Third-party notices - -Lucid is built on open-source software. The packages below are bundled into the app (production dependencies of the desktop -app and the MCP server). Each is under the license shown; the full license texts are in each package's folder in -`node_modules`. Generated by `node scripts/notices.mjs`; do not edit by hand. - -## Notes - -- **MPL-2.0** (BlockNote: `@blocknote/core`, `@blocknote/mantine`, `@blocknote/react`): used unmodified as libraries. Its - source is at https://github.com/TypeCellOS/BlockNote. Lucid does not use BlockNote's `xl-*` packages (GPL or commercial). -- **EPL-2.0** (`elkjs`, the graph layout engine behind Mermaid's ELK layout): used unmodified; source at https://github.com/kieler/elkjs. -- **Tectonic** (MIT, https://tectonic-typesetting.github.io), the PDF engine, comes with the app as a separate program - (`Contents/Resources/bin/tectonic`), unmodified. The TeX support files it downloads the first time it makes a PDF come from - Tectonic's own bundle (the TeX Live distribution, under its various free licenses). -- **Electron and Chromium** (MIT and BSD-style licenses, https://www.electronjs.org): the app's runtime. Their license texts are - in the app (`Contents/Resources/LICENSE` and `Contents/Resources/LICENSES.chromium.html`). -- **LM Studio** is a separate application, not part of Lucid, that serves the language model. -- Lucid's own code never copies from GPL projects (VoiceInk, whisper-writer). - -## Packages (280) - -### (MIT OR CC0-1.0) (1) - -- type-fest 5.10.0 — https://github.com/sindresorhus/type-fest#readme - -### (MPL-2.0 OR Apache-2.0) (1) - -- dompurify 3.4.16 — https://github.com/cure53/DOMPurify - -### 0BSD (1) - -- tslib 2.8.1 — https://www.typescriptlang.org/ - -### Apache-2.0 (6) - -- @chevrotain/cst-dts-gen 13.2.0 — https://github.com/Chevrotain/chevrotain#readme -- @chevrotain/gast 13.2.0 — https://github.com/Chevrotain/chevrotain#readme -- @chevrotain/regexp-to-ast 13.2.0 — https://github.com/Chevrotain/chevrotain#readme -- @chevrotain/types 13.2.0 — https://chevrotain.io/documentation/ -- @chevrotain/utils 13.2.0 — https://github.com/Chevrotain/chevrotain#readme -- chevrotain 13.2.0 — https://chevrotain.io/docs/ - -### BSD-2-Clause (1) - -- json-schema-typed 8.0.2 — https://github.com/RemyRylan/json-schema-typed/tree/main/dist/node - -### BSD-3-Clause (8) - -- d3-array 2.12.1 — https://d3js.org/d3-array/ -- d3-ease 3.0.1 — https://d3js.org/d3-ease/ -- d3-path 1.0.9 — https://d3js.org/d3-path/ -- d3-sankey 0.12.3 — https://github.com/d3/d3-sankey -- d3-shape 1.3.7 — https://d3js.org/d3-shape/ -- fast-uri 3.1.8 — https://github.com/fastify/fast-uri -- qs 6.16.0 — https://github.com/ljharb/qs -- rw 1.3.3 — https://github.com/mbostock/rw - -### EPL-2.0 (1) - -- elkjs 0.9.3 — https://github.com/kieler/elkjs#readme - -### ISC (40) - -- d3 7.9.0 — https://d3js.org -- d3-array 3.2.4 — https://d3js.org/d3-array/ -- d3-axis 3.0.0 — https://d3js.org/d3-axis/ -- d3-brush 3.0.0 — https://d3js.org/d3-brush/ -- d3-chord 3.0.1 — https://d3js.org/d3-chord/ -- d3-color 3.1.0 — https://d3js.org/d3-color/ -- d3-contour 4.0.2 — https://d3js.org/d3-contour/ -- d3-delaunay 6.0.4 — https://github.com/d3/d3-delaunay -- d3-dispatch 3.0.1 — https://d3js.org/d3-dispatch/ -- d3-drag 3.0.0 — https://d3js.org/d3-drag/ -- d3-dsv 3.0.1 — https://d3js.org/d3-dsv/ -- d3-fetch 3.0.1 — https://d3js.org/d3-fetch/ -- d3-force 3.0.0 — https://d3js.org/d3-force/ -- d3-format 3.1.2 — https://d3js.org/d3-format/ -- d3-geo 3.1.1 — https://d3js.org/d3-geo/ -- d3-hierarchy 3.1.2 — https://d3js.org/d3-hierarchy/ -- d3-interpolate 3.0.1 — https://d3js.org/d3-interpolate/ -- d3-path 3.1.0 — https://d3js.org/d3-path/ -- d3-polygon 3.0.1 — https://d3js.org/d3-polygon/ -- d3-quadtree 3.0.1 — https://d3js.org/d3-quadtree/ -- d3-random 3.0.1 — https://d3js.org/d3-random/ -- d3-scale 4.0.2 — https://d3js.org/d3-scale/ -- d3-scale-chromatic 3.1.0 — https://d3js.org/d3-scale-chromatic/ -- d3-selection 3.0.0 — https://d3js.org/d3-selection/ -- d3-shape 3.2.0 — https://d3js.org/d3-shape/ -- d3-time 3.1.0 — https://d3js.org/d3-time/ -- d3-time-format 4.1.0 — https://d3js.org/d3-time-format/ -- d3-timer 3.0.1 — https://d3js.org/d3-timer/ -- d3-transition 3.0.1 — https://d3js.org/d3-transition/ -- d3-zoom 3.0.0 — https://d3js.org/d3-zoom/ -- delaunator 5.1.0 — https://github.com/mapbox/delaunator#readme -- inherits 2.0.4 — https://github.com/isaacs/inherits#readme -- internmap 1.0.1 — https://github.com/mbostock/internmap/ -- internmap 2.0.3 — https://github.com/mbostock/internmap/ -- isexe 2.0.0 — https://github.com/isaacs/isexe#readme -- once 1.4.0 — https://github.com/isaacs/once#readme -- setprototypeof 1.2.0 — https://github.com/wesleytodd/setprototypeof -- which 2.0.2 — https://github.com/isaacs/node-which#readme -- wrappy 1.0.2 — https://github.com/npm/wrappy -- zod-to-json-schema 3.25.2 — https://github.com/StefanTerdell/zod-to-json-schema#readme - -### MIT (216) - -- @antfu/install-pkg 2.1.0 — https://github.com/antfu-collective/install-pkg#readme -- @braintree/sanitize-url 7.1.2 — https://github.com/braintree/sanitize-url#readme -- @emoji-mart/data 1.2.1 — https://missiveapp.com/open/emoji-mart -- @floating-ui/core 1.8.0 — https://floating-ui.com -- @floating-ui/dom 1.8.0 — https://floating-ui.com -- @floating-ui/react 0.27.20 — https://floating-ui.com/docs/react -- @floating-ui/react-dom 2.1.9 — https://floating-ui.com/docs/react-dom -- @floating-ui/utils 0.2.12 — https://floating-ui.com -- @handlewithcare/prosemirror-inputrules 0.1.4 -- @hono/node-server 2.1.4 — https://github.com/honojs/node-server -- @iconify/types 2.0.0 — https://github.com/iconify/iconify -- @iconify/utils 3.1.7 — https://iconify.design/docs/libraries/utils/ -- @mantine/core 9.7.1 — https://mantine.dev/ -- @mantine/hooks 9.7.1 — https://mantine.dev -- @mermaid-js/layout-elk 1.0.1 — https://github.com/mermaid-js/mermaid#readme -- @mermaid-js/parser 2.0.1 — https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/parser/#readme -- @modelcontextprotocol/sdk 1.32.1 — https://modelcontextprotocol.io -- @shikijs/types 4.5.0 — https://github.com/shikijs/shiki#readme -- @shikijs/vscode-textmate 10.0.2 — https://github.com/shikijs/vscode-textmate#readme -- @tiptap/core 3.31.4 — https://tiptap.dev -- @tiptap/extension-bold 3.31.4 — https://tiptap.dev -- @tiptap/extension-bubble-menu 3.31.4 — https://tiptap.dev -- @tiptap/extension-code 3.31.4 — https://tiptap.dev -- @tiptap/extension-floating-menu 3.31.4 — https://tiptap.dev -- @tiptap/extension-italic 3.31.4 — https://tiptap.dev -- @tiptap/extension-strike 3.31.4 — https://tiptap.dev -- @tiptap/extension-text 3.31.4 — https://tiptap.dev -- @tiptap/extension-underline 3.31.4 — https://tiptap.dev -- @tiptap/extensions 3.31.4 — https://tiptap.dev -- @tiptap/pm 3.31.4 — https://tiptap.dev -- @tiptap/react 3.31.4 — https://tiptap.dev -- @types/d3 7.4.3 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3 -- @types/d3-array 3.2.2 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-array -- @types/d3-axis 3.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-axis -- @types/d3-brush 3.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-brush -- @types/d3-chord 3.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-chord -- @types/d3-color 3.1.3 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-color -- @types/d3-contour 3.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-contour -- @types/d3-delaunay 6.0.4 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-delaunay -- @types/d3-dispatch 3.0.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-dispatch -- @types/d3-drag 3.0.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-drag -- @types/d3-dsv 3.0.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-dsv -- @types/d3-ease 3.0.2 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-ease -- @types/d3-fetch 3.0.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-fetch -- @types/d3-force 3.0.10 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-force -- @types/d3-format 3.0.4 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-format -- @types/d3-geo 3.1.1 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-geo -- @types/d3-hierarchy 3.1.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-hierarchy -- @types/d3-interpolate 3.0.4 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-interpolate -- @types/d3-path 3.1.1 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-path -- @types/d3-polygon 3.0.2 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-polygon -- @types/d3-quadtree 3.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-quadtree -- @types/d3-random 3.0.4 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-random -- @types/d3-scale 4.0.9 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-scale -- @types/d3-scale-chromatic 3.1.0 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-scale-chromatic -- @types/d3-selection 3.0.12 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-selection -- @types/d3-shape 3.2.0 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-shape -- @types/d3-time 3.0.4 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-time -- @types/d3-time-format 4.0.3 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-time-format -- @types/d3-timer 3.0.2 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-timer -- @types/d3-transition 3.0.9 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-transition -- @types/d3-zoom 3.0.9 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-zoom -- @types/geojson 7946.0.16 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/geojson -- @types/hast 3.0.5 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hast -- @types/react 19.3.0 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react -- @types/react-dom 19.3.0 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom -- @types/trusted-types 2.0.7 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/trusted-types -- @types/unist 3.0.3 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/unist -- @types/use-sync-external-store 0.0.6 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/use-sync-external-store -- @types/use-sync-external-store 1.5.0 — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/use-sync-external-store -- @upsetjs/venn.js 2.0.0 — https://github.com/upsetjs/venn.js -- accepts 2.0.0 — https://github.com/jshttp/accepts#readme -- ajv 8.20.0 — https://ajv.js.org -- ajv-formats 3.0.1 — https://github.com/ajv-validator/ajv-formats#readme -- body-parser 2.3.0 — https://github.com/expressjs/body-parser#readme -- bytes 3.1.2 — https://github.com/visionmedia/bytes.js#readme -- call-bind-apply-helpers 1.0.2 — https://github.com/ljharb/call-bind-apply-helpers#readme -- call-bound 1.0.4 — https://github.com/ljharb/call-bound#readme -- clsx 2.1.1 — https://github.com/lukeed/clsx#readme -- commander 7.2.0 — https://github.com/tj/commander.js#readme -- commander 8.3.0 — https://github.com/tj/commander.js#readme -- content-disposition 2.0.1 — https://github.com/jshttp/content-disposition#readme -- content-type 1.0.5 — https://github.com/jshttp/content-type#readme -- content-type 2.1.0 — https://github.com/jshttp/content-type#readme -- cookie 0.7.2 — https://github.com/jshttp/cookie#readme -- cookie-signature 1.2.2 — https://github.com/visionmedia/node-cookie-signature#readme -- cors 2.8.6 — https://github.com/expressjs/cors#readme -- cose-base 1.0.3 — https://github.com/iVis-at-Bilkent/cose-base#readme -- cose-base 2.2.0 — https://github.com/iVis-at-Bilkent/cose-base#readme -- cross-spawn 7.0.6 — https://github.com/moxystudio/node-cross-spawn -- csstype 3.2.3 — https://github.com/frenic/csstype#readme -- cytoscape 3.34.3 — http://js.cytoscape.org -- cytoscape-cose-bilkent 4.1.0 — https://github.com/cytoscape/cytoscape.js-cose-bilkent -- cytoscape-fcose 2.2.0 — https://github.com/iVis-at-Bilkent/cytoscape.js-fcose -- dagre-d3-es 7.0.14 — https://github.com/tbo47/dagre-es#readme -- dayjs 1.11.23 — https://day.js.org -- debug 4.4.3 — https://github.com/debug-js/debug#readme -- depd 2.0.0 — https://github.com/dougwilson/nodejs-depd#readme -- detect-node-es 1.1.0 — https://github.com/thekashey/detect-node -- dunder-proto 1.0.1 — https://github.com/es-shims/dunder-proto#readme -- ee-first 1.1.1 — https://github.com/jonathanong/ee-first#readme -- emoji-mart 5.6.0 — https://missiveapp.com/open/emoji-mart -- encodeurl 2.0.0 — https://github.com/pillarjs/encodeurl#readme -- es-define-property 1.0.1 — https://github.com/ljharb/es-define-property#readme -- es-errors 1.3.0 — https://github.com/ljharb/es-errors#readme -- es-object-atoms 1.1.2 — https://github.com/ljharb/es-object-atoms#readme -- es-toolkit 1.52.0 — https://es-toolkit.dev -- escape-html 1.0.3 — https://github.com/component/escape-html#readme -- etag 1.8.1 — https://github.com/jshttp/etag#readme -- eventsource 3.0.7 — https://github.com/EventSource/eventsource#readme -- eventsource-parser 3.1.1 — https://github.com/rexxars/eventsource-parser#readme -- express 5.3.0 — https://expressjs.com/ -- express-rate-limit 8.7.1 — https://github.com/express-rate-limit/express-rate-limit -- fast-deep-equal 3.1.3 — https://github.com/epoberezkin/fast-deep-equal#readme -- fast-equals 5.4.4 — https://github.com/planttheidea/fast-equals#readme -- finalhandler 2.1.1 — https://github.com/pillarjs/finalhandler#readme -- forwarded 0.2.0 — https://github.com/jshttp/forwarded#readme -- fresh 2.0.0 — https://github.com/jshttp/fresh#readme -- function-bind 1.1.2 — https://github.com/Raynos/function-bind -- get-intrinsic 1.3.0 — https://github.com/ljharb/get-intrinsic#readme -- get-nonce 1.0.1 — https://github.com/theKashey/get-nonce -- get-proto 1.0.1 — https://github.com/ljharb/get-proto#readme -- gopd 1.2.0 — https://github.com/ljharb/gopd#readme -- hachure-fill 0.5.2 — https://github.com/pshihn/hachure-fill#readme -- has-symbols 1.1.0 — https://github.com/ljharb/has-symbols#readme -- hasown 2.0.4 — https://github.com/inspect-js/hasOwn#readme -- hono 4.13.13 — https://hono.dev -- http-errors 2.0.1 — https://github.com/jshttp/http-errors#readme -- iconv-lite 0.6.3 — https://github.com/pillarjs/iconv-lite -- iconv-lite 0.7.3 — https://github.com/pillarjs/iconv-lite -- import-meta-resolve 4.2.0 — https://github.com/wooorm/import-meta-resolve#readme -- ip-address 10.7.3 — https://github.com/beaugunderson/ip-address#readme -- ipaddr.js 1.9.1 — https://github.com/whitequark/ipaddr.js#readme -- is-promise 4.0.0 — https://github.com/then/is-promise#readme -- jose 6.2.12 — https://github.com/panva/jose -- json-schema-traverse 1.0.0 — https://github.com/epoberezkin/json-schema-traverse#readme -- katex 0.16.47 — https://katex.org -- khroma 2.1.0 — https://github.com/fabiospampinato/khroma#readme -- layout-base 1.0.2 — https://github.com/iVis-at-Bilkent/layout-base#readme -- layout-base 2.0.1 — https://github.com/iVis-at-Bilkent/layout-base#readme -- lib0 1.0.0-rc.22 — https://github.com/dmonad/lib0#readme -- lodash-es 4.18.1 — https://lodash.com/custom-builds -- marked 16.4.2 — https://marked.js.org -- math-intrinsics 1.1.0 — https://github.com/es-shims/math-intrinsics#readme -- media-typer 1.1.1 — https://github.com/jshttp/media-typer#readme -- merge-descriptors 2.0.0 — https://github.com/sindresorhus/merge-descriptors#readme -- mermaid 12.1.0 — https://github.com/mermaid-js/mermaid#readme -- mime-db 1.54.0 — https://github.com/jshttp/mime-db#readme -- mime-types 3.0.2 — https://github.com/jshttp/mime-types#readme -- ms 2.1.3 — https://github.com/vercel/ms#readme -- negotiator 1.1.0 — https://github.com/jshttp/negotiator#readme -- object-assign 4.1.1 — https://github.com/sindresorhus/object-assign#readme -- object-inspect 1.13.4 — https://github.com/inspect-js/object-inspect -- on-finished 2.4.1 — https://github.com/jshttp/on-finished#readme -- orderedmap 2.1.1 — https://github.com/marijnh/orderedmap#readme -- package-manager-detector 1.9.0 — https://github.com/antfu-collective/package-manager-detector#readme -- parseurl 1.3.3 — https://github.com/pillarjs/parseurl#readme -- path-data-parser 0.1.0 — https://github.com/pshihn/path-data-parser#readme -- path-key 3.1.1 — https://github.com/sindresorhus/path-key#readme -- path-to-regexp 8.4.2 — https://github.com/pillarjs/path-to-regexp#readme -- pkce-challenge 5.0.1 — https://github.com/crouchcd/pkce-challenge#readme -- points-on-curve 0.2.0 — https://github.com/pshihn/bezier-points#readme -- points-on-path 0.2.1 — https://github.com/pshihn/points-on-path#readme -- prosemirror-changeset 2.4.4 -- prosemirror-commands 1.7.2 -- prosemirror-dropcursor 1.8.4 -- prosemirror-gapcursor 1.4.1 — https://github.com/prosemirror/prosemirror-gapcursor#readme -- prosemirror-highlight 0.15.3 — https://github.com/ocavue/prosemirror-highlight#readme -- prosemirror-history 1.5.1 -- prosemirror-inputrules 1.5.1 — https://github.com/prosemirror/prosemirror-inputrules#readme -- prosemirror-keymap 1.2.3 — https://github.com/prosemirror/prosemirror-keymap#readme -- prosemirror-model 1.25.12 -- prosemirror-schema-list 1.5.1 — https://github.com/prosemirror/prosemirror-schema-list#readme -- prosemirror-state 1.4.4 — https://github.com/prosemirror/prosemirror-state#readme -- prosemirror-tables 1.8.5 — https://github.com/ProseMirror/prosemirror-tables#readme -- prosemirror-transform 1.12.2 -- prosemirror-view 1.42.6 -- proxy-addr 2.0.8 — https://github.com/jshttp/proxy-addr#readme -- range-parser 1.3.0 — https://github.com/jshttp/range-parser#readme -- raw-body 3.0.2 — https://github.com/stream-utils/raw-body#readme -- react 19.3.0 — https://react.dev/ -- react-dom 19.3.0 — https://react.dev/ -- react-number-format 5.4.5 — https://s-yadav.github.io/react-number-format/docs/intro -- react-remove-scroll 2.7.2 — https://github.com/theKashey/react-remove-scroll#readme -- react-remove-scroll-bar 2.3.8 — https://github.com/theKashey/react-remove-scroll-bar#readme -- react-style-singleton 2.2.3 — https://github.com/theKashey/react-style-singleton#readme -- require-from-string 2.0.2 — https://github.com/floatdrop/require-from-string#readme -- rope-sequence 1.3.4 — https://github.com/marijnh/rope-sequence#readme -- roughjs 4.6.6 — https://roughjs.com -- router 2.2.0 — https://github.com/pillarjs/router#readme -- safer-buffer 2.1.2 — https://github.com/ChALkeR/safer-buffer#readme -- scheduler 0.28.0 — https://react.dev/ -- send 1.2.1 — https://github.com/pillarjs/send#readme -- serve-static 2.2.1 — https://github.com/expressjs/serve-static#readme -- shebang-command 2.0.0 — https://github.com/kevva/shebang-command#readme -- shebang-regex 3.0.0 — https://github.com/sindresorhus/shebang-regex#readme -- side-channel 1.1.1 — https://github.com/ljharb/side-channel#readme -- side-channel-list 1.0.1 — https://github.com/ljharb/side-channel-list#readme -- side-channel-map 1.0.1 — https://github.com/ljharb/side-channel-map#readme -- side-channel-weakmap 1.0.2 — https://github.com/ljharb/side-channel-weakmap#readme -- statuses 2.0.2 — https://github.com/jshttp/statuses#readme -- stylis 4.4.0 — https://github.com/thysultan/stylis.js -- tabbable 6.5.0 — https://github.com/focus-trap/tabbable#readme -- tagged-tag 1.0.0 — https://github.com/sindresorhus/tagged-tag#readme -- tinyexec 1.3.1 — https://github.com/tinylibs/tinyexec#readme -- toidentifier 1.0.1 — https://github.com/component/toidentifier#readme -- ts-dedent 2.3.0 — https://github.com/tamino-martinius/node-ts-dedent#readme -- type-is 2.1.0 — https://github.com/jshttp/type-is#readme -- unpipe 1.0.0 — https://github.com/stream-utils/unpipe#readme -- use-callback-ref 1.3.3 — https://github.com/theKashey/use-callback-ref#readme -- use-sidecar 1.1.3 — https://github.com/theKashey/use-sidecar -- use-sync-external-store 1.6.0 — https://github.com/facebook/react#readme -- uuid 14.0.3 — https://github.com/uuidjs/uuid#readme -- vary 1.1.2 — https://github.com/jshttp/vary#readme -- w3c-keyname 2.2.8 — https://github.com/marijnh/w3c-keyname#readme -- zod 4.6.5 — https://zod.dev - -### MPL-2.0 (3) - -- @blocknote/core 0.55.0 — https://github.com/TypeCellOS/BlockNote -- @blocknote/mantine 0.55.0 — https://github.com/TypeCellOS/BlockNote -- @blocknote/react 0.55.0 — https://github.com/TypeCellOS/BlockNote - -### OFL-1.1 (1) - -- @fontsource/ia-writer-mono 5.3.0 — https://fontsource.org/fonts/ia-writer-mono - -### Unlicense (1) - -- robust-predicates 3.0.3 — https://github.com/mourner/robust-predicates#readme diff --git a/apps/desktop/package.json b/apps/desktop/package.json index c696ade..b848733 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -11,7 +11,7 @@ "preview": "electron-vite preview", "e2e": "electron-vite build && playwright test", "e2e:real": "electron-vite build && playwright test -c playwright.real.config.ts", - "prepack": "node ../../scripts/fetch-tectonic.mjs && node node_modules/electron/install.js && pnpm --filter @lucid/mcp bundle && electron-vite build", + "prepack": "node ../../scripts/notices.mjs && node ../../scripts/fetch-tectonic.mjs && node node_modules/electron/install.js && pnpm --filter @lucid/mcp bundle && electron-vite build", "dist": "pnpm prepack && electron-builder --publish never", "e2e:packaged": "playwright test -c playwright.packaged.config.ts", "dist:dir": "pnpm prepack && electron-builder --dir" diff --git a/package.json b/package.json index 242bad3..dc9ae41 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "ci": "pnpm typecheck && pnpm lint && pnpm format:check && pnpm test", "mcp:build": "pnpm --filter @lucid/mcp bundle", "notices": "node scripts/notices.mjs", - "notices:check": "node scripts/notices.mjs --check", "eval": "node packages/evals/scripts/eval.mjs", "dist": "pnpm --filter @lucid/desktop dist", "e2e:packaged": "pnpm --filter @lucid/desktop e2e:packaged", diff --git a/scripts/notices.mjs b/scripts/notices.mjs index 2dfdfdc..ab3200c 100644 --- a/scripts/notices.mjs +++ b/scripts/notices.mjs @@ -1,12 +1,14 @@ import { execFileSync } from "node:child_process"; -import { readFileSync, writeFileSync } from "node:fs"; +import { writeFileSync } from "node:fs"; import { fileURLToPath } from "node:url"; /** * Writes THIRD_PARTY_NOTICES.md from the production dependencies pnpm installed: `node scripts/notices.mjs`. - * `--check` fails when the file is out of date (run it after changing dependencies). + * The file comes with the packaged app (Help, Third-party notices), because the licenses of what is bundled ask for it; it is + * made when the app is packaged (`prepack`) and is not kept in the repository. */ -const OUT = fileURLToPath(new URL("../THIRD_PARTY_NOTICES.md", import.meta.url)); +const ROOT = fileURLToPath(new URL("..", import.meta.url)); +const OUT = `${ROOT}THIRD_PARTY_NOTICES.md`; // A license pnpm cannot read from a package, checked by hand against the package's own repository. const KNOWN = { khroma: "MIT" }; @@ -14,6 +16,9 @@ const KNOWN = { khroma: "MIT" }; const raw = execFileSync("pnpm", ["licenses", "list", "--prod", "--json"], { encoding: "utf8", maxBuffer: 50_000_000, + cwd: ROOT, + // On Windows pnpm is a .cmd file, which only a shell can start. + shell: process.platform === "win32", }); const byLicense = JSON.parse(raw); @@ -58,20 +63,5 @@ for (const [lic, list] of groups) { } const text = `${lines.join("\n")}\n`; -if (process.argv.includes("--check")) { - const current = (() => { - try { - return readFileSync(OUT, "utf8"); - } catch { - return ""; - } - })(); - if (current !== text) { - console.error("THIRD_PARTY_NOTICES.md is out of date. Run: node scripts/notices.mjs"); - process.exit(1); - } - console.log("THIRD_PARTY_NOTICES.md is up to date."); -} else { - writeFileSync(OUT, text); - console.log(`wrote ${OUT} (${String(rows.length)} packages)`); -} +writeFileSync(OUT, text); +console.log(`wrote ${OUT} (${String(rows.length)} packages)`); diff --git a/site/index.html b/site/index.html index e7f036f..2e7a76d 100644 --- a/site/index.html +++ b/site/index.html @@ -1014,9 +1014,7 @@