From 60bb5d6079d9b9e61325c248d0cdfc75c92afb08 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Tue, 27 Oct 2026 20:46:58 +1100 Subject: [PATCH 1/2] fix view not showing new content when switching from source to view --- .../source-editor-card/SourceEditorCard.ts | 45 +++++++++++++----- .../source-provider/SourceProvider.ts | 22 ++++++++- src/primitives/context.ts | 1 + test/sourceEditorCard.test.js | 47 +++++++++++++++++++ test/sourceProvider.test.js | 15 ++++++ 5 files changed, 117 insertions(+), 13 deletions(-) diff --git a/src/components/source-editor-card/SourceEditorCard.ts b/src/components/source-editor-card/SourceEditorCard.ts index 9055712..1b6130a 100644 --- a/src/components/source-editor-card/SourceEditorCard.ts +++ b/src/components/source-editor-card/SourceEditorCard.ts @@ -230,26 +230,49 @@ export default class SourceEditorCard extends WebComponent { } const options: { data: string; contentType: string | undefined; headers?: { 'if-match': string } } = { data, contentType } if (eTag) options.headers = { 'if-match': eTag } // avoid overwriting changed files -> status 412 + + let response: Response try { - const response = await fetcher.webOperation('PUT', saveSubject.uri, options) + response = await fetcher.webOperation('PUT', saveSubject.uri, options) if (!happy(response, 'PUT')) return + } catch (err: any) { + const { showError } = getStatusSection() + showError('Error saving back: ' + err) + return + } + + if (sourceContext.resourceUri === saveSubject.uri) { this._originalContent = data - /// @@ show edited: make save button disabled until edited again. - try { - const response = await fetcher.webOperation('HEAD', saveSubject.uri) // , defaultFetchHeaders()) - if (!happy(response, 'HEAD')) return - const metadata = await solidLogicSingleton.resource.fetchMetadata(saveSubject) + sourceContext.updateContent(data) + } + + let refreshError: unknown + try { + if (typeof fetcher.load === 'function') { + await fetcher.load(saveSubject, { force: true, clearPreviousData: true }) + } + const metadataResponse = await fetcher.webOperation('HEAD', saveSubject.uri) // , defaultFetchHeaders()) + if (!metadataResponse.ok) { + throw new Error(`HTTP error on HEAD! Status: ${metadataResponse.status}`) + } + const metadata = await solidLogicSingleton.resource.fetchMetadata(saveSubject) + if (sourceContext.resourceUri === saveSubject.uri) { sourceContext.updateMetadata({ contentType: metadata.contentType, eTag: metadata.eTag }) - this._resetEditorState() - } catch (err) { - throw err } - } catch (err: any) { + } catch (err) { + refreshError = err + } + + if (refreshError) { const { showError } = getStatusSection() - showError('Error saving back: ' + err) + showError('Saved, but failed to refresh metadata: ' + refreshError) + } + + if (sourceContext.resourceUri === saveSubject.uri) { + this._resetEditorState() } } diff --git a/src/components/source-provider/SourceProvider.ts b/src/components/source-provider/SourceProvider.ts index 310f87a..43fbfbc 100644 --- a/src/components/source-provider/SourceProvider.ts +++ b/src/components/source-provider/SourceProvider.ts @@ -32,6 +32,7 @@ function createSourceContextValue(input: { sourcePaneState: SourcePaneState editorMetadata: EditorMetadata updateSourcePaneState: SourceProvider['updateSourcePaneState'] + updateContent: SourceProvider['updateOriginalContent'] updateMetadata: SourceProvider['updateEditorMetadata'] }): SourceContext { return { @@ -41,6 +42,7 @@ function createSourceContextValue(input: { sourcePaneState: input.sourcePaneState, editorMetadata: input.editorMetadata, updateSourcePaneState: input.updateSourcePaneState, + updateContent: input.updateContent, updateMetadata: input.updateMetadata, } } @@ -76,17 +78,21 @@ export default class SourceProvider extends WebComponent { sourcePaneState: createDefaultSourcePaneState(), editorMetadata: createDefaultEditorMetadata(), updateSourcePaneState: () => {}, + updateContent: () => {}, updateMetadata: () => {}, }) + private loadGeneration = 0 + private loadContentAndMetadata = async () => { if (!this.context || !this.subject) return const subjectUri = this.subject.uri + const loadGeneration = ++this.loadGeneration try { const { content, metadata } = await solidLogicSingleton.resource.fetchContentAndMetadata(this.subject) - if (this.subject?.uri !== subjectUri) return + if (this.subject?.uri !== subjectUri || loadGeneration !== this.loadGeneration) return this.originalContent = content this.updateEditorMetadata(metadata) @@ -99,13 +105,20 @@ export default class SourceProvider extends WebComponent { } private refreshSourceContextValue() { + const resourceUri = this.subject?.uri + const updateContent = (content: string) => { + if (this.subject?.uri !== resourceUri) return + this.updateOriginalContent(content) + } + this.sourceContextValue = createSourceContextValue({ dataLoaded: this.dataLoaded, - resourceUri: this.subject?.uri, + resourceUri, originalContent: this.originalContent, sourcePaneState: this.sourcePaneState, editorMetadata: this.editorMetadata, updateSourcePaneState: this.updateSourcePaneState, + updateContent, updateMetadata: this.updateEditorMetadata, }) } @@ -122,6 +135,10 @@ export default class SourceProvider extends WebComponent { } } + updateOriginalContent = (content: string) => { + this.originalContent = content + } + updateEditorMetadata = (metadata: EditorMetadata) => { this.editorMetadata = { contentType: metadata.contentType, @@ -187,6 +204,7 @@ export default class SourceProvider extends WebComponent { } if (changedProperties.has('context') || changedProperties.has('subject')) { + this.loadGeneration++ this.dataLoaded = false } diff --git a/src/primitives/context.ts b/src/primitives/context.ts index ee28193..49c4006 100644 --- a/src/primitives/context.ts +++ b/src/primitives/context.ts @@ -8,6 +8,7 @@ export interface SourceContext { sourcePaneState: SourcePaneState, editorMetadata: EditorMetadata, updateSourcePaneState: (key: K, value: SourcePaneState[K]) => void, + updateContent: (content: string) => void, updateMetadata: (metadata: EditorMetadata) => void, } diff --git a/test/sourceEditorCard.test.js b/test/sourceEditorCard.test.js index ba81915..5956bd1 100644 --- a/test/sourceEditorCard.test.js +++ b/test/sourceEditorCard.test.js @@ -1,6 +1,7 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' import { ContextProvider } from '@lit/context' import { DEFAULT_FILE_EXPLORER_CONTEXT, fileExplorerContext } from 'solid-ui' +import { solidLogicSingleton } from 'solid-logic' import { sourceContext } from '../src/primitives/context' const { initializeEditor } = vi.hoisted(() => ({ initializeEditor: vi.fn(async () => {}) })) @@ -45,6 +46,7 @@ describe('source-pane-source-editor-card', () => { eTag: '"123"' }, updateSourcePaneState: vi.fn(), + updateContent: vi.fn(), updateMetadata: vi.fn() } @@ -275,4 +277,49 @@ describe('source-pane-source-editor-card', () => { expect(editor.replaceContent).toHaveBeenCalledTimes(1) expect(editor.replaceContent).toHaveBeenCalledWith('content three') }) + + it('finalizes a successful save when metadata refresh fails', async () => { + const webOperation = vi.fn() + .mockResolvedValueOnce({ ok: true, status: 200 }) + .mockResolvedValueOnce({ ok: true, status: 200 }) + const fetchMetadata = vi.spyOn(solidLogicSingleton.resource, 'fetchMetadata') + .mockRejectedValueOnce(new Error('metadata unavailable')) + const card = createCard({ contentType: 'text/plain' }) + const editor = { + focusEditor: vi.fn(), + setReadOnly: vi.fn(), + replaceContent: vi.fn(), + resetDirtyState: vi.fn(), + setLanguage: vi.fn(async () => {}), + getValue: vi.fn(() => 'updated'), + destroy: vi.fn() + } + card._editor = editor + card._editorReady = true + card.fileExplorerContext = { + ...card.fileExplorerContext, + store: { + fetcher: { + webOperation, + load: vi.fn(async () => {}) + } + } + } + document.body.appendChild(card) + card.beginEditing() + await card.updateComplete + + await card.saveBack() + + expect(webOperation).toHaveBeenNthCalledWith( + 1, + 'PUT', + card.fileExplorerContext.subjectUri, + expect.objectContaining({ data: 'updated' }) + ) + expect(fetchMetadata).toHaveBeenCalledOnce() + expect(card.sourceContext.updateContent).toHaveBeenCalledWith('updated') + expect(card.shadowRoot.querySelector('.sourcePaneSaveButton')).toBeNull() + fetchMetadata.mockRestore() + }) }) diff --git a/test/sourceProvider.test.js b/test/sourceProvider.test.js index 44a2489..7a5691c 100644 --- a/test/sourceProvider.test.js +++ b/test/sourceProvider.test.js @@ -275,4 +275,19 @@ describe('source-pane-source-provider', () => { expect(provider.originalContent).toBe('fresh content') expect(provider.editorMetadata).toEqual({ contentType: 'text/plain', eTag: '"fresh"' }) }) + + it('ignores content updates from a previous resource after the subject changes', async () => { + const provider = createProvider() + document.body.appendChild(provider) + await flushUpdates(provider) + + const updateContentForFirstResource = provider.sourceContextValue.updateContent + provider.subject = { uri: 'https://example.test/two.txt' } + await provider.updateComplete + + updateContentForFirstResource('stale content') + + expect(provider.originalContent).toBe('content one') + expect(provider.sourceContextValue.resourceUri).toBe('https://example.test/two.txt') + }) }) \ No newline at end of file From 51cd086dcfa40600eb0fbeb1446cf511eacbb4e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 27 Oct 2026 10:13:22 +0000 Subject: [PATCH 2/2] chore: update solidos dependencies (dev: solid-logic@6.0.1-5 pane-registry@5.0.2-1 solid-ui@5.0.2-4) (latest: rdflib@2.4.1) --- package-lock.json | 190 +++++++++++++++++++++++++++------------------- package.json | 4 +- 2 files changed, 113 insertions(+), 81 deletions(-) diff --git a/package-lock.json b/package-lock.json index b706f31..a15907f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ "lit": "^3.3.3", "pane-registry": "5.0.2-1", "rdflib": "2.4.1", - "solid-logic": "6.0.1-4", - "solid-ui": "5.0.2-3", + "solid-logic": "6.0.1-5", + "solid-ui": "5.0.2-4", "vite": "^8.0.16", "vitest": "^4.0.18", "vitest-axe": "^0.1.0" @@ -495,9 +495,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.11.tgz", + "integrity": "sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g==", "dev": true, "license": "MIT", "engines": { @@ -554,13 +554,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", - "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.8" + "@babel/types": "^7.29.11" }, "bin": { "parser": "bin/babel-parser.js" @@ -867,9 +867,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", - "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.11.tgz", + "integrity": "sha512-iARF4jjHSM0v8DImCACPXrwEltBP3DgqDpXTvjAMBAVpyEY0LiGss78wvI+KtmW+IJNEvZ5sOhPDCsOsXsIybA==", "dev": true, "license": "MIT", "dependencies": { @@ -917,9 +917,9 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", - "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.11.tgz", + "integrity": "sha512-f8kTDM/nTvpLeafb+TJ4jboFr/Y3BbC+QzgPpPGzSKJqWLnj9LW0WLqv4XKA11LX5sr+EgvLE6Ix3YsCEusodw==", "dev": true, "license": "MIT", "dependencies": { @@ -928,7 +928,7 @@ "@babel/helper-globals": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-replace-supers": "^7.29.7", - "@babel/traverse": "^7.29.7" + "@babel/traverse": "^7.29.10" }, "engines": { "node": ">=6.9.0" @@ -1554,9 +1554,9 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", - "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.11.tgz", + "integrity": "sha512-5xWGhfuMgbOfIjsk/I2c4uMnoqRwQdKYi4QjvybQrcEVE0G9/p3qmIkp2Sxe8YF8DGNNVs5whfwNqIM5684XoQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1894,13 +1894,13 @@ } }, "node_modules/@babel/types": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", - "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-string-parser": "^7.29.11", "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { @@ -3471,15 +3471,15 @@ "license": "MIT" }, "node_modules/@typescript-eslint/parser": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.0.tgz", - "integrity": "sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.1.tgz", + "integrity": "sha512-ZGwZP4OCfyA0AQTpEAMWz+rtX01DRhQWW5hB0ucKDEIX5U7jdmPSaMx94rQfaPAQzIYz2BimOgKOJtjfpRFQ9g==", "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.72.0", - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/typescript-estree": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0", + "@typescript-eslint/scope-manager": "8.72.1", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/typescript-estree": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1", "debug": "^4.4.3" }, "engines": { @@ -3495,13 +3495,13 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz", - "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.1.tgz", + "integrity": "sha512-fAuVMkwdO/huI8nyo/WKnNKf6Gag93S56Rh3Ts5mGcavwSdaN8tRg1gCeIGX8PF+nzp1BjGfO4gHhGzW1J6jTg==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.72.0", - "@typescript-eslint/types": "^8.72.0", + "@typescript-eslint/tsconfig-utils": "^8.72.1", + "@typescript-eslint/types": "^8.72.1", "debug": "^4.4.3" }, "engines": { @@ -3516,13 +3516,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz", - "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.1.tgz", + "integrity": "sha512-lC/t6eMCZZQAAKZEYGL6RDVSuFehpdmMT6h+nJIjIa6oylN/PwDgDVtEIbB7O9xFfZYtZAYLoLlDNWKJhtF+uQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0" + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3533,9 +3533,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz", - "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.1.tgz", + "integrity": "sha512-e4D5R5vpeAEPBxT2BAzsFQL3sbwyeeeo5+aczgNSRK1V734jE7pTqaGFU+fXapWEQwnZbpFaTn32+Z8DwS6OTg==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3549,9 +3549,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz", - "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.1.tgz", + "integrity": "sha512-LmE5IhQet1BWOWEXqBrVtBPsMAOQ6Nzk35d+WLh3mk4EUF33sqlfxjio1MdYeSvKSG5skactKKuixBIKXhL4Rw==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3562,15 +3562,15 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz", - "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.1.tgz", + "integrity": "sha512-DAlUoUV93hIvrtIQLwCbmZQYVZwOMhiHJrOVUUIWicFZaIYjTRqlY3I/NZevfkLmSqkNHRu2qYDcq9lrn16oOQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.72.0", - "@typescript-eslint/tsconfig-utils": "8.72.0", - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0", + "@typescript-eslint/project-service": "8.72.1", + "@typescript-eslint/tsconfig-utils": "8.72.1", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3589,12 +3589,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz", - "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.1.tgz", + "integrity": "sha512-SB8xqipSzZHUePCCLNeYxqnxq83X61/qzNhjQGbTfjxGZIeOEP7tBgWYX05Tcd6CgE02WdTJnh5b8kMZJ/+bnQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.72.0", + "@typescript-eslint/types": "8.72.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -4206,9 +4206,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.31", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.31.tgz", - "integrity": "sha512-b0k7wXlWjpuL/Uxb/pYlpjY0ej5BjAmurtPUk3eRGuloI4yjK32m8TiKUQ81l1ptcLjKS/KH2+uqIolZti1x4Q==", + "version": "2.11.33", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.33.tgz", + "integrity": "sha512-yiVKDX+qCMRKBE084lXvq9EcwFUhKZ2nU8TK1EQQuOgPNR/lmbGxXOeDdlGUqC2Zz11Cs9rk1d/8NfgBmlkt0w==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4241,9 +4241,9 @@ } }, "node_modules/browserslist": { - "version": "4.29.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.4.tgz", - "integrity": "sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==", + "version": "4.29.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.5.tgz", + "integrity": "sha512-khTmKu5NGYTotqcYo8Bew2k4RAE9PuXRSFRXG2lQBrCEQHyeQ/vX6gKMxfokwywBsLiXZMnHsmWMG1pnO8J7uQ==", "dev": true, "funding": [ { @@ -4261,10 +4261,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.11.29", - "caniuse-lite": "^1.0.30001816", - "electron-to-chromium": "^1.5.459", - "node-releases": "^2.0.59", + "baseline-browser-mapping": "^2.11.33", + "caniuse-lite": "^1.0.30001819", + "electron-to-chromium": "^1.5.464", + "node-releases": "^2.0.60", "update-browserslist-db": "^1.3.4" }, "bin": { @@ -4735,9 +4735,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.463", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.463.tgz", - "integrity": "sha512-nVWNU6ltFjopvOdD44J4zoBkgO0M+WZiFKKFV7EjebOH9z0KNphk6bCEjplXtJofL21ARIuuwWOCsFkBVklm6w==", + "version": "1.5.465", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.465.tgz", + "integrity": "sha512-zg4iUpbeGw7YNZsswc2xKr2uiBex2d8dELAXo92Icw3but1ULbrvK8USe6wVLaWjgJnKBARv0pchx9Owktx6wQ==", "dev": true, "license": "ISC" }, @@ -7471,6 +7471,22 @@ "solid-logic": "6.0.1-4" } }, + "node_modules/pane-registry/node_modules/solid-logic": { + "version": "6.0.1-4", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-6.0.1-4.tgz", + "integrity": "sha512-EVvS+5g91aUoONqGtM1vPnMimtwH6c/72td5b4qBRcudDjeRU/hycPg8p5abmx1YWZseLA1EFK76+E/t5bcPFw==", + "license": "MIT", + "dependencies": { + "@dokieli/web-access-control": "^1.1.0", + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4", + "vite": "^8.0.16", + "vitest": "^4.1.9" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7578,9 +7594,9 @@ } }, "node_modules/postcss": { - "version": "8.5.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", - "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", + "version": "8.5.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz", + "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==", "funding": [ { "type": "opencollective", @@ -8195,9 +8211,9 @@ "license": "ISC" }, "node_modules/solid-logic": { - "version": "6.0.1-4", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-6.0.1-4.tgz", - "integrity": "sha512-EVvS+5g91aUoONqGtM1vPnMimtwH6c/72td5b4qBRcudDjeRU/hycPg8p5abmx1YWZseLA1EFK76+E/t5bcPFw==", + "version": "6.0.1-5", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-6.0.1-5.tgz", + "integrity": "sha512-U6IBElhpCpNkNrJq4TujBT7VMfl8xyY0U2PiuyltI5SiORhMAtLMHOqO6liSH5PO50y7UjAOMP1G8VbLjnYIOw==", "license": "MIT", "dependencies": { "@dokieli/web-access-control": "^1.1.0", @@ -8217,9 +8233,9 @@ "license": "MIT" }, "node_modules/solid-ui": { - "version": "5.0.2-3", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-5.0.2-3.tgz", - "integrity": "sha512-ERESxhk6dYjoh/PcsKAwQ5UuxJbO2CTfIG2dccQrEn6/vSNpvVzsVkXsU2QCKemrSirzKiBbbB/eZTYdxLczkA==", + "version": "5.0.2-4", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-5.0.2-4.tgz", + "integrity": "sha512-lT6Grklrtd9eDn6Rt9HMRDstcMNmbb/7Vy0oOUOLVpA5njmq/+P1A3eNvkLMRqR9cCsXCrwCkAYqdbql+uazRQ==", "license": "MIT", "dependencies": { "@awesome.me/webawesome": "^3.9.0", @@ -8252,6 +8268,22 @@ "fsevents": "*" } }, + "node_modules/solid-ui/node_modules/solid-logic": { + "version": "6.0.1-4", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-6.0.1-4.tgz", + "integrity": "sha512-EVvS+5g91aUoONqGtM1vPnMimtwH6c/72td5b4qBRcudDjeRU/hycPg8p5abmx1YWZseLA1EFK76+E/t5bcPFw==", + "license": "MIT", + "dependencies": { + "@dokieli/web-access-control": "^1.1.0", + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4", + "vite": "^8.0.16", + "vitest": "^4.1.9" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/solidos-toolkit": { "version": "1.0.0-dev.2fb6be508170f3b28ca79d738aae71cd48f6d87e", "resolved": "https://registry.npmjs.org/solidos-toolkit/-/solidos-toolkit-1.0.0-dev.2fb6be508170f3b28ca79d738aae71cd48f6d87e.tgz", diff --git a/package.json b/package.json index 2f5e2b5..82c8547 100644 --- a/package.json +++ b/package.json @@ -72,8 +72,8 @@ "lit": "^3.3.3", "pane-registry": "5.0.2-1", "rdflib": "2.4.1", - "solid-logic": "6.0.1-4", - "solid-ui": "5.0.2-3", + "solid-logic": "6.0.1-5", + "solid-ui": "5.0.2-4", "vite": "^8.0.16", "vitest": "^4.0.18", "vitest-axe": "^0.1.0"