Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"@changesets/cli": "2.29.7",
"@graphql-codegen/add": "6.0.0",
"@graphql-codegen/cli": "6.0.1",
"@graphql-codegen/near-operation-file-preset": "3.1.0",
"@graphql-codegen/near-operation-file-preset": "4.0.0",
"@graphql-codegen/typed-document-node": "6.1.0",
"@graphql-codegen/typescript-operations": "5.0.2",
"@nx/eslint-plugin": "22.0.2",
Expand Down Expand Up @@ -196,8 +196,7 @@
"**/graphql/**/generated/*.ts"
],
"ignoreDependencies": [
"@shopify/plugin-cloudflare",
"@shopify/function-runner"
"@shopify/plugin-cloudflare"
],
"vite": {
"config": [
Expand Down
1 change: 0 additions & 1 deletion packages/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
"@luckycatfactory/esbuild-graphql-loader": "3.8.1",
"@oclif/core": "4.5.3",
"@shopify/cli-kit": "3.91.0",
"@shopify/function-runner": "4.1.1",
"@shopify/plugin-cloudflare": "3.91.0",
"@shopify/polaris": "12.27.0",
"@shopify/polaris-icons": "8.11.1",
Expand Down
1 change: 0 additions & 1 deletion packages/cli-kit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@
"commondir": "1.0.1",
"conf": "11.0.2",
"deepmerge": "4.3.1",
"del": "6.1.1",
"dotenv": "16.4.7",
"env-paths": "3.0.0",
"execa": "7.2.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-kit/src/public/node/fs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import {
access as fsAccess,
rename as fsRename,
unlink as fsUnlink,
rm as fsRm,
readdir as fsReaddir,
symlink as fsSymlink,
} from 'fs/promises'
Expand Down Expand Up @@ -312,9 +313,8 @@ interface RmDirOptions {
* @param options - Options to remove the directory with.
*/
export async function rmdir(path: string, options: RmDirOptions = {}): Promise<void> {
const {default: del} = await import('del')
outputDebug(outputContent`Removing directory at ${outputToken.path(path)}...`)
await del(path, {force: options.force})
await fsRm(path, {recursive: true, force: options.force ?? false})
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rmdir() behavior change may break callers (non-empty dirs, error semantics)

The implementation of rmdir changed from del(path, {force}) to fs.promises.rm(path, {recursive: true, force: options.force ?? false}).

This is not equivalent:

  • del() is a glob-aware deletion library and historically has different semantics (it will delete contents via globbing and tends to “just work” even with tricky path patterns).
  • fs.rm(..., {recursive:true}) has stricter Node/filesystem semantics and can throw in cases del may have handled (permissions, readonly files on Windows, symlinks, etc.).
  • Also, force default is now effectively false (unless passed), which can change behavior vs prior usage if any callers relied on del being more forgiving.

Impact: Could cause CLI operations that clean up temp/build directories to fail unexpectedly (especially on Windows), leaving stale directories behind, breaking follow-up steps (installs/builds), or causing flaky CI/feature tests.


/**
Expand Down
2 changes: 1 addition & 1 deletion packages/features/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"@cucumber/pretty-formatter": "2.4.1",
"@types/fs-extra": "^9.0.13",
"fs-extra": "^9.1.0",
"tempy": "^1.0.1"
"tempy": "^3.1.0"
},
"engines": {
"node": ">=20.10.0"
Expand Down
4 changes: 2 additions & 2 deletions packages/features/steps/environment.steps.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {writeFile} from '../lib/fs.js'
import {Given, After, setDefaultTimeout} from '@cucumber/cucumber'
import tempy from 'tempy'
import {temporaryDirectory} from 'tempy'
import {rimrafSync} from 'rimraf'
import * as path from 'pathe'

Expand All @@ -12,7 +12,7 @@ if (process.env.DEBUG === '1') {
}

Given('I have a working directory', async function () {
this.temporaryDirectory = tempy.directory()
this.temporaryDirectory = temporaryDirectory()
const dataHomeDirectory = path.join(this.temporaryDirectory, 'XDG_DATA_HOME')
const configHomeDirectory = path.join(this.temporaryDirectory, 'XDG_CONFIG_HOME')
const stateHomeDirectory = path.join(this.temporaryDirectory, 'XDG_STATE_HOME')
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-extensions-dev-console/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0",
"@vitejs/plugin-react": "^5.1.4",
"jsdom": "^20.0.3",
"jsdom": "^25.0.0",
"sass": "^1.83.1",
"vite": "6.4.1"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-extensions-server-kit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"@shopify/ui-extensions-test-utils": "3.26.0",
"@types/react": "^18.2.0",
"@vitejs/plugin-react": "^5.1.4",
"jsdom": "^20.0.3",
"jsdom": "^25.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"vite": "6.4.1"
Expand Down
Loading
Loading