conductor-oss 0.61.21 → 0.61.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/node_modules/@conductor-oss/core/package.json +1 -1
  2. package/package.json +6 -6
  3. package/web/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
  4. package/web/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +219 -0
  5. package/web/.next/standalone/node_modules/@img/{sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.18.3} +0 -0
  6. package/web/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +2 -2
  7. package/web/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/versions.json +20 -20
  8. package/web/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  9. package/web/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +219 -0
  10. package/web/.next/standalone/node_modules/@img/{sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.18.3} +0 -0
  11. package/web/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +2 -2
  12. package/web/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +20 -20
  13. package/web/.next/standalone/node_modules/@img/sharp-linux-x64/index.cjs +1 -0
  14. package/web/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64-0.35.0.node +0 -0
  15. package/web/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +6 -5
  16. package/web/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/index.cjs +1 -0
  17. package/web/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64-0.35.0.node +0 -0
  18. package/web/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +6 -5
  19. package/web/.next/standalone/node_modules/@next/env/package.json +8 -9
  20. package/web/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  21. package/web/.next/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  22. package/web/.next/standalone/node_modules/next/dist/client/dev/debug-channel.js +102 -2
  23. package/web/.next/standalone/node_modules/next/dist/compiled/http-proxy/index.js +5 -5
  24. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +11 -10
  25. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +12 -11
  26. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +14 -13
  27. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +11 -10
  28. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
  29. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  30. package/web/.next/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +9 -9
  31. package/web/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  32. package/web/.next/standalone/node_modules/next/dist/server/app-render/action-handler.js +147 -42
  33. package/web/.next/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +52 -4
  34. package/web/.next/standalone/node_modules/next/dist/server/config-schema.js +1 -1
  35. package/web/.next/standalone/node_modules/next/dist/server/config-shared.js +0 -2
  36. package/web/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  37. package/web/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  38. package/web/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  39. package/web/.next/standalone/node_modules/next/dist/server/image-optimizer.js +8 -27
  40. package/web/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  41. package/web/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +45 -0
  42. package/web/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +6 -3
  43. package/web/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +90 -53
  44. package/web/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +20 -3
  45. package/web/.next/standalone/node_modules/next/dist/server/lib/router-utils/proxy-request.js +4 -0
  46. package/web/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  47. package/web/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  48. package/web/.next/standalone/node_modules/next/dist/shared/lib/router/router.js +8 -1
  49. package/web/.next/standalone/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +2 -1
  50. package/web/.next/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +12 -0
  51. package/web/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  52. package/web/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  53. package/web/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  54. package/web/.next/standalone/node_modules/next/package.json +10 -252
  55. package/web/.next/standalone/node_modules/postcss/lib/container.js +81 -34
  56. package/web/.next/standalone/node_modules/postcss/lib/fromJSON.js +76 -23
  57. package/web/.next/standalone/node_modules/postcss/lib/input.js +13 -4
  58. package/web/.next/standalone/node_modules/postcss/lib/lazy-result.js +55 -13
  59. package/web/.next/standalone/node_modules/postcss/lib/node.js +105 -60
  60. package/web/.next/standalone/node_modules/postcss/lib/previous-map.js +11 -2
  61. package/web/.next/standalone/node_modules/postcss/lib/processor.js +1 -1
  62. package/web/.next/standalone/node_modules/postcss/lib/stringifier.js +90 -25
  63. package/web/.next/standalone/node_modules/postcss/package.json +1 -1
  64. package/web/.next/standalone/node_modules/sharp/{lib/channel.js → dist/channel.cjs} +1 -1
  65. package/web/.next/standalone/node_modules/sharp/{lib/colour.js → dist/colour.cjs} +1 -1
  66. package/web/.next/standalone/node_modules/sharp/{lib/composite.js → dist/composite.cjs} +2 -1
  67. package/web/.next/standalone/node_modules/sharp/{lib/constructor.js → dist/constructor.cjs} +41 -29
  68. package/web/.next/standalone/node_modules/sharp/dist/index.cjs +25 -0
  69. package/web/.next/standalone/node_modules/sharp/{lib/input.js → dist/input.cjs} +19 -14
  70. package/web/.next/standalone/node_modules/sharp/{lib/libvips.js → dist/libvips.cjs} +35 -30
  71. package/web/.next/standalone/node_modules/sharp/{lib/operation.js → dist/operation.cjs} +6 -35
  72. package/web/.next/standalone/node_modules/sharp/{lib/output.js → dist/output.cjs} +142 -14
  73. package/web/.next/standalone/node_modules/sharp/{lib/resize.js → dist/resize.cjs} +19 -1
  74. package/web/.next/standalone/node_modules/sharp/dist/sharp.cjs +164 -0
  75. package/web/.next/standalone/node_modules/sharp/{lib/utility.js → dist/utility.cjs} +11 -7
  76. package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/range.js +24 -4
  77. package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/semver.js +19 -2
  78. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/clean.js +8 -0
  79. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare-build.js +9 -0
  80. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare-loose.js +5 -0
  81. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/diff.js +60 -0
  82. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/inc.js +21 -0
  83. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/major.js +5 -0
  84. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/minor.js +5 -0
  85. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/patch.js +5 -0
  86. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/prerelease.js +8 -0
  87. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/rcompare.js +5 -0
  88. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/rsort.js +5 -0
  89. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/sort.js +5 -0
  90. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/truncate.js +48 -0
  91. package/web/.next/standalone/node_modules/sharp/node_modules/semver/functions/valid.js +8 -0
  92. package/web/.next/standalone/node_modules/sharp/node_modules/semver/index.js +93 -0
  93. package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/re.js +1 -1
  94. package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/package.json +4 -4
  95. package/web/.next/standalone/node_modules/sharp/node_modules/semver/preload.js +4 -0
  96. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/gtr.js +6 -0
  97. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/intersects.js +9 -0
  98. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/ltr.js +6 -0
  99. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/max-satisfying.js +27 -0
  100. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/min-satisfying.js +26 -0
  101. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/min-version.js +63 -0
  102. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/outside.js +82 -0
  103. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/simplify.js +49 -0
  104. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/subset.js +249 -0
  105. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/to-comparators.js +10 -0
  106. package/web/.next/standalone/node_modules/sharp/node_modules/semver/ranges/valid.js +13 -0
  107. package/web/.next/standalone/node_modules/sharp/package.json +60 -49
  108. package/web/.next/standalone/package.json +3 -2
  109. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  110. package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +7 -7
  111. package/web/.next/standalone/packages/web/.next/build-manifest.json +4 -4
  112. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  113. package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +5 -5
  114. package/web/.next/standalone/packages/web/.next/required-server-files.json +6 -1
  115. package/web/.next/standalone/packages/web/.next/server/app/__clerk/[[...path]]/route.js.nft.json +1 -1
  116. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  117. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  118. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  119. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  120. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  121. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  122. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  123. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  124. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  125. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  126. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +1 -1
  127. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  128. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  129. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
  130. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  131. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -1
  132. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
  133. package/web/.next/standalone/packages/web/.next/server/app/api/auth/profile/route.js.nft.json +1 -1
  134. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -1
  135. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
  136. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/[bridgeId]/route.js.nft.json +1 -1
  137. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/route.js.nft.json +1 -1
  138. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/app-update/route.js.nft.json +1 -1
  139. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/repair/route.js.nft.json +1 -1
  140. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/route.js.nft.json +1 -1
  141. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/service-restart/route.js.nft.json +1 -1
  142. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/claims/complete/route.js.nft.json +1 -1
  143. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/code/route.js.nft.json +1 -1
  144. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/route.js.nft.json +1 -1
  145. package/web/.next/standalone/packages/web/.next/server/app/api/bridges/route.js.nft.json +1 -1
  146. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
  147. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -1
  148. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
  149. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
  150. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
  151. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
  152. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
  153. package/web/.next/standalone/packages/web/.next/server/app/api/github/projects/route.js.nft.json +1 -1
  154. package/web/.next/standalone/packages/web/.next/server/app/api/github/projects/sync/route.js.nft.json +1 -1
  155. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  156. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -1
  157. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
  158. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
  159. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
  160. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
  161. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/backlinks/route.js.nft.json +1 -1
  162. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/daily/route.js.nft.json +1 -1
  163. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/file/route.js.nft.json +1 -1
  164. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/graph/route.js.nft.json +1 -1
  165. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/open/route.js.nft.json +1 -1
  166. package/web/.next/standalone/packages/web/.next/server/app/api/project-notes/route.js.nft.json +1 -1
  167. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/approve/route.js.nft.json +1 -1
  168. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/bindings/route.js.nft.json +1 -1
  169. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/feed/route.js.nft.json +1 -1
  170. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/feed/stream/route.js.nft.json +1 -1
  171. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/integration/route.js.nft.json +1 -1
  172. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/interrupt/route.js.nft.json +1 -1
  173. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/preferences/route.js.nft.json +1 -1
  174. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/reject/route.js.nft.json +1 -1
  175. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/route.js.nft.json +1 -1
  176. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/send/route.js.nft.json +1 -1
  177. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route.js.nft.json +1 -1
  178. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/[task]/route.js.nft.json +1 -1
  179. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/route.js.nft.json +1 -1
  180. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatchers/route.js.nft.json +1 -1
  181. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/open/route.js.nft.json +1 -1
  182. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  183. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/setup/route.js.nft.json +1 -1
  184. package/web/.next/standalone/packages/web/.next/server/app/api/projects/route.js.nft.json +1 -1
  185. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  186. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
  187. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
  188. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  189. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
  190. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
  191. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
  192. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
  193. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  194. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
  195. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
  196. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.nft.json +1 -1
  197. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.nft.json +1 -1
  198. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.nft.json +1 -1
  199. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  200. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  201. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  202. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/relay/route.js.nft.json +1 -1
  203. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js.nft.json +1 -1
  204. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/token/route.js.nft.json +1 -1
  205. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/route.js.nft.json +1 -1
  206. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/token/route.js.nft.json +1 -1
  207. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/ws/route.js.nft.json +1 -1
  208. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  209. package/web/.next/standalone/packages/web/.next/server/app/api/skills/activate/route.js.nft.json +1 -1
  210. package/web/.next/standalone/packages/web/.next/server/app/api/skills/catalog/route.js.nft.json +1 -1
  211. package/web/.next/standalone/packages/web/.next/server/app/api/skills/deactivate/route.js.nft.json +1 -1
  212. package/web/.next/standalone/packages/web/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  213. package/web/.next/standalone/packages/web/.next/server/app/api/skills/installed/route.js.nft.json +1 -1
  214. package/web/.next/standalone/packages/web/.next/server/app/api/skills/session-active/route.js.nft.json +1 -1
  215. package/web/.next/standalone/packages/web/.next/server/app/api/skills/uninstall/route.js.nft.json +1 -1
  216. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
  217. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
  218. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  219. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +1 -1
  220. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
  221. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
  222. package/web/.next/standalone/packages/web/.next/server/app/bridge/install.ps1/route.js.nft.json +1 -1
  223. package/web/.next/standalone/packages/web/.next/server/app/bridge/install.sh/route.js.nft.json +1 -1
  224. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page.js +1 -1
  225. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page.js.nft.json +1 -1
  226. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page_client-reference-manifest.js +1 -1
  227. package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  228. package/web/.next/standalone/packages/web/.next/server/app/page.js +1 -1
  229. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  230. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  231. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +2 -2
  232. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  233. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  234. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +1 -1
  235. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
  236. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
  237. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +1 -1
  238. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  239. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  240. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +1 -1
  241. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
  242. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
  243. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +1 -1
  244. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
  245. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
  246. package/web/.next/standalone/packages/web/.next/server/app/sign-up/[[...sign-up]]/page.js +1 -1
  247. package/web/.next/standalone/packages/web/.next/server/app/sign-up/[[...sign-up]]/page.js.nft.json +1 -1
  248. package/web/.next/standalone/packages/web/.next/server/app/sign-up/[[...sign-up]]/page_client-reference-manifest.js +1 -1
  249. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +1 -1
  250. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  251. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  252. package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +7 -7
  253. package/web/.next/standalone/packages/web/.next/server/chunks/2512.js +3 -3
  254. package/web/.next/standalone/packages/web/.next/server/chunks/3303.js +1 -1
  255. package/web/.next/standalone/packages/web/.next/server/chunks/3698.js +5 -3
  256. package/web/.next/standalone/packages/web/.next/server/chunks/3786.js +2 -2
  257. package/web/.next/standalone/packages/web/.next/server/chunks/4135.js +1 -0
  258. package/web/.next/standalone/packages/web/.next/server/chunks/6108.js +1 -0
  259. package/web/.next/standalone/packages/web/.next/server/chunks/6472.js +1 -1
  260. package/web/.next/standalone/packages/web/.next/server/chunks/7776.js +1 -1
  261. package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
  262. package/web/.next/standalone/packages/web/.next/server/chunks/9672.js +1 -0
  263. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
  264. package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  265. package/web/.next/standalone/packages/web/.next/server/middleware.js +4 -4
  266. package/web/.next/standalone/packages/web/.next/server/next-font-manifest.js +1 -1
  267. package/web/.next/standalone/packages/web/.next/server/next-font-manifest.json +1 -1
  268. package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
  269. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  270. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
  271. package/web/.next/standalone/packages/web/.next/static/chunks/{34443.c71c524d5fcc197f.js → 34443.564640d49e48dac8.js} +1 -1
  272. package/web/.next/standalone/packages/web/.next/static/chunks/41696.3e691c667c1e7b81.js +1 -0
  273. package/web/.next/standalone/packages/web/.next/static/chunks/49829.b59a66a75b0144d4.js +1 -0
  274. package/web/.next/standalone/packages/web/.next/static/chunks/{61968-84de5fd1d154571d.js → 61968-1d55f423ea1ad7fb.js} +1 -1
  275. package/web/.next/standalone/packages/web/.next/static/chunks/76892-83c29ea9e142a212.js +1 -0
  276. package/web/.next/{static/chunks/79593-c8c8ed0f8829c660.js → standalone/packages/web/.next/static/chunks/79593-7e4d5cc53d59e150.js} +2 -2
  277. package/web/.next/standalone/packages/web/.next/static/chunks/9016-c4fa23038e6de72b.js +1 -0
  278. package/web/.next/standalone/packages/web/.next/static/chunks/app/{layout-1d6034a5d57a2849.js → layout-e2267e076be36fa0.js} +1 -1
  279. package/web/.next/standalone/packages/web/.next/static/chunks/app/page-f3925343b6c5eaa9.js +1 -0
  280. package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/page-b1d7e1d41fba2817.js +1 -0
  281. package/web/.next/standalone/packages/web/.next/static/chunks/{main-e776ff7a08a61c77.js → main-0a70c45f3b60fdcf.js} +1 -1
  282. package/web/.next/{static/chunks/webpack-c447583f01d6313b.js → standalone/packages/web/.next/static/chunks/webpack-44f612e7df6dfe22.js} +1 -1
  283. package/web/.next/standalone/packages/web/.next/static/css/07568bac52bbf79f.css +1 -0
  284. package/web/.next/standalone/packages/web/package.json +2 -1
  285. package/web/.next/standalone/packages/web/server.js +1 -1
  286. package/web/.next/static/chunks/{34443.c71c524d5fcc197f.js → 34443.564640d49e48dac8.js} +1 -1
  287. package/web/.next/static/chunks/41696.3e691c667c1e7b81.js +1 -0
  288. package/web/.next/static/chunks/49829.b59a66a75b0144d4.js +1 -0
  289. package/web/.next/static/chunks/{61968-84de5fd1d154571d.js → 61968-1d55f423ea1ad7fb.js} +1 -1
  290. package/web/.next/static/chunks/76892-83c29ea9e142a212.js +1 -0
  291. package/web/.next/{standalone/packages/web/.next/static/chunks/79593-c8c8ed0f8829c660.js → static/chunks/79593-7e4d5cc53d59e150.js} +2 -2
  292. package/web/.next/static/chunks/9016-c4fa23038e6de72b.js +1 -0
  293. package/web/.next/static/chunks/app/{layout-1d6034a5d57a2849.js → layout-e2267e076be36fa0.js} +1 -1
  294. package/web/.next/static/chunks/app/page-f3925343b6c5eaa9.js +1 -0
  295. package/web/.next/static/chunks/app/sessions/[id]/page-b1d7e1d41fba2817.js +1 -0
  296. package/web/.next/static/chunks/{main-e776ff7a08a61c77.js → main-0a70c45f3b60fdcf.js} +1 -1
  297. package/web/.next/{standalone/packages/web/.next/static/chunks/webpack-c447583f01d6313b.js → static/chunks/webpack-44f612e7df6dfe22.js} +1 -1
  298. package/web/.next/static/css/07568bac52bbf79f.css +1 -0
  299. package/web/.next/standalone/node_modules/@img/sharp-linux-x64/LICENSE +0 -191
  300. package/web/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  301. package/web/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
  302. package/web/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  303. package/web/.next/standalone/node_modules/sharp/lib/index.js +0 -16
  304. package/web/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
  305. package/web/.next/standalone/packages/web/.next/server/chunks/1364.js +0 -1
  306. package/web/.next/standalone/packages/web/.next/server/chunks/4013.js +0 -1
  307. package/web/.next/standalone/packages/web/.next/server/chunks/9398.js +0 -1
  308. package/web/.next/standalone/packages/web/.next/static/chunks/28386-0121205400994756.js +0 -1
  309. package/web/.next/standalone/packages/web/.next/static/chunks/41696.08fe09203aaf1a18.js +0 -1
  310. package/web/.next/standalone/packages/web/.next/static/chunks/84322.a03fd8fc2bb2e8d7.js +0 -1
  311. package/web/.next/standalone/packages/web/.next/static/chunks/9016-2b7d7b8b143a8323.js +0 -1
  312. package/web/.next/standalone/packages/web/.next/static/chunks/app/page-0ba7acf47a6b3ac6.js +0 -1
  313. package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/page-aeb1ccc1a89248d5.js +0 -1
  314. package/web/.next/standalone/packages/web/.next/static/css/895fa8ff3c08143e.css +0 -1
  315. package/web/.next/static/chunks/28386-0121205400994756.js +0 -1
  316. package/web/.next/static/chunks/41696.08fe09203aaf1a18.js +0 -1
  317. package/web/.next/static/chunks/84322.a03fd8fc2bb2e8d7.js +0 -1
  318. package/web/.next/static/chunks/9016-2b7d7b8b143a8323.js +0 -1
  319. package/web/.next/static/chunks/app/page-0ba7acf47a6b3ac6.js +0 -1
  320. package/web/.next/static/chunks/app/sessions/[id]/page-aeb1ccc1a89248d5.js +0 -1
  321. package/web/.next/static/css/895fa8ff3c08143e.css +0 -1
  322. /package/web/.next/standalone/node_modules/sharp/{lib/is.js → dist/is.cjs} +0 -0
  323. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/comparator.js +0 -0
  324. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/cmp.js +0 -0
  325. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/coerce.js +0 -0
  326. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/compare.js +0 -0
  327. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/eq.js +0 -0
  328. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gt.js +0 -0
  329. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gte.js +0 -0
  330. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lt.js +0 -0
  331. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lte.js +0 -0
  332. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/neq.js +0 -0
  333. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/parse.js +0 -0
  334. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/satisfies.js +0 -0
  335. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/constants.js +0 -0
  336. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/debug.js +0 -0
  337. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/identifiers.js +0 -0
  338. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/lrucache.js +0 -0
  339. /package/web/.next/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/parse-options.js +0 -0
  340. /package/web/.next/standalone/packages/web/.next/static/{bUZhqJ_eDpMX4oqHwonGR → 2imqEtZncw17IjW1PZEh4}/_buildManifest.js +0 -0
  341. /package/web/.next/standalone/packages/web/.next/static/{bUZhqJ_eDpMX4oqHwonGR → 2imqEtZncw17IjW1PZEh4}/_ssgManifest.js +0 -0
  342. /package/web/.next/static/{bUZhqJ_eDpMX4oqHwonGR → 2imqEtZncw17IjW1PZEh4}/_buildManifest.js +0 -0
  343. /package/web/.next/static/{bUZhqJ_eDpMX4oqHwonGR → 2imqEtZncw17IjW1PZEh4}/_ssgManifest.js +0 -0
