diff --git a/.github/dependabot.yml b/.github/dependabot.yml index a1046b8..e0e5f81 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,8 +9,20 @@ updates: directory: "/" schedule: interval: "weekly" + open-pull-requests-limit: 0 + groups: + npm-security-updates: + applies-to: security-updates + patterns: + - "*" - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" + open-pull-requests-limit: 0 + groups: + github-actions-security-updates: + applies-to: security-updates + patterns: + - "*" diff --git a/CHANGELOG.md b/CHANGELOG.md index bb18bdc..6735bd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Release notes since `v1.0.6` + +| Area | Package updates | Impact | +| --- | --- | --- | +| UI components | `bootstrap-vue-next` `0.42.0 -> 0.45.5` | Bootstrap component compatibility and rendering stability. | +| Vue runtime | `vue` `3.5.34 -> 3.5.35`, `vue-router` `4.6.4 -> 5.0.6`, `@fortawesome/vue-fontawesome` `3.1.3 -> 3.2.0` | Framework and router patch updates, plus icon component compatibility. | +| Icons | `@fortawesome/free-regular-svg-icons`, `@fortawesome/free-solid-svg-icons` | Updated icon set used by the UI. | +| RDF and data handling | `rdflib` `2.3.8 -> 2.3.9`, `vis-data` `6.4.1 -> 8.0.4` | RDF parsing and graph/data handling updates. | +| Tooling | `vite` `8.0.14 -> 8.0.16`, `core-js` `3.47.0 -> 3.49.0`, `semver` `7.8.0 -> 7.8.1`, `tmp` `0.2.5 -> 0.2.7`, `form-data` `4.0.5 -> 4.0.6` | Build/runtime and indirect dependency stability and security updates. | + +### Release process fixes since `v1.0.6` + +- `fix: make release tag selection stable` prevented the release workflow from picking the wrong tag. +- `fix: skip existing release versions` prevented duplicate release creation for already published versions. +- The Prism white-screen/startup crash is avoided by registering the Turtle and SPARQL grammars locally in the app, which keeps the patched Vite build workable. + ## [v1.0.6] - 2026-05-05 ### Changed diff --git a/package-lock.json b/package-lock.json index cacd8e0..8dd2624 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1116,9 +1116,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1136,9 +1133,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1156,9 +1150,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1176,9 +1167,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1196,9 +1184,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1216,9 +1201,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6097,10 +6079,20 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" diff --git a/src/main.ts b/src/main.ts index e413bd1..969a625 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,11 +6,9 @@ import vSelect from 'vue-select' import 'bootstrap/dist/css/bootstrap.css' import 'bootstrap-vue-next/dist/bootstrap-vue-next.css' import 'prismjs/themes/prism.css' +import '@/prism-languages' import 'vue-prism-editor/dist/prismeditor.min.css' import 'vue-select/dist/vue-select.css' -import 'prismjs' -import 'prismjs/components/prism-turtle' -import 'prismjs/components/prism-sparql' import { createEntityConfigs } from '@/entity/entityConfigs' import type { EntitySpec } from '@/entity/EntityConfig' import App from './App.vue' diff --git a/src/prism-languages.ts b/src/prism-languages.ts new file mode 100644 index 0000000..2af84fb --- /dev/null +++ b/src/prism-languages.ts @@ -0,0 +1,2 @@ +import 'prismjs/components/prism-turtle' +import 'prismjs/components/prism-sparql' diff --git a/vite.config.ts b/vite.config.ts index f6670aa..9506f25 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,9 +2,36 @@ import path from 'path' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +const prismGlobalComponents = new Set([ + 'prism-turtle.js', + 'prism-sparql.js', +]) + +function prismComponentImportPlugin() { + return { + name: 'prism-component-import', + transform(code: string, id: string) { + const normalizedId = id.replaceAll('\\', '/') + + if (!normalizedId.includes('/node_modules/prismjs/components/')) { + return undefined + } + + if (!prismGlobalComponents.has(path.basename(normalizedId))) { + return undefined + } + + // Prism language components expect a free global `Prism` script variable. + // Make it explicit for Vite/Rolldown module builds. Upstream issue: + // https://github.com/PrismJS/prism/issues/4088 + return `import Prism from 'prismjs'\n${code}` + }, + } +} + export default defineConfig(({ mode }) => ({ base: mode === 'production' ? '/app/' : '/', - plugins: [vue()], + plugins: [prismComponentImportPlugin(), vue()], define: { global: 'globalThis', 'process.env': {},