1
0
mirror of https://github.com/laurent22/joplin.git synced 2026-04-08 11:04:42 +02:00

Compare commits

...

8 Commits

Author SHA1 Message Date
renovate[bot]
4421bf8bde Update dependency sass to v1.95.0 (#15044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 08:57:41 +01:00
renovate[bot]
f0eb41fe6c Update dependency @types/serviceworker to v0.0.173 (#15046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 08:57:31 +01:00
Joplin Bot
9e997503a1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-07 13:30:00 +00:00
renovate[bot]
3a6b4b12e7 Update dependency react-native-share to v12.2.2 (#15039)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-07 04:40:17 +00:00
Laurent Cozic
f0a7f55366 Desktop release v3.6.8 2026-04-06 22:55:35 +01:00
Joplin Bot
cb2756160b Doc: Auto-update documentation
Auto-updated using release-website.sh
2026-04-05 18:53:39 +00:00
Laurent Cozic
379a53eca5 Revert "Desktop: Fixes #14613: Fix JPEG image paste from clipboard on Linux (#14750)"
This reverts commit 05fc3e9104.

Ref: https://github.com/laurent22/joplin/issues/15022#issuecomment-4189250496
2026-04-05 18:48:56 +01:00
renovate[bot]
548d1a49ba Update dependency @types/uuid to v11 (#15018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-05 18:46:19 +01:00
11 changed files with 112 additions and 124 deletions

View File

@@ -1,24 +1,10 @@
import Setting from '@joplin/lib/models/Setting';
import { processImagesInPastedHtml, processPastedHtml, getResourcesFromPasteEvent } from './resourceHandling';
import { processImagesInPastedHtml, processPastedHtml } from './resourceHandling';
import markupLanguageUtils from '@joplin/lib/markupLanguageUtils';
import HtmlToMd from '@joplin/lib/HtmlToMd';
import { HtmlToMarkdownHandler, MarkupToHtmlHandler } from './types';
import { setupDatabaseAndSynchronizer, switchClient } from '@joplin/lib/testing/test-utils';
jest.mock('electron', () => ({
clipboard: {
has: jest.fn(),
readBuffer: jest.fn(),
},
}));
interface ClipboardMock {
has: jest.Mock;
readBuffer: jest.Mock;
}
const mockClipboard = (require('electron') as { clipboard: ClipboardMock }).clipboard;
const createTestMarkupConverters = () => {
const markupToHtml: MarkupToHtmlHandler = async (markupLanguage, markup, options) => {
const conv = markupLanguageUtils.newMarkupToHtml({}, {
@@ -37,11 +23,6 @@ const createTestMarkupConverters = () => {
};
describe('resourceHandling', () => {
afterEach(() => {
mockClipboard.has.mockReset();
mockClipboard.readBuffer.mockReset();
});
it('should sanitize pasted HTML', async () => {
Setting.setConstant('resourceDir', '/home/.config/joplin/resources');
@@ -148,39 +129,4 @@ describe('resourceHandling', () => {
expect(result).not.toContain(expectAbsent);
expect(result).not.toContain('data:');
});
// Tests for getResourcesFromPasteEvent - clipboard image paste (issue #14613)
// The test environment (non-Electron, no sharp) skips image validation and
// just copies the file, so any non-empty buffer works as test data.
const testImageBuffer = Buffer.from(minimalPng, 'base64');
test.each([
{ format: 'image/jpeg', description: 'JPEG (bug #14613)' },
{ format: 'image/jpg', description: 'JPG alias' },
{ format: 'image/png', description: 'PNG (regression check)' },
])('should paste $description image from clipboard via getResourcesFromPasteEvent', async ({ format }) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
mockClipboard.has.mockImplementation((f: string) => f === format);
mockClipboard.readBuffer.mockImplementation((f: string) => {
return f === format ? testImageBuffer : Buffer.alloc(0);
});
const mockEvent = { preventDefault: jest.fn() };
const result = await getResourcesFromPasteEvent(mockEvent);
expect(result.length).toBe(1);
expect(result[0]).toContain('](:/');
expect(mockEvent.preventDefault).toHaveBeenCalledTimes(1);
});
test.each([
{ description: 'clipboard has no image', hasResult: false },
{ description: 'buffer is empty despite has() returning true', hasResult: true },
])('should return empty when $description', async ({ hasResult }) => {
mockClipboard.has.mockReturnValue(hasResult);
mockClipboard.readBuffer.mockReturnValue(Buffer.alloc(0));
const mockEvent = { preventDefault: jest.fn() };
const result = await getResourcesFromPasteEvent(mockEvent);
expect(result).toEqual([]);
expect(mockEvent.preventDefault).not.toHaveBeenCalled();
});
});

View File

@@ -93,38 +93,28 @@ export function resourcesStatus(resourceInfos: any) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied
export async function getResourcesFromPasteEvent(event: any) {
const output = [];
const formats = clipboard.availableFormats();
for (let i = 0; i < formats.length; i++) {
const format = formats[i].toLowerCase();
const formatType = format.split('/')[0];
// clipboard.has() and readBuffer() are used instead of availableFormats() and
// readImage(), which don't work for JPEG on Linux.
// https://github.com/laurent22/joplin/issues/14613
const supportedFormats = ['image/png', 'image/jpeg', 'image/jpg'];
for (const format of supportedFormats) {
if (!clipboard.has(format)) continue;
const data = clipboard.readBuffer(format);
if (!data || data.length === 0) continue;
if (event) event.preventDefault();
const fileExt = mimeUtils.toFileExtension(format);
const filePath = `${Setting.value('tempDir')}/${md5(Date.now() + Math.random())}.${fileExt}`;
let md = null;
try {
await shim.fsDriver().writeFile(filePath, data, 'buffer');
md = await commandAttachFileToBody('', [filePath]);
} finally {
try {
await shim.fsDriver().remove(filePath);
} catch (cleanupError) {
logger.warn('getResourcesFromPasteEvent: Failed to remove temporary file.', cleanupError);
if (formatType === 'image') {
// writeImageToFile can process only image/jpeg, image/jpg or image/png mime types
if (['image/png', 'image/jpg', 'image/jpeg'].indexOf(format) < 0) {
continue;
}
}
if (event) event.preventDefault();
if (md) {
output.push(md);
break;
const image = clipboard.readImage();
const fileExt = mimeUtils.toFileExtension(format);
const filePath = `${Setting.value('tempDir')}/${md5(Date.now())}.${fileExt}`;
await shim.writeImageToFile(image, format, filePath);
const md = await commandAttachFileToBody('', [filePath]);
await shim.fsDriver().remove(filePath);
if (md) output.push(md);
}
}
return output;

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "3.6.7",
"version": "3.6.8",
"description": "Joplin for Desktop",
"main": "main.bundle.js",
"private": true,

View File

@@ -77,7 +77,7 @@
"react-native-rsa-native": "2.0.5",
"react-native-safe-area-context": "5.6.2",
"react-native-securerandom": "1.0.1",
"react-native-share": "12.2.1",
"react-native-share": "12.2.2",
"react-native-sqlite-storage": "6.0.1",
"react-native-svg": "15.15.1",
"react-native-url-polyfill": "2.0.0",
@@ -116,7 +116,7 @@
"@types/node": "18.19.130",
"@types/react": "19.1.10",
"@types/react-redux": "7.1.33",
"@types/serviceworker": "0.0.172",
"@types/serviceworker": "0.0.173",
"@types/tar-stream": "3.1.4",
"babel-jest": "29.7.0",
"babel-loader": "9.1.3",

View File

@@ -30,7 +30,7 @@
"@types/node-rsa": "1.1.4",
"@types/react": "19.1.10",
"@types/react-dom": "19.1.7",
"@types/uuid": "10.0.0",
"@types/uuid": "11.0.0",
"jest": "29.7.0",
"jest-expect-message": "1.1.3",
"jsdom": "26.1.0",

View File

@@ -30,7 +30,7 @@
"@joplin/utils": "~3.6",
"@koa/cors": "3.4.3",
"@types/qrcode": "1.5.6",
"@types/uuid": "10.0.0",
"@types/uuid": "11.0.0",
"bcryptjs": "2.4.3",
"bulma": "1.0.4",
"compare-versions": "6.1.1",

View File

@@ -61,7 +61,7 @@
"jest": "29.7.0",
"js-yaml": "4.1.1",
"rss": "1.2.2",
"sass": "1.94.3",
"sass": "1.95.0",
"sqlite3": "5.1.6",
"style-to-js": "1.1.21",
"ts-node": "10.9.2",

View File

@@ -211,6 +211,10 @@
"v3.6.4": true,
"android-v3.6.14": true,
"ios-v13.6.3": true,
"v3.6.6": true
"v3.6.6": true,
"v3.6.7": true,
"android-v3.6.15": true,
"ios-v13.6.4": true,
"v3.6.8": true
}
}

View File

@@ -33,7 +33,7 @@
"@types/jest-expect-message": "1.1.0",
"@types/koa": "2.15.0",
"@types/sharp": "0.32.0",
"@types/uuid": "10.0.0",
"@types/uuid": "11.0.0",
"gulp": "4.0.2",
"jest": "29.7.0",
"jest-expect-message": "1.1.3",

View File

@@ -1,5 +1,42 @@
# Joplin Desktop Changelog
## [v3.6.8](https://github.com/laurent22/joplin/releases/tag/v3.6.8) (Pre-release) - 2026-04-07T07:28:36Z
- Desktop: Fixed regression that prevented images from being pasted in editor ([#14750](https://github.com/laurent22/joplin/issues/14750))
## [v3.6.7](https://github.com/laurent22/joplin/releases/tag/v3.6.7) (Pre-release) - 2026-04-05T15:21:11Z
- Improved: Added fullscreen shortcut (Ctrl + Cmd + F) ([#14926](https://github.com/laurent22/joplin/issues/14926)) ([#9637](https://github.com/laurent22/joplin/issues/9637) by [@DevrG03](https://github.com/DevrG03))
- Improved: Completed date/time is shown as a number ([#14808](https://github.com/laurent22/joplin/issues/14808)) ([#14797](https://github.com/laurent22/joplin/issues/14797) by [@Pixels57](https://github.com/Pixels57))
- Improved: Enable Copy and Select All in viewer and read-only modes ([#14956](https://github.com/laurent22/joplin/issues/14956) by [@FischLu](https://github.com/FischLu))
- Improved: Improve checkbox completion icon in detailed note list ([#14780](https://github.com/laurent22/joplin/issues/14780)) ([#14778](https://github.com/laurent22/joplin/issues/14778) by [@Ehtesham-Zahid](https://github.com/Ehtesham-Zahid))
- Improved: Improve clarity of master password warning message ([#14724](https://github.com/laurent22/joplin/issues/14724)) ([#14717](https://github.com/laurent22/joplin/issues/14717) by [@Vinayreddy765](https://github.com/Vinayreddy765))
- Improved: Replace smalltalk with React Dialog to add password visibility in encryption setup ([#14739](https://github.com/laurent22/joplin/issues/14739) by [@himanshumishra1309](https://github.com/himanshumishra1309))
- Improved: Revert: Start sync when app opens or resumes ([#14889](https://github.com/laurent22/joplin/issues/14889))
- Improved: Updated packages @playwright/test (v1.57.0), esbuild (v0.27.1), fs-extra (v11.3.3), glob (v11.1.0), nan (v2.24.0)
- Improved: Upgrade Electron to v40.8.3 ([#14882](https://github.com/laurent22/joplin/issues/14882) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Accessibility: Fix accessibility issues flagged by automated tools in the note properties dialog ([#14798](https://github.com/laurent22/joplin/issues/14798) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Disable "Expand all notebooks" button when no sub-notebooks exist ([#14891](https://github.com/laurent22/joplin/issues/14891)) ([#14890](https://github.com/laurent22/joplin/issues/14890) by [@dipanshurdev](https://github.com/dipanshurdev))
- Fixed: Fix JPEG image paste from clipboard on Linux ([#14750](https://github.com/laurent22/joplin/issues/14750)) ([#14613](https://github.com/laurent22/joplin/issues/14613) by [@moaaz-ae](https://github.com/moaaz-ae))
- Fixed: Fix Markdown export losing folders that differ only by special characters ([#14869](https://github.com/laurent22/joplin/issues/14869)) ([#9436](https://github.com/laurent22/joplin/issues/9436) by [@lnxd](https://github.com/lnxd))
- Fixed: Fix OneNote zip import path when .one files are at root level ([#14605](https://github.com/laurent22/joplin/issues/14605)) ([#14223](https://github.com/laurent22/joplin/issues/14223) by [@Kaushalendra-Marcus](https://github.com/Kaushalendra-Marcus))
- Fixed: Fix changes made in an external editor are sometimes ignored ([#14957](https://github.com/laurent22/joplin/issues/14957)) ([#14954](https://github.com/laurent22/joplin/issues/14954) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix crash when closing secondary windows ([#14892](https://github.com/laurent22/joplin/issues/14892)) ([#14628](https://github.com/laurent22/joplin/issues/14628) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix incorrectly re-instated code ([#14962](https://github.com/laurent22/joplin/issues/14962)) ([#14628](https://github.com/laurent22/joplin/issues/14628) by [@mrjo118](https://github.com/mrjo118))
- Fixed: Fix inline formatting with trailing/leading whitespace ([#14991](https://github.com/laurent22/joplin/issues/14991)) ([#14990](https://github.com/laurent22/joplin/issues/14990) by [@Harsh16gupta](https://github.com/Harsh16gupta))
- Fixed: Fix most Windows-specific test failures ([#14904](https://github.com/laurent22/joplin/issues/14904)) ([#14903](https://github.com/laurent22/joplin/issues/14903) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix renderer crashes still occuring due to incorrect merge ([#14953](https://github.com/laurent22/joplin/issues/14953)) ([#14628](https://github.com/laurent22/joplin/issues/14628) by [@mrjo118](https://github.com/mrjo118))
- Fixed: Fixed Custom Dictionary.txt being saved to wrong directory ([#14749](https://github.com/laurent22/joplin/issues/14749)) ([#12910](https://github.com/laurent22/joplin/issues/12910) by [@Harsh16gupta](https://github.com/Harsh16gupta))
- Fixed: Frontmatter export: Include notebook icon in frontmatter export ([#14582](https://github.com/laurent22/joplin/issues/14582)) ([#9673](https://github.com/laurent22/joplin/issues/9673) by Ashutosh Singh)
- Fixed: Importing from OneNote: Fix import of ink with negative bounding box coordinates ([#14981](https://github.com/laurent22/joplin/issues/14981) by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Incomplete (out of screen) ABC Sheet Music rendering ([#14767](https://github.com/laurent22/joplin/issues/14767)) ([#14245](https://github.com/laurent22/joplin/issues/14245) by [@Harsh16gupta](https://github.com/Harsh16gupta))
- Fixed: Inline computed styles when copying from the Markdown preview pane ([#14973](https://github.com/laurent22/joplin/issues/14973)) ([#14950](https://github.com/laurent22/joplin/issues/14950) by [@Harsh16gupta](https://github.com/Harsh16gupta))
- Fixed: Prevent Plugin API callback registry memory leak ([#14920](https://github.com/laurent22/joplin/issues/14920)) ([#14919](https://github.com/laurent22/joplin/issues/14919) by [@Sandesh13fr](https://github.com/Sandesh13fr))
- Fixed: Prevent duplicate tags caused by Unicode normalization ([#14599](https://github.com/laurent22/joplin/issues/14599)) ([#14540](https://github.com/laurent22/joplin/issues/14540) by [@itisrohit](https://github.com/itisrohit))
- Fixed: Prevent renderer crash when closing secondary window ([#14849](https://github.com/laurent22/joplin/issues/14849)) ([#14628](https://github.com/laurent22/joplin/issues/14628) by [@Kaushalendra-Marcus](https://github.com/Kaushalendra-Marcus))
- Fixed: RTE checklists should create unchecked items on Enter ([#14918](https://github.com/laurent22/joplin/issues/14918)) ([#14914](https://github.com/laurent22/joplin/issues/14914) by [@Sandesh13fr](https://github.com/Sandesh13fr))
- Fixed: Share owner sees "Leave notebook" instead of "Share notebook" when server is offline ([#14923](https://github.com/laurent22/joplin/issues/14923)) ([#12994](https://github.com/laurent22/joplin/issues/12994) by [@Rygaa](https://github.com/Rygaa))
## [v3.6.6](https://github.com/laurent22/joplin/releases/tag/v3.6.6) (Pre-release) - 2026-03-17T10:44:55Z
- Improved: Add support for Ctrl/Cmd+Wheel to zoom in and out ([#14684](https://github.com/laurent22/joplin/issues/14684)) ([#7914](https://github.com/laurent22/joplin/issues/7914) by Ashutosh Singh)

View File

@@ -10812,7 +10812,7 @@ __metadata:
"@types/node": "npm:18.19.130"
"@types/react": "npm:19.1.10"
"@types/react-redux": "npm:7.1.33"
"@types/serviceworker": "npm:0.0.172"
"@types/serviceworker": "npm:0.0.173"
"@types/tar-stream": "npm:3.1.4"
assert-browserify: "npm:2.0.0"
babel-jest: "npm:29.7.0"
@@ -10864,7 +10864,7 @@ __metadata:
react-native-rsa-native: "npm:2.0.5"
react-native-safe-area-context: "npm:5.6.2"
react-native-securerandom: "npm:1.0.1"
react-native-share: "npm:12.2.1"
react-native-share: "npm:12.2.2"
react-native-sqlite-storage: "npm:6.0.1"
react-native-svg: "npm:15.15.1"
react-native-url-polyfill: "npm:2.0.0"
@@ -11073,7 +11073,7 @@ __metadata:
"@types/node-rsa": "npm:1.1.4"
"@types/react": "npm:19.1.10"
"@types/react-dom": "npm:19.1.7"
"@types/uuid": "npm:10.0.0"
"@types/uuid": "npm:11.0.0"
adm-zip: "npm:0.5.16"
async-mutex: "npm:0.5.0"
base-64: "npm:1.0.0"
@@ -11297,7 +11297,7 @@ __metadata:
"@types/node-os-utils": "npm:1.3.4"
"@types/nodemailer": "npm:6.4.21"
"@types/qrcode": "npm:1.5.6"
"@types/uuid": "npm:10.0.0"
"@types/uuid": "npm:11.0.0"
"@types/yargs": "npm:17.0.35"
"@types/zxcvbn": "npm:4.4.5"
bcryptjs: "npm:2.4.3"
@@ -11380,7 +11380,7 @@ __metadata:
relative: "npm:3.0.2"
request: "npm:2.88.2"
rss: "npm:1.2.2"
sass: "npm:1.94.3"
sass: "npm:1.95.0"
sharp: "npm:0.34.5"
source-map-support: "npm:0.5.21"
sqlite3: "npm:5.1.6"
@@ -11404,7 +11404,7 @@ __metadata:
"@types/jest-expect-message": "npm:1.1.0"
"@types/koa": "npm:2.15.0"
"@types/sharp": "npm:0.32.0"
"@types/uuid": "npm:10.0.0"
"@types/uuid": "npm:11.0.0"
dotenv: "npm:17.2.3"
file-type: "npm:16.5.4"
fs-extra: "npm:11.3.3"
@@ -17439,10 +17439,10 @@ __metadata:
languageName: node
linkType: hard
"@types/serviceworker@npm:0.0.172":
version: 0.0.172
resolution: "@types/serviceworker@npm:0.0.172"
checksum: 10/7a1ff19c478020ae7bf2eea423cd30ad214ae3999b23a85f73780b9b251a462fb9fc86341d02008915835e5f5c676fa8fe543e1e2ef836eb356eee3527d48671
"@types/serviceworker@npm:0.0.173":
version: 0.0.173
resolution: "@types/serviceworker@npm:0.0.173"
checksum: 10/923669146623e767c0d2dda21699ef422e6ee7d3a737b83134ca8c6236b8bf9466a3c57e4db358f4cd11c54d1094a602a8dd5d3910fab8b400f8f14b987d38cd
languageName: node
linkType: hard
@@ -17546,10 +17546,12 @@ __metadata:
languageName: node
linkType: hard
"@types/uuid@npm:10.0.0":
version: 10.0.0
resolution: "@types/uuid@npm:10.0.0"
checksum: 10/e3958f8b0fe551c86c14431f5940c3470127293280830684154b91dc7eb3514aeb79fe3216968833cf79d4d1c67f580f054b5be2cd562bebf4f728913e73e944
"@types/uuid@npm:11.0.0":
version: 11.0.0
resolution: "@types/uuid@npm:11.0.0"
dependencies:
uuid: "npm:*"
checksum: 10/9f94bd34e5d220c53cc58ea9f48a0061d3bc343e29bc33a17edc705f5e21fedda21553318151f2bc227c2b2b03727bbb536da2b82a61f84d2e1ca38abc5e5c3f
languageName: node
linkType: hard
@@ -22568,12 +22570,12 @@ __metadata:
languageName: node
linkType: hard
"chokidar@npm:^5.0.0":
version: 5.0.0
resolution: "chokidar@npm:5.0.0"
"chokidar@npm:^4.0.0":
version: 4.0.3
resolution: "chokidar@npm:4.0.3"
dependencies:
readdirp: "npm:^5.0.0"
checksum: 10/a1c2a4ee6ee81ba6409712c295a47be055fb9de1186dfbab33c1e82f28619de962ba02fc5f9d433daaedc96c35747460d8b2079ac2907de2c95e3f7cce913113
readdirp: "npm:^4.0.1"
checksum: 10/bf2a575ea5596000e88f5db95461a9d59ad2047e939d5a4aac59dd472d126be8f1c1ff3c7654b477cf532d18f42a97279ef80ee847972fd2a25410bf00b80b59
languageName: node
linkType: hard
@@ -44653,10 +44655,10 @@ __metadata:
languageName: node
linkType: hard
"react-native-share@npm:12.2.1":
version: 12.2.1
resolution: "react-native-share@npm:12.2.1"
checksum: 10/56ad7c86ef79e2d204bb44c3417045b09d74c86d250f4d98d26f8d06649309d41cb59699c8e22f8a9da86d602fabe2ceda3ca9e45a814107bbfcff0c2db71045
"react-native-share@npm:12.2.2":
version: 12.2.2
resolution: "react-native-share@npm:12.2.2"
checksum: 10/792417d71c07862e4f471b0dfe1e45f79150cbe64791ec8f755c75c46bfd5006f35cd3caa05d09e00671e5551c8f05627bcfe50348edd187d2f5e11d1ff236bf
languageName: node
linkType: hard
@@ -45382,10 +45384,10 @@ __metadata:
languageName: node
linkType: hard
"readdirp@npm:^5.0.0":
version: 5.0.0
resolution: "readdirp@npm:5.0.0"
checksum: 10/a17a591b51d8b912083660df159e8bd17305dc1a9ef27c869c818bd95ff59e3a6496f97e91e724ef433e789d559d24e39496ea1698822eb5719606dc9c1a923d
"readdirp@npm:^4.0.1":
version: 4.1.2
resolution: "readdirp@npm:4.1.2"
checksum: 10/7b817c265940dba90bb9c94d82920d76c3a35ea2d67f9f9d8bd936adcfe02d50c802b14be3dd2e725e002dddbe2cc1c7a0edfb1bc3a365c9dfd5a61e612eea1e
languageName: node
linkType: hard
@@ -46892,12 +46894,12 @@ __metadata:
languageName: node
linkType: hard
"sass@npm:1.94.3":
version: 1.94.3
resolution: "sass@npm:1.94.3"
"sass@npm:1.95.0":
version: 1.95.0
resolution: "sass@npm:1.95.0"
dependencies:
"@parcel/watcher": "npm:^2.4.1"
chokidar: "npm:^5.0.0"
chokidar: "npm:^4.0.0"
immutable: "npm:^5.0.2"
source-map-js: "npm:>=0.6.2 <2.0.0"
dependenciesMeta:
@@ -46905,7 +46907,7 @@ __metadata:
optional: true
bin:
sass: sass.js
checksum: 10/5b641fcf7db4354a9af42b322ab112e7f60dd1bfc98960e5714931e5aca3bee669938df08110a75ae2df373efca7c247433e7271c6f1571e9680d12df3946700
checksum: 10/27a98999e36f55b47b79a5c11fab1f9fb78411030a49e583e4853058f05253eb917f1638c8784828d47fac129d0d44bc889cf611f73a65abe40ab09b8ff7143c
languageName: node
linkType: hard
@@ -52880,6 +52882,15 @@ __metadata:
languageName: node
linkType: hard
"uuid@npm:*":
version: 13.0.0
resolution: "uuid@npm:13.0.0"
bin:
uuid: dist-node/bin/uuid
checksum: 10/2742b24d1e00257e60612572e4d28679423469998cafbaf1fe9f1482e3edf9c40754b31bfdb3d08d71b29239f227a304588f75210b3b48f2609f0673f1feccef
languageName: node
linkType: hard
"uuid@npm:11.1.0, uuid@npm:^11.1.0":
version: 11.1.0
resolution: "uuid@npm:11.1.0"