@@ -3,8 +3,8 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
 
6
- const is = require('./is');
7
- const sharp = require('./sharp');
6
+ const is = require('./is.cjs');
7
+ const sharp = require('./sharp.cjs');
8
8
 
9
9
  /**
10
10
  * Justification alignment
@@ -24,13 +24,13 @@ const align = {
24
24
 
25
25
  const inputStreamParameters = [
26
26
  // Limits and error handling
27
- 'failOn', 'limitInputPixels', 'unlimited',
27
+ 'failOn', 'limitInputPixels', 'limitInputChannels', 'unlimited',
28
28
  // Format-generic
29
29
  'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead',
30
30
  // Format-specific
31
31
  'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff',
32
32
  // Deprecated
33
- 'failOnError', 'openSlideLevel', 'pdfBackground', 'tiffSubifd'
33
+ 'openSlideLevel', 'pdfBackground', 'tiffSubifd'
34
34
  ];
35
35
 
36
36
  /**
@@ -55,6 +55,7 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
55
55
  autoOrient: false,
56
56
  failOn: 'warning',
57
57
  limitInputPixels: 0x3FFF ** 2,
58
+ limitInputChannels: 5,
58
59
  ignoreIcc: false,
59
60
  unlimited: false,
60
61
  sequentialRead: true
@@ -106,14 +107,6 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
106
107
  }`);
107
108
  }
108
109
  if (is.object(inputOptions)) {
109
- // Deprecated: failOnError
110
- if (is.defined(inputOptions.failOnError)) {
111
- if (is.bool(inputOptions.failOnError)) {
112
- inputDescriptor.failOn = inputOptions.failOnError ? 'warning' : 'none';
113
- } else {
114
- throw is.invalidParameterError('failOnError', 'boolean', inputOptions.failOnError);
115
- }
116
- }
117
110
  // failOn
118
111
  if (is.defined(inputOptions.failOn)) {
119
112
  if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) {
@@ -132,7 +125,7 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
132
125
  }
133
126
  // Density
134
127
  if (is.defined(inputOptions.density)) {
135
- if (is.inRange(inputOptions.density, 1, 100000)) {
128
+ if (is.number(inputOptions.density) && is.inRange(inputOptions.density, 1, 100000)) {
136
129
  inputDescriptor.density = inputOptions.density;
137
130
  } else {
138
131
  throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density);
@@ -158,6 +151,16 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
158
151
  throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels);
159
152
  }
160
153
  }
154
+ // limitInputChannels
155
+ if (is.defined(inputOptions.limitInputChannels)) {
156
+ if (is.bool(inputOptions.limitInputChannels)) {
157
+ inputDescriptor.limitInputChannels = inputOptions.limitInputChannels ? 5 : 0;
158
+ } else if (is.integer(inputOptions.limitInputChannels) && is.inRange(inputOptions.limitInputChannels, 0, Number.MAX_SAFE_INTEGER)) {
159
+ inputDescriptor.limitInputChannels = inputOptions.limitInputChannels;
160
+ } else {
161
+ throw is.invalidParameterError('limitInputChannels', 'positive integer', inputOptions.limitInputChannels);
162
+ }
163
+ }
161
164
  // unlimited
162
165
  if (is.defined(inputOptions.unlimited)) {
163
166
  if (is.bool(inputOptions.unlimited)) {
@@ -574,7 +577,8 @@ function _isStreamInput () {
574
577
  *
575
578
  * A `Promise` is returned when `callback` is not provided.
576
579
  *
577
- * - `format`: Name of decoder used to decompress image data e.g. `jpeg`, `png`, `webp`, `gif`, `svg`
580
+ * - `format`: Name of decoder used to parse image e.g. `jpeg`, `png`, `webp`, `gif`, `svg`, `heif`, `tiff`
581
+ * - `mediaType`: Media Type (MIME Type) e.g. `image/jpeg`, `image/png`, `image/svg+xml`, `image/avif`
578
582
  * - `size`: Total size of image in bytes, for Stream and Buffer input only
579
583
  * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below)
580
584
  * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below)
@@ -607,6 +611,7 @@ function _isStreamInput () {
607
611
  * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present
608
612
  * - `formatMagick`: String containing format for images loaded via *magick
609
613
  * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present.
614
+ * - `gainMap.image`: HDR gain map, if present, as compressed JPEG image.
610
615
  *
611
616
  * @example
612
617
  * const metadata = await sharp(input).metadata();
@@ -5,20 +5,18 @@
5
5
 
6
6
  const { spawnSync } = require('node:child_process');
7
7
  const { createHash } = require('node:crypto');
8
- const semverCoerce = require('semver/functions/coerce');
9
- const semverGreaterThanOrEqualTo = require('semver/functions/gte');
10
- const semverSatisfies = require('semver/functions/satisfies');
8
+ const semver = require('semver');
11
9
  const detectLibc = require('detect-libc');
12
-
13
- const { config, engines, optionalDependencies } = require('../package.json');
10
+ const pkg = require('../package.json');
14
11
 
15
12
  /* node:coverage ignore next */
