11 Commits

Author SHA1 Message Date
Ben Irvin bac520e9f8 fix(data-transfer): fix large transfer crashes; show transfer progress (#23479)
* enhancement: update progress per chunk

* fix: check stageprogress exists to make ts happy

* chore: split progress tracker into two methods

* test: fix lint

* enhancement: display readable times

* fix: speed indication for assets

* fix: restore speed indicator and fix double counting

* chore: clean up code

* fix: data transfer memory leak

* fix: yarn.lock

* chore: fix memory logging

* ci: complex project remote transfer

* enhancement: optimized transfer mode

* test(cli): data transfer and env passthrough

* chore: only send one message warning of legacy mode

* enhancement: show transfer totals and estimated time

* test(cli): fix deterministic transfer test files

* fix: push and pull shared utils backwards compatibility

* fix(data-transfer): extract legacy asset chunk parsing and tighten transfer logging/test coverage

* enhancement: checksum negotiation

* enhancement: show skipped file warnings on client

* fix: transfer diagnostics

* test: fix open handle

* fix: clear stall timeout for assets

* chore: fix misleading comments and variables

* test: fix misleading test

* test: fix typo

* test: make checks deterministic, less flaky

* enhancement(data-transfer): speed up asset totals; widen assets start reply window on remote pull

* fix(data-transfer): harden WebSocket JSON serialization for transfer frames

* fix(data-transfer): more transfer hardening

* test: fix test imports

* fix: await async write

* fix(data-transfer): resolve push transfer deadlock and harden async writes

- Extract createAssetsDestinationWritable so Writable callbacks run before
  uploadStream completes (same WS batch as PassThrough chunks).
- Add writable-async-write (write callback + drain/finished race; avoid hang
  on destroy).
- Wire push/pull, remote-source, file & directory sources to shared write().
- Fire-and-forget pull flush: Promise.resolve(flush).catch(onError); guard
  missing stream inside try.
- Add regression tests (assets writable, writable-async-write, handler checks).

* fix(data-transfer): write push stream batches sequentially

Use a for-loop with await write() instead of Promise.all over msg.data
so non-asset stages respect one in-flight write per objectMode Writable
and backpressure from writable-async-write.

- Validate minChunksForBackpressure in assertReadStreamBackpressure
- Add engine test for non-Buffer asset chunk byte progress (counts as 1)
- Assert push.ts keeps sequential msg.data handling in static handler test

* fix(data-transfer): align push streamAsset with remote-source and harden tests

- Push handler: combine stream/end under one branch, error when start is missing
  or action is invalid; shorten stage write comments.
- Engine version-matching tests: use a fresh createDestination() per engine so
  parallel transfers do not share destination writables (MaxListeners warnings).
- File destination tests: mock createWriteStream with a new Writable per call.
- CLI transfer tests: mock progress.stream so transfer::finish runs after transfer
  and clears the progress setInterval (fixes Jest worker hang).
- Misc test cleanup: assets-destination timeout clearTimeout, collect listeners,
  writable-async-write teardown; tighten push/static test descriptions.

* test: remove parity test

* fix(data-transfer): harden collect() and stabilize transfer tests

- collect(): settle once, remove listeners on resolve/reject, avoid double completion
- engine tests: add expectHeapGrowthWithinNoise for heap smoke checks
- CLI transfer tests: console spies in beforeAll; jest.restoreAllMocks in afterAll
- stream test: remove removeAllListeners workaround
2026-04-20 16:08:05 +02:00
Ben Irvin 353a86a60d security: package upgrades to remove deprecated versions of boolean, tar, and glob (#25776)
* chore: upgrade tar, global-agent, dedupe yarn.lock

This removes the deprecated packages: boolean, tar<7, node-gyp<12, and others

* chore: upgrade inquirer, file-type, jscodeshift, supertest

* chore: update better-sqlite3

* chore: upgrade pg and mysql2

* fix: use dynamic imports for inquirer esm only

* test(cli): add create-strapi-app test

* test(cli): add scaffold cases

* chore: upgrade to rimraf 6.1.3

* chore: dedupe yarn.lock

* security: update jwk-to-pem

* chore: dedupe yarn.lock

* chore: align inquirer version

* chore: yarn.lock

* test: fix inquirer imports

* test(cli): support zero apps

* test: fix back-end

* test(cli): fix inquirer and fs

* chore: remove accidental file

* chore: dedupe and upgrade pinned deps
2026-03-19 13:44:02 +01:00
Ben Irvin e2aec24015 chore: upgrade better-sqlite3 to 12.6.2 (#25611) 2026-03-05 12:13:37 +01:00
Ben Irvin bf72b0ec43 security: update react-router (#25391) 2026-02-11 16:30:17 +01:00
Andrei L 2102695c88 fix(ts): ignore generated .strapi folder (#25086) 2026-02-11 09:10:20 +00:00
Andrei L deacf1e97f feat(strapi/create): type strapi configs (#21859) 2026-02-03 15:50:11 +00:00
Bassel Kanso 19187c080b chore: add support for node 24 (#24586) 2025-11-10 14:35:56 +02:00
markkaylor e4700a5963 enhancement: improve guided tour (#24094) 2025-08-18 09:54:58 +02:00
markkaylor 9ee35b96a1 chore: revert uuid (#24067) 2025-08-11 10:23:13 +02:00
markkaylor bb2ec9354d fix: incorrect config won't run example app (#24063) 2025-07-31 11:25:58 +02:00
markkaylor 2aa8dc580e chore: add empty project to examples (#24049) 2025-07-31 09:54:42 +02:00