16
- const minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || config.libvips;
17
- const minimumLibvipsVersion = semverCoerce(minimumLibvipsVersionLabelled).version;
13
+ const minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || pkg.config.libvips;
14
+ const minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version;
18
15
 
19
16
  const prebuiltPlatforms = [
20
17
  'darwin-arm64', 'darwin-x64',
21
- 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-x64',
18
+ 'freebsd-arm64', 'freebsd-x64',
19
+ 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-wasm32', 'linux-x64',
22
20
  'linuxmusl-arm64', 'linuxmusl-x64',
23
21
  'win32-arm64', 'win32-ia32', 'win32-x64'
24
22
  ];
@@ -36,13 +34,13 @@ const log = (item) => {
36
34
  }
37
35
  };
38
36
 
39
- /* node:coverage ignore next */
37
+ /* node:coverage disable */
38
+
40
39
  const runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : '';
41
40
 
42
41
  const runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`;
43
42
 
44
43
  const buildPlatformArch = () => {
45
- /* node:coverage ignore next 3 */
46
44
  if (isEmscripten()) {
47
45
  return 'wasm32';
48
46
  }
@@ -55,7 +53,6 @@ const buildSharpLibvipsIncludeDir = () => {
55
53
  try {
56
54
  return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`);
57
55
  } catch {
58
- /* node:coverage ignore next 5 */
59
56
  try {
60
57
  return require('@img/sharp-libvips-dev/include');
61
58
  } catch {}
@@ -64,7 +61,6 @@ const buildSharpLibvipsIncludeDir = () => {
64
61
  };
65
62
 
66
63
  const buildSharpLibvipsCPlusPlusDir = () => {
67
- /* node:coverage ignore next 4 */
68
64
  try {
69
65
  return require('@img/sharp-libvips-dev/cplusplus');
70
66
  } catch {}
@@ -75,7 +71,6 @@ const buildSharpLibvipsLibDir = () => {
75
71
  try {
76
72
  return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`);
77
73
  } catch {
78
- /* node:coverage ignore next 5 */
79
74
  try {
80
75
  return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`);
81
76
  } catch {}
@@ -83,12 +78,10 @@ const buildSharpLibvipsLibDir = () => {
83
78
  return '';
84
79
  };
85
80
 
86
- /* node:coverage disable */
87
-
88
81
  const isUnsupportedNodeRuntime = () => {
89
82
  if (process.release?.name === 'node' && process.versions) {
90
- if (!semverSatisfies(process.versions.node, engines.node)) {
91
- return { found: process.versions.node, expected: engines.node };
83
+ if (!semver.satisfies(process.versions.node, pkg.engines.node)) {
84
+ return { found: process.versions.node, expected: pkg.engines.node };
92
85
  }
93
86
  }
94
87
  };
@@ -113,7 +106,7 @@ const sha512 = (s) => createHash('sha512').update(s).digest('hex');
113
106
  const yarnLocator = () => {
114
107
  try {
115
108
  const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`);
116
- const npmVersion = semverCoerce(optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], {
109
+ const npmVersion = semver.coerce(pkg.optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], {
117
110
  includePrerelease: true
118
111
  }).version;
119
112
  return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10);
@@ -144,22 +137,34 @@ const globalLibvipsVersion = () => {
144
137
  }
145
138
  };
146
139
 
140
+ const getBrewPkgConfigPath = () => {
141
+ try {
142
+ const brewPrefix = (spawnSync('brew', ['--prefix'], { encoding: 'utf8' }).stdout || '').trim();
143
+ if (brewPrefix) {
144
+ return `${brewPrefix}/lib/pkgconfig`;
145
+ }
146
+ } catch (_err) {}
147
+ return undefined;
148
+ };
149
+
150
+ const getPkgConfigPath = () => {
151
+ try {
152
+ const pkgConfigPath = (spawnSync('pkg-config', ['--variable', 'pc_path', 'pkg-config'], { encoding: 'utf8' }).stdout || '').trim();
153
+ if (pkgConfigPath) {
154
+ return pkgConfigPath;
155
+ }
156
+ } catch (_err) {}
157
+ return undefined;
158
+ };
159
+
147
160
  /* node:coverage enable */
148
161
 
149
162
  const pkgConfigPath = () => {
150
163
  if (process.platform !== 'win32') {
151
- /* node:coverage ignore next 4 */
152
- const brewPkgConfigPath = spawnSync(
153
- 'which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',
154
- spawnSyncOptions
155
- ).stdout || '';
156
164
  return [
157
- brewPkgConfigPath.trim(),
158
- process.env.PKG_CONFIG_PATH,
159
- '/usr/local/lib/pkgconfig',
160
- '/usr/lib/pkgconfig',
161
- '/usr/local/libdata/pkgconfig',
162
- '/usr/libdata/pkgconfig'
165
+ getBrewPkgConfigPath(),
166
+ getPkgConfigPath(),
167
+ process.env.PKG_CONFIG_PATH
163
168
  ].filter(Boolean).join(':');
164
169
  } else {
165
170
  return '';
@@ -186,7 +191,7 @@ const useGlobalLibvips = (logger) => {
186
191
  }
187
192
  const globalVipsVersion = globalLibvipsVersion();
188
193
  /* node:coverage ignore next */
189
- return !!globalVipsVersion && semverGreaterThanOrEqualTo(globalVipsVersion, minimumLibvipsVersion);
194
+ return !!globalVipsVersion && semver.gte(globalVipsVersion, minimumLibvipsVersion);
190
195
  };
191
196
 
192
197
  module.exports = {
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
 
6
- const is = require('./is');
6
+ const is = require('./is.cjs');
7
7
 
8
8
  /**
9
9
  * How accurate an operation should be.
@@ -178,7 +178,7 @@ function flop (flop) {
178
178
  * @throws {Error} Invalid parameters
179
179
  */
180
180
  function affine (matrix, options) {
181
- const flatMatrix = [].concat(...matrix);
181
+ const flatMatrix = Array.isArray(matrix) ? [].concat(...matrix) : [];
182
182
  if (flatMatrix.length === 4 && flatMatrix.every(is.number)) {
183
183
  this.options.affineMatrix = flatMatrix;
184
184
  } else {
@@ -259,45 +259,18 @@ function affine (matrix, options) {
259
259
  * })
260
260
  * .toBuffer();
261
261
  *
262
- * @param {Object|number} [options] - if present, is an Object with attributes
262
+ * @param {Object} [options] - if present, is an Object with attributes
263
263
  * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10
264
264
  * @param {number} [options.m1=1.0] - the level of sharpening to apply to "flat" areas, between 0 and 1000000
265
265
  * @param {number} [options.m2=2.0] - the level of sharpening to apply to "jagged" areas, between 0 and 1000000
266
266
  * @param {number} [options.x1=2.0] - threshold between "flat" and "jagged", between 0 and 1000000
267
267
  * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000
268
268
  * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000
269
- * @param {number} [flat] - (deprecated) see `options.m1`.
270
- * @param {number} [jagged] - (deprecated) see `options.m2`.
271
269
  * @returns {Sharp}
272
270
  * @throws {Error} Invalid parameters
273
271
  */
274
- function sharpen (options, flat, jagged) {
275
- if (!is.defined(options)) {
276
- // No arguments: default to mild sharpen
277
- this.options.sharpenSigma = -1;
278
- } else if (is.bool(options)) {
279
- // Deprecated boolean argument: apply mild sharpen?
280
- this.options.sharpenSigma = options ? -1 : 0;
281
- } else if (is.number(options) && is.inRange(options, 0.01, 10000)) {
282
- // Deprecated numeric argument: specific sigma
283
- this.options.sharpenSigma = options;
284
- // Deprecated control over flat areas
285
- if (is.defined(flat)) {
286
- if (is.number(flat) && is.inRange(flat, 0, 10000)) {
287
- this.options.sharpenM1 = flat;
288
- } else {
289
- throw is.invalidParameterError('flat', 'number between 0 and 10000', flat);
290
- }
291
- }
292
- // Deprecated control over jagged areas
293
- if (is.defined(jagged)) {
294
- if (is.number(jagged) && is.inRange(jagged, 0, 10000)) {
295
- this.options.sharpenM2 = jagged;
296
- } else {
297
- throw is.invalidParameterError('jagged', 'number between 0 and 10000', jagged);
298
- }
299
- }
300
- } else if (is.plainObject(options)) {
272
+ function sharpen (options) {
273
+ if (is.plainObject(options)) {
301
274
  if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) {
302
275
  this.options.sharpenSigma = options.sigma;
303
276
  } else {
@@ -339,7 +312,7 @@ function sharpen (options, flat, jagged) {
339
312
  }
340
313
  }
341
314
  } else {
342
- throw is.invalidParameterError('sigma', 'number between 0.01 and 10000', options);
315
+ this.options.sharpenSigma = -1;
343
316
  }
344
317
  return this;
345
318
  }
@@ -510,8 +483,6 @@ function flatten (options) {
510
483
  *
511
484
  * Existing alpha channel values for non-white pixels remain unchanged.
512
485
  *
513
- * This feature is experimental and the API may change.
514
- *
515
486
  * @since 0.32.1
516
487
  *
517
488
  * @example
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  const path = require('node:path');
7
- const is = require('./is');
8
- const sharp = require('./sharp');
7
+ const is = require('./is.cjs');
8
+ const sharp = require('./sharp.cjs');
9
9
 
10
10
  const formats = new Map([
11
11
  ['heic', 'heif'],
@@ -76,7 +76,7 @@ function toFile (fileOut, callback) {
76
76
  err = new Error('Missing output file path');
77
77
  } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) {
78
78
  err = new Error('Cannot use same file for input and output');
79
- } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2k.output.file) {
79
+ } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2.output.file) {
80
80
  err = errJp2Save();
81
81
  }
82
82
  if (err) {
@@ -164,6 +164,64 @@ function toBuffer (options, callback) {
164
164
  return this._pipeline(is.fn(options) ? options : callback, stack);
165
165
  }
166
166
 
167
+ /**
168
+ * Write output to a `Uint8Array` backed by a transferable `ArrayBuffer`.
169
+ * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.
170
+ *
171
+ * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format.
172
+ *
173
+ * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.
174
+ *
175
+ * By default all metadata will be removed, which includes EXIF-based orientation.
176
+ * See {@link #keepexif keepExif} and similar methods for control over this.
177
+ *
178
+ * Resolves with an `Object` containing:
179
+ * - `data` is the output image as a `Uint8Array` backed by a transferable `ArrayBuffer`.
180
+ * - `info` contains properties relating to the output image such as `width` and `height`.
181
+ *
182
+ * @since v0.35.0
183
+ *
184
+ * @example
185
+ * const { data, info } = await sharp(input).toUint8Array();
186
+ *
187
+ * @example
188
+ * const { data } = await sharp(input)
189
+ * .avif()
190
+ * .toUint8Array();
191
+ * const base64String = data.toBase64();
192
+ *
193
+ * @returns {Promise<{ data: Uint8Array, info: Object }>}
194
+ */
195
+ function toUint8Array () {
196
+ this.options.resolveWithObject = true;
197
+ this.options.typedArrayOut = true;
198
+ const stack = Error();
199
+ return this._pipeline(null, stack);
200
+ }
201
+
202
+ /**
203
+ * Set output density (DPI) in EXIF metadata.
204
+ *
205
+ * @since 0.35.0
206
+ *
207
+ * @example
208
+ * const data = await sharp(input)
209
+ * .withDensity(96)
210
+ * .toBuffer();
211
+ *
212
+ * @param {number} density Number of pixels per inch (DPI).
213
+ * @returns {Sharp}
214
+ * @throws {Error} Invalid parameters
215
+ */
216
+ function withDensity (density) {
217
+ if (is.number(density) && density > 0) {
218
+ this.options.withMetadataDensity = density;
219
+ } else {
220
+ throw is.invalidParameterError('density', 'positive number', density);
221
+ }
222
+ return this.keepExif();
223
+ }
224
+
167
225
  /**
168
226
  * Keep all EXIF metadata from the input image in the output image.
169
227
  *
@@ -319,6 +377,60 @@ function withIccProfile (icc, options) {
319
377
  return this;
320
378
  }
321
379
 
380
+ /**
381
+ * If the input contains gain map metadata, attempt to process the image and gain map separately,
382
+ * recombining them into a single output image.
383
+ *
384
+ * This approach is faster and should produce better results than {@link #withgainmap withGainMap},
385
+ * however not all operations are supported.
386
+ *
387
+ * Only JPEG input and output are supported.
388
+ * JPEG output options other than `quality` are ignored.
389
+ *
390
+ * This feature is experimental and the API may change.
391
+ *
392
+ * @since 0.35.0
393
+ *
394
+ * @example
395
+ * const outputWithResizedGainMap = await sharp(inputWithGainMap)
396
+ * .keepGainMap()
397
+ * .resize({ width: 64 })
398
+ * .toBuffer();
399
+ *
400
+ * @returns {Sharp}
401
+ */
402
+ function keepGainMap() {
403
+ this.options.keepGainMap = true;
404
+ this.options.withGainMap = false;
405
+ this.options.keepMetadata |= 0b100000;
406
+ return this;
407
+ }
408
+
409
+ /**
410
+ * If the input contains gain map metadata, use it to convert the main image to HDR (High Dynamic Range) before further processing.
411
+ * The input gain map is discarded.
412
+ *
413
+ * If the output is JPEG, generate and attach a new ISO 21496-1 gain map.
414
+ * JPEG output options other than `quality` are ignored.
415
+ *
416
+ * This feature is experimental and the API may change.
417
+ *
418
+ * @since 0.35.0
419
+ *
420
+ * @example
421
+ * const outputWithRegeneratedGainMap = await sharp(inputWithGainMap)
422
+ * .withGainMap()
423
+ * .toBuffer();
424
+ *
425
+ * @returns {Sharp}
426
+ */
427
+ function withGainMap() {
428
+ this.options.withGainMap = true;
429
+ this.options.keepGainMap = false;
430
+ this.options.colourspace = 'scrgb';
431
+ return this;
432
+ }
433
+
322
434
  /**
323
435
  * Keep XMP metadata from the input image in the output image.
324
436
  *
@@ -388,7 +500,7 @@ function withXmp (xmp) {
388
500
  * @returns {Sharp}
389
501
  */
390
502
  function keepMetadata () {
391
- this.options.keepMetadata = 0b11111;
503
+ this.options.keepMetadata |= 0b11111;
392
504
  return this;
393
505
  }
394
506
 
@@ -690,6 +802,7 @@ function png (options) {
690
802
  * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)
691
803
  * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow)
692
804
  * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow)
805
+ * @param {boolean} [options.exact=false] - preserve the colour data in transparent pixels
693
806
  * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format
694
807
  * @returns {Sharp}
695
808
  * @throws {Error} Invalid options
@@ -742,6 +855,9 @@ function webp (options) {
742
855
  if (is.defined(options.mixed)) {
743
856
  this._setBooleanOption('webpMixed', options.mixed);
744
857
  }
858
+ if (is.defined(options.exact)) {
859
+ this._setBooleanOption('webpExact', options.exact);
860
+ }
745
861
  }
746
862
  trySetAnimationOptions(options, this.options);
747
863
  return this._updateFormatOut('webp', options);
@@ -887,7 +1003,7 @@ function gif (options) {
887
1003
  */
888
1004
  function jp2 (options) {
889
1005
  /* node:coverage ignore next 41 */
890
- if (!this.constructor.format.jp2k.output.buffer) {
1006
+ if (!this.constructor.format.jp2.output.buffer) {
891
1007
  throw errJp2Save();
892
1008
  }
893
1009
  if (is.object(options)) {
@@ -992,7 +1108,7 @@ function trySetAnimationOptions (source, target) {
992
1108
  * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm
993
1109
  * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm
994
1110
  * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm
995
- * @param {number} [options.bitdepth=8] - reduce bitdepth to 1, 2 or 4 bit
1111
+ * @param {number} [options.bitdepth=0] - reduce bitdepth to 1, 2 or 4 bit
996
1112
  * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite
997
1113
  * @returns {Sharp}
998
1114
  * @throws {Error} Invalid options
@@ -1007,10 +1123,10 @@ function tiff (options) {
1007
1123
  }
1008
1124
  }
1009
1125
  if (is.defined(options.bitdepth)) {
1010
- if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4, 8])) {
1126
+ if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4])) {
1011
1127
  this.options.tiffBitdepth = options.bitdepth;
1012
1128
  } else {
1013
- throw is.invalidParameterError('bitdepth', '1, 2, 4 or 8', options.bitdepth);
1129
+ throw is.invalidParameterError('bitdepth', '1, 2 or 4', options.bitdepth);
1014
1130
  }
1015
1131
  }
1016
1132
  // tiling
@@ -1090,10 +1206,8 @@ function tiff (options) {
1090
1206
  * Use these AVIF options for output image.
1091
1207
  *
1092
1208
  * AVIF image sequences are not supported.
1093
- * Prebuilt binaries support a bitdepth of 8 only.
1094
1209
  *
1095
- * This feature is experimental on the Windows ARM64 platform
1096
- * and requires a CPU with ARM64v8.4 or later.
1210
+ * When using Windows ARM64, this feature requires a CPU with ARM64v8.4 or later.
1097
1211
  *
1098
1212
  * @example
1099
1213
  * const data = await sharp(input)
@@ -1113,6 +1227,7 @@ function tiff (options) {
1113
1227
  * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)
1114
1228
  * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling
1115
1229
  * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit
1230
+ * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'
1116
1231
  * @returns {Sharp}
1117
1232
  * @throws {Error} Invalid options
1118
1233
  */
@@ -1140,6 +1255,7 @@ function avif (options) {
1140
1255
  * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)
1141
1256
  * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling
1142
1257
  * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit
1258
+ * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'
1143
1259
  * @returns {Sharp}
1144
1260
  * @throws {Error} Invalid options
1145
1261
  */
@@ -1180,14 +1296,22 @@ function heif (options) {
1180
1296
  }
1181
1297
  if (is.defined(options.bitdepth)) {
1182
1298
  if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {
1183
- if (options.bitdepth !== 8 && this.constructor.versions.heif) {
1184
- throw is.invalidParameterError('bitdepth when using prebuilt binaries', 8, options.bitdepth);
1185
- }
1186
1299
  this.options.heifBitdepth = options.bitdepth;
1187
1300
  } else {
1188
1301
  throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);
1189
1302
  }
1190
1303
  }
1304
+ if (is.defined(options.tune)) {
1305
+ if (is.string(options.tune) && is.inArray(options.tune, ['auto', 'iq', 'psnr', 'ssim'])) {
1306
+ if (this.options.heifLossless && options.tune === 'iq') {
1307
+ this.options.heifTune = 'ssim';
1308
+ } else {
1309
+ this.options.heifTune = options.tune;
1310
+ }
1311
+ } else {
1312
+ throw is.invalidParameterError('tune', 'one of: auto, iq, psnr, ssim', options.tune);
1313
+ }
1314
+ }
1191
1315
  } else {
1192
1316
  throw is.invalidParameterError('options', 'Object', options);
1193
1317
  }
@@ -1635,11 +1759,15 @@ module.exports = (Sharp) => {
1635
1759
  // Public
1636
1760
  toFile,
1637
1761
  toBuffer,
1762
+ toUint8Array,
1763
+ withDensity,
1638
1764
  keepExif,
1639
1765
  withExif,
1640
1766
  withExifMerge,
1641
1767
  keepIccProfile,
1642
1768
  withIccProfile,
1769
+ keepGainMap,
1770
+ withGainMap,
1643
1771
  keepXmp,
1644
1772
  withXmp,
1645
1773
  keepMetadata,
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
 
6
- const is = require('./is');
6
+ const is = require('./is.cjs');
7
7
 
8
8
  /**
9
9
  * Weighting to apply when using contain/cover fit.
@@ -506,6 +506,8 @@ function extract (options) {
506
506
  *
507
507
  * If the result of this operation would trim an image to nothing then no change is made.
508
508
  *
509
+ * Use the `lineArt` and `threshold` options for control over sensitivity.
510
+ *
509
511
  * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties.
510
512
  *
511
513
  * @example
@@ -540,10 +542,19 @@ function extract (options) {
540
542
  * })
541
543
  * .toBuffer();
542
544
  *
545
+ * @example
546
+ * // Trim image leaving (up to) a 10 pixel margin around the trimmed content.
547
+ * const output = await sharp(input)
548
+ * .trim({
549
+ * margin: 10
550
+ * })
551
+ * .toBuffer();
552
+ *
543
553
  * @param {Object} [options]
544
554
  * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel.
545
555
  * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number.
546
556
  * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic?
557
+ * @param {number} [options.margin=0] - Leave a margin around trimmed content, value is in pixels.
547
558
  * @returns {Sharp}
548
559
  * @throws {Error} Invalid parameters
549
560
  */
@@ -564,6 +575,13 @@ function trim (options) {
564
575
  if (is.defined(options.lineArt)) {
565
576
  this._setBooleanOption('trimLineArt', options.lineArt);
566
577
  }
578
+ if (is.defined(options.margin)) {
579
+ if (is.integer(options.margin) && options.margin >= 0) {
580
+ this.options.trimMargin = options.margin;
581
+ } else {
582
+ throw is.invalidParameterError('margin', 'positive integer', options.margin);
583
+ }
584
+ }
567
585
  } else {
568
586
  throw is.invalidParameterError('trim', 'object', options);
569
587
  }